(function(b){b.cpFormHandler={currentUrlParams:null,options:{delimiter:",",preSubmitCall:null,customValidationCall:null,validateSuccessCall:null,ajaxSuccessCall:null,reqFieldCallback:null,isSearch:false,loadUsedValues:false,dateRangeFields:null,noTermsCallback:null},buildSearchHandler:function(d){this.buildFormHandler(b.extend(d,{isSearch:true}||{}))},buildFormHandler:function(d){return this.each(function(){var g=this;g.options=b.extend(true,{},b.cpFormHandler.options);g.options=b.extend(g.options,d||{});if(g.options.isSearch&&g.options.loadUsedValues&&b.cpFormHandler.currentUrlParams==null){b.cpFormHandler.getUrlParams()}var f=b(this).find("a[fhType=submitbutton]");var e=f.attr("fhUrl");e=(e?e:(f.attr("href").indexOf("?")>0?f.attr("href").substring(0,f.attr("href").indexOf("?")):f.attr("href")));if(e.indexOf("ajax:")!=0){f.attr("href",e)}b(this).find("a[fhType=submitbutton]").click(function(){b.cpFormHandler.formSubmit(g,e);return false});b(this).find("a[fhType=resetbutton]").click(function(){b.cpFormHandler.formReset(g);return false});b(this).find(":input:not(.fhIgnore)").each(function(){if(this.tagName=="INPUT"&&this.type=="checkbox"){if(g.options.isSearch&&g.options.loadUsedValues&&b.cpFormHandler.currentUrlParams[this.name]){this.checked=((g.options.delimiter+b.cpFormHandler.currentUrlParams[this.name].toLowerCase()+g.options.delimiter).indexOf(g.options.delimiter+this.value.toLowerCase()+g.options.delimiter)>=0)}}else{if(this.tagName=="INPUT"&&this.type=="radio"){if(g.options.isSearch&&g.options.loadUsedValues&&b.cpFormHandler.currentUrlParams[this.name]){this.checked=(b.cpFormHandler.currentUrlParams[this.name].toLowerCase()==this.value.toLowerCase())}}else{if(this.tagName=="INPUT"||this.tagName=="TEXTAREA"){this.defValue=b(this).attr("defValue");if(this.defValue){b(this).focus(function(){if(this.value==this.defValue){this.value=""}});b(this).blur(function(){if(this.value==""){this.value=this.defValue}})}if(this.tagName=="INPUT"){b(this).keypress(function(h){if(h.keyCode==13){h.returnValue=false;h.cancelBubble=true;b.cpFormHandler.formSubmit(g,e);return false}})}if(g.options.isSearch&&g.options.loadUsedValues&&b.cpFormHandler.currentUrlParams[this.name]){this.value=b.cpFormHandler.currentUrlParams[this.name]}}else{if(this.tagName=="SELECT"){this.defValue=b(this).find("option:first").value;if(g.options.isSearch&&g.options.loadUsedValues&&b.cpFormHandler.currentUrlParams[this.name]){this.value=b.cpFormHandler.currentUrlParams[this.name]}}}}}});if(jQuery().datepicker){b(this).find(".fhDateWrapper").each(function(){var m=b(this).find("input:not(.fhIgnore)").get(0);var l=b(this).find("a:not(.fhIgnore)").get(0);var o=document.createElement("input");o.setAttribute("type","hidden");b(o).css("display","none");b(o).addClass("fhIgnore");b(o).val(b(m).val());b(l).parent().prepend(o);b(m).attr("fhType","dateField");if(g.options.isSearch&&g.options.loadUsedValues){var i=(g.options.dateRangeFields?((g.options.dateRangeFields+",").replace("=>","||").replace(",","|")).indexOf("|"+m.name+"|"):0);var k=null;if(i>0){var h=(g.options.dateRangeFields.substring(i,i+1)==">");var j=(","+g.options.dateRangeFields.substring(0,i+1));j=j.substring(j.lastIndexOf(",")+1,j.lastIndexOf("=>"));if(b.cpFormHandler.currentUrlParams[j]&&b.cpFormHandler.currentUrlParams[j].indexOf("@")==0){var n=b.cpFormHandler.currentUrlParams[j].substring(1);if(n.indexOf("_")>=0){k=n.split("_")[(h?0:1)];if(k.length!=8){k=null}}else{if(n.length==8){k=n}}}}else{if(b.cpFormHandler.currentUrlParams[m.name]&&b.cpFormHandler.currentUrlParams[m.name].length==9&&b.cpFormHandler.currentUrlParams[m.name].indexOf("@")==0){k=b.cpFormHandler.currentUrlParams[m.name].substring(1)}}if(k){m.value=k.substring(4,6)+"/"+k.substring(6,8)+"/"+k.substring(0,4)}else{m.value=m.defValue}}b(o).datepicker({showOtherMonths:true,selectOtherMonths:true,changeMonth:true,changeYear:true,showAnim:""});b(l).click(function(){b(o).focus();return false});b(o).change(function(){b(m).val(b(o).val())});b(m).keyup(function(p){b(o).val(b(m).val())})})}})},formSubmit:function a(l,x){if(l.options.preSubmitCall!=null){l.options.preSubmitCall(l)}var j=false;var o=new Array();var n=new Array();var s=new Array();var v=new Array();var u=new Array();if(l.options.isSearch&&l.options.dateRangeFields){var z=l.options.dateRangeFields.split(",");for(t=0;t<z.length;t++){var k=z[t].split("=>");if(k.length==2){var q=k[0];var h=k[1].split("|");if(h.length==2){var r=h[0];var g=h[1];if(r!=""){v[r]=(g==""?"_":"")+"F"+q}if(g!=""){v[g]=(r==""?"_":"")+"T"+q}u[q]=null}}}}b(l).find(":input:not(.fhIgnore)").each(function(){if(this.tagName=="INPUT"&&(this.type=="checkbox"||this.type=="radio")){var F=b(this).attr("fhrequired");if(F&&!s[this.name]&&!o[this.name]){s[this.name]=this}if(this.checked&&this.value!=""){if(F){s[this.name]=null}if(!o[this.name]){o[this.name]=""}o[this.name]+=(o[this.name]!=""?l.options.delimiter:"")+this.value}}else{if(this.tagName=="INPUT"||this.tagName=="TEXTAREA"||this.tagName=="SELECT"){var D=this.value;if(this.tagName=="SELECT"&&this.multiple){D=b(this).val();if(D==null){D=""}else{D=b.grep(b(this).val(),function(I,H){return(I)}).join(l.options.delimiter)}}var C=(D!=""&&this.defValue!=D&&D.replace(/(^\s*)|(\s*$)/g,"").length>0);var E=(b(this).attr("fhType")=="dateField");var F=b(this).attr("fhrequired");if(F&&!s[this.name]){s[this.name]=this}if(C||E){D=(C?D.replace(/(^\s*)/g,"").replace(/(\s*$)/g,""):"");if(E){if(C){D=D.replace(/[^0-9|\/]/g,"");D=D.split("/")[2]+D.split("/")[0]+D.split("/")[1];if(D.length!=8){D=""}}if(v[this.name]){var B;if(v[this.name].substring(0,1)=="_"){v[this.name]=v[this.name].substring(1);B=v[this.name].substring(1);u[B]=""}else{B=v[this.name].substring(1)}var i=(v[this.name].substring(0,1)=="F");if(u[B]==null){u[B]=D}else{var G=(i?D:u[B]);var A=(i?u[B]:D);if(G!=""){o[B]="@"+G+"_"+(A==""||A<G?"x":"")}if(A!=""&&(G==""||A>=G)){if(G==""){o[B]="@_"}o[B]+=A}}D=""}else{if(D!=""){D="@"+D}}}if(D!=""){if(F){s[this.name]=null}o[this.name]=D;if(this.name=="search"){j=true}}}}}});var e=true;var w=false;for(var t in s){if(s[t]!=null){e=false;if(l.options.reqFieldCallback!=null){l.options.reqFieldCallback(l,s[t]);w=true}}}if(!e&&l.options.noTermsCallback!=null){l.options.noTermsCallback(l);w=true}var d=false;if(e&&l.options.customValidationCall!=null){e=l.options.customValidationCall(l);d=true}if(e&&l.options.validateSuccessCall!=null){l.options.validateSuccessCall(l)}if(!e){if(!w&&!d){alert("Invalid form parameter(s).")}}else{if(l.options.isSearch){var m=(!j?"&search=":"");for(var t in o){m+="&"+t+"="+escape(o[t])}if(l.options.noTermsCallback!=null&&m=="&search="){l.options.noTermsCallback(l)}else{window.location=x+(x.indexOf("?")>=0?m:("?"+m.substring(1)))}}else{if(x.indexOf("ajax:")!=0){var p=document.createElement("FORM");b(p).attr({action:x,method:"POST",style:"display: none;"});o.vhtml="3.0";for(var t in o){var y=document.createElement("INPUT");b(y).attr({type:"hidden",name:t,value:o[t]});b(p).append(y)}b(document.body).append(p);p.submit()}else{var f="";o.vhtml="3.0";for(var t in o){f+=(f==""?"":"&")+t+"="+escape(o[t])}b.ajax({url:x.substring(5),data:f,dataType:"html",success:function(i){if(l.options.ajaxSuccessCall!=null){l.options.ajaxSuccessCall(l,i)}}});return false}}}},formReset:function a(d){b(d).find(":input:not(.fhIgnore)").each(function(){if(this.tagName=="INPUT"&&(this.type=="checkbox"||this.type=="radio")){this.checked=this.defaultChecked}else{if(this.tagName=="INPUT"||this.tagName=="TEXTAREA"||this.tagName=="SELECT"){this.value=(this.defValue?this.defValue:"");if(this.tagName=="SELECT"&&this.reset!=undefined){this.reset()}}}})},getUrlParams:function c(){b.cpFormHandler.currentUrlParams=new Object();if(window.location.search.length<=1){return}var f=window.location.search.substring(1);var e=f.split("&");for(var d=0;d<e.length;d++){b.cpFormHandler.currentUrlParams[e[d].split("=")[0]]=decodeURIComponent(e[d].split("=")[1])}}};b.fn.buildSearchHandler=b.cpFormHandler.buildSearchHandler;b.fn.buildFormHandler=b.cpFormHandler.buildFormHandler})(jQuery);
