
function searchFocus(e)

{

    var element = document.getElementById(e);

    if(element.value != '')

    {

        element.value = '';

    }

}



function searchBlur(e)

{

    var element = document.getElementById(e);

    if(element.value == '')

    {

        element.value = 'Site Search';

    }

}



function MM_showHideLayers() { //v6.0

  var i,p,v,obj,args=MM_showHideLayers.arguments;

  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];

    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }

    obj.visibility=v; }

}

function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}

function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}





function MM_findObj(n, d) { //v4.01

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && d.getElementById) x=d.getElementById(n); return x;

}



function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}



function ChangeClass(ID, Class){

	document.getElementById(ID).className=Class;

}



function Q2ExternalLink(){
	if(confirm("You are leaving the Bank's web site.\n\nThe web site you have selected is an external one located on another server. The Bank has no responsibility for any external Web site. It neither endorses the information, content, presentation, or accuracy nor makes any warranty, express or implied, regarding any external site.")){
		return true;
	} else {
		return false;
	}
}

function Q2mail(){
	if(confirm("Information provided through this email link is transmitted over an unsecured connection. Please do not send information such as account numbers, account service requests or other personal information. Please contact us in person, by telephone or by mail with confidential information.")){
		return true;
	} else {
		return false;
	}
}

function CheckBoxCheck(type){
	if(type == 0){
		if(document.Q2OnlineLogin.forgot_password[0].checked){
			document.Q2OnlineLogin.forgot_password[1].checked = false;
			document.Q2OnlineLogin.password.disabled = true;
		} else {
			document.Q2OnlineLogin.password.disabled = false;
		}
	} else if(type == 1){
		if(document.Q2OnlineLogin.forgot_password[1].checked){
			document.Q2OnlineLogin.forgot_password[0].checked = false;
			document.Q2OnlineLogin.password.disabled = true;
		} else {
			document.Q2OnlineLogin.password.disabled = false;
		}
	}
}






function validateData(t){
	var checkMessage = "";
	var checkMessageField = "";
	var validateCount = 0;
	var requiredCount = 0;
	for (i=0; i<t.length; i++) {
		if (t[i].alt == undefined){
			Alt = "0";
		} else {
			Alt = t[i].alt;
		}
		if(t[i].value == "" && Alt.indexOf("req") != -1 && t[i].type != "checkbox"){
			t[i].className = "ReqField";
			requiredCount = requiredCount + 1;
		} else if(t[i].type == "checkbox" && Alt.indexOf("req") != -1){
			if(!t[i].checked){
				t[i].className = "ReqField";
				requiredCount = requiredCount + 1;
			} else {
				t[i].className = "";
			}
		} else if(Alt.indexOf("ssn") != -1){
			if(checkSSN(t[i].value) == true ){
				t[i].className = "";
			} else {
				validateCount = validateCount + 1;
				checkMessageField = t[i];
				checkMessage = "The Social Security Number you entered does not appear to be valid. Please enter it in the format: 000-00-0000";
			}
		} else if(Alt.indexOf("homephone") != -1 ){
			if(checkPhone(t[i].value)){
				t[i].className = "";
			} else {
				validateCount = validateCount + 1;
				checkMessageField = t[i];
				checkMessage = "The Home Phone Number you entered does not appear to be valid.\n\nPlease enter it in the format: (000) 000-0000 x0000";
			}
        } else if(Alt.indexOf("workphone") != -1 ){
			if(checkPhone(t[i].value)){
				t[i].className = "";
			} else {
				validateCount = validateCount + 1;
				checkMessageField = t[i];
				checkMessage = "The Work Phone Number you entered does not appear to be valid.\n\nPlease enter it in the format: (000) 000-0000 x0000";
			}
		} else if(Alt.indexOf("email") != -1 ){
			if(checkEmail(t[i].value)){
				t[i].className = "";
			} else {
				validateCount = validateCount + 1;
				checkMessageField = t[i];
				checkMessage = "The Email Address you entered does not appear to be valid.\n\nPlease enter it in the format: johndoe@somewhere.com";
			}
		} else if(Alt.indexOf("zip") != -1 ){
			if(checkZip(t[i].value)){
				t[i].className = "";
			} else {
				validateCount = validateCount + 1;
				checkMessageField = t[i];
				checkMessage = "The Zip Code you entered does not appear to be valid.\n\nPlease enter it in the format: 00000 or 00000-0000";
				}
			} else if(Alt.indexOf("UserID") != -1 && t[i].value != ""){
			if(checkUserID(t[i].value) == true){
				t[i].className = "";
			} else {
				validateCount = validateCount + 1;
				checkMessageField = t[i];
				checkMessage = "User ID must be between 8 and 12 characters.";
			}
		} else {
			t[i].className = "";
		}
	}

	if(requiredCount != 0){
		alert("The highlighted fields are required.  Please complete them before submitting.");
		return false;
	} else if(validateCount != 0){
		checkMessageField.className = "ReqField";
		alert(checkMessage);
		return false;
	}else {
		return true;
	}
}

function validateRegData(t){
	var checkMessage = "";
	var checkMessageField = "";
	var validateCount = 0;
	var requiredCount = 0;
	for (i=0; i<t.length; i++) {
		if (t[i].alt == undefined){
			Alt = "0";
		} else {
			Alt = t[i].alt;
		}
		if (t[i].title == undefined){
			title = "0";
		} else {
			title = t[i].title;
		}

		if(t[i].value == "" && Alt.indexOf("req") != -1 && t[i].type != "checkbox"){
			t[i].className = "ReqField";
			requiredCount = requiredCount + 1;
		} else if(t[i].type == "checkbox" && Alt.indexOf("req") != -1){
			if(!t[i].checked){
				t[i].className = "ReqField";
				requiredCount = requiredCount + 1;
			} else {
				t[i].className = "";
			}
		} else if(t[i].value == "00" && title.indexOf("req") != -1){
			t[i].className = "ReqField";
			requiredCount = requiredCount + 1;
		}		
	}
	if(requiredCount != 0){
		alert("All fields marked with an asterisk(*) are required.  Please complete the highlighted fields before submitting.");
		
return false;
	} else {
		return true;
	}
}

function checkSSN(t){
	var matchArr = t.match(/^(\d{3})-?\d{2}-?\d{4}$/);
	var numDashes = t.split('-').length - 1;
	if (matchArr == null || numDashes == 1) {
		return false;
	} else if (parseInt(matchArr[1],10)==0) {
		return false;
	} else {
		return true;
	}
}

function checkUserID(t){
	var matchArr = t.match(/^.{8,12}$/);
    if (matchArr == null) { 
    	return false;
    } else {
    	return true;
    }

}

function checkPhone(t){
	//var matchArr = t.match(/^\(\d\d\d\) \d\d\d-\d\d\d\d$/);
	var matchArr = t.match(/^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,3})|(\(?\d{2,3}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/);
	if (matchArr == null){
		return false;
	} else {
		return true;
	}
}

function checkEmail(t){
	var matchArr = t.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
	if (matchArr == null){
		return false;
	} else {
		return true;
	}
}

function checkZip(t){
	var matchArr = t.match(/^\d{5}(-\d{4})?$/);
	if (matchArr == null){
		return false;
	} else {
		return true;
	}
}

function UpdateTotal(t){
	if(t.value == ""){
		t.value = 0;
	}
	RunningTotal = parseInt(document.getElementById("50EEQuantity").value) * 25;
	RunningTotal = RunningTotal + (parseInt(document.getElementById("75EEQuantity").value) * 37.50);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("100EEQuantity").value) * 50);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("200EEQuantity").value) * 100);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("500EEQuantity").value) * 250);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("1000EEQuantity").value) * 500);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("5000EEQuantity").value) * 2500);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("10000EEQuantity").value) * 5000);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("50IQuantity").value) * 50);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("75IQuantity").value) * 75);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("100IQuantity").value) * 100);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("200IQuantity").value) * 200);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("500IQuantity").value) * 500);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("1000IQuantity").value) * 1000);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("5000IQuantity").value) * 5000);
	RunningTotal = RunningTotal + (parseInt(document.getElementById("10000IQuantity").value) * 10000);
	document.getElementById("TotalPurchasePrice").value = addCommas(RunningTotal.toFixed(2));
	t.select();
}

function addCommas(nStr){
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function TextCounter(field, cntfield, maxlimit) {
    if (field.value.length > maxlimit) {
        field.value = field.value.substring(0, maxlimit);
    } else {
        cntfield.value = maxlimit - field.value.length;
    }
}

/* This script is Copyright (c) Paul McFedries and 
Logophilia Limited (http://www.mcfedries.com/).
Permission is granted to use this script as long as 
this Copyright notice remains in place.*/

function CalculateTotal(frm) {
    var order_total = 0

    // Run through all the form fields
    for (var i=0; i < frm.elements.length; ++i) {

        // Get the current field
        form_field = frm.elements[i]

        // Get the field's name
        form_name = form_field.name

        // Is it a "product" field?
        if (form_name.substring(0,4) == "PROD") {

            // If so, extract the price from the name
            item_price = parseFloat(form_name.substring(form_name.lastIndexOf("_") + 1))

            // Get the quantity
            item_quantity = parseInt(form_field.value)

            // Update the order total
            if (item_quantity == 1) {
                order_total += 375.00
            }
else if (item_quantity >= 0) {
order_total += 275.00 + (item_quantity * item_price)	
}
        }
    }

    // Display the total rounded to two decimal places
    frm.TOTAL.value = round_decimals(order_total, 2)
}

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}


function regPopUp() {
window.open("ccreg.html","","width=400,height=300")
}

// LiveValidation 1.3 (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<A;++B){var E=C[B].validate();if(D){D=E;}}return D;};LiveValidation.prototype={validClass:"LV_valid",invalidClass:"LV_invalid",messageClass:"LV_validation_message",validFieldClass:"LV_valid_field",invalidFieldClass:"LV_invalid_field",initialize:function(D,C){var A=this;if(!D){throw new Error("LiveValidation::initialize - No element reference or element id has been provided!");}this.element=D.nodeName?D:document.getElementById(D);if(!this.element){throw new Error("LiveValidation::initialize - No element with reference or id of '"+D+"' exists!");}this.validations=[];this.elementType=this.getElementType();this.form=this.element.form;var B=C||{};this.validMessage=B.validMessage||"Thankyou!";var E=B.insertAfterWhatNode||this.element;this.insertAfterWhatNode=E.nodeType?E:document.getElementById(E);this.onValid=B.onValid||function(){this.insertMessage(this.createMessageSpan());this.addFieldClass();};this.onInvalid=B.onInvalid||function(){this.insertMessage(this.createMessageSpan());this.addFieldClass();};this.onlyOnBlur=B.onlyOnBlur||false;this.wait=B.wait||0;this.onlyOnSubmit=B.onlyOnSubmit||false;if(this.form){this.formObj=LiveValidationForm.getInstance(this.form);this.formObj.addField(this);}this.oldOnFocus=this.element.onfocus||function(){};this.oldOnBlur=this.element.onblur||function(){};this.oldOnClick=this.element.onclick||function(){};this.oldOnChange=this.element.onchange||function(){};this.oldOnKeyup=this.element.onkeyup||function(){};this.element.onfocus=function(F){A.doOnFocus(F);return A.oldOnFocus.call(this,F);};if(!this.onlyOnSubmit){switch(this.elementType){case LiveValidation.CHECKBOX:this.element.onclick=function(F){A.validate();return A.oldOnClick.call(this,F);};case LiveValidation.SELECT:case LiveValidation.FILE:this.element.onchange=function(F){A.validate();return A.oldOnChange.call(this,F);};break;default:if(!this.onlyOnBlur){this.element.onkeyup=function(F){A.deferValidation();return A.oldOnKeyup.call(this,F);};}this.element.onblur=function(F){A.doOnBlur(F);return A.oldOnBlur.call(this,F);};}}},destroy:function(){if(this.formObj){this.formObj.removeField(this);this.formObj.destroy();}this.element.onfocus=this.oldOnFocus;if(!this.onlyOnSubmit){switch(this.elementType){case LiveValidation.CHECKBOX:this.element.onclick=this.oldOnClick;case LiveValidation.SELECT:case LiveValidation.FILE:this.element.onchange=this.oldOnChange;break;default:if(!this.onlyOnBlur){this.element.onkeyup=this.oldOnKeyup;}this.element.onblur=this.oldOnBlur;}}this.validations=[];this.removeMessageAndFieldClass();},add:function(A,B){this.validations.push({type:A,params:B||{}});return this;},remove:function(B,D){var E=false;for(var C=0,A=this.validations.length;C<A;C++){if(this.validations[C].type==B){if(this.validations[C].params==D){E=true;break;}}}if(E){this.validations.splice(C,1);}return this;},deferValidation:function(B){if(this.wait>=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(){switch(true){case (this.element.nodeName.toUpperCase()=="TEXTAREA"):return LiveValidation.TEXTAREA;case (this.element.nodeName.toUpperCase()=="INPUT"&&this.element.type.toUpperCase()=="TEXT"):return LiveValidation.TEXT;case (this.element.nodeName.toUpperCase()=="INPUT"&&this.element.type.toUpperCase()=="PASSWORD"):return LiveValidation.PASSWORD;case (this.element.nodeName.toUpperCase()=="INPUT"&&this.element.type.toUpperCase()=="CHECKBOX"):return LiveValidation.CHECKBOX;case (this.element.nodeName.toUpperCase()=="INPUT"&&this.element.type.toUpperCase()=="FILE"):return LiveValidation.FILE;case (this.element.nodeName.toUpperCase()=="SELECT"):return LiveValidation.SELECT;case (this.element.nodeName.toUpperCase()=="INPUT"):throw new Error("LiveValidation::getElementType - Cannot use LiveValidation on an "+this.element.type+" input!");default:throw new Error("LiveValidation::getElementType - Element must be an input, select, or textarea!");}},doValidations:function(){this.validationFailed=false;for(var C=0,A=this.validations.length;C<A;++C){var B=this.validations[C];switch(B.type){case Validate.Presence:case Validate.Confirmation:case Validate.Acceptance:this.displayMessageWhenEmpty=true;this.validationFailed=!this.validateElement(B.type,B.params);break;default:this.validationFailed=!this.validateElement(B.type,B.params);break;}if(this.validationFailed){return false;}}this.message=this.validMessage;return true;},validateElement:function(A,C){var D=(this.elementType==LiveValidation.SELECT)?this.element.options[this.element.selectedIndex].value:this.element.value;if(A==Validate.Acceptance){if(this.elementType!=LiveValidation.CHECKBOX){throw new Error("LiveValidation::validateElement - Element to validate acceptance must be a checkbox!");}D=this.element.checked;}var E=true;try{A(D,C);}catch(B){if(B instanceof Validate.Error){if(D!==""||(D===""&&this.displayMessageWhenEmpty)){this.validationFailed=true;this.message=B.message;E=false;}}else{throw B;}}finally{return E;}},validate:function(){if(!this.element.disabled){var A=this.doValidations();if(A){this.onValid();return true;}else{this.onInvalid();return false;}}else{return true;}},enable:function(){this.element.disabled=false;return this;},disable:function(){this.element.disabled=true;this.removeMessageAndFieldClass();return this;},createMessageSpan:function(){var A=document.createElement("span");var B=document.createTextNode(this.message);A.appendChild(B);return A;},insertMessage:function(B){this.removeMessage();if((this.displayMessageWhenEmpty&&(this.elementType==LiveValidation.CHECKBOX||this.element.value==""))||this.element.value!=""){var A=this.validationFailed?this.invalidClass:this.validClass;B.className+=" "+this.messageClass+" "+A;if(this.insertAfterWhatNode.nextSibling){this.insertAfterWhatNode.parentNode.insertBefore(B,this.insertAfterWhatNode.nextSibling);}else{this.insertAfterWhatNode.parentNode.appendChild(B);}}},addFieldClass:function(){this.removeFieldClass();if(!this.validationFailed){if(this.displayMessageWhenEmpty||this.element.value!=""){if(this.element.className.indexOf(this.validFieldClass)==-1){this.element.className+=" "+this.validFieldClass;}}}else{if(this.element.className.indexOf(this.invalidFieldClass)==-1){this.element.className+=" "+this.invalidFieldClass;}}},removeMessage:function(){var A;var B=this.insertAfterWhatNode;while(B.nextSibling){if(B.nextSibling.nodeType===1){A=B.nextSibling;break;}B=B.nextSibling;}if(A&&A.className.indexOf(this.messageClass)!=-1){this.insertAfterWhatNode.parentNode.removeChild(A);}},removeFieldClass:function(){if(this.element.className.indexOf(this.invalidFieldClass)!=-1){this.element.className=this.element.className.split(this.invalidFieldClass).join("");}if(this.element.className.indexOf(this.validFieldClass)!=-1){this.element.className=this.element.className.split(this.validFieldClass).join(" ");}},removeMessageAndFieldClass:function(){this.removeMessage();this.removeFieldClass();}};var LiveValidationForm=function(A){this.initialize(A);};LiveValidationForm.instances={};LiveValidationForm.getInstance=function(A){var B=Math.random()*Math.random();if(!A.id){A.id="formId_"+B.toString().replace(/\./,"")+new Date().valueOf();}if(!LiveValidationForm.instances[A.id]){LiveValidationForm.instances[A.id]=new LiveValidationForm(A);}return LiveValidationForm.instances[A.id];};LiveValidationForm.prototype={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(C){return(LiveValidation.massValidate(A.fields))?A.oldOnSubmit.call(this,C||window.event)!==false:false;};},addField:function(A){this.fields.push(A);},removeField:function(C){var D=[];for(var B=0,A=this.fields.length;B<A;B++){if(this.fields[B]!==C){D.push(this.fields[B]);}}this.fields=D;},destroy:function(A){if(this.fields.length!=0&&!A){return false;}this.element.onsubmit=this.oldOnSubmit;LiveValidationForm.instances[this.name]=null;return true;}};var Validate={Presence:function(B,C){var C=C||{};var A=C.failureMessage||"Can't be empty!";if(B===""||B===null||B===undefined){Validate.fail(A);}return true;},Numericality:function(J,E){var A=J;var J=Number(J);var E=E||{};var F=((E.minimum)||(E.minimum==0))?E.minimum:null;var C=((E.maximum)||(E.maximum==0))?E.maximum:null;var D=((E.is)||(E.is==0))?E.is:null;var G=E.notANumberMessage||"Must be a number!";var H=E.notAnIntegerMessage||"Must be an integer!";var I=E.wrongNumberMessage||"Must be "+D+"!";var B=E.tooLowMessage||"Must not be less than "+F+"!";var K=E.tooHighMessage||"Must not be more than "+C+"!";if(!isFinite(J)){Validate.fail(G);}if(E.onlyInteger&&(/\.0+$|\.$/.test(String(A))||J!=parseInt(J))){Validate.fail(H);}switch(true){case (D!==null):if(J!=Number(D)){Validate.fail(I);}break;case (F!==null&&C!==null):Validate.Numericality(J,{tooLowMessage:B,minimum:F});Validate.Numericality(J,{tooHighMessage:K,maximum:C});break;case (F!==null):if(J<Number(F)){Validate.fail(B);}break;case (C!==null):if(J>Number(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.length<Number(E)){Validate.fail(B);}break;case (H!==null):if(F.length>Number(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<B;++C){var I=D[C];if(typeof I=="string"){I=I.toLowerCase();}A.push(I);}D=A;if(typeof H=="string"){H=H.toLowerCase();}}var J=false;for(var E=0,B=D.length;E<B;++E){if(D[E]==H){J=true;}if(F.partialMatch){if(H.indexOf(D[E])!=-1){J=true;}}}if((!F.negate&&!J)||(F.negate&&J)){Validate.fail(K);}return true;},Exclusion:function(A,B){var B=B||{};B.failureMessage=B.failureMessage||"Must not be included in the list!";B.negate=true;Validate.Inclusion(A,B);return true;},Confirmation:function(C,D){if(!D.match){throw new Error("Validate::Confirmation - Error validating confirmation: Id of element to match must be provided!");}var D=D||{};var B=D.failureMessage||"Does not match!";var A=D.match.nodeName?D.match:document.getElementById(D.match);if(!A){throw new Error("Validate::Confirmation - There is no reference with name of, or element with id of '"+D.match+"'!");}if(C!=A.value){Validate.fail(B);}return true;},Acceptance:function(B,C){var C=C||{};var A=C.failureMessage||"Must be accepted!";if(!B){Validate.fail(A);}return true;},Custom:function(D,E){var E=E||{};var B=E.against||function(){return true;};var A=E.args||{};var C=E.failureMessage||"Not valid!";if(!B(D,A)){Validate.fail(C);}return true;},now:function(A,D,C){if(!A){throw new Error("Validate::now - Validation function must be provided!");}var E=true;try{A(D,C||{});}catch(B){if(B instanceof Validate.Error){E=false;}else{throw B;}}finally{return E;}},fail:function(A){throw new Validate.Error(A);},Error:function(A){this.message=A;this.name="ValidationError";}};

