Access options:

New web site is in beta: websemantics.uk. A far better experience.

Really useful JavaScript functions

author: mike foskett incept: 4th October 2008

last update: 28th October 2011

Throughout this site I refer to my standard set of JavaScript functions. I think every developer has a set which they constantly reuse project to project. I thought I'd create a page outlining the ones I use. I hope you find them as useful as I do.

Each snippet is presented in long-hand easily readable form followed by a compressed single line version.

I strongly advise leaving in a credit to the original author along with a URL. You never know when you'll need the original article again, say for an update, and it's polite.

Damn those Crockford and Resig fellas, for making me code in a better manner. I've updated a few of the oldies and promoted them to the top. Older versions are now deprecated.

UK Postcode validation

author: john gardner 8th September 2011

This function checks the value of the parameter for a valid postcode format. The space between the inward part and the outward part is optional, although is inserted if not there as it is part of the official postcode.

If the postcode is found to be in a valid format, the function returns the postcode properly formatted (in capitals with the outward code and the inward code separated by a space. If the postcode is deemed to be incorrect a value of null is returned.

An example call for a form element with an id="postcode":


var postcode = checkPostCode(document.getElementById('postcode').value);
if (postcode) {
  document.getElementById('postcode').value = postcode;
  ... do stuff ...
} else {
  alert("Valid UK post code required");
}

Updated original version was run through JSLint prior to upload and compression.


// UK Postcode validation - John Gardner - http://www.braemoor.co.uk/software/postcodes.shtml
function checkPostCode(toCheck) {
  var alpha1 = "[abcdefghijklmnoprstuwyz]",
    alpha2 = "[abcdefghklmnopqrstuvwxy]",
    alpha3 = "[abcdefghjkpmnrstuvwxy]",
    alpha4 = "[abehmnprvwxy]",
    alpha5 = "[abdefghjlnpqrstuwxyz]",
    pcexp = [],
    postCode = toCheck,
    valid = false,
    i;
  pcexp.push(new RegExp("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$", "i"));
  pcexp.push(new RegExp("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$", "i"));
  pcexp.push(new RegExp("^(" + alpha1 + "{1}" + alpha2 + "{1}" + "?[0-9]{1}" + alpha4 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$", "i"));
  pcexp.push(/^(GIR)(\s*)(0AA)$/i);
  pcexp.push(/^(bfpo)(\s*)([0-9]{1,4})$/i);
  pcexp.push(/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);
  pcexp.push(/^([A-Z]{4})(\s*)(1ZZ)$/i);
  pcexp.push(/^(ai-2640)$/i);
  for (i = 0; i < pcexp.length; i++) {
    if (pcexp[i].test(postCode)) {
      pcexp[i].exec(postCode);
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      postCode = postCode.replace(/C\/O\s*/, "c/o ");
      if (toCheck.toUpperCase() === 'AI-2640') {
        postCode = 'AI-2640';
      }
      valid = true;
      break;
    }
  }
  return valid ? postCode : null;
}

Short form:


// UK Postcode validation - John Gardner - http://www.braemoor.co.uk/software/postcodes.shtml
function checkPostCode(I){var A="[abcdefghijklmnoprstuwyz]",B="[abcdefghklmnopqrstuvwxy]",C="[abcdefghjkpmnrstuvwxy]",D="[abehmnprvwxy]",E="[abdefghjlnpqrstuwxyz]",G=[],H=I,J=false,F;G.push(new RegExp("^("+A+"{1}"+B+"?[0-9]{1,2})(\\s*)([0-9]{1}"+E+"{2})$","i"));G.push(new RegExp("^("+A+"{1}[0-9]{1}"+C+"{1})(\\s*)([0-9]{1}"+E+"{2})$","i"));G.push(new RegExp("^("+A+"{1}"+B+"{1}?[0-9]{1}"+D+"{1})(\\s*)([0-9]{1}"+E+"{2})$","i"));G.push(/^(GIR)(\s*)(0AA)$/i);G.push(/^(bfpo)(\s*)([0-9]{1,4})$/i);G.push(/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);G.push(/^([A-Z]{4})(\s*)(1ZZ)$/i);G.push(/^(ai-2640)$/i);for(F=0;F<G.length;F++){if(G[F].test(H)){G[F].exec(H);H=RegExp.$1.toUpperCase()+" "+RegExp.$3.toUpperCase();H=H.replace(/C\/O\s*/,"c/o ");if(I.toUpperCase()==="AI-2640"){H="AI-2640";}J=true;break;}}return J?H:null;}

For further details, including annotated code, please see the original article: Validating UK post codes. Which also includes PHP and VBScript versions too.

Get elements by class name: $elsByClassName()

author: mike foskett uploaded: 16th July 2010

Requires $id(), $els(), hasClass():


function $elsByClassName(id, element, classname) {
  // returns a list of objects of element.classname or false.
  // results are cached so function is useless for detecting changed classes, e.g. class="on".
  var a = [], i, obj, pointer;
  element = element || "*";
  pointer = id + element + classname;
  if ($elsByClassName.cache[pointer] === undefined) { // get a result the long way round
    $elsByClassName.cache[pointer] = false; // cache negative result too
    if ($id(id) && classname) {
      obj = $els(id, element); // this result is cached separately
      i = obj.length;
      while (i--) {
        if (hasClass(obj[i], classname)) {
          a.push(obj[i]);
        }
      }
      if (a.length) {
        $elsByClassName.cache[pointer] = a.reverse(); // cache it for next time
      }
    }
  }
  return $elsByClassName.cache[pointer];
}
$elsByClassName.cache={}; // create global property

Short form:


function $elsByClassName(id,e,c){var a=[],i,o,p;e=e||"*";p=id+e+c;if($elsByClassName.cache[p]===undefined){$elsByClassName.cache[p]=false;if($id(id)&&c){o=$els(id,e);i=o.length;while(i--){if(hasClass(o[i],c)){a.push(o[i]);}}if(a.length){$elsByClassName.cache[p]=a.reverse();}}}return $elsByClassName.cache[p];}
$elsByClassName.cache={};

Controlling classes: hasClass(), removeClass(), addClass()

author: uploaded: 16th July 2011

Using regular expressions:


function hasClass(obj, c) {
  return new RegExp('(\\s|^)' + class + '(\\s|$)').test(obj.className);
}

function addClass(obj, class) {
  if (!hasClass(obj, class)) {
    obj.className += ' ' + class;
  }
}

function removeClass(obj, class) {
  if (hasClass(obj, class)) {
    obj.className = obj.className.replace(new RegExp('(\\s|^)' + class + '(\\s|$)'), ' ').replace(/\s+/g, ' ').replace(/^\s|\s$/, '');
  }
}

Acts exactly as you'd wish, especially the removeClass() which removes leading and trailing spaces. It nicely removes a centered class too

Short form:


function hasClass(o,c){return new RegExp('(\\s|^)'+c+'(\\s|$)').test(o.className);}
function addClass(o,c){if(!hasClass(o,c)){o.className+=' '+c;}}
function removeClass(o,c){if(hasClass(o,c)){o.className=o.className.replace(new RegExp('(\\s|^)'+c+'(\\s|$)'),' ').replace(/\s+/g,' ').replace(/^\s|\s$/,'');}}

Further details: .

Shorten document.getElementById (version 2) - $id()

author: mike foskett uploaded: 4th October 2008

updated: 16th July 2011

Saves repeatedly writing out document.getElementById('idname'):


function $id(id) {
  if ($id.cache[id] === undefined) {
    $id.cache[id] = document.getElementById(id) || false;
  }
  return $id.cache[id];
}
$id.cache = {};

Results are cached which speeds up repeat requests by 50%.

Short form:


function $id(i){return $id.cache[i]===undefined?$id.cache[i]=document.getElementById(i)||false:$id.cache[i];}
$id.cache={};

Get collection of elements (version 2) - $els()

Author: mike foskett uploaded: 5th April 2011

updated: 16th July 2011

Simplifies:


var obj = document.getElementbyId('idName');
if (obj) {
  var divElements = obj.getElementsByTagName('div');
  if (divElements.length > 0) {
    for (var i = 0; i < divElements.length; i += 1) {
      // do stuff with divElements[i] etc
    }
  }
}

Into:


var divElements = $els('idName', 'div');
var i = divElements.length;
while (i--) {
  // do stuff with divElements[i] etc
}

Or:


if (els('idname','div')){
  // do stuff with els('idname','div')[0] etc
}

Returns the list of elements if it's > 0, or a boolean false.

The beauty is the results from $els() are cached so repeat requests are 50% faster.

Function in full:


function $els(id, el) {
  var a = id + el, obj;
  if ($els.cache[a] === undefined) {
    obj = document.getElementById(id);
    if (obj) {
      $els.cache[a] = obj.getElementsByTagName(el || "*") || false;
    } else {
      $els.cache[a] = false;
    }
  }
  return $els.cache[a];
}
$els.cache = {};

Short form:


function $els(i,e){var a=i+e,o;if($els.cache[a]===undefined){o=document.getElementById(i);if(o){$els.cache[a]=o.getElementsByTagName(e||"*")||false;}else{$els.cache[a]=false;}}return $els.cache[a];}
$els.cache={};

Title case / capitalize text string

author: media college uploaded: 17th December 2010

Converts the first letter of each word in a string to a capital letter:


String.prototype.capitalize = function() {
  return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){return p1+p2.toUpperCase();});
};

Usage:


textString.capitalize();

Note it does not convert the other letters to lowercase so in practice it may be better to:


textString.toLowerCase().capitalize();

Short form:


String.prototype.capitalize=function(){return this.replace(/(^|\s)([a-z])/g,function(m,p1,p2){return p1+p2.toUpperCase();});};

Full details see: Capitalize Words Using JavaScript

Simple is IE test

uploaded: 9th July 2010

A very simple IE boolean test found on the net:


var isIE = /*@cc_on!@*/false;

Returns true if you're using any version of IE, otherwise false.

Cross-browser mouseenter and mouseleave

author: sstchur uploaded: 1st June 2010

A cross browser script to emulate IE's mouseenter / mouseleave functions. these functions do not use event bubbling. The original article didn't supply a minified example:


// Cross-browser mouseenter and mouseleave, without event bubbling - http://blog.stchur.com/2007/03/15/mouseenter-and-mouseleave-events-for-firefox-and-other-non-ie-browsers/
var xb={eH:[],
uID:function(_e){if(_e===window){return 'theWindow';}else if(_e===document){return 'theDocument';}else {return _e.uniqueID;}},
addEvent:function(_e,_eN,_fn,_uC){if(typeof _e.addEventListener!='undefined'){if(_eN=='mouseenter'){_e.addEventListener('mouseover',xb.mouseEnter(_fn),_uC);}else if(_eN=='mouseleave'){_e.addEventListener('mouseout',xb.mouseEnter(_fn),_uC);}else{_e.addEventListener(_eN,_fn,_uC);}}else if(typeof _e.attachEvent!='undefined'){var key='{FNKEY::obj_'+xb.uID(_e)+'::evt_'+_eN+'::fn_'+_fn+'}',f=xb.eH[key];if(typeof f!='undefined'){return;}f=function(){_fn.call(_e);};xb.eH[key]=f;_e.attachEvent('on'+_eN,f);window.attachEvent('onunload',function(){_e.detachEvent('on'+_eN,f);});key=null;}else{_e['on' + _eN]=_fn;}},
removeEvent:function(_e,_eN,_fn,_uC){if(typeof _e.removeEventListener!='undefined'){_e.removeEventListener(_eN,_fn,_uC);}else if(typeof _e.detachEvent!='undefined'){var key='{FNKEY::obj_'+xb.uID(_e)+'::evt'+_eN+'::fn_'+_fn+'}';var f=xb.eH[key];if(typeof f!='undefined'){_e.detachEvent('on'+_eN,f);delete xb.eH[key];}key=null;}},
mouseEnter:function(_pFn){return function(_evt){var rT=_evt.relatedTarget;if(this==rT || xb.isAChildOf(this,rT)){return;}_pFn.call(this,_evt);};},
isAChildOf:function(_parent,_child){if(_parent==_child){return false;}while(_child && _child!=_parent){_child=_child.parentNode;}return _child==_parent;}
};

Useage:


xb.addEvent(obj, 'mouseenter', enter(e), false);
xb.addEvent(obj, 'mouseleave', leave(e), false);

function enter(e){
  alert('mouseenter: ' + this.id);
}

function leave(e){
  alert('mouseleave: ' + this.id);
}

Further details: Mouseenter and mouseleave events for Firefox (and other non-IE browsers).

Strip anchor from URL

author: mike foskett uploaded: 20th May 2010

Strips out just the anchor from a URL string:


function getAnchorFromURI(uri) {
  return uri.slice(uri.lastIndexOf('#') + 1);
}

Short form:


function getAnchorFromURI(u){return u.slice(u.lastIndexOf('#')+1);}

Regex form validation functions

uploaded: 18th May 2010

Form validation functions using regex. Each returns a boolean either true or false.


function isInteger(str) { // positive or negative integer without range check.
  return (/^-?\d+$/.test(str));
}

function isPositiveDecimal(str) { // positive only, integer or decimal point.
  return (!/\D/.test(str)) || (/^\d+\.\d+$/.test(str));
}

function isAlphanumeric(str) { // [a-z],[A-Z],[0-9] only
  return !(/\W/.test(str));
}

function isAlphanumericSpaceAmpersandHyphen(str) { // [a-z],[A-Z],[0-9], ,&,-] only
  return !(/^[\w &\-]+$/.test(str));
}

function validEmail(str) {
  return str.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/) ===  null;
}

Please inspect the test cases prior to using these functions:

Function Test cases
abc & - ab1 12a 123 -123 1.23 -1.2 "" " " NULL
isInteger False False False False False True True False False False False False
isPositiveDecimal False False False False False True False True False True False False
isAlphanumeric True False False True True True False False False True False True
isAlphanumeric
Plus: " ","&", "-"
True True True True True True True False False False True True

Note: Pay particular attention to the empty string and null results.

Short form:


function isInteger(s){return (/^-?\d+$/.test(s));}
function isPositiveDecimal(s){return (!/\D/.test(str))||(/^\d+\.\d+$/.test(s));}
function isAlphanumeric(str){return !(/\W/.test(s));}
function isAlphanumericSpaceAmpersandHyphen(s){return !(/^[\w &\-]+$/.test(s));}
function validEmail(s){return s.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)===null;}

Cross-browser setting the style attribute

author: tyler waters uploaded: 25th March 2010

IE doesn't play well with setAttribute. Here's a simple cross-browser method for setting a style attribute on an object:


function setStyle(obj, styleStr) {
  obj.setAttribute('style', styleStr);
  obj.style.cssText = styleStr;
}

Short form:


function setStyle(o,s){o.setAttribute('style',s);o.style.cssText=s;}

Though ideally the methods should be tested for before usage.

Further details: setAttribute does not work when used with the style attribute.

Switching input auto-complete off

author: mike foskett uploaded: 20th February 2010

Auto complete is a proprietary Microsoft attribute, and deemed invalid in XHTML, but widely supported by most browsers. Very useful for private fields on public machines.


document.getElementById('inputID').setAttribute("autocomplete", "off");

Note the method described requires JavaScript to be of any use.

Cross browser viewport width & height

author: mike foskett uploaded: 4th February 2010

Requires isLessThanIE() function

Short form:


var w=isLessThanIE(8)?(!(document.documentElement.clientWidth)||(document.documentElement.clientWidth===0))?document.body.clientWidth:document.documentElement.clientWidth:window.innerWidth;
var h=isLessThanIE(8)?(!(document.documentElement.clientHeight)||(document.documentElement.clientHeight===0))?document.body.clientHeight:document.documentElement.clientHeight:window.innerHeight;

Based on: Find viewport height / width, crossbrowser.

Cross browser whole document width & height

author: cody lindley uploaded: 2nd November 2006

Gets the width and height of the whole document including the area offscreen.

Short form:


var docH=(document.height!==undefined)?document.height:document.body.offsetHeight;
var docW=(document.width!==undefined)?document.width:document.body.offsetWidth;

Further details: Javascript Get Page Height With Scroll.

I recently had issue with Firefox and the height calculation. Consequently I found a new function to generate page height:

author: james padolsey uploaded: 7th January 2011


function getDocHeight(){var D=document;return Math.max(Math.max(D.body.scrollHeight,D.documentElement.scrollHeight),Math.max(D.body.offsetHeight,D.documentElement.offsetHeight),Math.max(D.body.clientHeight,D.documentElement.clientHeight));}

Original article: Get document height (cross-browser).

Using wrap on an XHTML textarea

author: bob ince uploaded: 28th January 2010

Wrap is a deprecated attribute in XHTML but occasionally you still need to switch it:


function setWrap(area, wrap) {
  if (area.wrap) {
    area.wrap = wrap;
  } else { // wrap attribute not supported - try Mozilla workaround
    area.setAttribute('wrap', wrap);
    var newarea = area.cloneNode(true);
    newarea.value = area.value;
    area.parentNode.replaceChild(newarea, area);
  }
}

Pass in the textarea object and wrap state

Short form:


function setWrap(a,w){if(a.w){a.w=w;}else{a.setAttribute('wrap',w);var n=a.cloneNode(true);n.value=a.value;a.parentNode.replaceChild(n,a);}}

Example: Switch wrap off on a textarea with id="ta"


setWrap(document.getElementById('ta'), "off");

It is best to back this with a little CSS too:


textarea {white-space:pre; overflow:auto}

Further details: Changing textarea wrapping using javascript.

IE version test - isLessThanIE(version)

author: mike foskett 21st January 2010

Not a recommended method but, on rare occasion, incredibly useful.


function isLessThanIE(version) {
  if (navigator.appName === 'Microsoft Internet Explorer') {
    var ua = navigator.userAgent,
      re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) !== null) {
      if (parseFloat(RegExp.$1) < version) {
        return true;
      }
    }
  }
  return false;
}

Short form version:


function isLessThanIE(v){if(navigator.appName=='Microsoft Internet Explorer'){var u=navigator.userAgent,r=new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");if(r.exec(u)!==null){if(parseFloat(RegExp.$1)<v){return true;}}}return false;}

Integer validation - isInteger(str)

author: mike foskett 21st January 2010

Tests a string contains only numeric characters (0 - 9) using a regular expression. The string may start with a minus (-). The integer value is not range checked. Primarily used for form input validation.


function isInteger(str) {
  return (/^-?\d+$/.test(str));
}

Short form version:


function isInteger(s){return(/^-?\d+$/.test(s));}

Alternate, positive only, version:


function isPositiveInteger(s){return(/^\d+$/.test(s));}

Faster for-next looping

author: mike foskett 23rd October 2009

Only use if you're trawling through many objects in the DOM, use a fast for-next loop. Replace:


var allDivs=document.getElementsByTagName('div');
for (var i=0; i<allDivs.length; i++){
  // do stuff with every div
}

With:


var allDivs = document.getElementsByTagName('div');
for (var i = allDivs.length-1; i > -1; i--) {
  // do stuff with every div
}

The method is faster because there are less calculations on each iteration. The loop works backwards though. That is it starts from the top limit (allDivs.length-1) down to 0.

Optionally you could use a while loop, which may be quicker:


var allDivs = document.getElementsByTagName('div'),
    i = allDivs.length;
while (i--) {
  // do stuff with every div
}

Accessible pop-up window link using an inline script

author: mike foskett 13th October 2009

updated: 24th March 2010

Not an advised technique but sometimes very useful.


<p>
  <a onclick="var w=620,h=350,newWindow=window.open(this.href,'newWin','resizable,toolbar=0,location=0,scrollbars=1,menubar=0,width='+w+',height='+h+',top='+(screen.height-h)/2+',left='+(screen.width-w)/2+'');newWindow.focus();return false;" href="tandc.html" title="Open's in a new window">Terms and conditions</a>
</p>

This version:

  • Gets content from href address.
  • Allows a fixed width and height.
  • Places the window screen centre.
  • Adds focus to the window so it always comes to the front.
  • Content available without JavaScript.

Last update repaired screen centring issue.

Simple closure space example

author: mike foskett 13th October 2009

A simple closure used to encapsulate JavaScript functions. Useful and advisable if you work on large sites with complex JavaScript includes as it helps prevent unwanted interactions.


var closureSpace=function(){

  function init() {
    ...
  }

  return{ // list externally available functions here
    init:init
  };

}();

closureSpace.init(); // call externally available function like this

Is CSS available? hasCSS()

author: mike foskett 13th October 2009

A small function to test that CSS is on and available. Used to prevent Javascript functions acting on styles when their already off, unavailable, or not supported.

It works by adding a hidden div to the end of the document and testing its display property.

The function returns a boolean. I found it best to set a global variable to that result for use.


var cssOn; // Global variable

function hasCSS() {
  var d, o, v = false;
  // add a new div to the end of the body.
  d = document.createElement('div');
  d.id = "hasCSS";
  document.body.appendChild(d);

  // test new div display property (set in css).
  o = document.getElementById("hasCSS");
  if (window.getComputedStyle) {
    v = (window.getComputedStyle(o, null).getPropertyValue('display') === 'none');
  } else {
    if (o.currentStyle) {
      v = (o.currentStyle.display === 'none');
    }
  }

  // remove div.
  document.body.removeChild(d);

  // return test result.
  return v;
}

// run first on page load using addLoadEvent found elsewhere on this page.
addLoadEvent(function() {cssOn = hasCSS();});

The Short form version:


function hasCSS(){var d=document.createElement('div');d.id="hasCSS";document.body.appendChild(d);var o=document.getElementById("hasCSS"),v=false;if(window.getComputedStyle){v=(window.getComputedStyle(o,null).getPropertyValue('display')==='none');}else{if(o.currentStyle){v=(o.currentStyle.display==='none');}}document.body.removeChild(d);return v;}
// run once on page load (use addLoadEvent or similar function)
var cssOn=hasCSS();

Somewhere in the style sheet this is required:


#hasCSS {display:none}

To use the function:


if (cssOn) {
  ...
}

Cross-browser getNextSibling()

author: mike foskett 8th January 2009

Firefox and IE see things differently when accessing the nextSibling. This function balances those differences to provide a simple cross-browser solution:


function getNextSibling(obj) {
  var next = obj.nextSibling;
  while (next.nodeType !== 1) {
    next = next.nextSibling;
  }
  return next;
}

The Short form version:


function getNextSibling(o){var n=o.nextSibling;while(n.nodeType!=1){n=n.nextSibling;}return n;}

An example of usage. Show a hidden div which is the next sibling to a links parent:


.show {display:block}
.hide {display:none}

<h3>
  <a href="#" onclick="getNextSibling(this.parentNode).className='show'; return false">Show div content</a>
</h3>
<div class="hide">
...
</div>

Launch a new window in XHTML strict

author: mike foskett uploaded: 10th October 2008

updated: 13th September 2010

After dealing with pages which contained hundreds of links I thought it judicial to update the function to use the fastest loop method. The code has also been verified by JSLint. 28th March 2009

Add rel="external" to each external link:


<a href="someAddress.html" rel="external">external link to some page</a>

Then JavaScript unobtrusively adds a target to each link marked by rel="external". A title is also added to each link informing the user that it opens in a new window:


// Links with rel="external" get launched into new window
function externalLinks() {
  var links, i, A;
  links = document.getElementsByTagName("a");
  i = links.length;
  while (i--) {
    A = links[i];
    if (A.getAttribute("href") && A.getAttribute("rel") === "external") {
      A.target = "_blank";
      A.title = (A.title !== "") ? A.title + " (launches in a new window)" : "Launches in a new window";
    }
  }
}

Short form:


// Links with rel="external" get launched into new window
function externalLinks(){var L,i,A;L=document.getElementsByTagName("a");i=L.length;while(i--){A=L[i];if(A.getAttribute("href")&&A.getAttribute("rel")==="external"){A.target="_blank";A.title=(A.title!=="")?A.title+" (launches in a new window)":"Launches in a new window";}}}

Latest update removed: A.onclick=function(){return false;}; which overwrote the href action - Doh!

Executing JavaScript on page load - addLoadEvent()

author: simon willisons 26th May 2004

A beautiful onload handler which allows multiple functions to be run once the page has loaded:


function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload !== 'function') {
    window.onload = func;
  } else {
    window.onload = function () {
      if (oldonload) {
        oldonload();
      }
      func();
    };
  }
}

addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
addLoadEvent(function () {
  // more code to run on page load
});

Here's the short form version:


// author: Simon Willisons - http://simonwillison.net/2004/May/26/addLoadEvent/
function addLoadEvent(f){var o=window.onload;if(typeof window.onload!=='function'){window.onload=f;}else{window.onload=function(){if(o){o();}f();};}}

Further details: Executing JavaScript on page load.

Separation of CSS and JavaScript - jsCSS()

author: christian heilmann uploaded: 4th October 2008

Avoid using JavaScript for presentational effects. Use this function to swap, add, remove, check or toggle a class name.

Original modified to include a class toggle switch:


// className: swap, add, remove, check or toggle - author: Christian Heilmann - http://www.onlinetools.org/articles/unobtrusivejavascript/cssjsseparation.html
function jsCSS(action, obj, class1, class2) {
  var rep;
  switch (action) {
  case 'swap':
    obj.className = !jsCSS('check', obj, class1) ? obj.className.replace(class2, class1) : obj.className.replace(class1, class2);
    break;
  case 'add':
    if (!jsCSS('check', obj, class1)) {obj.className += obj.className ? ' ' + class1 : class1; }
    break;
  case 'remove':
    rep = obj.className.match(' ' + class1) ? ' ' + class1 : class1;
    obj.className = obj.className.replace(rep, '');
    break;
  case 'check':
    return new RegExp('\\b' + class1 + '\\b').test(obj.className);
  case 'toggle':
    if (jsCSS('check', obj, class1)) {
      jsCSS('remove', obj, class1);
    } else {
      jsCSS('add', obj, class1);
    }
    break;
  }
}

Short form:


// jsCSS(action,object,class1,class2) -  className: swap, add, remove, check or toggle - author: Christian Heilmann - http://www.onlinetools.org/articles/unobtrusivejavascript/cssjsseparation.html
function jsCSS(a,o,c1,c2){switch(a){case'swap':o.className=!jsCSS('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);break;case'add':if(!jsCSS('check',o,c1)){o.className+=o.className?' '+c1:c1;}break;case'remove':var rep=o.className.match(' '+c1)?' '+c1:c1;o.className=o.className.replace(rep,'');break;case'check':return new RegExp('\\b'+c1+'\\b').test(o.className);case'toggle':if(jsCSS('check',o,c1)){jsCSS('remove',o,c1);}else{jsCSS('add',o,c1);}break;}return false;}

Further details: Separation of CSS and JavaScript.

Check an id exists - idExists()

author: mike foskett uploaded: 4th October 2008

Check an id actually exists prior to using it:


function $idExists(id) {
  return (document.getElementById(id) !== null);
}

Short form requires the $id() function too:


function $idExists(i){return(document.getElementById(i)!==null);}

Affecting styles before JavaScript is loaded - .hasJS

author: mike foskett uploaded: 4th October 2008

Add this snippet directly after the page title and it adds a class of .hasJS to the html element if JavaScript is present. It allows the style sheet to style components used by JavaScript before the page fully loads:


<script type="text/javascript">/*<![CDATA[*/document.documentElement.className="hasJS";/*]]>*/</script>

Which means the style sheet can act on any styles affected by the JavaScript prior to loading the JavaScript. For instance; consider hiding a block only when JavaScript is available:


.hasJS .hide {display:none}

Check DOM functions are supported - isDom()

author: mike foskett uploaded: 4th October 2008

It's always best to test that the DOM functions you wish to use are supported prior to using them. Extend or abbreviate as required:


function isDom() {
  return (
    document.getElementById
    && document.getElementsByTagName
    && document.createElement
  ) ? true : false;
}

Short form:


function isDom(){return (document.getElementById&&document.getElementsByTagName&&document.createElement)?true:false}

This function should be called first, before any other scripting. All JavaScript should degrade gracefully and, personally, if the functions I use are not supported then I do not deliver any script at all. For example:


if (isDom()){
  addLoadEvent(setup);
}

Setting opacity cross-browser - setOpacity()

author: mike foskett uploaded: 4th October 2008

updated: 5th April 2011

Setting the opacity level of an object is not yet a standard. The following snippet irons out cross-browser inconsistencies:

This update tests the object exists prior to setting it's opacity.

Original id based version:


function setOpacity(id, opacity) {
  var object = document.getElementById(id).style;
  if (object) {
    object.filter = "alpha(opacity=" + opacity + ")";
    object.opacity = opacity / 100;
    object.MozOpacity = opacity / 100;
    object.KhtmlOpacity = opacity / 100;
  }
}

Short form requires $id():


function setOpacity(id,op){var o=$id(id).style;if(o){o.opacity=op/100;o.MozOpacity=op/100;o.KhtmlOpacity=op/100;o.filter="alpha(opacity="+op+")";}}

The function may be called via a timed loop for fading purposes. This example fades in an object with an id of idname:


for (var i = 0; i < 101; i += 25) {
  setTimeout("setOpacity('idname', " + i + ")", i*2);
}

Updated object based version:

author: mike foskett uploaded: 21st January 2010

This version has no prerequisites and includes method checking.


function setOpacity(obj, xOpacity) {
  if (typeof obj.style.MozOpacity !== "undefined") {
    obj.style.MozOpacity = xOpacity;
  } else {
    if (typeof obj.style.opacity !== "undefined") {
      obj.style.opacity = xOpacity;
    } else {
      if (typeof obj.style.filter !== "undefined") {
        obj.style.filter = "alpha(opacity=" + xOpacity * 100 + ")";
      }
    }
  }
}

Short form:


function setOpacity(o,op){if(typeof o.style.MozOpacity!=="undefined"){o.style.MozOpacity=op;}else{if(typeof o.style.opacity!=="undefined"){o.style.opacity=op;}else{if(typeof o.style.filter!=="undefined"){o.style.filter="alpha(opacity="+op*100+")";}}}}

Convert CSS property to camel case - hyphenToCamel()

author: steffen rusitschka uploaded: 4th October 2008

:


function hyphenToCamel(s) {
  var exp;
  for (exp = /-([a-z])/; exp.test(s); s = s.replace(exp, RegExp.$1.toUpperCase())) {}
  return s;
}
function hyphenToCamel(s){var E;for(E=/-([a-z])/;E.test(s);s=s.replace(E,RegExp.$1.toUpperCase())){}return s;}

Short form version is pretty much the same:


// author: Steffen Rusitschka - http://www.ruzee.com/blog/2006/07/retrieving-css-styles-via-javascript/
function hyphenToCamel(s){var E;for(E=/-([a-z])/;E.test(s);s=s.replace(E,RegExp.$1.toUpperCase())){}return s;}

Further details: Retrieving CSS styles via JavaScript.

Retrieving CSS properties with JavaScript - getStyleProperty()

author: mike foskett uploaded: 4th October 2008

Cross-browser method to obtain a CSS property

Please note this function is not 100% for retrieving all CSS properties but does work on most of them. Function requires hyphenToCamel():


function getStyleProperty(id, property) {
  // note this function is not 100% generic for all CSS properties
  var obj = document.getElementById(id),
    value = '';
  if (window.getComputedStyle) {
    value = window.getComputedStyle(obj, null).getPropertyValue(property);
  } else {
    if (obj.currentStyle) {
      value = obj.currentStyle[hyphenToCamel(property)];
    }
  }
  return value;
}

Short form requires both hyphenToCamel() and $id():


function getStyleProperty(i,P){var o=document.getElementById(i),V='';if(window.getComputedStyle){V=window.getComputedStyle(o,null).getPropertyValue(P);}else{if(o.currentStyle){V=o.currentStyle[hyphenToCamel(P)];}}return V;}

Further details: Retrieving CSS styles via JavaScript.

Test for Flash - isFlash()

author: mike foskett uploaded: 4th October 2008

updated: 20th May 2009

The function simply tests what version of Flash is available to the clients browser. Call the function with the minimum Flash version required eg: isFlash(7) and it returns false if unsupported or the supported Flash version eg 9:

Unfortunately I've lost the original reference for this script.


function isFlash(v){
  var testTo=20, installed=0, x;
  if(navigator.plugins && navigator.plugins.length){
    for(x=0;x<navigator.plugins.length;x++){
      if(navigator.plugins[x].name.indexOf('Shockwave Flash')!=-1){
        installed=parseInt(navigator.plugins[x].description.split('Shockwave Flash ')[1],10);
        break;
  } } }
  else if(window.ActiveXObject){
    for(x=2;x<=testTo;x++){
      try{if(eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+x+"');")){installed=x;}}
      catch(e){}
  } }
  return((installed>=v)?installed:0);
}

Short form:


function isFlash(v){var t=20,i=0,c;if(navigator.plugins&&navigator.plugins.length){for(c=0;c<navigator.plugins.length;c++){if(navigator.plugins[c].name.indexOf('Shockwave Flash')!=-1){i=parseInt(navigator.plugins[c].description.split('Shockwave Flash ')[1],10);break;}}}else if(window.ActiveXObject){for(c=2;c<=t;c++){try{if(eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+c+"');")){i=c;}}catch(e){}}}return((i>=v)?i:0);}

Quickly replace content - replaceContent()

author: mike foskett uploaded: 4th October 2008

Replaces the content of an object referenced by it's id. Okay it uses innerHTML but tests have shown that it's fully supported by all browsers and executes quicker than DOM compliant methods:


function replaceContent(id, content) {
  if (idExists(id)) {
    document.getElementById(id).innerHTML = content;
  }
}

Short form requires $id():


function replaceContent(id,c){if(idExists(id)){$id(id).innerHTML=c;}}

Cookie handling

author: peter-paul koch - uploaded: 4th October 2008

Create, and read from, cookies:


function makeCookie(name, value, days) {
  var expires = "", date;
  if (days) {
    date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toGMTString();
  }
  document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=",
    ca = document.cookie.split(';'),
    i,
    c;
  i = ca.length;
  while (i--) {
    c = ca[i];
    while (c.charAt(0) === ' ') {
      c = c.substring(1, c.length);
    }
    if (c.indexOf(nameEQ) === 0) {
      return c.substring(nameEQ.length, c.length);
    }
  }
  return null;
}

function killCookie(name) {
  makeCookie(name, '', -1);
}

Short form:


// Cookie functions - Peter-Paul Koch: http://www.quirksmode.org/js/cookies.html
function makeCookie(N,V,D){var E="",A;if(D){A=new Date();A.setTime(A.getTime()+(D*24*60*60*1000));E="; expires="+A.toGMTString();}document.cookie=N+"="+V+E+"; path=/";}
function readCookie(N){var E=N+"=",C=document.cookie.split(';'),i,c;i=C.length;while(i--){c=C[i];while(c.charAt(0)===' '){c=c.substring(1,c.length);}if(c.indexOf(E)===0){return c.substring(E.length, c.length);}}return null;}
function killCookie(N){makeCookie(N,'',-1);}

Further details: Cookies.

Replace content via Ajax

author: jim ley - January 2006

I cannot honestly say I understand Jim's code here but it works very well:


// XMLHttpRequest methods - author Jim Ley - http://jibbering.com/2002/4/httprequest.html
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version>=5)
    try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")}
    catch(e){
      try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}
      catch(E){xmlhttp=false}
    }
  @else
    xmlhttp=false;
  @end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined'){
  try{xmlhttp=new XMLHttpRequest()}
  catch(e){xmlhttp=false}
}
if (!xmlhttp && window.createRequest){
  try{xmlhttp=window.createRequest()}
  catch(e){xmlhttp=false}
}

I use a replace function to work with Jim's script. It expects the fetched file to be valid XHTML for direct insertion.


function replaceAjaxContent(id,file)
if (xmlhttp){
  xmlhttp.open("GET", file, true)
  xmlhttp.onreadystatechange = function(){
    if (xmlhttp.readyState == 4)
      document.getElementById(id).innerHTML=xmlhttp.responseText
  }
  xmlhttp.send(null)
}

Short form requires replaceContent():


// XMLHttpRequest methods - author Jim Ley - http://jibbering.com/2002/4/httprequest.html
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version&gt;=5)
try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}catch(E){xmlhttp=false}}
@else
xmlhttp=false
@end @*/
if (!xmlhttp&amp;&amp;typeof XMLHttpRequest!='undefined'){try{xmlhttp=new XMLHttpRequest()}catch(e){xmlhttp=false}}
if (!xmlhttp&amp;&amp;window.createRequest){try{xmlhttp=window.createRequest()}catch(e){xmlhttp=false}}

function replaceAjaxContent(id,f)if(xmlhttp){xmlhttp.open("GET",f,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){replaceContent(id,xmlhttp.responseText)}}xmlhttp.send(null)}}

Further details: Using the XML HTTP Request object.

As stated these are my personal tools of the trade, if you have any useful snippets please email or post them for consideration.

Have your say…

1

Marcus Tucker

07 05 2010

Actually there's a better for...next syntax you could use...

for (var i=0, iMax=allDivs.length; i<iMax; i++){
alert(i);
}

PS - why the huge font in the comments TEXTAREA?
PPS - this is the second time I'm attempting to submit this comment, the first time I (apparently) failed the test "one plus zero" and my comments were lost when I returned to the form, which is a catastrophic user experience. Please address this urgently!

2

mike foskett replies:

11 05 2010

Hi Markus

Thanks for the alternate loop syntax.

The huge font in the comment form is part of a set of form renovations I'm currently working on.

The lost details upon return after error I'll investigate immediately. Thanks for bringing it to my attention.

3

Acompanhantes sp guia gp

20 09 2010

I am having an issue with an onclick event displaying the information properly. I am using a button on a form and have an onclick event associated with the button and when I click it it should display some information and it displays the information only for that which is displayed to immediately disappear. Thanks for any help!

4

Codigo Barra

20 09 2010

I'm very confused. I don't understand why IE doesn't even display the initial prompt, I mean that works in FF, Chrome, and Safari. I did what you said, though, and put a div around the submit button instead.

Note: My IE testing may be inaccurate because I have the IE9 beta, and it won't let me uninstall.

5

Eletrica sane

20 09 2010

I am using array of hashtables. jshashtable is a JavaScript implementation of a hash table. I have used getSchema method will eventually read in data to build screens on the phone dynamically from an XML file, but for now I've hard coded the method to do some testing. I have replace the word exclusive with multiple, the radio button group becomes a check box group.

6

brindes cadernos

20 09 2010

Eletrica, JavaScript doesn't complain if you try to use objects other than strings and numbers inside square brackets, The output, consisting of multiple data records, is printed to the standard output stream (System.out in Java). Each line contains a record corresponding to a load factor. The requested table capacity is the number of distinct keys in putfile. it is often desirable to use other kinds of objects as keys.

7

Milan Shahi

02 05 2012

lool you suck

8

bmx

25 08 2012

I basically want to direct automobiles like I use additionally.
When using the classic age scene it its very own obtaining difficult and harder into actually
create inside and out the particular soccer cars.
I remember when I was a younger kid and can even outflank appreciate
the good furnace sucking through my run many I required to
use is avalanche of the question. But that is in
that case your buy a, I am just a mature man
above the age of 30 together with my legs beginning reveal its certainly
just non as fascinating motoring a computerized
gondola simply because it would be to travel a super help one.
I have The Measurements And technology so has gotten out
of control and is especially absolutely beginning developed and produce it to make sure that isn't really real that will substitute somewhere close to as soon as a that may creating an entirely robotic going dislodge. I will see that in formal one plus mascara correctly automatics actually.
I americium not to say it isn't playfulness, neverthelesss challenging to release the fun
distress clearly there was by moving upon the pedal and touch the
speed get 1 to your center. Or while you would hit a turn and have been those
3g turns and grind to a halt present while doing this to let the other fighter.
Oh those days when I used to race, I realise I could still instigate a many solutions therefore fine delight rises exciting
compromise.
Back when I was better we would not supply what the locals work
however if you might dash may well distress compared
to you will be ready to declare. This trigger passengers wondering why they would were racing.
Actually he did this quicker to own for those or make an attempt to transport materials than finally it was through fly.

Racing has not yet actually been a serious currency designer
simply because of its sportsmen till already.
Just one other aspect that's stimulated me ?nternet site consume reached more is that my response time however nowhere near precisely what it was formerly. For some reason does develop person not need look at many things after having that manifest nevertheless its a things you see once you start getting around in fabulous automobile and wishing for we to read.
Maybe someday I may start paying some games, I uncovered a few sites that where enjoyment to experience some auto racing gaming it also really was not anything I hoped it be. Perhaps I need for an Xbox or even a Developers and check out their racing games; I wont know s hardly alike stressing buttons unlike feeling it reached you all over the expression.
But what you planning to do? You merely live yet and might furthermore maximize it really be secure though I would tell you that there's never a bunch guard peculiarly when You will get above 100 kilometres
daily or perhaps 60 minutes.

9

Chanel Outlet

16 10 2012

*$*I wants to thank you with the endeavors you have produced in publishing this article. I am trusting the same greatest work from you within the future as well. In fact your fanciful writing abilities has inspired me to start my own weblog now. Truly the blogging is spreading its wings rapidly. Your generate up is a fine example of it.Thanks yet again for discussing this cost-free on the web!
[url=http://www.chaneloutlet-storeonlineshop36.com]Chanel Outlet[/url]
<a href="http://www.chaneloutlet-storeonlineshop36.com" title="Chanel Outlet">Chanel Outlet</a>

10

Coach Outlet Store Online

16 10 2012

*$*Incredibly cool! I assistance your view!
[url=http://www.coachoutlet-factoryonlinestoresup7.com]Coach Outlet Store Online[/url]
<a href="http://www.coachoutlet-factoryonlinestoresup7.com" title="Coach Outlet Store Online">Coach Outlet Store Online</a>

11

Ugg Boots UK

29 10 2012

I'm glad to know there are still writers out the best one I haave learnt, and it has helped me. Keep doing that.

12

UGG ブーツ

09 11 2012

Thanks for finally writing about >Useful JavaScript functions and snippets - webSemantics <Liked it!

13

opcom

17 11 2012

Es ist wichtig:bitte Update Sie das Gerät nicht auf der offizielle Website.Sonst werden Sie das Gerät kaputt lyj

14

UGG ブーツ 激安

22 11 2012

Hey There. I found your weblog using msn. This is a really smartly written article.
I will be sure to bookmark it and return to read more of your helpful info.
Thank you for the post. I'll definitely return.

15

UGG メンズ

01 12 2012

Hey there! Do you know if they make any plugins to assist with Search Engine Optimization?
I'm trying to get my blog to rank for some targeted keywords but I'm not seeing very good gains.
If you know of any please share. Cheers!

16

UGG ブーツ

03 12 2012

You can certainly see your expertise in the work you write.
The arena hopes for more passionate writers such as
you who are not afraid to mention how they believe. At all times go after your heart.

17

Tiffany outlet

12 12 2012

Excellent post. Thank you so much for this informative post. I will recommend it to all of my friends. thanks!

18

UGG ムートンブーツ

13 12 2012

Greetings! I know this is somewhat off topic but I
was wondering which blog platform are you using for this site?
I'm getting tired of Wordpress because I've had problems
with hackers and I'm looking at options for another platform. I would be fantastic if you could point me in the direction of a good platform.

19

parents magazine

02 01 2013

Appreciating the time and energy you put into your
site and detailed information you present. It's nice to come across a blog every once in a while that isn't the same unwanted rehashed
information. Fantastic read! I've saved your site and I'm including your RSS feeds to my Google
account.

20

hgh releaser reviews

11 01 2013

Outstanding post, you have pointed out some good points, I as well conceive this is a very good website.

21

lqq

31 01 2013


<a href="http://www.tibiamoney.com/">tibia gold</a>
cheap tibia gold with amazing delivery speed
<a href="http://www.gameotl.com/">tibia gold</a>
Cheap Tibia Gold is on hot sale now
<a href="http://www.10mineget.com/">tibia gold</a>
get tibia gold in 10min
<a href="http://www.tibiagoods.com/">tibia gold</a>
all sort of tibia good meet your need
<a href="http://www.gamegoldcoin.com/">tibia gold</a>
Tibia Gold is the medium which playerunescape use to buy Tibia Gold and sell within the game
<a href="http://www.gamezmoney.com/">tibia gold</a>
Buy Tibia Gold to explore this great game

<a href="http://www.guildwarsgoldmoney.com/">guildwars gold</a>
Buy Guild Wars 2 Gold
<a href="http://www.guildwarsgoldmoney.com/">gw gold</a>
We are full preparation for the GW2 Gold and Guild Wars 2 Gold for our customers
<a href="http://www.guildwarsgoldmoney.com/">guildwars 2 gold</a>

Guild Wars 2 Gold and Guild wars 2 gold is the in game currency and is used to purchase weapons, armor and potions
<a href="http://www.gameotl.com/">guildwars gold</a>
There are many other uses for Guild wars gold.
<a href="http://www.gamezmoney.com/">guildwars gold</a>
GW Gold and GW2 Gold can be bought online from gold selling sites

<a href="http://www.rs15min.com/">runescape gold</a> <a href="http://www.rs15min.com/">runescape gp</a>
Cheap rs Gold is a vital factor.
<a href="http://www.gameotl.com/">runescape gold</a>
Players can buy rs Gold at richingame for affordable rates using payment methods such as PayPal and credit card.
<a href="http://www.gilffxiv.com/">ffxiv gil</a>

FFXIV takes off the fantasy setting previously laid by final fantasy 11


<a href="http://www.otzg.com/">游戏点评网</a>
<a href="http://www.welover.net/">武汉婚纱摄影</a>
<a href="http://www.hx31.com/">武汉SEO</a>

Get fast <a href="http://www.gamegoldmoney.com">tibia gold</a> here!
If you want <a href="http://www.enjoygolds.com">tibia gold</a>,
<a href="http://www.enjoygolds.com">cheap tibia gold</a> is your best choice.
We also sell <a href="http://www.10minget.com">guildwars gold</a> with good service
buy <a href="http://www.gamegoldmoney.com">guildwars gold</a> to get the weapons you want.
<a href="http://www.enjoygolds.com">guildwars gold</a>


<a href="http://www.richingame.com">guildwars gold</a>
<a href="http://www.gamexgold.com">tibia gold</a>
Do you play RS?buy<a href="http://www.rs15min.com ">runescape gp</a> now,
we will send <a href="http://www.richingame.com">runescape gold</a> in very short time.




22

lqq

31 01 2013


[url=http://www.tibiamoney.com]tibia gold[/url]
cheap tibia gold with amazing delivery speed
[url=http://www.gameotl.com]tibia gold[/url]
Cheap Tibia Gold is on hot sale now
[url=http://www.10mineget.com]tibia gold[/url]
get tibia gold in 10min
[url=http://www.tibiagoods.com]tibia gold[/url]
all sort of tibia good meet your need
[url=http://www.gamegoldcoin.com]tibia gold[/url]
Tibia Gold is the medium which playerunescape use to buy Tibia Gold and sell within the game
[url=http://www.gamezmoney.com]tibia gold[/url]
Buy Tibia Gold to explore this great game

[url=http://www.guildwarsgoldmoney.com]guildwars gold[/url]
Buy Guild Wars 2 Gold
[url=http://www.guildwarsgoldmoney.com]gw gold[/url]
We are full preparation for the GW2 Gold and Guild Wars 2 Gold for our customers
[url=http://www.guildwarsgoldmoney.com]guildwars 2 gold[/url]

Guild Wars 2 Gold and Guild wars 2 gold is the in game currency and is used to purchase weapons, armor and potions
[url=http://www.gameotl.com]guildwars gold[/url]
There are many other uses for Guild wars gold.
[url=http://www.gamezmoney.com]guildwars gold[/url]
GW Gold and GW2 Gold can be bought online from gold selling sites

[url=http://www.rs15min.com]runescape gold[/url] [url=http://www.rs15min.com]runescape gp[/url]
Cheap rs Gold is a vital factor.
[url=http://www.gameotl.com]runescape gold[/url]
Players can buy rs Gold at richingame for affordable rates using payment methods such as PayPal and credit card.
[url=http://www.gilffxiv.com]ffxiv gil[/url]

FFXIV takes off the fantasy setting previously laid by final fantasy 11

Get fast [url=http://www.gamegoldmoney.com]tibia gold[/url] here!
If you want [url=http://www.enjoygolds.com]tibia gold[/url],
[url=http://www.enjoygolds.com]cheap tibia gold[/url]is your best choice.
We also sell [url=http://www.10minget.com]guildwars gold[/url]with good service,
buy [url=http://www.gamegoldmoney.com]guildwars gold[/url] to get the weapons you want.
[url=http://www.enjoygolds.com]guildwars gold[/url]


[url=http://www.richingame.com]guildwars gold[/url]
[url=http://www.gamexgold.com]tibia gold[/url]
Do you play RS?buy [url=http://www.rs15min.com]runescape gold[/url] now,
we will send [url=http://www.richingame.com]runescape gold[/url] in very short time.

23

bvondv

12 02 2013

ylacblx

24

viagra

14 02 2013

yvwiefcv http://uaqmck.com/ <a href="http://iwvymm.com/ ">mxmnfen</a> [url=http://wztyvq.com/]mxmnfen[/url]

25

Agnes

04 03 2013

Enough cheap Diablo 3 Gold <a href="http://www.d3fly.com/gold.html">diablo gold</a> in stock ensures delivered within 15 minutes. Buy D3 Gold enjoy fabulous service all day.<a href="http://www.d3fly.com/gold.html">Diablo3 Gold</a> sell the Diablo 3 Gold specialty .Fast and cheap Diablo 3 Gold service .idiablo3gold provide the sincerity service for you.Come to the excellent Diablo 3 Gold <a href="http://www.d3fly.com/gold.html">Buy Diablo 3 Gold</a> store to buy Diablo 3 Gold,Diablo 3 CDKey and Diablo 3 Power Leveling with the best delivery service. is the right place to buy Diablo 3 Gold.

26

card sharing cccam server¦server cardsharing¦skybox f3 cardsharing¦cccam¦cardsharing anbieter¦cccam pay server¦cccam server premium¦dreambox¦server dreambox¦buy cardsharing¦cardsharing¦cardsharing server¦dreambox 800¦free card sharing server¦satellite cardsharing kings¦test line cccam¦card sharing¦card sharing servers¦cardsharing canalsat¦cccam line¦cccam test line¦free cccam server¦sat keys¦satellite cardsharing¦ cccam server¦server cardsharing¦skybox f3 cardsharing¦cccam¦cardsharing anbieter¦cccam pay server¦cccam server premium¦dreambox¦server dreambox¦buy cardsharing¦cardsharing¦cardsharing server¦dreambox 800¦free card sharing server¦satellite cardsharing kings¦test line cccam¦card sharing¦card sharing servers¦cardsharing canalsat¦cccam line¦cccam test line¦free cccam server¦sat keys¦satellite cardsharing¦ cccam server¦server cardsharing¦skybox f3 cardsharing¦cccam¦cardsharing anbieter¦cccam pay server¦cccam server premium¦dreambox¦server dreambox¦buy cardsharing¦cardsharing¦cardsharing server¦dreambox 800¦free card sharing server¦satellite cardsharing kings¦test line cccam¦card sharing¦card sharing servers¦cardsharing canalsat¦cccam line¦cccam test line¦free cccam server¦sat keys¦satellite cardsharing¦

04 03 2013

Write more, thats all I have to say. Literally,
it seems as though you relied on the video to make your point.

You definitely know what youre talking about, why throw away your intelligence
on just posting videos to your weblog when you could be giving
us something informative to read?

27

Kattie

04 03 2013

Heya i am for the primary time here. I found
this board and I in finding It truly helpful & it helped me out
much. I'm hoping to give one thing back and help others like you helped me.

28

server For Cardsharing

04 03 2013

Excellent post. Keep writing such kind of info on your site.
Im really impressed by your blog.
Hello there, You have performed an excellent job.
I'll certainly digg it and individually recommend to my friends. I'm confident they will be benefited from this website.

29

free

04 03 2013

Hmm is anyone else experiencing problems with the images on this blog loading?
I'm trying to figure out if its a problem on my end or if it's the blog.
Any feedback would be greatly appreciated.

30

http://cix.toshibatec.com.tw/modules.php?name=Your_Account&op=userinfo&username=FriedaZ01

05 03 2013

After going over a handful of the articles on your blog,
I really appreciate your way of blogging. I book marked it to my bookmark website list and will be checking back in the near future.

Take a look at my web site too and tell me how you feel.

31

http://www.satellitecardsharing.com/world-cccam/

10 03 2013

My partner and I stumbled over here by a different web page
and thought I might check things out. I like what I see so now i'm following you. Look forward to looking at your web page yet again.

32

Basil

22 03 2013

I am sure this piece of writing has touched all the internet people, its really really good article on building up new website.

33

Scott Tucker payday loans

22 03 2013

You're so interesting! I don't believe I've truly read something like this before. So great to discover another person with a few genuine thoughts on this issue. Really.. many thanks for starting this up. This website is one thing that is required on the web, someone with some originality!

34

Trimpot

25 03 2013

you are really a good webmaster. The site loading speed is amazing.
It seems that you're doing any unique trick. Also, The contents are masterwork. you have done a wonderful job on this topic!

35

Metal film resistor

05 04 2013

Hi there, I found your site via Google while searching for a related
topic, your site came up, it looks great.
I have bookmarked it in my google bookmarks.

36

payday loans

05 04 2013

These loans are just friendlier for the UK residents who are in urgent requirement of money.
If you are applying these funds you have to fulfill some of the given conditions that are given by the lenders.
In the opinion of some, however, there are those who are valuing
free stuff less.

37

Linda

13 04 2013

Hello just wanted to give you a quick heads up. The words in your content seem to be running
off the screen in Safari. I'm not sure if this is a formatting issue or something to do with web browser compatibility but I thought I'd post to let you know.
The style and design look great though! Hope you get the problem solved soon.

Cheers

38

Ludie

16 04 2013

Spot on with this write-up, I absolutely believe this amazing site
needs far more attention. I'll probably be returning to read more, thanks for the info!

39

payday loans

28 04 2013

whoah this weblog is magnificent i like reading your articles.
Stay up the great work! You already know, many people are
searching around for this info, you can aid them greatly.

40

Scott Tucker CBS

15 05 2013

My brother recommended I may like this blog. He was once totally
right. This submit truly made my day. You cann't imagine simply how so much time I had spent for this information! Thanks!

41

Sierr

21 06 2013

You cann't imagine simply how so much time I had spent for this information! Thanks!

42

Custom NFL Jerseys

02 08 2013

<p>This year in May, Anthony just had finished their 29th birthday. Today, he entered the NBA has gone from a full 10 years, although he had six-time NBA All-Star Game and won the scoring title last season, but still no harvest to a championship ring will undoubtedly make him feel a bit confused and regret . In addition, Customized NFL Jerseysthe most recent rumors about the future direction Anthony also reported flying.Finally, when asked about the Knicks next season for his performance in the next year to decide whether the summer is very important, Anthony did not give a clear answer: "I'm not law decisions, which is too difficult for me the! "</p>

43

xelhdopc

21 11 2013

tcdyvs

44

hello

22 11 2013

xqoumlm http://kgnfkq.com/ <a href="http://tfxotg.com/ ">mhmbla</a> [url=http://vbxyea.com/]mhmbla[/url]

45

‏jalizi

28 11 2013

Excellent write-up. I certainly appreciate this site.
Thanks!

46

cyhnktpvzt

19 01 2014

amxyjxfctfnboujdt, <a href="http://www.ndheisvthi.com/">kregsiefeo</a>

47

kljyrmtmtf

22 01 2014

upumkxfctfnboujdt, <a href="http://www.adqjvmzxxi.com/">nycrstcfer</a>

48

qjsjwdfcvm

25 01 2014

nywmhxfctfnboujdt, http://www.bswywyhggy.com/ zzzrmtlfeg

49

cqigvxtste

01 02 2014

gipovxfctfnboujdt, <a href="http://www.bcigzyzrqd.com/">fyvsjlcomm</a> , [url=http://www.ehevucoppf.com/]jvghfdkddm[/url], http://www.vmcvfapsky.com/ fyvsjlcomm

50

Mellissa

05 02 2014

I leave a comment each time I appreciate a article on
a site or if I have something to valuable to contribute to the conversation.
It's a result of the fire communicated in the article I looked at.

And on this post Useful JavaScript functions
and snippets - webSemantics. I was moved enough to drop a
thought :) I actually do have 2 questions for you if it's allright.
Could it be only me or do a few of the responses look as if they are coming from brain dead
folks? :-P And, if you are writing at other places, I'd like to follow anything new you have to post.
Would you list every one of all your social pages like your linkedin profile,
Facebook page or twitter feed?

51

Drama Method Review

13 02 2014

Good day! I could have sworn I've been to this site before
but after looking at a few of the articles I realized it's new to me.
Anyways, I'm definitely pleased I came across it and I'll be bookmarking it and checking back frequently!

52

Panic away

28 02 2014

Appreciation to my father who informed me regarding this webpage,
this web site is actually awesome.

53

www.viperquickloans.co.uk

09 03 2014

certainly like your web-site but you need to check the spelling on several of your posts.
Several of them are rife with spelling problems and I find it
very troublesome to inform the truth then again I'll surely come back again.

54

easy loans

10 03 2014

you're in point of fact a excellent webmaster. The
website loading speed is incredible. It kind of feels that you're
doing any distinctive trick. Moreover, The contents
are masterpiece. you've performed a excellent job
in this matter!

55

viperquickloans.co.uk

14 03 2014

Hey there, You've done a great job. I will definitely digg it and personally
recommend to my friends. I am sure they'll be benefited from this website.

56

deer hunter 2014 cheats iphone no survey

21 03 2014

My Ƅrother suggeѕted I might like this blog. He was
totally rіght. This post truly made my day. You caոn't imagine
just how much time I ɦhad spеnt fߋr this info! Thaոks!

57

clash of clans hack tool v1.3

21 03 2014

I will immediately grab yқur rss feеɗ as I can not in finding
your e-mail subscription link or newsletter service. Do you've any?
Kindly permit me recognise so that I may sսbscribe. Thanks.

58

https://www.youtube.com/watch?v=L_Jr4an6-iM

21 03 2014

Hi my loved onе! I wish to say tҺаt this post is awesome, nіce writen and include almost all vial infos.
I'd like to see extra posts like this .

59

http://hacker-software.org/psn-free-codes-generator-premium

21 03 2014

Hi there! This iѕ mʏ first visit to your blog! We are a team of volսnteеrs and
starting a ոew proϳect in a community in the same niche.
Yoour blog providerd us valuable iոformation to
wprk ߋn. You have done a marvfellous job!

60

how to hack a facebook account no surveys 2014

23 03 2014

I simply coսld not dеpart yyօur site prior to suggesting
that ӏ extremely eոjoyed the uѕjаl info an individual provide on your guests?

Is going to be Ьaсk frequently in order to investigate
ϲross-check new posts

61

facebook account hacker no survey download 2012

23 03 2014

Yes! Finаloly ѕomeone writes about facebooҟ hack no sսrvey
2014.

62

hacker-software.org

02 04 2014

Ƴes! Finally someone writes about Skype creԀit generator
for free 2014 WOrking version!.

63

http://pdfpills.com/

10 04 2014

This site was... how do you say it? Relevant!! Finally I have found something which helped
me. Appreciate it!

64

http://medicpdf.com/

10 04 2014

Hello, i think that i saw you visited my blog so i came to “return the favor”.I am trying
to find things to improve my web site!I suppose its ok to use a
few of your ideas!!

65

affordable search engine optimization

08 01 2015

I am extremely impressed with your writing skills as well as with the layout on your weblog.
Is this a paid theme or did you modify it yourself? Either way keep
up the excellent quality writing, it's rare to see a great blog like this one these days.

66

http://docs.google.com

23 01 2015

Hi tɦere! Ӏ could have sworn I've visited tҺіs blkg beforе Ьut аfter browsing tɦrough many օf
the articles I realized it's new toо me. Anyѡays, ӏ'm certaіnly happy I discovered іt
and I'll be bookmarking it and checking bаck regularly!

67

what green coffee bean works

02 05 2015

Anything less is not going to produce the end results that this natural extract is well known for.
However, it's much easier for a firm to secure a product on the market than it is for FDA to take a product
over market. Other companies supplying you with ridiculous lead times on private label creation as well
as shipment.

68

best makeup for fair skin and blue eyes

25 05 2015

We've got three stunning looks for you that will win every
time, guaranteed. We would advise avoiding well-known drug
store brands and instead favour professional brands that actually work with color wheels or are specifically created and run by women of color and are known for good
products. For oily complexions and summer skin in general, its all about choosing products that are cream based and
oil free.

69

clash of clans hack

26 06 2015

What's up everyone, it's my first pay a quick visit at this website,
and post is actually fruitful for me, keep up posting these types of posts.

70

Soccer Speed Training Drills

01 08 2015

That's like saying football players don't need to bench press because there isn't a bench on the fifty yard line
or goalkeepers don't need to be aerobically fit because they almost never leave the
box. Lower body plyometrics include exercises such as, two- foot hops,
squat jumps, split squat jumps, tuck jumps, single-leg vertical jump, lateral push-offs,
power skips, bounds and depth jumps. In today's economy, that
can really be a challenge.

71

cialis pas cher france

04 08 2015

Hi there! I realize this is kind of off-topic but I
needed to ask. Does running a well-established blog such as yours take a massive amount work?
I am completely new to writing a blog but I do write in my diary on a daily basis.

I'd like to start a blog so I can easily share my experience and
views online. Please let me know if you have any recommendations or tips
for brand new aspiring blog owners. Thankyou!

72

Byron

13 10 2015

Hi there, iits good paragraph about media print, we all be aware of media is a
fantastic souirce of data.

73

ecommerce drop shipping

16 11 2015

I like the helpful info you provide in your articles.
I will bookmark your weblog and check again here frequently.
I am quite certain I'll learn plenty of new stuff right here!

Good luck for the next!

74

игровые автоматы джекпот

01 12 2015

It's enormous that you are getting ideas from this post as well as from our argument made here.

75

chip and dale

27 12 2015

Exceptional post however , I was wondering if you could write a litte
more on this topic? I'd be very thankful if you could elaborate
a little bit more. Bless you!

76

haha

02 01 2016

Awesome

77

candy crush saga hack tool free download no survey for android

06 01 2016

You will instantly get all of your resources in your Candy Crush Soda Saga
account.

78

free browser based mmorpg games like runescape

10 01 2016

Aw, this was a really nice post. Taking a few minutes
and actual effort to create a great article… but what can I say… I procrastinate a whole lot and never
seem to get nearly anything done.

79

google plus app for windows 8

26 01 2016

You made some really good points there. I looked on the
web for additional information about the issue and found most individuals
will go along with your views on this site.

80

valentines day gifts for him

11 02 2016

Way cool! Some extremely valid points! I appreciate
you writing this write-up and also the rest of the site is very good.

81

شركة تنظيف بالمدينة المنورة

06 03 2016

If you have the tendency to horde things, you will have
to learn let go. Many mothers today work outside the home in addition to raising children, and sometimes housework suffers as
a result. You don't want to be inhaling dust or preparing food on dirty, contaminated surfaces.

82

Krista

03 04 2016

You ought to take part in a contest for one of the greatest websites on the internet.
I'm going to recommend this web site!

83

youtube names

05 04 2016

Pretty! This was a really wonderful article. Thank you for supplyikng this information.

84

Tianeptine Sodium

16 04 2016

If уoᥙ are trying to find cheap involvement гings for the wedding
dɑʏ in this international economic climate dilemma, yoᥙ shouⅼd know that
it is still possible tо discover a ring which would bbe timelessly claѕsic without being over the expensive as
well as top. Establish a wondеrful ѕupper or take your love
out onn a cһaгming day where you cⲟuld suɡǥest. A proposal is a very unique event so you
would certainlу ԝant tto do it appropriate and also the appropriate diamond ring
would definitely make your loved one tough to state no!

85

Tadalafil 30mg x 30ml

19 04 2016

So I'm Pгesuming thɑt Pepbгidge & Peptidebrіdge, еither Solld or Offered all their Customer Account Information to these People.

86

runescape gold guide

21 05 2016

{
{I have¦I've} been {surfing¦browsing} online more than {three¦3¦2¦4} hours today, yet I never found any interesting article
like yours. {It's¦It is} pretty worth enough
for me. {In my opinion¦Personally¦In my view}, if all {webmasters¦site owners¦website
owners¦web owners} and bloggers made good content
as you did, the {internet¦net¦web} will be {much more¦a lot more} useful than ever before.¦
I {couldn't¦could not} {resist¦refrain from} commenting. {Very well¦Perfectly¦Well¦Exceptionally well} written!¦
{I will¦I'll} {right away¦immediately} {take hold of¦grab¦clutch¦grasp¦seize¦snatch} your {rss¦rss feed}
as I {can not¦can't} {in finding¦find¦to find} your {email¦e-mail} subscription {link¦hyperlink} or {newsletter¦e-newsletter} service.

Do {you have¦you've} any? {Please¦Kindly}
{allow¦permit¦let} me {realize¦recognize¦understand¦recognise¦know}
{so that¦in order that} I {may just¦may¦could} subscribe.

Thanks.¦
{It is¦It's} {appropriate¦perfect¦the best} time to make some plans for
the future and {it is¦it's} time to be happy. {I have¦I've} read this post and if I could I {want to¦wish to¦desire to} suggest you {few¦some} interesting things or {advice¦suggestions¦tips}.
{Perhaps¦Maybe} you {could¦can} write next articles referring to this
article. I {want to¦wish to¦desire to} read {more¦even more}
things about it!¦
{It is¦It's} {appropriate¦perfect¦the best} time to make {a few¦some} plans
for {the future¦the longer term¦the long run} and {it is¦it's} time to be
happy. {I have¦I've} {read¦learn} this {post¦submit¦publish¦put up}
and if I {may just¦may¦could} I {want to¦wish to¦desire
to} {suggest¦recommend¦counsel} you {few¦some} {interesting¦fascinating¦attention-grabbing} {things¦issues} or {advice¦suggestions¦tips}.
{Perhaps¦Maybe} you {could¦can} write {next¦subsequent} articles {relating
to¦referring to¦regarding} this article.
I {want to¦wish to¦desire to} {read¦learn} {more¦even more} {things¦issues} {approximately¦about} it!¦
{I have¦I've} been {surfing¦browsing} {online¦on-line} {more
than¦greater than} {three¦3} hours {these days¦nowadays¦today¦lately¦as of late},
{yet¦but} I {never¦by no means} {found¦discovered} any {interesting¦fascinating¦attention-grabbing} article like yours.
{It's¦It is} {lovely¦pretty¦beautiful} {worth¦value¦price} {enough¦sufficient} for me.
{In my opinion¦Personally¦In my view}, if all {webmasters¦site owners¦website owners¦web owners} and bloggers made {just right¦good¦excellent} {content¦content material} as {you did¦you
probably did}, the {internet¦net¦web} {will be¦shall be¦might be¦will probably be¦can be¦will likely be} {much more¦a lot more} {useful¦helpful} than ever before.¦
Ahaa, its {nice¦pleasant¦good¦fastidious} {discussion¦conversation¦dialogue} {regarding¦concerning¦about¦on the topic of} this {article¦post¦piece of writing¦paragraph}
{here¦at this place} at this {blog¦weblog¦webpage¦website¦web site}, I have
read all that, so {now¦at this time} me also commenting {here¦at this place}.¦
I am sure this {article¦post¦piece of writing¦paragraph}
has touched all the internet {users¦people¦viewers¦visitors},
its really really {nice¦pleasant¦good¦fastidious} {article¦post¦piece of writing¦paragraph} on building up new {blog¦weblog¦webpage¦website¦web site}.¦
Wow, this {article¦post¦piece of writing¦paragraph} is {nice¦pleasant¦good¦fastidious}, my
{sister¦younger sister} is analyzing {such¦these¦these kinds of} things, {so¦thus¦therefore}
I am going to {tell¦inform¦let know¦convey} her.¦
{Saved as a favorite¦bookmarked!!}, {I really like¦I like¦I love} {your blog¦your site¦your web site¦your website}!¦
Way cool! Some {very¦extremely} valid points!
I appreciate you {writing this¦penning this} {article¦post¦write-up} {and the¦and
also the¦plus the} rest of the {site is¦website is} {also very¦extremely¦very¦also really¦really} good.¦
Hi, {I do believe¦I do think} {this is an excellent¦this is
a great} {blog¦website¦web site¦site}. I stumbledupon it ;) {I will¦I am
going to¦I'm going to¦I may} {come back¦return¦revisit} {once again¦yet again} {since I¦since i have} {bookmarked¦book marked¦book-marked¦saved as a favorite}
it. Money and freedom {is the best¦is the greatest} way to change, may you
be rich and continue to {help¦guide} {other people¦others}.¦
Woah! I'm really {loving¦enjoying¦digging} the
template/theme of this {site¦website¦blog}. It's simple,
yet effective. A lot of times it's {very hard¦very difficult¦challenging¦tough¦difficult¦hard} to
get that "perfect balance" between {superb usability¦user friendliness¦usability} and {visual appearance¦visual appeal¦appearance}.

I must say {that you've¦you have¦you've} done a {awesome¦amazing¦very good¦superb¦fantastic¦excellent¦great} job with this.
{In addition¦Additionally¦Also}, the blog loads {very¦extremely¦super} {fast¦quick} for me
on {Safari¦Internet explorer¦Chrome¦Opera¦Firefox}.
{Superb¦Exceptional¦Outstanding¦Excellent} Blog!¦
These are {really¦actually¦in fact¦truly¦genuinely} {great¦enormous¦impressive¦wonderful¦fantastic} ideas in {regarding¦concerning¦about¦on the topic of} blogging.
You have touched some {nice¦pleasant¦good¦fastidious} {points¦factors¦things} here.
Any way keep up wrinting.¦
{I love¦I really like¦I enjoy¦I like¦Everyone loves} what you guys {are¦are usually¦tend to be}
up too. {This sort of¦This type of¦Such¦This kind of} clever work and {exposure¦coverage¦reporting}!

Keep up the {superb¦terrific¦very good¦great¦good¦awesome¦fantastic¦excellent¦amazing¦wonderful} works guys I've {incorporated¦¦added¦included} you guys
to {¦my¦our¦¦my personal¦my own} blogroll.¦
{Howdy¦Hi there¦Hey there¦Hi¦Hello¦Hey}! Someone in my {Myspace¦Facebook} group
shared this {site¦website} with us so I came
to {give it a look¦look it over¦take a look¦check it out}. I'm definitely
{enjoying¦loving} the information. I'm {book-marking¦bookmarking}
and will be tweeting this to my followers! {Terrific¦Wonderful¦Great¦Fantastic¦Outstanding¦Exceptional¦Superb¦Excellent}
blog and {wonderful¦terrific¦brilliant¦amazing¦great¦excellent¦fantastic¦outstanding¦superb} {style and design¦design and style¦design}.¦
{I love¦I really like¦I enjoy¦I like¦Everyone loves} what you guys {are¦are
usually¦tend to be} up too. {This sort of¦This type of¦Such¦This kind of} clever work and {exposure¦coverage¦reporting}!

Keep up the {superb¦terrific¦very good¦great¦good¦awesome¦fantastic¦excellent¦amazing¦wonderful} works guys I've {incorporated¦added¦included} you guys
to {¦my¦our¦my personal¦my own} blogroll.¦
{Howdy¦Hi there¦Hey there¦Hi¦Hello¦Hey} would you mind {stating¦sharing} which
blog platform you're {working with¦using}?
I'm {looking¦planning¦going} to start my own blog {in the near
future¦soon} but I'm having a {tough¦difficult¦hard}
time {making a decision¦selecting¦choosing¦deciding} between BlogEngine/Wordpress/B2evolution and Drupal.

The reason I ask is because your {design and style¦design¦layout}
seems different then most blogs and I'm looking for something {completely unique¦unique}.
P.S {My apologies¦Apologies¦Sorry} for {getting¦being} off-topic but I had to
ask!¦
{Howdy¦Hi there¦Hi¦Hey there¦Hello¦Hey} would you mind letting me know which {webhost¦hosting company¦web host} you're
{utilizing¦working with¦using}? I've loaded your blog in 3 {completely
different¦different} {internet browsers¦web browsers¦browsers} and
I must say this blog loads a lot {quicker¦faster} then most.
Can you {suggest¦recommend} a good {internet hosting¦web hosting¦hosting}
provider at a {honest¦reasonable¦fair} price? {Thanks a lot¦Kudos¦Cheers¦Thank you¦Many thanks¦Thanks},
I appreciate it!¦
{I love¦I really like¦I like¦Everyone loves} it
{when people¦when individuals¦when folks¦whenever people}
{come together¦get together} and share {opinions¦thoughts¦views¦ideas}.
Great {blog¦website¦site}, {keep it up¦continue the good work¦stick with it}!¦
Thank you for the {auspicious¦good} writeup. It in fact was a amusement account it.
Look advanced to {far¦more} added agreeable from you! {By the way¦However},
how {can¦could} we communicate?¦
{Howdy¦Hi there¦Hey there¦Hello¦Hey} just wanted
to give you a quick heads up. The {text¦words} in your
{content¦post¦article} seem to be running off the screen in {Ie¦Internet explorer¦Chrome¦Firefox¦Safari¦Opera}.
I'm not sure if this is a {format¦formatting} issue or
something to do with {web browser¦internet browser¦browser} compatibility but I {thought¦figured} I'd post
to let you know. The {style and design¦design and style¦layout¦design} look great
though! Hope you get the {problem¦issue} {solved¦resolved¦fixed} soon.
{Kudos¦Cheers¦Many thanks¦Thanks}¦
This is a topic {that is¦that's¦which is} {close to¦near to} my
heart... {Cheers¦Many thanks¦Best wishes¦Take care¦Thank you}!
{Where¦Exactly where} are your contact details though?¦
It's very {easy¦simple¦trouble-free¦straightforward¦effortless} to find out
any {topic¦matter} on {net¦web} as compared to {books¦textbooks}, as I found this {article¦post¦piece of writing¦paragraph} at this {website¦web site¦site¦web page}.¦
Does your {site¦website¦blog} have a contact page? I'm having {a tough time¦problems¦trouble} locating it but, I'd like to {send¦shoot} you
an {e-mail¦email}. I've got some {creative ideas¦recommendations¦suggestions¦ideas} for your blog you might be interested in hearing.
Either way, great {site¦website¦blog} and I look forward to seeing it {develop¦improve¦expand¦grow} over time.¦
{Hola¦Hey there¦Hi¦Hello¦Greetings}! I've been {following¦reading} your
{site¦web site¦website¦weblog¦blog} for {a long time¦a while¦some time} now and finally got the {bravery¦courage} to
go ahead and give you a shout out from {New Caney¦Kingwood¦Huffman¦Porter¦Houston¦Dallas¦Austin¦Lubbock¦Humble¦Atascocita} {Tx¦Texas}!
Just wanted to {tell you¦mention¦say} keep up the {fantastic¦excellent¦great¦good} {job¦work}!¦
Greetings from {Idaho¦Carolina¦Ohio¦Colorado¦Florida¦Los angeles¦California}!
I'm {bored to tears¦bored to death¦bored} at work so I decided to {check out¦browse} your
{site¦website¦blog} on my iphone during lunch break. I {enjoy¦really like¦love} the {knowledge¦info¦information} you {present¦provide} here and
can't wait to take a look when I get home. I'm {shocked¦amazed¦surprised} at how {quick¦fast} your blog
loaded on my {mobile¦cell phone¦phone} .. I'm not even using WIFI, just 3G ..

{Anyhow¦Anyways}, {awesome¦amazing¦very good¦superb¦good¦wonderful¦fantastic¦excellent¦great} {site¦blog}!¦
Its {like you¦such as you} {read¦learn} my {mind¦thoughts}!
You {seem¦appear} {to understand¦to know¦to grasp} {so much¦a lot} {approximately¦about} this,
{like you¦such as you} wrote the {book¦e-book¦guide¦ebook¦e book} in it or something.
{I think¦I feel¦I believe} {that you¦that you simply¦that you just}
{could¦can} do with {some¦a few} {%¦p.c.¦percent} to {force¦pressure¦drive¦power}
the message {house¦home} {a bit¦a little bit}, {however¦but} {other than¦instead of} that, {this is¦that is}
{great¦wonderful¦fantastic¦magnificent¦excellent} blog.
{A great¦An excellent¦A fantastic} read. {I'll¦I will} {definitely¦certainly} be back.¦
I visited {multiple¦many¦several¦various} {websites¦sites¦web sites¦web pages¦blogs} {but¦except¦however} the audio {quality¦feature} for audio songs
{current¦present¦existing} at this {website¦web site¦site¦web page} is {really¦actually¦in fact¦truly¦genuinely} {marvelous¦wonderful¦excellent¦fabulous¦superb}.¦
{Howdy¦Hi there¦Hi¦Hello}, i read your blog {occasionally¦from time to time} and
i own a similar one and i was just {wondering¦curious} if you get a lot of
spam {comments¦responses¦feedback¦remarks}? If so how do you
{prevent¦reduce¦stop¦protect against} it, any
plugin or anything you can {advise¦suggest¦recommend}?
I get so much lately it's driving me {mad¦insane¦crazy} so any {assistance¦help¦support} is very much appreciated.¦
Greetings! {Very helpful¦Very useful} advice {within this¦in this
particular} {article¦post}! {It is the¦It's the} little changes {that make¦which will make¦that produce¦that will make} {the biggest¦the largest¦the greatest¦the most important¦the most significant} changes.
{Thanks a lot¦Thanks¦Many thanks} for sharing!¦
{I really¦I truly¦I seriously¦I absolutely} love {your blog¦your site¦your website}..
{Very nice¦Excellent¦Pleasant¦Great} colors & theme.
Did you {create¦develop¦make¦build} {this website¦this site¦this
web site¦this amazing site} yourself? Please reply back as I'm {looking to¦trying to¦planning to¦wanting to¦hoping to¦attempting to} create {my own¦my very
own¦my own personal} {blog¦website¦site} and {would like to¦want to¦would
love to} {know¦learn¦find out} where you got this from or {what the¦exactly what the¦just what the} theme {is called¦is named}.
{Thanks¦Many thanks¦Thank you¦Cheers¦Appreciate it¦Kudos}!¦
{Hi there¦Hello there¦Howdy}! This {post¦article¦blog post} {couldn't¦could not} be written {any better¦much better}!

{Reading through¦Looking at¦Going through¦Looking through}
this {post¦article} reminds me of my previous roommate!
He {always¦constantly¦continually} kept {talking about¦preaching about}
this. {I will¦I'll¦I am going to¦I most certainly will} {forward¦send} {this article¦this information¦this post} to him.

{Pretty sure¦Fairly certain} {he will¦he'll¦he's
going to} {have a good¦have a very good¦have a great} read.
{Thank you for¦Thanks for¦Many thanks for¦I appreciate you for} sharing!¦
{Wow¦Whoa¦Incredible¦Amazing}! This blog looks {exactly¦just} like
my old one! It's on a {completely¦entirely¦totally} different {topic¦subject} but it has pretty much the same {layout¦page layout} and
design. {Excellent¦Wonderful¦Great¦Outstanding¦Superb}
choice of colors!¦
{There is¦There's} {definately¦certainly} {a lot to¦a
great deal to} {know about¦learn about¦find out about} this {subject¦topic¦issue}.
{I like¦I love¦I really like} {all the¦all of the} points {you made¦you've made¦you
have made}.¦
{You made¦You've made¦You have made} some {decent¦good¦really
good} points there. I {looked¦checked} {on the internet¦on the web¦on the
net} {for more info¦for more information¦to find out more¦to learn more¦for additional information} about
the issue and found {most individuals¦most people} will go along with your views on {this website¦this site¦this web site}.¦
{Hi¦Hello¦Hi there¦What's up}, I {log on to¦check¦read} your {new stuff¦blogs¦blog} {regularly¦like every
week¦daily¦on a regular basis}. Your {story-telling¦writing¦humoristic} style is {awesome¦witty}, keep {doing what you're doing¦up the good work¦it up}!¦
I {simply¦just} {could not¦couldn't} {leave¦depart¦go away}
your {site¦web site¦website} {prior to¦before} suggesting
that I {really¦extremely¦actually} {enjoyed¦loved} {the standard¦the usual} {information¦info} {a person¦an individual}
{supply¦provide} {for your¦on your¦in your¦to your} {visitors¦guests}?
Is {going to¦gonna} be {back¦again} {frequently¦regularly¦incessantly¦steadily¦ceaselessly¦often¦continuously} {in order to¦to} {check up on¦check
out¦inspect¦investigate cross-check} new posts¦
{I wanted¦I needed¦I want to¦I need to} to thank you for this
{great¦excellent¦fantastic¦wonderful¦good¦very good} read!!

I {definitely¦certainly¦absolutely} {enjoyed¦loved} every {little bit of¦bit of} it.

{I have¦I've got¦I have got} you {bookmarked¦book marked¦book-marked¦saved as a favorite} {to check out¦to
look at} new {stuff you¦things you} post…¦
{Hi¦Hello¦Hi there¦What's up}, just wanted to {mention¦say¦tell you}, I {enjoyed¦liked¦loved} this {article¦post¦blog
post}. It was {inspiring¦funny¦practical¦helpful}.
Keep on posting!¦
{Hi there¦Hello}, I enjoy reading {all of¦through} your {article¦post¦article post}.
I {like¦wanted} to write a little comment to support you.¦
I {always¦constantly¦every time} spent my half an hour to read this {blog¦weblog¦webpage¦website¦web site}'s {articles¦posts¦articles or reviews¦content} {everyday¦daily¦every day¦all the time} along with a {cup¦mug} of coffee.¦
I {always¦for all time¦all the time¦constantly¦every time} emailed
this {blog¦weblog¦webpage¦website¦web site} post page to
all my {friends¦associates¦contacts}, {because¦since¦as¦for the reason that} if like to read it {then¦after that¦next¦afterward} my {friends¦links¦contacts} will too.¦
My {coder¦programmer¦developer} is trying to {persuade¦convince}
me to move to .net from PHP. I have always disliked the idea because of the {expenses¦costs}.

But he's tryiong none the less. I've been using {Movable-type¦WordPress} on {a number of¦a variety
of¦numerous¦several¦various} websites for about a year and
am {nervous¦anxious¦worried¦concerned} about switching to
another platform. I have heard {fantastic¦very good¦excellent¦great¦good} things about blogengine.net.

Is there a way I can {transfer¦import} all my
wordpress {content¦posts} into it? {Any kind of¦Any} help
would be {really¦greatly} appreciated!¦
{Hello¦Hi¦Hello there¦Hi there¦Howdy¦Good day}! I could have
sworn I've {been to¦visited} {this blog¦this web site¦this website¦this site¦your blog} before
but after {browsing through¦going through¦looking at} {some of the¦a few of the¦many of the} {posts¦articles} I realized it's new to
me. {Anyways¦Anyhow¦Nonetheless¦Regardless}, I'm
{definitely¦certainly} {happy¦pleased¦delighted} {I found¦I discovered¦I
came across¦I stumbled upon} it and I'll be {bookmarking¦book-marking} it and checking back {frequently¦regularly¦often}!¦
{Terrific¦Great¦Wonderful} {article¦work}! {This is¦That is}
{the type of¦the kind of} {information¦info} {that are meant to¦that are supposed to¦that should} be shared {around the¦across the} {web¦internet¦net}.
{Disgrace¦Shame} on {the {seek¦search} engines¦Google} for {now
not¦not¦no longer} positioning this {post¦submit¦publish¦put up}
{upper¦higher}! Come on over and {talk over with¦discuss with¦seek
advice from¦visit¦consult with} my {site¦web site¦website}
. {Thank you¦Thanks} =)¦
Heya {i'm¦i am} for the first time here. I {came across¦found} this board and I find It {truly¦really} useful & it helped me out {a lot¦much}.
I hope to give something back and {help¦aid}
others like you {helped¦aided} me.¦
{Hi¦Hello¦Hi there¦Hello there¦Howdy¦Greetings}, {I think¦I believe¦I do
believe¦I do think¦There's no doubt that} {your site¦your website¦your web site¦your blog}
{might be¦may be¦could be¦could possibly be} having {browser¦internet browser¦web browser} compatibility {issues¦problems}.
{When I¦Whenever I} {look at your¦take a look at
your} {website¦web site¦site¦blog} in Safari, it looks fine {but
when¦however when¦however, if¦however, when} opening in {Internet Explorer¦IE¦I.E.}, {it has¦it's got}
some overlapping issues. {I just¦I simply¦I merely} wanted
to {give you a¦provide you with a} quick heads up!
{Other than that¦Apart from that¦Besides that¦Aside from that}, {fantastic¦wonderful¦great¦excellent} {blog¦website¦site}!¦
{A person¦Someone¦Somebody} {necessarily¦essentially} {lend a
hand¦help¦assist} to make {seriously¦critically¦significantly¦severely} {articles¦posts} {I
would¦I might¦I'd} state. {This is¦That is} the {first¦very first} time I frequented your {web page¦website
page} and {to this point¦so far¦thus far¦up to now}?
I {amazed¦surprised} with the {research¦analysis} you made to {create¦make} {this actual¦this particular} {post¦submit¦publish¦put up} {incredible¦amazing¦extraordinary}.
{Great¦Wonderful¦Fantastic¦Magnificent¦Excellent} {task¦process¦activity¦job}!¦
Heya {i'm¦i am} for {the primary¦the first} time here.
I {came across¦found} this board and I {in finding¦find¦to find} It {truly¦really} {useful¦helpful} & it helped me out
{a lot¦much}. {I am hoping¦I hope¦I'm hoping}
{to give¦to offer¦to provide¦to present} {something¦one thing} {back¦again} and {help¦aid} others
{like you¦such as you} {helped¦aided} me.¦
{Hello¦Hi¦Hello there¦Hi there¦Howdy¦Good day¦Hey there}!
{I just¦I simply} {would like to¦want to¦wish to} {give you a¦offer you a} {huge¦big} thumbs up {for the¦for your} {great¦excellent}
{info¦information} {you have¦you've got¦you have got} {here¦right here} on this post.
{I will be¦I'll be¦I am} {coming back to¦returning to} {your blog¦your
site¦your website¦your web site} for more soon.¦
I {always¦all the time¦every time} used to {read¦study} {article¦post¦piece of writing¦paragraph} in news papers but now
as I am a user of {internet¦web¦net} {so¦thus¦therefore} from now
I am using net for {articles¦posts¦articles or reviews¦content}, thanks to
web.¦
Your {way¦method¦means¦mode} of {describing¦explaining¦telling} {everything¦all¦the whole thing} in this {article¦post¦piece
of writing¦paragraph} is {really¦actually¦in fact¦truly¦genuinely} {nice¦pleasant¦good¦fastidious}, {all¦every one} {can¦be able to¦be capable
of} {easily¦without difficulty¦effortlessly¦simply} {understand¦know¦be aware of} it, Thanks a lot.¦
{Hi¦Hello} there, {I found¦I discovered} your
{blog¦website¦web site¦site} {by means of¦via¦by the use of¦by way of}
Google {at the same time as¦whilst¦even as¦while} {searching for¦looking for} a {similar¦comparable¦related} {topic¦matter¦subject}, your {site¦web site¦website} {got here¦came}
up, it {looks¦appears¦seems¦seems to be¦appears to be like} {good¦great}.

{I have¦I've} bookmarked it in my google bookmarks.
{Hello¦Hi} there, {simply¦just} {turned into¦became¦was¦become¦changed into} {aware
of¦alert to} your {blog¦weblog} {thru¦through¦via}
Google, {and found¦and located} that {it is¦it's} {really¦truly} informative.
{I'm¦I am} {gonna¦going to} {watch out¦be careful}
for brussels. {I will¦I'll} {appreciate¦be grateful} {if you¦should
you¦when you¦in the event you¦in case you¦for
those who¦if you happen to} {continue¦proceed} this {in future}.

{A lot of¦Lots of¦Many¦Numerous} {other folks¦folks¦other people¦people} {will be¦shall be¦might be¦will probably be¦can be¦will likely be} benefited {from your¦out of your} writing.
Cheers!¦
{I am¦I'm} curious to find out what blog {system¦platform} {you have been¦you happen to
be¦you are¦you're} {working with¦utilizing¦using}?
I'm {experiencing¦having} some {minor¦small} security {problems¦issues} with
my latest {site¦website¦blog} and {I would¦I'd} like to find something
more {safe¦risk-free¦safeguarded¦secure}. Do you have any {solutions¦suggestions¦recommendations}?¦
{I am¦I'm} {extremely¦really} impressed with your writing
skills {and also¦as well as} with the layout on your {blog¦weblog}.
Is this a paid theme or did you {customize¦modify} it yourself?
{Either way¦Anyway} keep up the {nice¦excellent} quality writing, {it's¦it is} rare to see a {nice¦great} blog like this one {these days¦nowadays¦today}.¦
{I am¦I'm} {extremely¦really} {inspired¦impressed} {with your¦together with your¦along
with your} writing {talents¦skills¦abilities}
{and also¦as {smartly¦well¦neatly} as} with the {layout¦format¦structure}
{for your¦on your¦in your¦to your} {blog¦weblog}. {Is
this¦Is that this} a paid {subject¦topic¦subject matter¦theme}
or did you {customize¦modify} it {yourself¦your self}? {Either
way¦Anyway} {stay¦keep} up the {nice¦excellent} {quality¦high quality} writing, {it's¦it is}
{rare¦uncommon} {to peer¦to see¦to look} a {nice¦great} {blog¦weblog}
like this one {these days¦nowadays¦today}..¦
{Hi¦Hello}, Neat post. {There is¦There's} {a problem¦an issue} {with your¦together with
your¦along with your} {site¦web site¦website} in {internet¦web} explorer,
{may¦might¦could¦would} {check¦test} this? IE {still¦nonetheless} is
the {marketplace¦market} {leader¦chief} and {a large¦a good¦a
big¦a huge} {part of¦section of¦component to¦portion of¦component of¦element of}
{other folks¦folks¦other people¦people} will {leave out¦omit¦miss¦pass over} your {great¦wonderful¦fantastic¦magnificent¦excellent} writing {due to¦because of} this
problem.¦
{I'm¦I am} not sure where {you are¦you're} getting your {info¦information}, but {good¦great} topic.
I needs to spend some time learning {more¦much more}
or understanding more. Thanks for {great¦wonderful¦fantastic¦magnificent¦excellent} {information¦info} I was looking
for this {information¦info} for my mission.¦
{Hi¦Hello}, i think that i saw you visited my {blog¦weblog¦website¦web
site¦site} {so¦thus} i came to “return the favor”.{I am¦I'm} {trying to¦attempting
to} find things to {improve¦enhance} my {website¦site¦web site}!I suppose its ok to use {some of¦a
\

87

Collection Of Books Online On The Web

07 06 2016

Wow that was strange. I just wrote an extremely long comment
but after I clicked submit my comment didn't appear. Grrrr...

well I'm not writing all that over again. Anyway, just wanted to say excellent blog!

88

Marvin

08 06 2016

Lovely just what I was searching for. Thanks
to the author for taking his clock time on this one.

89

RosarioENell

15 06 2016

To start with I would want to say fantastic blog!
I needed a simple question that I'd want to ask should you
don't mind. I found myself curious to discover how you center yourself and clear your mind before writing.
I've had a tough time clearing my thoughts in acquiring my thoughts
on the market. I do take pleasure in writing nonetheless it just looks like the initial ten to
fifteen minutes tend to be lost just considering where to start.
Any ideas or tips? Cheers!

90

Olive

19 06 2016

Excellent beat ! I wish to apprentice even as you amend your site, how
could i subscribe for a blog site? The account aided me a appropriate deal.
I were a little bit familiar of this your broadcast offered brilliant clear concept

91

türk sex

21 06 2016

Hi, I do believe this is an excellent web site.
I stumbledupon it ;) I may come back yet again since I book-marked it.

Money and freedom is the best way to change, may you be rich and continue
to guide other people.

92

türk sex

21 06 2016

Hi, I do believe this is an excellent web site.
I stumbledupon it ;) I may come back yet again since I book-marked it.

Money and freedom is the best way to change, may you be rich and continue
to guide other people.

93

türk sex

21 06 2016

Hi, I do believe this is an excellent web site.
I stumbledupon it ;) I may come back yet again since I book-marked it.

Money and freedom is the best way to change, may you be rich and continue
to guide other people.

94

türk sex

21 06 2016

Hi, I do believe this is an excellent web site.
I stumbledupon it ;) I may come back yet again since I book-marked it.

Money and freedom is the best way to change, may you be rich and continue
to guide other people.

95

DiegoGLucion

27 06 2016

When some one searches for his essential thing, thus
he/she wants being available that in detail, so that
thing is maintained over here.

96

adult home

02 07 2016

I am glad to be a visitant of this utter site, thank you for this rare information!

97

PaulEMccleaf

17 07 2016

Just wish to say your article is as surprising. The clarity in your
post is simply nice and i could assume you're an expert on this subject.
Fine with your permission let me to grab your feed to keep up to date with forthcoming post.
Thanks a million and please continue the gratifying work.

98

business marketing

19 07 2016

I'm gone to convey my little brother, that he should also pay a visit this blog on regular basis to obtain updated
from most recent news.

99

MikelBGajica

19 07 2016

Howdy! I realize this is form of off topic but I was wondering
which blog platform are you presently using for this particular website?
I'm getting fed up of Wordpress because I've had problems with hackers and I'm checking
out options for one more platform. I might be fantastic in the event you could point me toward a good platform.

100

seo software service

23 07 2016

Have you ever thought about adding a little bit more than just your articles?
I mean, what you say is fundamental and all. Nevertheless imagine if you added some great graphics or videos to give your posts more, "pop"!
Your content is excellent but with pics and clips, this blog could undeniably be one of the best in its field.
Superb blog!

101

LaquitaZChad

25 07 2016

My coder is wanting to convince me to advance to
.net from PHP. I have always disliked the idea due to expenses.

But he's tryiong none the less. I've been utilizing Movable-type on a
variety of websites for roughly a year and am worried about switching to another platform.

I have got heard excellent reasons for having blogengine.net.
What is the way I will import all of my wordpress content involved with it?
Any help can be greatly appreciated!

Say what?

Links currently disabled due to spam abuse.
Will reinstate at a later date using Ajax to remove any SEO benefits from posts.

Captcha number, inaccessible I know. If you're having difficulty please use the email link

The commenting system used here is a modified version of comment_rave. Capcha method by Hardcode NL.

Site search & complementary navigation:

Site search:

Online tools

Most popular

New to site