var formcheck_settings={placeholders:[],placeholdersText:[],optional:[],minimumCharacters:[],minimumCharactersNumber:[],customRules:[],customRulesRegex:[],customRuleOverrideDefault:false};function placeholderFocus(){if($(this).val()===""||$.inArray($(this).val(),formcheck_settings.placeholdersText)>-1){$(this).val("");}}function placeholderBlur(){if($(this).val()===""){$(this).val(formcheck_settings.placeholdersText[$.inArray($(this).attr("id"),formcheck_settings.placeholders)]);}}function initPlaceholders(){if(formcheck_settings.placeholders!=="all"){for(var a=0;a<formcheck_settings.placeholders.length;a++){if($.browser.webkit){$("#"+formcheck_settings.placeholders[a]).attr("placeholder",formcheck_settings.placeholdersText[a]);}else{$("#"+formcheck_settings.placeholders[a]).val(formcheck_settings.placeholdersText[a]);$("#"+formcheck_settings.placeholders[a]).focus(placeholderFocus);$("#"+formcheck_settings.placeholders[a]).blur(placeholderBlur);}}}else{$("form input").each(function(b){if($.browser.webkit){$(this).attr("placeholder",formcheck_settings.placeholdersText[b]);}else{$(this).val(formcheck_settings.placeholdersText[b]);$(this).focus(function(){if($(this).val()===""||$.inArray($(this).val(),formcheck_settings.placeholdersText)>-1){$(this).val("");}});$(this).blur(function(){if($(this).val()===""){$(this).val(formcheck_settings.placeholdersText[$.inArray($(this).attr("id"),formcheck_settings.placeholders)]);}});}});}}function initBlurActions(){formcheck_settings.form.children().children("input[type='text'],select,textarea").change(function(){$(this).checkInputWithRegex(/\w+/);});formcheck_settings.form.children().children("input[type='checkbox']").change(function(){$(this).checkIfChecked();});$("#email").unbind().change(function(){$(this).checkInputWithRegex(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);});$("#email_confirm").unbind().change(function(){$(this).checkInputWithComparisonTo($("#email"));});$("#first_name").unbind().change(function(){$(this).checkInputWithRegex(new RegExp("^[a-z]+$","i"));});$("#full_name").unbind().change(function(){$(this).checkInputWithRegex(new RegExp("^[a-z]+$","gi"));});$("#last_name").unbind().change(function(){$(this).checkInputWithRegex(new RegExp("^[a-z]+$","i"));});$("#username").unbind().change(function(){$(this).checkInputWithRegex(new RegExp("^[a-z]+$","i"));});$("#dob_dd").unbind().change(function(){$(this).checkInputWithRegex(new RegExp("^(([1-9])|([1-2][0-9])|(3[0-1]))$"));});$("#dob_mm").unbind().change(function(){$(this).checkInputWithRegex(new RegExp("^(([1-9])|(0[1-9])|(1[0-2]))$"));});$("#dob_yyyy").unbind().change(function(){$(this).checkInputWithRegex(new RegExp("^((1\d{3})|(20[0-1]\d))$"));});$("#postcode").unbind().change(function(){$(this).checkInputWithRegex(new RegExp("^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$","i"));});$("#phone").unbind().change(function(){$(this).checkInputWithRegex(/^(\d+)|(\(\\+\d+\))(\s[1-9]\d+|[0-9]+)$/);});$("#password").unbind().change(function(){$(this).checkInputWithRegex(new RegExp("^.*$"));});$("#password_confirm").unbind().change(function(){$(this).checkInputWithComparisonTo($("#password"));});}$.removeErrorMessages=function(){$(".formcheck-error").remove();};function scrollToInvalidOrEmpty(){var c=false,a=false;if($("input.invalid")[0]===undefined){$.removeErrorMessages();var d=$(formcheck_settings.form[0]).context.elements;for(var b=0;b<d.length;b++){if($(d[b]).val()===""&&$.inArray($(d[b]).attr("id"),formcheck_settings.optional)===-1){if(!c){$("html, body").animate({scrollTop:($(d[b]).offset().top)-60},"fast");c=true;}if(!a){$(d[b]).didReceiveErrorMessage($(d[b]).attr("title"));a=true;}$(d[b]).addClass("invalid");}}}else{$("html, body").animate({scrollTop:($(".invalid").eq(0).offset().top)-60},"fast");$.removeErrorMessages();$(".invalid").eq(0).didReceiveErrorMessage($(".invalid").eq(0).attr("title"));}}$.fn.checkInputWithRegex=function(e){var d=Boolean($(this).val()),a=($.inArray($(this).attr("id"),formcheck_settings.optional)>-1),h=e.test($(this).val()),g=($.inArray($(this).val(),formcheck_settings.placeholdersText)>-1),c=Boolean((formcheck_settings.minimumCharactersNumber===undefined)||(Boolean((formcheck_settings.minimumCharactersNumber!==undefined)&&($.inArray($(this).attr("id"),formcheck_settings.minimumCharacters)===-1))||((formcheck_settings.minimumCharactersNumber!==undefined)&&($(this).val().length>=formcheck_settings.minimumCharactersNumber[$.inArray($(this).attr("id"),formcheck_settings.minimumCharacters)])))),f=($.inArray($(this).attr("id"),formcheck_settings.customRules)>-1),b=$(this).performCustomRules();if((!d&&a)||(d&&h&&c&&b)||(formcheck_settings.customRuleOverrideDefault&&f&&b&&d&&c)||(d&&g)){if($(this).hasClass("invalid")){$(this).removeClass("invalid");}return;}else{$(this).addClass("invalid");}};$.fn.checkIfChecked=function(){if($(this)[0].checked||($.inArray($(this).attr("id"),formcheck_settings.optional)>-1)){if($(this).hasClass("invalid")){$(this).removeClass("invalid");}return;}else{$(this).addClass("invalid");}};$.fn.checkInputWithComparisonTo=function(b){var a=Boolean($(this).val()),c=($(this).val()===b.val());if((a&&c)){if($(this).hasClass("invalid")){$(this).removeClass("invalid");}return;}else{$(this).addClass("invalid");}};$.fn.performCustomRules=function(){var b=false;if((formcheck_settings.customRules!==undefined&&$.inArray($(this).attr("id"),formcheck_settings.customRules)>-1)){for(var a=0;a<formcheck_settings.customRules.length;a++){if($(this).attr("id")===formcheck_settings.customRules[a]){b=$(this).val().search(formcheck_settings.customRulesRegex[a])>-1?true:false;if(!b){break;}}}return b;}else{return true;}};$.fn.didReceiveErrorMessage=function(b){var a=$("<div class='formcheck-error'><span class='formcheck-error-text'>"+b+"</span></div>");a.css({position:"absolute",left:$(this).offset().left-$(this).offsetParent().offset().left,top:$(this).offset().top-$(this).offsetParent().offset().top,opacity:0,width:$(this).width()});a.appendTo($(this).parent());a.animate({opacity:1,top:a.height()*-1});$(this).addClass("invalid");$(this).focus();$(this).blur(function(){if(!($(this).hasClass("invalid"))){$(".formcheck-error").remove();scrollToInvalidOrEmpty();}});};$.ajaxSubmit=function(){alert("You need to implement this method: $.ajaxSubmit = function(){...}");};function isFormReadyToSubmit(){var b=formcheck_settings.form.children("div").children("input");for(var a=0;a<b.length;a++){if(b.eq(a).attr("type")!=="hidden"){if($.inArray(b.eq(a).attr("id"),formcheck_settings.optional)===-1){if((b.eq(a).hasClass("invalid"))||(b.eq(a).val()==="")||((b.eq(a).attr("type")==="checkbox")&&!b.eq(a)[0].checked)){b.eq(a).didReceiveErrorMessage(b.eq(a).attr("title"));b.eq(a).addClass("invalid");return false;}}}}return true;}function submit(){scrollToInvalidOrEmpty();if(formcheck_settings.isAjax!==undefined&&formcheck_settings.isAjax){if(isFormReadyToSubmit()){$.ajaxSubmit();}return false;}return isFormReadyToSubmit();}function formCheckInit(){formcheck_settings.form.submit(submit);if(formcheck_settings.placeholders!==undefined){initPlaceholders();}initBlurActions();}
