
var js_options = { errorTag: "span", errorClass: "jsvalidation", errorLocation: "afterEnd", errorIDPrefix: "jsvalidator", startGone: false, useBR: "none", useBlur: true, submitClass: 'submit_action', resetClass: 'reset_action', resetConfirm: false, highlightColor: '#FFFF99', endColor: '#FFFFFF', extMessage: true, ajaxURL: '/ajaxtest.php'
}
var custom_validators = { number: { className: "jsvalidate_number", defaultMessage: "This field must have a numerical value.", regExp: /^[-]?\d+(\.\d+)?$/
}, digits: { className: "jsvalidate_digits", defaultMessage: "This field can only contain numbers.", regExp: /^[-]?\d+(\.\d+)?$/
}, email: { className: "jsvalidate_email", defaultMessage: "This field must contain a valid email address.", regExp: /^([a-zA-Z0-9_\.\-])+(\+[a-zA-Z0-9]+)*\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
}, uscanzip: { className: "jsvalidate_uscanzip", defaultMessage: "This field must contain a valid US or Canada zip code.", regExp: /^((\d{5}([- ])\d{4})|(\d{5})|([AaBbCcEeGgHhJjKkLlMmNnPpRrSsTtVvXxYy]\d[A-Za-z]\s?\d[A-Za-z]\d))$/
}, usstate: { className: "jsvalidate_usstate", defaultMessage: "This field must contain a valid 2 letter US state code.", regExp: /^(A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[ANU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$/
}, usphone: { className: "jsvalidate_usphone", defaultMessage: "This field must contain a valid US phone number with area code.", regExp: /^([0-9]( |-|.)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-|.)?([0-9]{3}( |-|.)?[0-9]{4}|[a-zA-Z0-9]{7})$/
}, creditcard: { className: "jsvalidate_creditcard", defaultMessage: "This field must contain a valid credit card number.", regExp: /^((4\d{3})|(5[1-5]\d{2})|(6011))([- ])?\d{4}([- ])?\d{4}([- ])?\d{4}|3[4,7]\d{13}$/
}, ssn: { className: "jsvalidate_ssn", defaultMessage: "This field must contain a valid social security number.", regExp: /(^|\s)(00[1-9]|0[1-9]0|0[1-9][1-9]|[1-6]\d{2}|7[0-6]\d|77[0-2])(-?|[\. ])([1-9]0|0[1-9]|[1-9][1-9])\3(\d{3}[1-9]|[1-9]\d{3}|\d[1-9]\d{2}|\d{2}[1-9]\d)($|\s|[;:,!\.\?])/
}, alpha: { className: "jsvalidate_alpha", defaultMessage: "This field must contain only letters.", regExp: /^[a-zA-z\s]+$/
}, alphanum: { className: "jsvalidate_alphanum", defaultMessage: "This field must contain only letters or numbers.", regExp: /^[a-zA-Z0-9]+$/
}
}; var js_validators = { required: { className: "jsrequired", defaultMessage: "This field is required."
}, notfirst: { className: "select-notfirst", defaultMessage: "Select something other than the first item."
}, filetypes: { defaultMessage: "This field accepts the following file types:"
}, ajax: { className: "ajax", defaultMessage: "This value should change based on ajax request result."
}
}; String.prototype.trim = function() { a = this.replace(/^\s+/, ''); return a.replace(/\s+$/, '');}; Array.prototype.inArray = function (value){ var i; for (i=0; i < this.length; i++) { if (this[i] === value) { return true;}
}
return false;}; Array.prototype.remove=function(s){ for(i=0;i<this.length;i++){ if(s==this[i]) this.splice(i, 1);}
}; String.prototype.isEmpty = function() { if ((this.value.length == 0) || (this.value==null)) { return true;}
return false;}; if (!Array.prototype.pop) { Array.prototype.pop = function() { var last; if (this.length) { last = this[this.length - 1]; this.length -= 1;}
return last||null;};}
if (!Array.prototype.push) { Array.prototype.push = function() { for (var i = 0; i < arguments.length; ++i) { this[this.length] = arguments[i];}
return this.length;};}
function isset(v) { return((typeof(v)=='undefined' || v.length==0) ? false : true);}
function getElementsByClassName(className, tag, elm){ var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)"); var tag = tag || "*"; var elm = elm || document; var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag); var returnElements = []; var current; var length = elements.length; for(var i=0; i<length; i++){ current = elements[i]; if(testClass.test(current.className)){ returnElements.push(current);}
}
return returnElements;}
function isArray() { if (typeof arguments[0] == 'object') { var criterion = arguments[0].constructor.toString().match(/array/i); return (criterion != null);}
return false;}
function isString() { if (typeof arguments[0] == 'string') return true; if (typeof arguments[0] == 'object') { var criterion = arguments[0].constructor.toString().match(/string/i); return (criterion != null);}
return false;}
function RemoveDuplicates(arr){ if(isArray(arr)){ arr.sort(); returnArray = true;} else { returnArray = false; arr.trim(); arr = arr.split(" "); arr.sort();}
var result=new Array(); var lastValue=""; for (var i=0; i<arr.length; i++){ var curValue=arr[i]; if (curValue != lastValue){ result[result.length] = curValue;}
lastValue = curValue;}
if(!returnArray){ var newResult = ""; for (var a=0; a < result.length; a++){ newResult += result[a] + " ";}
newResult.trim(); result = newResult;}
return result;}
function onlyJSV(arr){ if(isArray(arr)){ arr.sort(); returnArray = true;} else { returnArray = false; arr.trim(); arr = arr.split(" "); arr.sort();}
var result=new Array(); for (var i=0; i<arr.length; i++){ for(items in custom_validators){ if(arr[i] == custom_validators[items]['className']){ result[result.length] = arr[i];}
}
for(items in js_validators){ if(arr[i] == js_validators[items]['className']){ result[result.length] = arr[i];}
}
}
if(!returnArray){ var newResult = ""; for (var a=0; a < result.length; a++){ newResult += result[a] + " ";}
newResult.trim(); result = newResult;}
return result;}
var _emptyTags = { "IMG": true, "BR": true, "INPUT": true, "META": true, "LINK": true, "PARAM": true, "HR": true
}; if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentHTML){ HTMLElement.prototype.__defineGetter__("outerHTML", function () { var attrs = this.attributes; var str = "<" + this.tagName; for (var i = 0; i < attrs.length; i++)
str += " " + attrs[i].getAttribute('name') + "=\"" + attrs[i].value + "\""; if (_emptyTags[this.tagName])
return str + ">"; return str + ">" + this.innerHTML + "</" + this.tagName + ">";}); HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML) { var r = this.ownerDocument.createRange(); r.setStartBefore(this); var df = r.createContextualFragment(sHTML); this.parentNode.replaceChild(df, this);}); HTMLElement.prototype.insertAdjacentHTML = function (sWhere, sHTML) { var df; var r = this.ownerDocument.createRange(); switch (String(sWhere).toLowerCase()) { case "beforebegin":
r.setStartBefore(this); df = r.createContextualFragment(sHTML); this.parentNode.insertBefore(df, this); break; case "afterbegin":
r.selectNodeContents(this); r.collapse(true); df = r.createContextualFragment(sHTML); this.insertBefore(df, this.firstChild); break; case "beforeend":
r.selectNodeContents(this); r.collapse(false); df = r.createContextualFragment(sHTML); this.appendChild(df); break; case "afterend":
r.setStartAfter(this); df = r.createContextualFragment(sHTML); this.parentNode.insertBefore(df, this.nextSibling); break;}
};}
var jsValidator = new Array(); var these_options = eval("({})"); var ajaxItems = new Array(); var ajax_pos; var linkedReset = false; function findForms(){ var forms = document.getElementsByTagName('form'); return forms;}
function getFields(formref,type){ var els; if(type == "name"){ els = document.forms[formref].elements;}
if(type == "id"){ els = Form.getElements(formref);}
return els;}
function getParentForm(el){ while(el.parentNode != null && el.tagName != "FORM") el = el.parentNode; return (el.getAttribute('name')) ? el.getAttribute('name') : el.getAttribute('id');}
function hasLabel(el){ while(el.parentNode != null && el.tagName != "LABEL") el = el.parentNode; return (el.tagName == "LABEL") ? true : false;}
function getLabel(el){ while(el.parentNode != null && el.tagName != "LABEL") el = el.parentNode; return el;}
function attachSubmit(form_ref){ var form_attach; var parent_ref; if(form_ref.cloneNode(false).getAttribute('name') || form_ref.cloneNode(false).getAttribute('id')){ if(document.forms[form_ref.cloneNode(false).getAttribute('name')]){ form_attach = document.forms[eval("form_ref.cloneNode(false).getAttribute('name')")]; form_ref = form_ref.cloneNode(false).getAttribute('name');} else { form_attach = $(eval("form_ref.cloneNode(false).getAttribute('id')")); form_ref = form_ref.cloneNode(false).getAttribute('id');}
} else { form_attach = form_ref;}
if(window.addEventListener){ form_attach.onsubmit = function(){ return submitAction(form_ref,'INPUT','submit');};} else { form_attach.attachEvent('onsubmit', function(){ return submitAction(form_ref,'INPUT','submit');});}
if(window.addEventListener){ form_attach.onreset = function(){ return resetAction(form_ref);};} else { form_attach.attachEvent('onreset', function(){ return resetAction(form_ref);});}
if(getElementsByClassName(js_options['submitClass']).length > 0){ var buttons = getElementsByClassName(js_options['submitClass']); for(b=0; b < buttons.length; b++){ parent_ref = getParentForm(buttons[b]); if(parent_ref == form_ref){ tag = buttons[b].tagName; if(buttons[b].type){ type = buttons[b].type.toLowerCase();} else { type = "";}
Event.observe(buttons[b], 'click', function(){ return submitAction(form_ref,tag,type);});}
}
}
if(getElementsByClassName(js_options['resetClass']).length > 0){ var buttons = getElementsByClassName(js_options['resetClass']); for(r=0; r < buttons.length; r++){ parent_ref = getParentForm(buttons[r]); if(parent_ref == form_ref){ Event.observe(buttons[r], 'click', function(){ linkedReset = true; document.forms[form_ref].reset(); return false;});}
}
}
}
function extractOptions(vals){ var first_pos = vals.indexOf("{"); var last_pos = vals.indexOf("}") + 1; var the_options = vals.substring(first_pos,last_pos); return the_options;}
var radioNum = 0; function attachValidation(fieldref,form_name){ var validation_message = ""; var the_field; var these_options = eval("({})"); var isRadio = false; var doneRadios = new Array(); var doExt = true; var useBlur = false; if(document.forms[form_name].elements[fieldref]){ the_field = document.forms[form_name].elements[fieldref]; if(typeof the_field.nodeType == "undefined"){ el_type = the_field[0].type.toLowerCase();} else { el_type = the_field.type.toLowerCase();}
if(el_type == "radio"){ isRadio = true;}
} else { the_field = $(fieldref);}
if(isRadio){ classes = ""; for(r=0; r < the_field.length; r++){ classes += the_field[r].className + " ";}
} else { classes = the_field.className;}
if(classes){ if(classes.indexOf("{") > -1 && classes.indexOf("}") > -1){ these_options = extractOptions(classes).toString(); classes = classes.replace(these_options,""); these_options = eval("(" + these_options + ")");}
useBlur = (isset(these_options['useBlur'])) ? these_options['useBlur'] : js_options['useBlur']; extMessage = (isset(these_options['extMessage'])) ? these_options['extMessage'] : js_options['extMessage']; classes.trim(); classes = RemoveDuplicates(classes); classes = onlyJSV(classes); classes = classes.trim(); classList = classes.split(" "); for(c=0; c < classList.length; c++){ for(items in js_validators){ if(classList[c] == js_validators[items]['className']){ if(validation_message == ""){ validation_message = js_validators[items]['defaultMessage'];} else { validation_message += ' ' + js_validators[items]['defaultMessage'];}
if(!jsValidator.inArray(fieldref + "," + form_name + "," + the_field.className)){ array_pos = jsValidator.length; jsValidator[array_pos] = fieldref + "," + form_name + "," + the_field.className;}
}
}
for(items in custom_validators){ if(classList[c] == custom_validators[items]['className']){ if(validation_message == ""){ validation_message = custom_validators[items]['defaultMessage'];} else { validation_message += ' ' + custom_validators[items]['defaultMessage'];}
if(!jsValidator.inArray(fieldref + "," + form_name + "," + the_field.className)){ array_pos = jsValidator.length; jsValidator[array_pos] = fieldref + "," + form_name + "," + the_field.className;}
}
}
if(isRadio){ for(n=0; n < the_field.length; n++){ if(the_field[n].getAttribute('alt') != "" && the_field[n].getAttribute('alt') != null){ validation_message = the_field[n].getAttribute('alt');}
}
} else { if(the_field.getAttribute('alt')){ if(the_field.getAttribute('alt') != "" && the_field.getAttribute('alt') != null){ validation_message = the_field.getAttribute('alt');}
}
}
if(el_type == "file" && extMessage && doExt){ if(the_field.getAttribute('accept') != ""){ if(validation_message == ""){ validation_message = js_validators['filetypes']['defaultMessage'] + " " + the_field.getAttribute('accept');} else { validation_message += " " + js_validators['filetypes']['defaultMessage'] + " " + the_field.getAttribute('accept');}
}
doExt = false;}
}
}
if(validation_message != "" && validation_message != null){ errorTag = (isset(these_options['errorTag'])) ? these_options['errorTag'] : js_options['errorTag']; errorClass = (isset(these_options['errorClass'])) ? these_options['errorClass'] : js_options['errorClass']; startGone = (isset(these_options['startGone'])) ? these_options['startGone'] : js_options['startGone']; useBR = (isset(these_options['useBR'])) ? these_options['useBR'] : js_options['useBR']; errorLocation = (isset(these_options['errorLocation'])) ? these_options['errorLocation'] : js_options['errorLocation']; var field_name = js_options['errorIDPrefix'] + "_" + form_name + "_" + fieldref; field_name = field_name.trim(); var html = "<"; html += errorTag; html += " id=\"" + field_name + "\" "; if(errorClass != ""){ html += "class=\"" + errorClass + "\" ";}
html += "style=\"opacity:0; filter:alpha(opacity=0);"; if(startGone){ html += " display:none;";}
html += "\">"; if(useBR != "none"){ if(useBR == "before" || useBR == "both"){ html += '<br />';}
}
html += validation_message; if(useBR != "none"){ if(useBR == "after" || useBR == "both"){ html += '<br />';}
}
html += "</"; html += errorTag; html += ">"; if(errorLocation == "afterEnd" || errorLocation == "beforeBegin"){ if(isRadio){ if(errorLocation == "afterEnd"){ totalRadios = the_field.length - 1; if(radioNum == totalRadios){ addTo = (hasLabel(the_field[radioNum])) ? getLabel(the_field[radioNum]) : the_field[radioNum]; addTo.insertAdjacentHTML(errorLocation,html); radio_pos = doneRadios.length; doneRadios[radio_pos] = the_field[radioNum].getAttribute('name');}
radioNum++;} else { if(!doneRadios.inArray(the_field[0].getAttribute('name'))){ the_field[0].insertAdjacentHTML(errorLocation,html); radio_pos = doneRadios.length; doneRadios[radio_pos] = the_field[radioNum].getAttribute('name');}
}
} else { this_type = the_field.type.toLowerCase(); if(this_type == "checkbox"){ attachTo = (hasLabel(the_field)) ? getLabel(the_field) : the_field; attachTo.insertAdjacentHTML(errorLocation,html);} else { the_field.insertAdjacentHTML(errorLocation,html);}
}
}
if($(field_name)){ new Effect.Opacity(field_name, {to:0.0, duration: 0 });}
if(errorLocation == "none" && startGone && $(field_name)){ $(field_name).style.display = 'none';}
}
if(useBlur && classes){ if(the_field.isArray && the_field[0].type){ field_type = the_field[0].type;} else { if(the_field.type){ field_type = the_field.type.toLowerCase();}
}
if((the_field.tagName == "INPUT" && (field_type == "text" || field_type == "password")) || the_field.tagName == "TEXTAREA"){ Event.observe(the_field, 'blur', function(){ blurAction(the_field,form_name);});}
if(the_field.tagName == "SELECT"){ Event.observe(the_field, 'blur', function(){ blurAction(the_field,form_name);}); Event.observe(the_field, 'change', function(){ blurAction(the_field,form_name);});}
if(the_field.tagName == "INPUT" && field_type == "checkbox"){ Event.observe(the_field, 'click', function(){ blurAction(the_field,form_name);});}
if(the_field.tagName == "INPUT" && field_type == "checkbox"){ Event.observe(the_field, 'blur', function(){ blurAction(the_field,form_name);}); Event.observe(the_field, 'click', function(){ blurAction(the_field,form_name);}); Event.observe(the_field, 'change', function(){ blurAction(the_field,form_name);});}
if(typeof the_field.nodeType == "undefined"){ for(a=0; a < the_field.length; a++){ if(!radio_name){ var radio_name = the_field[a].getAttribute('name');}
Event.observe(document.forms[form_name].elements[radio_name][a], 'click', function(){ blurAction(the_field,form_name);});}
}
}
}
function getFileExtension(filename){ if( filename.length == 0 ) return ""; var dot = filename.lastIndexOf("."); if( dot == -1 ) return ""; var extension = filename.substr(dot + 1,filename.length); return extension;}
function blurAction(field_reference,form_ref){ var field_name; var the_result = true; var these_options = eval("({})"); var isRadio = false; var isDisabled = false; if(($(field_reference)) || (document.forms[form_ref].elements[field_reference])){ field_reference = ($(field_reference)) ? $(field_reference) : document.forms[form_ref].elements[field_reference];}
if(typeof field_reference.nodeType == "undefined"){ the_field = (field_reference[0].getAttribute('name')) ? field_reference[0].getAttribute('name') : field_reference[0].getAttribute('id'); isRadio = true;} else { the_field = (field_reference.getAttribute('id')) ? field_reference.getAttribute('id') : field_reference.getAttribute('name');}
if(isRadio){ classes = ""; for(r=0; r < field_reference.length; r++){ classes += field_reference[r].className + " ";}
} else { classes = field_reference.className;}
if(!isRadio){ isDisabled = field_reference.disabled;}
if(classes && !isDisabled){ if(classes.indexOf("{") > -1 && classes.indexOf("}") > -1){ these_options = extractOptions(classes); classes = classes.replace(these_options,""); these_options = eval("(" + these_options + ")");}
classes = classes.trim(); classes = RemoveDuplicates(classes); classes = onlyJSV(classes); classes = classes.trim(); classList = classes.split(" "); var bad_field = false; var isRequired = false; var isAjax = false; hColor = (isset(these_options['highlightColor'])) ? these_options['highlightColor'] : js_options['highlightColor']; eColor = (isset(these_options['endColor'])) ? these_options['endColor'] : js_options['endColor']; startGone = (isset(these_options['startGone'])) ? these_options['startGone'] : js_options['startGone']; errorLocation = (isset(these_options['errorLocation'])) ? these_options['errorLocation'] : js_options['errorLocation']; ajaxURL = (isset(these_options['ajaxURL'])) ? these_options['ajaxURL'] : js_options['ajaxURL']; for(c=0; c < classList.length; c++){ field_name = js_options['errorIDPrefix'] + "_" + form_name + "_" + the_field; field_name = field_name.trim(); for(items in custom_validators){ if(classList[c] == custom_validators[items]['className'] && field_reference.value != ""){ var thisRegExp = custom_validators[items]['regExp']; if(!thisRegExp.test(field_reference.value)){ bad_field = true;}
}
}
if(classList[c] == js_validators['required']['className']){ isRequired = true; if(typeof field_reference.nodeType == "undefined"){ thistype = field_reference[0].type.toLowerCase(); field_type = thistype; thisTag = field_reference[0].tagName;} else { field_type = field_reference.type.toLowerCase(); thisTag = field_reference.tagName;}
if((thisTag == "INPUT" && (field_type == "text" || field_type == "password")) || thisTag == "TEXTAREA"){ if(field_reference.value == ""){ bad_field = true;}
}
if(thisTag == "SELECT"){ if(field_reference.value == ""){ bad_field = true;}
}
if(thisTag == "INPUT" && field_type == "checkbox"){ if(field_reference.checked == false){ bad_field = true;}
}
if(thisTag == "INPUT" && field_type == "file"){ if(field_reference.value == ""){ bad_field = true;} else { if(field_reference.getAttribute('accept') != ""){ pass = false; fileTypes = field_reference.getAttribute('accept').split(","); ext = getFileExtension(field_reference.value)
for(f=0; f < fileTypes.length; f++){ if(ext == fileTypes[f]){ pass = true;}
}
if(!pass){ bad_field = true;}
}
}
}
if(thisTag == "INPUT" && field_type == "radio"){ this_field = (field_reference.name) ? document.forms[form_ref].elements[field_reference.name] : document.forms[form_ref].elements[field_reference[0].name]; theRadios = this_field.length; bad_field = true; for(t=0; t < theRadios; t++){ if(this_field[t].checked == true){ bad_field = false;}
}
}
}
if(classList[c] == js_validators['notfirst']['className']){ if(field_reference.selectedIndex == 0 && field_reference.tagName == "SELECT"){ bad_field = true;}
}
if(classList[c] == js_validators['ajax']['className']){ isAjax = true;}
}
if(isAjax){ if(isRequired && field_reference.value == ""){ replaceHTML = js_validators['required']['defaultMessage']; if(field_reference.getAttribute('alt')){ if(field_reference.getAttribute('alt') != "" && field_reference.getAttribute('alt') != null){ replaceHTML = field_reference.getAttribute('alt');}
}
Element.update(field_name, replaceHTML);} else { if(ajaxURL){ bad_field = false; ajaxArea = field_name; if(!ajaxItems.inArray(ajaxArea)){ ajax_pos = ajaxItems.length; ajaxItems[ajax_pos] = ajaxArea;}
poststr = the_field + "=" + encodeURIComponent(field_reference.value); new Ajax.Request(ajaxURL, { parameters: poststr, onSuccess: function(t){ response = t.responseText.trim()
if(response != ""){ Element.update(ajaxArea, response); throwFlag(ajaxArea,hColor,eColor,startGone);} else { if(field_reference.value != ""){ hideFlag(ajaxArea,startGone);}
ajaxItems.remove(ajaxArea);}
}
});}
}
}
if(bad_field){ if(errorLocation == "none"){ if($(field_name)){ throwFlag(field_name, hColor, eColor,startGone);}
} else { throwFlag(field_name, hColor, eColor,startGone);}
the_result = false;} else { if(errorLocation == "none"){ if($(field_name)){ hideFlag(field_name,startGone);}
} else { hideFlag(field_name,startGone);}
}
}
return the_result;}
function validTag(theTag){ if(theTag == "INPUT" || theTag == "SELECT" || theTag == "TEXTAREA" || theTag == "BUTTON" || theTag == "ISINDEX"){ return true;}
return false;}
function checkJSVForm(form_obj){ var isRadio = false; form_name = form_obj.cloneNode(false).getAttribute('name'); if(form_name){ fields = getFields(form_name,"name");} else { fields = getFields(form_obj.getAttribute('id'),"id");}
for(f=0; f < fields.length; f++){ if(document.forms[form_name].elements[fields[f]]){ the_field = document.forms[form_name].elements[fields[f]]; if(typeof the_field.nodeType == "undefined"){ el_type = the_field[0].type.toLowerCase();} else { el_type = the_field.type.toLowerCase();}
if(el_type == "radio"){ isRadio = true;}
} else { the_field = $(fields[f]);}
if(isRadio){ classes = ""; for(r=0; r < the_field.length; r++){ classes += the_field[r].className + " ";}
} else { classes = the_field.className;}
if(classes){ if(classes.indexOf("{") > -1 && classes.indexOf("}") > -1){ these_options = extractOptions(classes).toString(); classes = classes.replace(these_options,""); these_options = eval("(" + these_options + ")");}
useBlur = (isset(these_options['useBlur'])) ? these_options['useBlur'] : js_options['useBlur']; extMessage = (isset(these_options['extMessage'])) ? these_options['extMessage'] : js_options['extMessage']; classes.trim(); classes = RemoveDuplicates(classes); classes = onlyJSV(classes); classes = classes.trim(); if(classes){ return true;}
}
}
return false;}
function loadAction(){ var forms = findForms(); var attachIt; var fields; var j; var done; if(forms.length >= 1){ for(var i=0; i < forms.length; i++){ doValidate = checkJSVForm(forms[i]); if(doValidate){ attachIt = attachSubmit(forms[i]); form_name = forms[i].cloneNode(false).getAttribute('name'); if(form_name){ fields = getFields(form_name,"name");} else { fields = getFields(forms[i].getAttribute('id'),"id");}
for(j=0; j < fields.length; j++){ done = false; if(fields[j].getAttribute('id') && validTag(fields[j].tagName)){ attachValidation(fields[j].getAttribute('id'),form_name); done = true;}
if(fields[j].getAttribute('name') && done == false && validTag(fields[j].tagName)){ attachValidation(fields[j].getAttribute('name'),form_name); done = true;}
}
}
}
}
}
function throwFlag(fieldToFlag, hColor, eColor, gone){ if(Element.getOpacity(fieldToFlag) > .75){ new Effect.Highlight(fieldToFlag,{duration:1.0, startcolor:hColor, endcolor:eColor });} else { if(gone){ $(fieldToFlag).style.display = '';}
new Effect.Opacity(fieldToFlag, {to:1.0, duration: .5 });}
}
function hideFlag(fieldToHide, gone){ if(Element.getOpacity(fieldToHide) > .25){ new Effect.Opacity(fieldToHide, {to:0.0, duration: .5 }); if(gone){ $(fieldToHide).style.display = 'none';}
}
}
function validateFields(theForm){ var the_field; var proceed = true; for(var jsV=0; jsV < jsValidator.length; jsV++){ var bad_field = false; var els = jsValidator[jsV].split(","); field_ref = els[0]; form_ref = els[1]; class_ref = els[2]; if(form_ref == theForm){ checkField = blurAction(field_ref,form_ref); if(!checkField){ proceed = false;}
}
}
return proceed;}
function resetAction(the_form){ if(js_options['resetConfirm']){ if(!confirm("Are you sure you want to reset this form?")){ return false;}
}
for(var v=0; v < jsValidator.length; v++){ var els = jsValidator[v].split(","); field_ref = els[0]; form_ref = els[1]; class_ref = els[2]; if(form_ref == the_form){ hideFlag(js_options['errorIDPrefix'] + "_" + form_name + "_" + field_ref);}
}
if(linkedReset){ linkedReset = false; return false;} else { return true;}
}
function submitAction(thisForm,tag,type){ var process = validateFields(thisForm); if(ajaxItems.length > 0){ return false;}
if((tag != "INPUT" || (tag == "INPUT" && type != "submit")) && process && (document.forms[thisForm] || $(thisForm))){ if(document.forms[thisForm]){ document.forms[thisForm].submit();} else { $(thisForm).submit(); }
return false;}
return process;}
Event.observe(window, 'load', function(){ loadAction();});