/*******************************************************************
 created on: Wednesday 08th of September 2010 09:06:04 AM
 This file has been dynamically created by javascript.config.inc.php
 *******************************************************************/

function isEmpty1(str) {
 return (str == null) || (str.length == 0);
}

function isMalicious1(str) {
 var re = /^([a-zA-Z0-9@. `'"-]*(union select|UNION SELECT|exec sp_|EXEC SP_|drop table|DROP TABLE|drop database|DROP DATABASE|drop schema|DROP SCHEMA|delete from|DELETE FROM|\` |\' |"|;|=| = |<|>|\'\+\'|\' \+\ '|\*|%|--)+[a-zA-Z0-9@. -'`";=<>+*%--]*)$/
 return re.test(str);
}

function isContact_fname(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
 var regex = /^[a-zA-Z]+([\s][a-zA-Z]+)?$/
 return regex.test(str);
}

function isContact_lname(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
 var regex = /^([a-zA-Z]+([\'-][a-zA-Z])?){3,}$/
 return regex.test(str);
}

function isContact_email(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
 var regex = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*([.](com|net|org|us|biz|info|name|jobs|mobi|tv|de|eu|co.uk|me.uk|org.uk|jp|au|ca|in|ws|cc|be|at|ae|co.nz|net.nz|org.nz|cn|com.cn|net.cn|org.cn|com.tw|org.tw|idv.tw))$/i
 return regex.test(str);
}

function isPassword1(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
var regex;
regex = /((^[0-9]+[a-zA-Z]+)|(^[a-zA-Z]+[0-9]+))([a-zA-Z0-9]*)$/
if (!regex.test(str)) { return false; }
regex = /^([a-zA-Z0-9]{8,15})$/
if (!regex.test(str)) { return false; }
return true;
}

function isPassword2MatchPassword1(str1, str2) {
 return str1 == str2;
}

function isContact_phone(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
 var regex = /^(\+[0-9]{1,4}[-.\s])?[(]?([0-9]{1,5})[)]?[-.\s]([0-9]{2,4})?[-.\s]?([0-9]{4,5})[-.\s]?((\#|x|ex|ext|extension)[-.\s]?([0-9]{3,4}))?$/
 return regex.test(str);
}

function isContact_company(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
 var regex = /^[^\s]+[a-zA-Z0-9,?!@#:.\/\s-]{1,500}$/
 return regex.test(str);
}

function isContact_address1(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
 var regex = /^[0-9a-zA-Z\s.-]{6,}([\s-]{1}[a-zA-Z0-9.-]+)?$/
 return regex.test(str);
}

function isContact_city(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
 var regex = /^[a-zA-Z]{3,}([\s-]{1}[a-zA-Z]+)?$/
 return regex.test(str);
}

function isContact_state(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
 var regex = /^[a-zA-Z]{2,}([\s-]{1}[a-zA-Z]+)?$/
 return regex.test(str);
}

function isContact_zipcode(str) {
 if (isEmpty1(str) || isMalicious1(str)) return false;
 var regex = /^([0-9a-zA-Z]{3,5})(([\s-]{1}[0-9a-zA-Z]{3,4})?)$/
 return regex.test(str);
}

// validate form
function validateForm1(f,preCheck,theformfunction){
 var valid = true;
 var i,e,t,v,g,b,spantxt,spanid,spanelement,hiddenspan,revalidate,errorwarning;
 errorwarning = document.getElementById('errorwarning');

 for(i=0; i < f.elements.length; i++){
 e = f.elements[i];

 //add event & functions to form elements based on the formfucntion string
 if (theformfunction == 'configureValidation1') revalidate = function(){configureValidation1()};
 if (e.type == 'text' || e.type == 'password' || e.type == 'textarea'){e.onkeyup = revalidate};
 if (e.nodeName.toLowerCase() == "select"){e.onchange = revalidate};
 if (e.type == 'file'){e.onchange = revalidate};
 if (e.type == 'radio' || e.type == 'checkbox'){e.onclick = revalidate};

 t = e.type;
 v = e.value;
 g = e.id + "L";

 if(document.getElementById(g)) b = document.getElementById(g);
 spanid = e.id + "m";
 spanelement = document.createElement('span');
 spanelement.id = spanid;
 spanelement.className = "errortxt"
 if (!document.getElementById(spanid)) e.parentNode.appendChild(spanelement);
 hiddenspan = document.getElementById(spanid);

 if(e.optional && !isMalicious1(e.value) && isEmpty1(e.value)) {
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  b.className = '';
  continue;
 }

if(t == 'text' || t == 'password' || t == 'textarea'){

if(isEmpty1(v)){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='yelMsgBox'><div id='yelMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning.gif' style='padding-top:3px'> Required Field</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  b.className = "fixedLabel";
 }

if(isMalicious1(v)){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> This is considered Malicious Data</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  b.className = "fixedLabel";
 }

if(v == e.defaultValue && !e.optional && !e.noDefaultCheck){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='yelMsgBox'><div id='yelMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning.gif' style='padding-top:3px'> Replace Default Text</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  b.className = "fixedLabel";
 }

if(e.isContact_fname || (!isEmpty1(v) && e.optional && e.name=='contact_fname')){
if(!isContact_fname(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> Only letters allowed.</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isContact_lname || (!isEmpty1(v) && e.optional && e.name=='contact_lname')){
if(!isContact_lname(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> Examples: O'Malley, Smith-Ham. Must be at least 3 characters long.</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isContact_email || (!isEmpty1(v) && e.optional && e.name=='contact_email')){
if(!isContact_email(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> Example: name@domain.com</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isPassword1 || (!isEmpty1(v) && e.optional && e.name=='password1')){
if(!isPassword1(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> Password must contain at least 1 character, 1 number, and must be between 8-15 char. long.</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isMatch != null || (!isEmpty1(v) && e.optional && e.name=='password2')){
if(!isPassword2MatchPassword1(v, e.isMatch)){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> Does not match the Password above</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isContact_phone || (!isEmpty1(v) && e.optional && e.name=='contact_phone')){
if(!isContact_phone(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> An extension number can be added by #,x,ex,ext,or extension. Example: 541.374.2019 or +49 08376 3742019 or (541)-374-2010ext456</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isContact_company || (!isEmpty1(v) && e.optional && e.name=='contact_company')){
if(!isContact_company(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> Subject must be at least 2 characters long and no longer than 500 characters. Only these Symbols are allowed: [,] [.] [:] [-] [?] [!]</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isContact_address1 || (!isEmpty1(v) && e.optional && e.name=='contact_address1')){
if(!isContact_address1(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> No special characters allowed. Must be at least 6 characters long.</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isContact_city || (!isEmpty1(v) && e.optional && e.name=='contact_city')){
if(!isContact_city(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> Only letters allowed. Must be at least 3 characters long.</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isContact_state || (!isEmpty1(v) && e.optional && e.name=='contact_state')){
if(!isContact_state(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> Examples: Oregon, OR. Must be at least 2 characters long.</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

if(e.isContact_zipcode || (!isEmpty1(v) && e.optional && e.name=='contact_zipcode')){
if(!isContact_zipcode(v) && v != e.defaultValue){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='redMsgBox'><div id='redMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning_red.gif' style='padding-top:3px'> example: 97345</div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

}

if(t.indexOf('select') != -1){
if(e.options[e.selectedIndex].value == 'noselection && !e.optional'){
 valid = false;
 b.className = "errorLabel";
 hiddenspan.style.display = 'block';
 hiddenspan.innerHTML = "<div id='yelMsgBox'><div id='yelMsg'><img src='./ProFormPlus/FormImages/PFP_IMG_warning.gif' style='padding-top:3px'> Required Field </div></div>";
 continue;
}else{
  hiddenspan.style.display = 'none';
  hiddenspan.innerHTML = '';
  if (!e.optional) {
    b.className = "fixedLabel";
  } else { b.className = ''; }
 }
}

}

if(preCheck == false) {valid = false};
if(preCheck == false || valid == false){
 errorwarning.style.display = 'block';
 (window.location.hash == '#errorwarning') ? null : window.location.hash = 'errorwarning';
}else{
  errorwarning.style.display = 'none'
 };
return valid;

}

//configures form[0] or the first form in the document
function configureValidation1(){
f = null;
f = document.forms[0]; //the form must be set here
f.contact_fname.isContact_fname = true;
f.contact_lname.isContact_lname = true;
f.contact_email.isContact_email = true;
f.password1.isPassword1 = true;
f.password2.isMatch = f.password1.value
f.contact_phone.optional = true;
f.contact_company.optional = true;
f.contact_address1.optional = true;
f.contact_city.optional = true;
f.contact_state.optional = true;
f.contact_zipcode.optional = true;

//deal with radio and check buttons must be set according to page specifics
var preCheck = true;

return validateForm1(f,preCheck,'configureValidation1');
}

