OLSON.namespace("OLSON.util");OLSON.util.Validate={_findForm:function(b){if(!b){return null;}b=$(b);if(b.get("tag")!=="form"){b=b.getParent("form");}return b;},_isFlaggedForValidation:function(b){if(b&&b.hasClass(OLSON.util.Validate.CLASSES.FORM_VALIDATE_FLAG)){return b;}else{return false;}},_validateFields:function(c){var d=true;
$(c).getElements("."+OLSON.util.Validate.CLASSES.INVALID).each(function(a){a.removeClass(OLSON.util.Validate.CLASSES.INVALID);},OLSON.util.Validate);return[OLSON.util.Validate._validateRequiredFields(c),OLSON.util.Validate._validateCreditCards(c),OLSON.util.Validate._validateCreditCardSecurityCodes(c),OLSON.util.Validate._validateCustom(c),OLSON.util.Validate._validateDates(c),OLSON.util.Validate._validateEmails(c),OLSON.util.Validate._validatePhones(c),OLSON.util.Validate._validateZips(c),OLSON.util.Validate._validateConfirm(c)].every(function(a){return a;
});},_validateRequiredFields:function(c){var d=true;$(c).getElements("."+OLSON.util.Validate.CLASSES.REQUIRED).each(function(b){if(!b.get("value")){var a="";}else{var a=b.get("value").trim();}if(a===b.get("title")||a===""){b.addClass(OLSON.util.Validate.CLASSES.INVALID);d=false;}if(b.get("type")&&b.get("type")==="radio"&&!OLSON.ui.form.findRadioValue(b.form[b.get("name")])){b.addClass(OLSON.util.Validate.CLASSES.INVALID);
b.getParent().addClass(OLSON.util.Validate.CLASSES.INVALID);d=false;}},OLSON.util.Validate);return d;},_validateCreditCards:function(c){var d=true;$(c).getElements("."+OLSON.util.Validate.CLASSES.CREDIT_CARD).each(function(f){var b=false;var a=f.get("value").trim();if(a){b=a.replace(/[^0-9]+/gi,"");}if(a!==""&&!OLSON.util.Validate.REGEXP.CREDIT_CARD.test(b)){f.addClass(OLSON.util.Validate.CLASSES.INVALID);
d=false;}},OLSON.util.Validate);return d;},_validateCreditCardSecurityCodes:function(c){var d=true;$(c).getElements("."+OLSON.util.Validate.CLASSES.CREDIT_CARD_SECURITY_CODE).each(function(f){var b=false;var a=f.get("value").trim();if(a){b=a.replace(/[^0-9]+/gi,"");}if(a!==""&&!OLSON.util.Validate.REGEXP.CREDIT_CARD_SECURITY_CODE.test(b)){f.addClass(OLSON.util.Validate.CLASSES.INVALID);
d=false;}},OLSON.util.Validate);return d;},_validateCustom:function(c){var d=true;$(c).getElements("."+OLSON.util.Validate.CLASSES.CUSTOM).each(function(h){var b=false;var a=h.get("value").trim();var j=h.get("rel");var i=new RegExp(j);console.log(typeof(a),a,i,a.match(i));if(a!==""&&!a.match(i)){h.addClass(OLSON.util.Validate.CLASSES.INVALID);
d=false;}},OLSON.util.Validate);return d;},_validateDates:function(c){var d=true;$(c).getElements("."+OLSON.util.Validate.CLASSES.DATE).each(function(b){var a=b.get("value").trim();var f=Date.parse(a);if(a!==""&&(!f||!f.isValid())){b.addClass(OLSON.util.Validate.CLASSES.INVALID);d=false;}},OLSON.util.Validate);
return d;},_validateEmails:function(c){var d=true;$(c).getElements("."+OLSON.util.Validate.CLASSES.EMAIL).each(function(b){var a=b.get("value").trim();if(a!==""&&!OLSON.util.Validate.REGEXP.EMAIL.test(a)){b.addClass(OLSON.util.Validate.CLASSES.INVALID);d=false;}},OLSON.util.Validate);return d;},_validatePhones:function(c){var d=true;
$(c).getElements("."+OLSON.util.Validate.CLASSES.PHONE).each(function(b){var a=b.get("value").trim();if(a!==""&&!OLSON.util.Validate.REGEXP.PHONE.test(a)){b.addClass(OLSON.util.Validate.CLASSES.INVALID);d=false;}},OLSON.util.Validate);return d;},_validateZips:function(c){var d=true;$(c).getElements("."+OLSON.util.Validate.CLASSES.ZIP).each(function(b){var a=b.get("value").trim();
if(a!==""&&!OLSON.util.Validate.REGEXP.ZIP.test(a)){b.addClass(OLSON.util.Validate.CLASSES.INVALID);d=false;}},OLSON.util.Validate);return d;},_validateConfirm:function(c){var d=true;$(c).getElements("."+OLSON.util.Validate.CLASSES.VALIDATE_CONFIRM).each(function(g){var a=$(c).getElements("input[name="+g.getAttribute("rel")+"]")[0];
if(!g.get("value")){var b="";}else{var b=g.get("value").trim();}if(!a.get("value")){var h="";}else{var h=a.get("value").trim();}if(b===g.get("title")||b===""||b!=h){g.addClass(OLSON.util.Validate.CLASSES.INVALID);d=false;}if(g.get("type")&&g.get("type")==="radio"&&!OLSON.ui.form.findRadioValue(g.form[g.get("name")])){g.addClass(OLSON.util.Validate.CLASSES.INVALID);
g.getParent().addClass(OLSON.util.Validate.CLASSES.INVALID);d=false;}},OLSON.util.Validate);return d;},validate:function(c){var d=OLSON.util.Validate._findForm(c.target);if(d&&OLSON.util.Validate._isFlaggedForValidation(d)){return OLSON.util.Validate._validateFields(d);}else{return null;}}};OLSON.util.Validate.CLASSES={CREDIT_CARD:"validate-credit-card",CREDIT_CARD_SECURITY_CODE:"validate-credit-card-security-code",CUSTOM:"validate-custom",DATE:"validate-date",EMAIL:"validate-email",FORM_VALIDATE_FLAG:"validate-on-submit",INVALID:"invalid",PHONE:"validate-telephone",REQUIRED:"validate-required",ZIP:"validate-zip",VALIDATE_CONFIRM:"validate-confirm"};
OLSON.util.Validate.REGEXP={CREDIT_CARD:new RegExp(/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/),CREDIT_CARD_SECURITY_CODE:new RegExp(/^[0-9]{3,4}$/),EMAIL:new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/),PHONE:new RegExp(/^([0-9]( |-|.)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-|.)?([0-9]{3}( |-|.)?[0-9]{4}|[a-zA-Z0-9]{7})$/),ZIP:new RegExp(/^[0-9]{5}(-[0-9]{4})?$/)};
