diff --git a/src/livevalidation_standalone.compressed.js b/src/livevalidation_standalone.compressed.js
index 2410fc0..8a63e25 100644
--- a/src/livevalidation_standalone.compressed.js
+++ b/src/livevalidation_standalone.compressed.js
@@ -1,4 +1,29 @@
-// LiveValidation 1.4 (standalone version)
-// Copyright (c) 2007-2008 Alec Hill (www.livevalidation.com)
-// LiveValidation is licensed under the terms of the MIT License
-var LiveValidation=function(B,A){this.initialize(B,A)};LiveValidation.VERSION="1.3 standalone";LiveValidation.TEXTAREA=1;LiveValidation.TEXT=2;LiveValidation.PASSWORD=3;LiveValidation.CHECKBOX=4;LiveValidation.SELECT=5;LiveValidation.FILE=6;LiveValidation.massValidate=function(C){var D=true;for(var B=0,A=C.length;B=300){this.removeMessageAndFieldClass()}var A=this;if(this.timeout){clearTimeout(A.timeout)}this.timeout=setTimeout(function(){A.validate()},A.wait)},doOnBlur:function(A){this.focused=false;this.validate(A)},doOnFocus:function(A){this.focused=true;this.removeMessageAndFieldClass()},getElementType:function(){var B=this.element.nodeName;var A=this.element.type;switch(true){case (B.toUpperCase()=="TEXTAREA"):return LiveValidation.TEXTAREA;case (B.toUpperCase()=="INPUT"&&A.toUpperCase()=="TEXT"):return LiveValidation.TEXT;case (B.toUpperCase()=="INPUT"&&A.toUpperCase()=="PASSWORD"):return LiveValidation.PASSWORD;case (B.toUpperCase()=="INPUT"&&A.toUpperCase()=="CHECKBOX"):return LiveValidation.CHECKBOX;case (B.toUpperCase()=="INPUT"&&A.toUpperCase()=="FILE"):return LiveValidation.FILE;case (B.toUpperCase()=="SELECT"):return LiveValidation.SELECT;case (B.toUpperCase()=="INPUT"):throw new Error("LiveValidation::getElementType - Cannot use LiveValidation on an "+A+" input!");default:throw new Error("LiveValidation::getElementType - Element must be an input, select, or textarea - "+B.toLowerCase()+" was given!")}},doValidations:function(){this.validationFailed=false;for(var C=0,A=this.validations.length;CNumber(C)){Validate.fail(K)}break}return true},Format:function(C,E){var C=String(C);var E=E||{};var A=E.failureMessage||"Not valid!";var B=E.pattern||/./;var D=E.negate||false;if(!D&&!B.test(C)){Validate.fail(A)}if(D&&B.test(C)){Validate.fail(A)}return true},Email:function(B,C){var C=C||{};var A=C.failureMessage||"Must be a valid email address!";Validate.Format(B,{failureMessage:A,pattern:/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i});return true},Length:function(F,G){var F=String(F);var G=G||{};var E=((G.minimum)||(G.minimum==0))?G.minimum:null;var H=((G.maximum)||(G.maximum==0))?G.maximum:null;var C=((G.is)||(G.is==0))?G.is:null;var A=G.wrongLengthMessage||"Must be "+C+" characters long!";var B=G.tooShortMessage||"Must not be less than "+E+" characters long!";var D=G.tooLongMessage||"Must not be more than "+H+" characters long!";switch(true){case (C!==null):if(F.length!=Number(C)){Validate.fail(A)}break;case (E!==null&&H!==null):Validate.Length(F,{tooShortMessage:B,minimum:E});Validate.Length(F,{tooLongMessage:D,maximum:H});break;case (E!==null):if(F.lengthNumber(H)){Validate.fail(D)}break;default:throw new Error("Validate::Length - Length(s) to validate against must be provided!")}return true},Inclusion:function(H,F){var F=F||{};var K=F.failureMessage||"Must be included in the list!";var G=(F.caseSensitive===false)?false:true;if(F.allowNull&&H==null){return true}if(!F.allowNull&&H==null){Validate.fail(K)}var D=F.within||[];if(!G){var A=[];for(var C=0,B=D.length;C=300&&this.removeMessageAndFieldClass();var b=
+this;this.timeout&&clearTimeout(b.timeout);this.timeout=setTimeout(function(){b.validate()},b.wait)},doOnBlur:function(b){this.focused=false;this.validate(b)},doOnFocus:function(){this.focused=true;this.removeMessageAndFieldClass()},getElementType:function(){var b=this.element.nodeName.toUpperCase(),a=this.element.type.toUpperCase();switch(true){case b=="TEXTAREA":return LiveValidation.TEXTAREA;case b=="INPUT"&&a=="TEXT":return LiveValidation.TEXT;case b=="INPUT"&&a=="PASSWORD":return LiveValidation.PASSWORD;
+case b=="INPUT"&&a=="CHECKBOX":return LiveValidation.CHECKBOX;case b=="INPUT"&&a=="FILE":return LiveValidation.FILE;case b=="SELECT":return LiveValidation.SELECT;case b=="INPUT":throw Error("LiveValidation::getElementType - Cannot use LiveValidation on an "+a.toLowerCase()+" input!");default:throw Error("LiveValidation::getElementType - Element must be an input, select, or textarea - "+b.toLowerCase()+" was given!");}},doValidations:function(){this.validationFailed=false;for(var b=0,a=this.validations.length;b<
+a;++b)if(this.validationFailed=!this.validateElement(this.validations[b].type,this.validations[b].params))return false;this.message=this.validMessage;return true},validateElement:function(b,a){switch(b){case Validate.Presence:case Validate.Confirmation:case Validate.Acceptance:this.displayMessageWhenEmpty=true;break;case Validate.Custom:if(a.displayMessageWhenEmpty)this.displayMessageWhenEmpty=true}var d=this.elementType==LiveValidation.SELECT?this.element.options[this.element.selectedIndex].value:
+this.element.value;if(b==Validate.Acceptance){if(this.elementType!=LiveValidation.CHECKBOX)throw Error("LiveValidation::validateElement - Element to validate acceptance must be a checkbox!");d=this.element.checked}var c=true;try{b(d,a)}catch(e){if(e instanceof Validate.Error){if(d!==""||d===""&&this.displayMessageWhenEmpty){this.validationFailed=true;this.message=e.message.split("\n")[0];c=false}}else throw e;}finally{return c}},validate:function(){if(this.element.disabled)return true;else{this.beforeValidation();
+if(this.doValidations()){this.beforeValid();this.onValid();this.afterValid();this.afterValidation();return true}else{this.beforeInvalid();this.onInvalid();this.afterInvalid();this.afterValidation();return false}}},enable:function(){this.element.disabled=false;return this},disable:function(){this.element.disabled=true;this.removeMessageAndFieldClass();return this},createMessageSpan:function(){var b=document.createElement("span"),a=document.createTextNode(this.message);b.appendChild(a);return b},insertMessage:function(b){this.removeMessage();
+if(this.validationFailed||this.validMessage)if(this.displayMessageWhenEmpty&&(this.elementType==LiveValidation.CHECKBOX||this.element.value=="")||this.element.value!=""){b.className+=" "+this.messageClass+" "+(this.validationFailed?this.invalidClass:this.validClass);var a=this.insertAfterWhatNode.parentNode;this.insertAfterWhatNode.nextSibling?a.insertBefore(b,this.insertAfterWhatNode.nextSibling):a.appendChild(b)}},addFieldClass:function(){this.removeFieldClass();if(this.validationFailed){if(this.element.className.indexOf(this.invalidFieldClass)==
+-1)this.element.className+=" "+this.invalidFieldClass}else if(this.displayMessageWhenEmpty||this.element.value!="")if(this.element.className.indexOf(this.validFieldClass)==-1)this.element.className+=" "+this.validFieldClass},removeMessage:function(){for(var b,a=this.insertAfterWhatNode;a.nextSibling;){if(a.nextSibling.nodeType===1){b=a.nextSibling;break}a=a.nextSibling}b&&b.className.indexOf(this.messageClass)!=-1&&this.insertAfterWhatNode.parentNode.removeChild(b)},removeFieldClass:function(){var b=
+this.element.className;if(b.indexOf(this.invalidFieldClass)!=-1)this.element.className=b.split(this.invalidFieldClass).join("");if(b.indexOf(this.validFieldClass)!=-1)this.element.className=b.split(this.validFieldClass).join(" ")},removeMessageAndFieldClass:function(){this.removeMessage();this.removeFieldClass()}};var LiveValidationForm=function(b){this.initialize(b)};LiveValidationForm.instances={};
+LiveValidationForm.getInstance=function(b){if(!b)throw Error("LiveValidationForm::getInstance - No element reference or element id has been provided!");b=b.nodeName?b:document.getElementById(b);var a=Math.random()*Math.random();if(!b.id)b.id="formId_"+a.toString().replace(/\./,"")+(new Date).valueOf();LiveValidationForm.instances[b.id]||(LiveValidationForm.instances[b.id]=new LiveValidationForm(b));return LiveValidationForm.instances[b.id]};
+LiveValidationForm.prototype={beforeValidation:function(){},onValid:function(){},onInvalid:function(){},afterValidation:function(){},initialize:function(b){this.name=b.id;this.element=b;this.fields=[];this.oldOnSubmit=this.element.onsubmit||function(){};var a=this;this.element.onsubmit=function(d){var c=false;a.beforeValidation();a.valid=LiveValidation.massValidate(a.fields);a.valid?a.onValid():a.onInvalid();a.afterValidation();if(a.valid)c=a.oldOnSubmit.call(this,d||window.event)!==false;if(!c)return c}},
+addField:function(b){this.fields.push(b)},removeField:function(b){for(var a=[],d=0,c=this.fields.length;dNumber(e)&&Validate.fail(j)}return true},Format:function(b,a){b=String(b);
+a=a||{};var d=a.failureMessage||"Not valid!",c=a.pattern||/./,e=a.negate||false;!e&&!c.test(b)&&Validate.fail(d);e&&c.test(b)&&Validate.fail(d);return true},Email:function(b,a){a=a||{};Validate.Format(b,{failureMessage:a.failureMessage||"Must be a valid email address!",pattern:/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i});return true},Length:function(b,a){b=String(b);a=a||{};var d=a.minimum||a.minimum==0?a.minimum:null,c=a.maximum||a.maximum==0?a.maximum:null,e=a.is||a.is==0?a.is:null,f=a.wrongLengthMessage||
+"Must be "+e+" characters long!",g=a.tooShortMessage||"Must not be less than "+d+" characters long!",h=a.tooLongMessage||"Must not be more than "+c+" characters long!";switch(true){case e!==null:b.length!=Number(e)&&Validate.fail(f);break;case d!==null&&c!==null:Validate.Length(b,{tooShortMessage:g,minimum:d});Validate.Length(b,{tooLongMessage:h,maximum:c});break;case d!==null:b.lengthNumber(c)&&Validate.fail(h);break;default:throw Error("Validate::Length - Length(s) to validate against must be provided!");
+}return true},Inclusion:function(b,a){a=a||{};var d=a.failureMessage||"Must be included in the list!",c=a.caseSensitive===false?false:true;if(a.allowNull&&b==null)return true;!a.allowNull&&b==null&&Validate.fail(d);var e=a.within||[];if(!c){var f=[],g=0;for(c=e.length;g