var piAjax={enabled:true,ajaxCall:function(B,E,C,D,F){if(this.enabled==false){return false;}var A=this.getHttpObject();if(typeof A=="boolean"&&A==false){this.enabled=false;return false;}A.open(F,B+"?"+E,true);A.setRequestHeader("X_REQUESTED_WITH","XMLHttpRequest");A.onreadystatechange=function(){if(A.readyState==4){if(typeof D=="function"){D(A.responseText);}if(C){piUtils.evalScripts(A.responseText);}}};A.send(E);return true;},auditEmailField:function(D,H,B,C){var F=piUtils.getFormInputValue(D);var A="/form/checkEmailAjax/account_id/"+H+"/form_field_id/"+B+"/tracker_id/"+C+"/field_id/"+D.id;var G="param="+encodeURIComponent(encodeURIComponent(F));var E=function(J){var I=document.getElementById("error_for_"+D.id);if(I){I.innerHTML=J;}};this.postUrl(A,G,true,E);},auditField:function(D,H,A,C){var F=piUtils.getFormInputValue(D);var B="/form/auditFieldAjax/account_id/"+H+"/form_field_id/"+A+"/tracker_id/"+C;var G="param="+encodeURIComponent(encodeURIComponent(F));var E=null;this.postUrl(B,G,false,E);},getHttpObject:function(){var A=false;try{A=new ActiveXObject("Msxml2.XMLHTTP");}catch(C){try{A=new ActiveXObject("Microsoft.XMLHTTP");}catch(B){A=false;}}if(!A&&typeof XMLHttpRequest!="undefined"){try{A=new XMLHttpRequest();}catch(C){A=false;}}return A;},getUrl:function(A,D,B,C){return this.ajaxCall(A,D,B,C,"GET");},postUrl:function(A,D,B,C){return this.ajaxCall(A,D,B,C,"POST");}};var piUtils={getFormInputValue:function(F){var E=F.type.toLowerCase();switch(E){case"select-one":var B=F.selectedIndex;return B>=0?F.options[B].value:null;case"select-multiple":var A,G=F.length;if(!G){return null;}for(var D=0,A=[];D<G;D++){var C=F.options[D];if(C.selected){A.push(C.value);}}return A;case"checkbox":case"radio":return F.checked?F.value:null;default:return F.value;}},extractScripts:function(F){var H="(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)";var D=new RegExp(H,"img");var B=new RegExp(H,"im");var C=F.match(D);var E=new Array();var G=new Array();for(var A=0;A<C.length;A++){G=C[A].match(B);if(G.length>2){E.push(G[1]);}}return E;},evalScripts:function(htmlStr){var scripts=this.extractScripts(htmlStr);for(var x=0;x<scripts.length;x++){eval(scripts[x]);}}};