(function(h){h.fn.validateMyForm=function(m){var m=h.extend({form:"#form1",requiredClass:"required",message:"Please complete all required fields",showMessage:false,showNotifications:true,notificationText:"required",notificationClass:"required-display",emailValidationClass:"email",emailNotificationText:"invalid email",numericValidationClass:"numeric",numericNotificationText:"not numeric",dateValidationClass:"date",dateNotificationText:"invalid date",daysFirst:false,ifClass:"if",thenClass:"then",shake:true,scrollUp:true,textareaLimit:0,textareaCounter:"#remaining strong",textareaCounterWrap:"#remaining",hideTextareaCounter:false,showAsterisk:true,asterisk:"*",asteriskClass:"required-asterisk",clearForm:".clearForm"},m);h(this).each(function(){if(m.showNotifications){h(m.form+" input").each(function(){if(h(this).hasClass(m.requiredClass)){d(h(this),m.notificationClass,m.notificationText)}else{if(h(this).hasClass(m.emailValidationClass)){d(h(this),m.notificationClass,m.notificationText)}else{if(h(this).hasClass(m.numericValidationClass)){d(h(this),m.notificationClass,m.notificationText)}else{if(h(this).hasClass(m.dateValidationClass)){d(h(this),m.notificationClass,m.notificationText)}}}}});h(m.form+" select").each(function(){if(h(this).hasClass(m.requiredClass)){d(h(this),m.notificationClass,m.notificationText)}});if(m.showAsterisk){h("label").each(function(){if(h(this).hasClass(m.requiredClass)){j(h(this),m.asteriskClass,m.asterisk)}})}var n=1;while(h("."+m.ifClass+n).length>0){h("."+m.thenClass+n).each(function(){d(h(this),m.notificationClass,m.notificationText)});n++}}h(m.form+" textarea").each(function(){if(m.hideTextareaCounter){h(m.textareaCounterWrap).css("visibility","hidden")}if(h(this).hasClass(m.requiredClass)){d(h(this),m.notificationClass,m.notificationText)}if(m.textareaLimit>0){h(this).bind("keyup",function(){e(m.textareaCounter,h(this),m.textareaLimit,true,m.hideTextareaCounter,m.textareaCounterWrap)})}});h(m.form).bind("submit",function(){var r=0;var q="";h(m.form+" input").each(function(){if((h(this).attr("type")=="checkbox")&&(h(this).hasClass(m.requiredClass))&&(!(h(this).is(":checked")))){if(m.showNotifications){i(h(this),m.shake,m.notificationClass)}if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if((h(this).attr("type")=="radio")&&(h(this).hasClass(m.requiredClass))){var s=h(this).attr("name");if(h("input[name="+s+"]:checked").length==0){if(m.showNotifications){i(h(this),m.shake,m.notificationClass)}if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{b(h(this),m.notificationClass)}}else{if((h(this).hasClass(m.requiredClass))&&(h(this).val()=="")){if(m.showNotifications){i(h(this),m.shake,m.notificationClass)}if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if((h(this).hasClass(m.emailValidationClass))&&(h(this).val()!="")&&(!(l(h(this).val())))){k(h(this),m.emailNotificationText,m.shake,m.notificationClass);if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if((h(this).hasClass(m.numericValidationClass))&&(h(this).val()!="")&&(!(a(h(this).val())))){k(h(this),m.numericNotificationText,m.shake,m.notificationClass);if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if((h(this).hasClass(m.dateValidationClass))&&(h(this).val()!="")&&(!(g(h(this).val(),m.daysFirst)))){k(h(this),m.dateNotificationText,m.shake,m.notificationClass);if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if((m.showNotifications)&&(h(this).hasClass(m.requiredClass)||h(this).hasClass(m.emailValidationClass)||h(this).hasClass(m.numericValidationClass)||h(this).hasClass(m.dateValidationClass))){b(h(this),m.notificationClass)}}}}}}}});h(m.form+" select").each(function(){if(h(this).hasClass(m.requiredClass)&&(h(this).val()=="")){if(m.showNotifications){i(h(this),m.shake,m.notificationClass)}if((r==0)&&(m.scrollUp)){q=h(this)}r++}});h(m.form+" textarea").each(function(){if(h(this).hasClass(m.requiredClass)&&(h(this).val().length==0)){if(m.showNotifications){i(h(this),m.shake,m.notificationClass)}if((r==0)&&(m.scrollUp)){q=h(this)}r++}});var o=1;var p=h("."+m.ifClass+o).length;while(h("."+m.ifClass+o).length>0){if(h("."+m.ifClass+o).val()!=""){h("."+m.thenClass+o).each(function(){if((h(this).attr("type")=="checkbox")&&(!(h(this).is(":checked")))){if(m.showNotifications){i(h(this),m.shake,m.notificationClass)}if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if(h(this).attr("type")=="radio"){var s=h(this).attr("name");if(h("input[name="+s+"]:checked").length==0){if(m.showNotifications){i(h(this),m.shake,m.notificationClass)}if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{b(h(this),m.notificationClass)}}else{if(h(this).val()==""){if(m.showNotifications){i(h(this),m.shake,m.notificationClass)}if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if((h(this).hasClass(m.emailValidationClass))&&(h(this).val()!="")&&(!(l(h(this).val())))){k(h(this),m.emailNotificationText,m.shake,m.notificationClass);if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if((h(this).hasClass(m.numericValidationClass))&&(h(this).val()!="")&&(!(a(h(this).val())))){k(h(this),m.numericNotificationText,m.shake,m.notificationClass);if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if((h(this).hasClass(m.dateValidationClass))&&(h(this).val()!="")&&(!(g(h(this).val(),m.daysFirst)))){k(h(this),m.dateNotificationText,m.shake,m.notificationClass);if((r==0)&&(m.scrollUp)){q=h(this)}r++}else{if(m.showNotifications){b(h(this),m.notificationClass)}}}}}}}})}else{h("."+m.thenClass+o).each(function(){if(m.showNotifications){b(h(this),m.notificationClass)}})}o++}if(r>0){if(m.scrollUp){c(q)}if(m.showMessage){alert(m.message)}return false}});if(m.showNotifications){h("."+m.requiredClass).bind("keyup",function(){if(h(this).val()!=""){b(h(this),m.notificationClass)}else{i(h(this),m.shake,m.notificationClass)}});h("select."+m.requiredClass).bind("change",function(){if(h(this).val()!=""){b(h(this),m.notificationClass)}else{i(h(this),m.shake,m.notificationClass)}})}h(m.form+" "+m.clearForm).bind("click",function(){h(m.form+" input[type=text]").val("");h(m.form+" textarea").text("");h(m.form+" textarea").trigger("keyup");h(m.form+" select option").removeAttr("selected");h(m.form+" select option[value='']").attr("selected","selected");h(m.form+" input[type=checkbox]").removeAttr("checked");h(m.form+" input[type=radio]").removeAttr("checked");h("span."+m.notificationClass).hide();h(m.textareaCounterWrap).css("visibility","hidden")})})};function j(p,m,o){var n=p.html();p.html(n+'<span class="'+m+'">'+o+"</span>")}function d(p,m,o){if(p.attr("type")=="radio"){var n=h("label[for="+p.attr("id")+"]");n.after('<span class="'+m+'">'+o+"</span>")}else{p.after('<span class="'+m+'">'+o+"</span>")}}function i(p,o,m){if(p.attr("type")=="radio"){var n=h("label[for="+p.attr("id")+"]");n.next("span."+m).fadeIn(200,function(){if(o){f(h(this))}})}else{p.next("span."+m).fadeIn(200,function(){if(o){f(h(this))}})}}function k(p,o,n,m){p.next("span."+m).html(o);p.next("span."+m).fadeIn(200,function(){if(n){f(h(this))}})}function b(o,m){if(o.attr("type")=="radio"){var n=h("label[for="+o.attr("id")+"]");n.next("span."+m).fadeOut(200)}o.next("span.required-display").fadeOut(200)}function l(m){var n=/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;if(!n.test(m)){return false}return true}function a(m){if(m!=parseFloat(m)){return false}return true}function g(s,q){var p=/^(\d{1,2})[\s\.\/-](\d{1,2})[\s\.\/-](\d{4})$/;if(!p.test(s)){return false}var o=s.match(p);var n=parseInt(o[1]);var r=parseInt(o[2]);if(q){r=parseInt(o[1]);n=parseInt(o[2])}var u=parseInt(o[3]);if(n<1||n>12||u<1900||u>2100){return false}if(n==2){var t=((u%4)==0)?29:28}else{if(n==4||n==6||n==9||n==11){var t=30}else{var t=31}}return(r>=1&&r<=t)}function f(n){for(var m=1;m<=2;m++){h(n).animate({marginLeft:"-=2px"},20).animate({marginLeft:"+=2px"},20).animate({marginLeft:"+=2px"},20).animate({marginLeft:"-=2px"},20)}}function c(n){var m=n.offset().top-100;if(h.browser.opera){h("html").animate({scrollTop:m},500)}else{h("html,body").animate({scrollTop:m},500)}}function e(q,r,n,m,o,p){var s=false;if((o)&&(r.val().length==0)){h(p).css("visibility","hidden")}else{h(p).css("visibility","")}if(r.val().length>n){s=true;if(m){r.val(r.val().substring(0,n))}}else{h(q).html(n-r.val().length)}return s}})(jQuery);
