(function(a){var t={preloadImg:true},b=function(c){var e=a(c.get(0).form),d=c.next();if(!d.is("label")){d=c.prev();if(d.is("label"))if(c=c.attr("id"))d=e.find('label[for="'+c+'"]')}if(d.is("label"))return d.css("cursor","pointer");return false},f=function(c){var e=a(".jqTransformSelectWrapper ul:visible");e.each(function(){var d=a(this).parents(".jqTransformSelectWrapper:first").find("select").get(0);c&&d.oLabel&&d.oLabel.get(0)==c.get(0)||a(this).hide()})},h=function(c){a(c.target).parents(".jqTransformSelectWrapper").length=== 0&&f(a(c.target))},q=function(){a(document).mousedown(h)},g=function(c){var e;a(".jqTransformSelectWrapper select",c).each(function(){e=this.selectedIndex<0?0:this.selectedIndex;a("ul",a(this).parent()).each(function(){a("a:eq("+e+")",this).click()})});a("a.jqTransformCheckbox, a.jqTransformRadio",c).removeClass("jqTransformChecked");a("input:checkbox, input:radio",c).each(function(){this.checked&&a("a",a(this).parent()).addClass("jqTransformChecked")})};a.fn.jqTransInputButton=function(){return this.each(function(){var c= a('<button id="'+this.id+'" name="'+this.name+'" type="'+this.type+'" class="'+this.className+' jqTransformButton"><span><span>'+a(this).attr("value")+"</span></span>").hover(function(){c.addClass("jqTransformButton_hover")},function(){c.removeClass("jqTransformButton_hover")}).mousedown(function(){c.addClass("jqTransformButton_click")}).mouseup(function(){c.removeClass("jqTransformButton_click")});a(this).replaceWith(c)})};a.fn.jqTransInputText=function(){return this.each(function(){var c=a(this); if(!(c.hasClass("jqtranformdone")||!c.is("input"))){c.addClass("jqtranformdone");var e=b(a(this));e&&e.bind("click",function(){c.focus()});e=c.width();e=242;c.css("width",e);c.addClass("jqTransformInput").wrap('<div class="jqTransformInputWrapper"><div class="jqTransformInputInner"><div></div></div></div>');var d=c.parent().parent().parent();d.css("width",e+10);c.focus(function(){d.addClass("jqTransformInputWrapper_focus")}).blur(function(){d.removeClass("jqTransformInputWrapper_focus")}).hover(function(){d.addClass("jqTransformInputWrapper_hover")}, function(){d.removeClass("jqTransformInputWrapper_hover")});a.browser.safari&&d.addClass("jqTransformSafari");a.browser.safari&&c.css("width",d.width()+16);this.wrapper=d}})};a.fn.jqTransCheckBox=function(){return this.each(function(){if(!a(this).hasClass("jqTransformHidden")){var c=a(this),e=b(c);e&&e.click(function(){d.trigger("click")});var d=a('<a href="#" class="jqTransformCheckbox"></a>');c.addClass("jqTransformHidden").wrap('<span class="jqTransformCheckboxWrapper"></span>').parent().prepend(d); c.change(function(){this.checked&&d.addClass("jqTransformChecked")||d.removeClass("jqTransformChecked");return true});d.click(function(){if(c.attr("disabled"))return false;c.trigger("click").trigger("change");return false});this.checked&&d.addClass("jqTransformChecked")}})};a.fn.jqTransRadio=function(){return this.each(function(){if(!a(this).hasClass("jqTransformHidden")){var c=a(this),e=this;(oLabel=b(c))&&oLabel.click(function(){d.trigger("click")});var d=a('<a href="#" class="jqTransformRadio" rel="'+ this.name+'"></a>');c.addClass("jqTransformHidden").wrap('<span class="jqTransformRadioWrapper"></span>').parent().prepend(d);c.change(function(){e.checked&&d.addClass("jqTransformChecked")||d.removeClass("jqTransformChecked");return true});d.click(function(){if(c.attr("disabled"))return false;c.trigger("click").trigger("change");a('input[name="'+c.attr("name")+'"]',e.form).not(c).each(function(){a(this).attr("type")=="radio"&&a(this).trigger("change")});return false});e.checked&&d.addClass("jqTransformChecked")}})}; a.fn.jqTransTextarea=function(){return this.each(function(){var c=a(this);if(!c.hasClass("jqtransformdone")){c.addClass("jqtransformdone");(oLabel=b(c))&&oLabel.click(function(){c.focus()});var e='<table cellspacing="0" cellpadding="0" border="0" class="jqTransformTextarea">';e+='<tr><td id="jqTransformTextarea-tl"></td><td id="jqTransformTextarea-tm"></td><td id="jqTransformTextarea-tr"></td></tr>';e+='<tr><td id="jqTransformTextarea-ml">&nbsp;</td><td id="jqTransformTextarea-mm"><div></div></td><td id="jqTransformTextarea-mr">&nbsp;</td></tr>'; e+='<tr><td id="jqTransformTextarea-bl"></td><td id="jqTransformTextarea-bm"></td><td id="jqTransformTextarea-br"></td></tr>';e+="</table>";var d=a(e).insertAfter(c).hover(function(){!d.hasClass("jqTransformTextarea-focus")&&d.addClass("jqTransformTextarea-hover")},function(){d.removeClass("jqTransformTextarea-hover")});c.focus(function(){d.removeClass("jqTransformTextarea-hover").addClass("jqTransformTextarea-focus")}).blur(function(){d.removeClass("jqTransformTextarea-focus")}).appendTo(a("#jqTransformTextarea-mm div", d));this.oTable=d;a.browser.safari&&a("#jqTransformTextarea-mm",d).addClass("jqTransformSafariTextarea").find("div").css("height",c.height()).css("width",c.width())}})};a.fn.jqTransSelect=function(){return this.each(function(c){var e=a(this);if(!e.hasClass("jqTransformHidden"))if(!e.attr("multiple")){var d=b(e),n=e.addClass("jqTransformHidden").wrap('<div class="jqTransformSelectWrapper"></div>').parent().css({zIndex:10-c});n.prepend('<div><span></span><a href="#" class="jqTransformSelectOpen"></a></div><ul></ul>'); var l=a("ul",n).css("width",e.width()).hide();a("option",this).each(function(j){j=a('<li><a href="#" index="'+j+'">'+a(this).html()+"</a></li>");l.append(j)});l.find("a").click(function(){a("a.selected",n).removeClass("selected");a(this).addClass("selected");if(e[0].selectedIndex!=a(this).attr("index")&&e[0].onchange){e[0].selectedIndex=a(this).attr("index");e[0].onchange()}e[0].selectedIndex=a(this).attr("index");a("span:eq(0)",n).html(a(this).html());l.hide();return false});a("a:eq("+this.selectedIndex+ ")",l).click();a("span:first",n).click(function(){a("a.jqTransformSelectOpen",n).trigger("click")});d&&d.click(function(){a("a.jqTransformSelectOpen",n).trigger("click")});this.oLabel=d;var s=a("a.jqTransformSelectOpen",n).click(function(){l.css("display")=="none"&&f();if(e.attr("disabled"))return false;l.slideToggle("fast",function(){var j=a("a.selected",l).offset().top-l.offset().top;l.animate({scrollTop:j})});return false});c=e.outerWidth();d=a("span:first",n);s=c>d.innerWidth()?c+s.outerWidth(): n.width();n.css("width",s);l.css("width",s-2);d.css({width:c});l.css({display:"block",visibility:"hidden"});c=a("li",l).length*a("li:first",l).height();c<l.height()&&l.css({height:c,overflow:"hidden"});l.css({display:"none",visibility:"visible"})}})};a.fn.jqTransform=function(c){a.extend({},t,c);return this.each(function(){var e=a(this);if(!e.hasClass("jqtransformdone")){e.addClass("jqtransformdone");a('input:submit, input:reset, input[type="button"]',this).jqTransInputButton();a("input:text, input:password", this).jqTransInputText();a("input:checkbox",this).jqTransCheckBox();a("input:radio",this).jqTransRadio();a("textarea",this).jqTransTextarea();a("select",this).jqTransSelect().length>0&&q();e.bind("reset",function(){var d=function(){g(this)};window.setTimeout(d,10)})}})}})(jQuery); (function(a){var t=true;a.fn.validationEngine=function(b){allRules=a.validationEngineLanguage?a.validationEngineLanguage.allRules:{required:{regex:"none",alertText:"* This field is required",alertTextCheckboxMultiple:"* Please select an option",alertTextCheckboxe:"* This checkbox is required"},length:{regex:"none",alertText:"*Between ",alertText2:" and ",alertText3:" characters allowed"},maxCheckbox:{regex:"none",alertText:"* Checks allowed Exceeded"},minCheckbox:{regex:"none",alertText:"* Please select ", alertText2:" options"},confirm:{regex:"none",alertText:"* Your field is not matching"},telephone:{regex:"/^[0-9-() ]+$/",alertText:"* Invalid phone number"},email:{regex:"/^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+.)+[a-zA-Z0-9]{2,4}$/",alertText:"* Invalid email address"},date:{regex:"/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/",alertText:"* Invalid date, must be in YYYY-MM-DD format"},onlyNumber:{regex:"/^[0-9 ]+$/",alertText:"* Numbers only"},noSpecialCaracters:{regex:"/^[0-9a-zA-Z]+$/",alertText:"* No special caracters allowed"}, ajaxUser:{file:"validateUser.php",alertTextOk:"* This user is available",alertTextLoad:"* Loading, please wait",alertText:"* This user is already taken"},ajaxName:{file:"validateUser.php",alertText:"* This name is already taken",alertTextOk:"* This name is available",alertTextLoad:"* Loading, please wait"},onlyLetter:{regex:"/^[a-zA-Z ']+$/",alertText:"* Letters only"}};b=jQuery.extend({allrules:allRules,validationEventTriggers:"blur",inlineValidation:true,returnIsValid:false,ajaxSubmit:false,promptPosition:"topRight", success:false,failure:function(){}},b);a.validationEngine.ajaxValidArray=[];if(b.inlineValidation==true){if(t==true){a(this).find("[class^=validate]").not("[type=checkbox]").bind(b.validationEventTriggers,function(){f(this)});a(this).find("[class^=validate][type=checkbox]").bind("click",function(){f(this)});t=false}function f(h){if(a.validationEngine.intercept==false||!a.validationEngine.intercept){a.validationEngine.onSubmitValid=false;a.validationEngine.loadValidation(h,b)}else a.validationEngine.intercept= false}}if(b.returnIsValid==true)return a.validationEngine.submitValidation(this,b)?false:true;a(this).bind("submit",function(){a.validationEngine.onSubmitValid=true;if(a.validationEngine.submitValidation(this,b)==false){if(a.validationEngine.submitForm(this,b)==true)return false}else{b.failure&&b.failure();return false}})};a.validationEngine={submitForm:function(b){if(a.validationEngine.settings.ajaxSubmit){a.ajax({type:"POST",url:a.validationEngine.settings.ajaxSubmitFile,async:true,data:a(b).serialize(), error:function(f,h){a.validationEngine.debug("error in the ajax: "+f.status+" "+h)},success:function(f){if(f=="true"){a(b).css("opacity",1);a(b).animate({opacity:0,height:0},function(){a(b).css("display","none");a(b).before("<div class='ajaxSubmit'>"+a.validationEngine.settings.ajaxSubmitMessage+"</div>");a.validationEngine.closePrompt(".formError",true);a(".ajaxSubmit").show("slow");if(a.validationEngine.settings.success){a.validationEngine.settings.success&&a.validationEngine.settings.success(); return false}})}else{f=eval("("+f+")");f.jsonValidateReturn||a.validationEngine.debug("you are not going into the success fonction and jsonValidateReturn return nothing");errorNumber=f.jsonValidateReturn.length;for(index=0;index<errorNumber;index++){fieldId=f.jsonValidateReturn[index][0];promptError=f.jsonValidateReturn[index][1];type=f.jsonValidateReturn[index][2];a.validationEngine.buildPrompt(fieldId,promptError,type)}}}});return true}if(a.validationEngine.settings.success){a(b).unbind("submit"); a.validationEngine.settings.success&&a.validationEngine.settings.success();return true}return false},buildPrompt:function(b,f,h,q){var g=document.createElement("div"),c=document.createElement("div");linkTofield=a(b).attr("id")+"formError";linkTofield=linkTofield.replace("[","");linkTofield=linkTofield.replace("]","");a(g).addClass("formError");h=="pass"&&a(g).addClass("greenPopup");h=="load"&&a(g).addClass("blackPopup");q&&a(g).addClass("ajaxed");a(g).addClass(linkTofield);a(c).addClass("formErrorContent"); a("body").append(g);a(g).append(c);if(a.validationEngine.showTriangle!=false){h=document.createElement("div");a(h).addClass("formErrorArrow");a(g).append(h);if(a.validationEngine.settings.promptPosition=="bottomLeft"||a.validationEngine.settings.promptPosition=="bottomRight"){a(h).addClass("formErrorArrowBottom");a(h).html('<div class="line1"><!-- --\></div><div class="line2"><!-- --\></div><div class="line3"><!-- --\></div><div class="line4"><!-- --\></div><div class="line5"><!-- --\></div><div class="line6"><!-- --\></div><div class="line7"><!-- --\></div><div class="line8"><!-- --\></div><div class="line9"><!-- --\></div><div class="line10"><!-- --\></div>')}if(a.validationEngine.settings.promptPosition== "topLeft"||a.validationEngine.settings.promptPosition=="topRight"){a(g).append(h);a(h).html('<div class="line10"><!-- --\></div><div class="line9"><!-- --\></div><div class="line8"><!-- --\></div><div class="line7"><!-- --\></div><div class="line6"><!-- --\></div><div class="line5"><!-- --\></div><div class="line4"><!-- --\></div><div class="line3"><!-- --\></div><div class="line2"><!-- --\></div><div class="line1"><!-- --\></div>')}}a(c).html(f);callerTopPosition=a(b).offset().top;callerleftPosition= a(b).offset().left;callerWidth=a(b).width();inputHeight=a(g).height();if(a.validationEngine.settings.promptPosition=="topRight"){callerleftPosition+=callerWidth-30;callerTopPosition+=-inputHeight-10}if(a.validationEngine.settings.promptPosition=="topLeft")callerTopPosition+=-inputHeight-10;if(a.validationEngine.settings.promptPosition=="centerRight")callerleftPosition+=callerWidth+13;if(a.validationEngine.settings.promptPosition=="bottomLeft"){callerHeight=a(b).height();callerleftPosition=callerleftPosition; callerTopPosition=callerTopPosition+callerHeight+15}if(a.validationEngine.settings.promptPosition=="bottomRight"){callerHeight=a(b).height();callerleftPosition+=callerWidth-30;callerTopPosition+=callerHeight+15}a(g).css({top:callerTopPosition,left:callerleftPosition,opacity:0});return a(g).animate({opacity:0.87},function(){return true})},updatePromptText:function(b,f,h,q){linkTofield=a(b).attr("id")+"formError";linkTofield=linkTofield.replace("[","");linkTofield=linkTofield.replace("]","");var g= "."+linkTofield;h=="pass"?a(g).addClass("greenPopup"):a(g).removeClass("greenPopup");h=="load"?a(g).addClass("blackPopup"):a(g).removeClass("blackPopup");q?a(g).addClass("ajaxed"):a(g).removeClass("ajaxed");a(g).find(".formErrorContent").html(f);callerTopPosition=a(b).offset().top;inputHeight=a(g).height();if(a.validationEngine.settings.promptPosition=="bottomLeft"||a.validationEngine.settings.promptPosition=="bottomRight"){callerHeight=a(b).height();callerTopPosition=callerTopPosition+callerHeight+ 15}if(a.validationEngine.settings.promptPosition=="centerRight")callerleftPosition+=callerWidth+13;if(a.validationEngine.settings.promptPosition=="topLeft"||a.validationEngine.settings.promptPosition=="topRight")callerTopPosition=callerTopPosition-inputHeight-10;a(g).animate({top:callerTopPosition})},loadValidation:function(b,f){a.validationEngine.settings=f;rulesParsing=a(b).attr("class");rulesRegExp=/\[(.*)\]/;getRules=rulesRegExp.exec(rulesParsing);str=getRules[1];pattern=/\W+/;result=str.split(pattern); return b=a.validationEngine.validateCall(b,result)},validateCall:function(b,f){function h(){if(a("input[name='"+p+"']").size()>1&&(callerType=="radio"||callerType=="checkbox")){b=a("input[name='"+p+"'][type!=hidden]:first");a.validationEngine.showTriangle=false;v=a(b).attr("id")}}function q(){if(a("input[name='"+p+"']").size()>1&&(callerType=="radio"||callerType=="checkbox"))b=a("input[name='"+p+"'][type!=hidden]:first")}function g(k,m){callerType=a(k).attr("type");if(callerType=="text"||callerType== "password"||callerType=="textarea")if(!a(k).val()){a.validationEngine.isError=true;j+=a.validationEngine.settings.allrules[m[i]].alertText+"<br />"}if(callerType=="radio"||callerType=="checkbox"){p=a(k).attr("name");if(a("input[name='"+p+"']:checked").size()==0){a.validationEngine.isError=true;j+=a("input[name='"+p+"']").size()==1?a.validationEngine.settings.allrules[m[i]].alertTextCheckboxe+"<br />":a.validationEngine.settings.allrules[m[i]].alertTextCheckboxMultiple+"<br />"}}if(callerType=="select-one"){p= a(k).attr("id");if(!a("#"+p).val()){a.validationEngine.isError=true;j+=a.validationEngine.settings.allrules[m[i]].alertText+"<br />"}}if(callerType=="select-multiple"){p=a(k).attr("id");if(!a("#"+p).val()){a.validationEngine.isError=true;j+=a.validationEngine.settings.allrules[m[i]].alertText+"<br />"}}}function c(k,m,o){customRule=m[o+1];pattern=eval(a.validationEngine.settings.allrules[customRule].regex);if(!pattern.test(a(k).attr("value"))){a.validationEngine.isError=true;j+=a.validationEngine.settings.allrules[customRule].alertText+ "<br />"}}function e(k,m,o){customAjaxRule=m[o+1];postfile=a.validationEngine.settings.allrules[customAjaxRule].file;fieldValue=a(k).val();ajaxCaller=k;fieldId=a(k).attr("id");ajaxValidate=true;(ajaxisError=a.validationEngine.isError)||a.ajax({type:"POST",url:postfile,async:true,data:"validateValue="+fieldValue+"&validateId="+fieldId+"&validateError="+customAjaxRule,beforeSend:function(){if(a.validationEngine.settings.allrules[customAjaxRule].alertTextLoad)if(a("div."+fieldId+"formError")[0])a.validationEngine.updatePromptText(ajaxCaller, a.validationEngine.settings.allrules[customAjaxRule].alertTextLoad,"load");else return a.validationEngine.buildPrompt(ajaxCaller,a.validationEngine.settings.allrules[customAjaxRule].alertTextLoad,"load")},error:function(r,u){a.validationEngine.debug("error in the ajax: "+r.status+" "+u)},success:function(r){function u(w){for(x=0;x<ajaxErrorLength;x++)if(a.validationEngine.ajaxValidArray[x][0]==fieldId){a.validationEngine.ajaxValidArray[x][1]=w;existInarray=true}}r=eval("("+r+")");ajaxisError=r.jsonValidateReturn[2]; customAjaxRule=r.jsonValidateReturn[1];fieldId=ajaxCaller=a("#"+r.jsonValidateReturn[0])[0];ajaxErrorLength=a.validationEngine.ajaxValidArray.length;existInarray=false;if(ajaxisError=="false"){u(false);if(!existInarray){a.validationEngine.ajaxValidArray[ajaxErrorLength]=new Array(2);a.validationEngine.ajaxValidArray[ajaxErrorLength][0]=fieldId;existInarray=a.validationEngine.ajaxValidArray[ajaxErrorLength][1]=false}a.validationEngine.ajaxValid=false;j+=a.validationEngine.settings.allrules[customAjaxRule].alertText+ "<br />";a.validationEngine.updatePromptText(ajaxCaller,j,"",true)}else{u(true);a.validationEngine.ajaxValid=true;if(a.validationEngine.settings.allrules[customAjaxRule].alertTextOk)a.validationEngine.updatePromptText(ajaxCaller,a.validationEngine.settings.allrules[customAjaxRule].alertTextOk,"pass",true);else{ajaxValidate=false;a.validationEngine.closePrompt(ajaxCaller)}}}})}function d(k,m,o){confirmField=m[o+1];if(a(k).attr("value")!=a("#"+confirmField).attr("value")){a.validationEngine.isError= true;j+=a.validationEngine.settings.allrules.confirm.alertText+"<br />"}}function n(k,m,o){startLength=eval(m[o+1]);endLength=eval(m[o+2]);feildLength=a(k).attr("value").length;if(feildLength<startLength||feildLength>endLength){a.validationEngine.isError=true;j+=a.validationEngine.settings.allrules.length.alertText+startLength+a.validationEngine.settings.allrules.length.alertText2+endLength+a.validationEngine.settings.allrules.length.alertText3+"<br />"}}function l(k,m,o){nbCheck=eval(m[o+1]);groupname= a(k).attr("name");groupSize=a("input[name='"+groupname+"']:checked").size();if(groupSize>nbCheck){a.validationEngine.showTriangle=false;a.validationEngine.isError=true;j+=a.validationEngine.settings.allrules.maxCheckbox.alertText+"<br />"}}function s(k,m,o){nbCheck=eval(m[o+1]);groupname=a(k).attr("name");groupSize=a("input[name='"+groupname+"']:checked").size();if(groupSize<nbCheck){a.validationEngine.isError=true;a.validationEngine.showTriangle=false;j+=a.validationEngine.settings.allrules.minCheckbox.alertText+ " "+nbCheck+" "+a.validationEngine.settings.allrules.minCheckbox.alertText2+"<br />"}}var j="";a(b).attr("id")||a.validationEngine.debug("This field have no ID attribut( name & class displayed): "+a(b).attr("name")+" "+a(b).attr("class"));var v=a(b).attr("id");b=b;ajaxValidate=false;var p=a(b).attr("name");a.validationEngine.isError=false;a.validationEngine.showTriangle=true;callerType=a(b).attr("type");for(i=0;i<f.length;i++)switch(f[i]){case "optional":if(!a(b).val()){a.validationEngine.closePrompt(b); return a.validationEngine.isError}break;case "required":g(b,f);break;case "custom":c(b,f,i);break;case "ajax":a.validationEngine.onSubmitValid||e(b,f,i);break;case "length":n(b,f,i);break;case "maxCheckbox":l(b,f,i);groupname=a(b).attr("name");b=a("input[name='"+groupname+"']");break;case "minCheckbox":s(b,f,i);groupname=a(b).attr("name");b=a("input[name='"+groupname+"']");break;case "confirm":d(b,f,i);break;default:}if(a.validationEngine.isError==true){h();a("div."+v+"formError").size()==0?a.validationEngine.buildPrompt(b, j,"error"):a.validationEngine.updatePromptText(b,j)}else{q();a.validationEngine.closePrompt(b)}return a.validationEngine.isError?a.validationEngine.isError:false},closePrompt:function(b,f){if(f){a(b).fadeTo("fast",0,function(){a(b).remove()});return false}if(!ajaxValidate){linkTofield=a(b).attr("id")+"formError";linkTofield=linkTofield.replace("[","");linkTofield=linkTofield.replace("]","");closingPrompt="."+linkTofield;a(closingPrompt).fadeTo("fast",0,function(){a(closingPrompt).remove()})}},debug:function(b){a("#debugMode")[0]|| a("body").append("<div id='debugMode'><div class='debugError'><strong>This is a debug mode, you got a problem with your form, it will try to help you, refresh when you think you nailed down the problem</strong></div></div>");a(".debugError").append("<div class='debugerror'>"+b+"</div>")},submitValidation:function(b,f){var h=false;a.validationEngine.settings=f;a.validationEngine.ajaxValid=true;a(b).find(".formError").remove();a(b).find("[class^=validate]").size();a(b).find("[class^=validate]").each(function(){callerId= a(this).attr("id");if(!a("."+callerId+"formError").hasClass("ajaxed")){var q=a.validationEngine.loadValidation(this,f);return q?(h=true):""}});ajaxErrorLength=a.validationEngine.ajaxValidArray.length;for(x=0;x<ajaxErrorLength;x++)if(a.validationEngine.ajaxValidArray[x][1]==false)a.validationEngine.ajaxValid=false;return h||!a.validationEngine.ajaxValid?true:false}}})(jQuery);