var debug=false,ContactInfo="",isCtrl=false,dDate="mm/dd/yyyy",dTime="08:05 am",dEmail="youremail@someplace.com",dPhone="(509) 555-1212 x123",dPhoneWSU="5-9999",dZip54="99999-9999",dZip5="99999",dZip4="9999",dMoney="$999999.99",dBudgetProj="1234-1234";function throb(b){for(var a=1;a<=2;a++){$(b).effect("highlight",{color:"#981F32"},500)}}function regExVerifier(c,d,a,b){if($(c).val().length>0){if(a.test($(c).val())){$(c).removeClass("formerror");return true}else{$.jGrowl($(c).attr("name")+" is not a valid "+b,{header:"Error"});if(d){$(c).addClass("formerror")}else{throb(c)}return false}}else{return true}}function vDate(c,d){if($(c).val()!==""){try{var a=$.datepicker.parseDate("mm/dd/yy",$(c).val());$(c).removeClass("formerror");return true}catch(b){$.jGrowl($(c).attr("name")+" does not appear to be a valid date.",{header:"Error"});if(d){$(c).addClass("formerror")}else{throb(c)}return false}}else{return true}}function vTime(b,c){var a=new RegExp(/^([1-9]|1[0-2]|0[1-9]){1}(:[0-5][0-9] [aApP][mM]){1}$/);return regExVerifier(b,c,a,"time. Example: 08:05 am")}function vEmail(b,c){var a=new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);return regExVerifier(b,c,a,"email address.")}function vPhone(b,c){var a=new RegExp(/^((\(\d{3}\) ?)|(\d{3}[- \.]))?\d{3}[- \.]\d{4}(\s(x\d+)?){0,1}$/);return regExVerifier(b,c,a,"phone number. Examples: (509) 335-1111 or (800) 222-1212 x123")}function vPhoneWSU(b,c){var a=new RegExp(/(^\d{1}-\d{4}$)/);return regExVerifier(b,c,a,"wsu phone number. Examples: 5-2037")}function vZip54(b,c){var a=new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);return regExVerifier(b,c,a,"zip code. Example: 99164-1014")}function vZip5(b,c){var a=new RegExp(/(^\d{5}$)/);return regExVerifier(b,c,a,"zip code. Example: 99164")}function vZip4(b,c){var a=new RegExp(/(^\d{4}$)/);return regExVerifier(b,c,a,"zip code extension. Example: 1014")}function vIntNum(b,c){var a=new RegExp(/^[+]?\d*$/);return regExVerifier(b,c,a,"whole number. Only numbers are allowed in this field.")}function vRealNum(b,c){var a=new RegExp(/^(\d)*\.?\d*$/);return regExVerifier(b,c,a,"floating point number. Only numbers and one period is allowed in this field, example: 1457.23")}function vMoney(b,c){var a=new RegExp(/^\$?(\d{1,3},?(\d{3},?)*\d{3}(\.\d{0,2})?|\d{1,3}(\.\d{0,2})?|\.\d{1,2}?)$/);return regExVerifier(b,c,a,"money. example: $10.99")}function vBudgetProj(b,c){var a=new RegExp(/(^\d{4}-\d{4}$)/);return regExVerifier(b,c,a,"budgetproject. example: 1234-1234")}function vXSSInject(i,f){var l=false;var c=new RegExp(/((\%3C)|<)[^\n]+((\%3E)|>)/i);if(c.test($(i).val())){l=true}var k=new RegExp(/\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/i);if(k.test($(i).val())){l=true}var j=new RegExp(/((\%27)|(\'))select/i);if(j.test($(i).val())){l=true}var h=new RegExp(/((\%27)|(\'))insert/i);if(h.test($(i).val())){l=true}var g=new RegExp(/((\%27)|(\'))update/i);if(g.test($(i).val())){l=true}var d=new RegExp(/((\%27)|(\'))delete/i);if(d.test($(i).val())){l=true}var b=new RegExp(/((\%27)|(\'))union/i);if(b.test($(i).val())){l=true}var a=new RegExp(/exec(\s|\+)+(s|x)p\w+/i);if(a.test($(i).val())){l=true}if(l){$.jGrowl($(i).attr("name")+" is not valid input as it either contains HTML or other text that is not allowed.",{header:"Error"});if(f){$(i).addClass("formerror")}else{throb(i)}return false}else{$(i).removeClass("formerror");return true}}function checkForm(a,c){var b=true;if($(a).hasClass("formrequired")&&$(a).val()==""){$.jGrowl($(a).attr("name")+" is a required field",{header:"Error",open:function(h,d,i){var f=($(window).width()/2)-500,g=140;$("#jGrowl").removeClass("center");$("#jGrowl").css({left:f+"px",top:g+"px"})}});if(c){$(a).addClass("formerror")}else{throb(a)}b=false}else{$(a).removeClass("formerror")}if(c&&$(a).hasClass("formdate")&&b){b=vDate(a,c)}if(c&&$(a).hasClass("formtime")&&b){b=vTime(a,c)}if(c&&$(a).hasClass("formemail")&&b){b=vEmail(a,c)}if(c&&$(a).hasClass("formphone")&&b){b=vPhone(a,c)}if(c&&$(a).hasClass("formphonewsu")&&b){b=vPhoneWSU(a,c)}if(c&&$(a).hasClass("formzip54")&&b){b=vZip54(a,c)}if(c&&$(a).hasClass("formzip5")&&b){b=vZip5(a,c)}if(c&&$(a).hasClass("formzip4")&&b){b=vZip4(a,c)}if(c&&$(a).hasClass("formintnum")&&b){b=vIntNum(a,c)}if(c&&$(a).hasClass("formrealnum")&&b){b=vRealNum(a,c)}if(c&&$(a).hasClass("formmoney")&&b){b=vMoney(a,c)}if(c&&$(a).hasClass("formbudgetproj")&&b){b=vBudgetProj(a,c)}if(b){b=vXSSInject(a,c)}return b}$(document).ready(function(){$.jGrowl.defaults.position="center";$.jGrowl.defaults.life=5000;ContactInfo="send an email to \n    "+jsCEmail+"\nor call\n    "+jsCPhone;document.onkeyup=function(a){if(a.which==17){isCtrl=false}};document.onkeydown=function(a){if(a.which==17){isCtrl=true}};$(".formdate").watermark(dDate);$(".formdate").keyup(function(d){if(d.which!=8){var b=$(this).val(),a=b.length;if(a===2){$(this).val(b+"/")}if(a===5){$(this).val(b+"/")}if(a===10){var c=vDate(this,false)}}});$(".formdate").datepicker({dateFormat:"mm/dd/yy",changeMonth:true,changeYear:true,yearRange:"-99:+10",showOn:"button",buttonImageOnly:true,buttonText:"Show date picker",buttonImage:"https://files.ba.wsu.edu/images/widgets/Calendar_JQUI.gif"});$(".formtime").watermark(dTime);$(".formtime").blur(function(){if($(this).val()!==""){var a=vTime(this,false)}});$(".formtime").keyup(function(c){if(c.which!=8){var b=$(this).val(),a=b.length;if(a===2){$(this).val(b+":")}if(a===5){$(this).val(b+" ")}if(a===7&&(b.substring(6,7)==="a"||b.substring(6,7)==="A")){$(this).val(b.substring(0,6)+"AM")}if(a===7&&(b.substring(6,7)==="p"||b.substring(6,7)==="P")){$(this).val(b.substring(0,6)+"PM")}}});$(".formtime").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=32&&a.which!=58&&a.which!=65&&a.which!=97&&a.which!=80&&a.which!=112&&a.which!=77&&a.which!=109&&a.which!=9&&a.which!=8&&a.which!=0&&(a.which<48||a.which>57))?false:true});$(".formemail").watermark(dEmail);$(".formemail").blur(function(){if($(this).val()!==""){var a=vEmail(this,false)}});$(".formphone").watermark(dPhone);$(".formphone").blur(function(){if($(this).val()!==""&&$(this).val()!=="("){var a=vPhone(this,false)}});$(".formphone").keyup(function(c){if(c.which!=8){var b=$(this).val(),a=b.length;if(a>1&&b.substring(0,1)!="("&&b.substring(1,2)=="("){$(this).val("("+b.substring(0,1)+b.substring(2))}if(a>=1&&b.substring(0,1)!="("){$(this).val("("+b)}if(a>1&&b.indexOf("(")===-1){$(this).val("("+b)}if(a===4){$(this).val(b+") ")}if(a===9){$(this).val(b+"-")}}});$(".formphone").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=32&&a.which!=40&&a.which!=41&&a.which!=120&&a.which!=9&&a.which!=8&&a.which!=0&&(a.which<48||a.which>57))?false:true});$(".formphonewsu").watermark(dPhoneWSU);$(".formphonewsu").blur(function(){if($(this).val()!==""&&$(this).val()!=="("){var a=vPhoneWSU(this,false)}});$(".formphonewsu").keyup(function(c){if(c.which!=8){var b=$(this).val(),a=b.length;if(a===1&&b.indexOf("-")===-1){$(this).val(b+"-")}if(a>1&&b.indexOf("-")===-1){$(this).val(b.substring(0,1)+"-"+b.substring(1))}}});$(".formphonewsu").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=32&&a.which!=40&&a.which!=41&&a.which!=120&&a.which!=9&&a.which!=8&&a.which!=0&&(a.which<48||a.which>57))?false:true});$(".formzip54").watermark(dZip54);$(".formzip54").blur(function(){if($(this).val()!=""){var a=vZip54(this,false)}});$(".formzip54").keyup(function(a){if($(this).val().length===5&&a.which!=8){$(this).val($(this).val()+"-")}});$(".formzip54").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=9&&a.which!=8&&a.which!=0&&(a.which<48||a.which>57))?false:true});$(".formzip5").watermark(dZip5);$(".formzip5").blur(function(){if($(this).val()!=""){var a=vZip5(this,false)}});$(".formzip5").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=9&&a.which!=8&&a.which!=0&&(a.which<48||a.which>57))?false:true});$(".formzip4").watermark(dZip4);$(".formzip4").blur(function(){if($(this).val()!=""){var a=vZip4(this,false)}});$(".formzip4").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=9&&a.which!=8&&a.which!=0&&(a.which<48||a.which>57))?false:true});$(".formintnum").blur(function(){if($(this).val()!=""){var a=vIntNum(this,false)}});$(".formintnum").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=9&&a.which!=8&&a.which!=0&&(a.which<48||a.which>57))?false:true});$(".formrealnum").blur(function(){if($(this).val()!=""){var a=vRealNum(this,false)}});$(".formrealnum").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=9&&a.which!=8&&a.which!=0&&a.which!=46&&(a.which<48||a.which>57))?false:true});$(".formmoney").watermark(dMoney);$(".formmoney").blur(function(){if($(this).val()!=""){var a=vMoney(this,false)}});$(".formmoney").keyup(function(c){if(c.which!=8){var b=$(this).val(),a=b.length;if(a>1&&b.substring(0,1)!="$"&&b.substring(1,2)=="$"){$(this).val("$"+b.substring(0,1)+b.substring(2))}if(a>=1&&b.substring(0,1)!="$"){$(this).val("$"+b)}if(a>1&&b.indexOf("$")===-1){$(this).val("$"+b)}}});$(".formmoney").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=9&&a.which!=8&&a.which!=0&&a.which!=46&&a.which!=36&&(a.which<48||a.which>57))?false:true});$(".formbudgetproj").watermark(dBudgetProj);$(".formbudgetproj").blur(function(){if($(this).val()!=""){var a=vBudgetProj(this,false)}});$(".formbudgetproj").keyup(function(a){if($(this).val().length===4&&a.which!=8){$(this).val($(this).val()+"-")}});$(".formbudgetproj").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=9&&a.which!=8&&a.which!=0&&(a.which<48||a.which>57))?false:true});$(".formpersonsname").bind("keypress",function(a){return((!isCtrl&&(a.which!=118&&a.which!=99&&a.which!=120))&&a.which!=32&&a.which!=9&&a.which!=8&&a.which!=0&&a.which!=39&&a.which!=46&&(a.which<65||a.which>90)&&(a.which<97||a.which>122))?false:true});$(".formelement").blur(function(){var a=checkForm(this,false)});$("input[name='FormSubmitButton']").click(function(){var f=escape($("[name='FormID']").val()),e="",b=true,h=false,d="";if(debug){d="\n"}$.each($(".formelement"),function(j,k){b=checkForm(this,true);if(!b){h=true}switch($(this).attr("type")){case"text":e+=escape($(this).attr("name"))+"FieldType=text&"+d;e+=escape($(this).attr("name"))+"="+escape($(this).val())+"&"+d;break;case"checkbox":e+=escape($(this).attr("name"))+"FieldType=checkbox&"+d;if($(this).attr("checked")==true){e+=escape($(this).attr("name"))+"=true&"+d}else{e+=escape($(this).attr("name"))+"=false&"+d}break;case"radio":if($(this).attr("checked")==true){e+=escape($(this).attr("name"))+"FieldType=radio&"+d;e+=escape($(this).attr("name"))+"="+escape($(this).val())+"&"+d}break;case"select-one":e+=escape($(this).attr("name"))+"FieldType=select-one&"+d;e+=escape($(this).attr("name"))+"="+escape($(this).val())+"&"+d;break;case"textarea":e+=escape($(this).attr("name"))+"FieldType=textarea&"+d;e+=escape($(this).attr("name"))+"="+escape($(this).val())+"&"+d;break}});var a="",g=false,c=false;$.each($("input[type='radio']"),function(j,k){if($(this).hasClass("formrequired")){c=true;if(a===""){a=$(this).attr("name")}if($(this).attr("name")!==a){if(!g){$.jGrowl("A required radio button list is blank.<br />"+a+" is required.",{header:"Error"});h=true}else{g=false}}if($(this).attr("checked")==true){g=true}a=$(this).attr("name")}});if(c){if(!g){$.jGrowl("A required radio button list is blank.<br />"+a+" is required.",{header:"Error"});h=true}else{g=true}}if(!h){e+="FormID="+f;e+="&IP="+jsIP;if(debug){alert(e)}$.ajax({url:"/utils/Process.aspx",cache:false,type:"post",data:e,dataType:"json",success:function(i){if(i.rCode==0){if(i.finishedpage!=""){if(i.finishedpage=="/"){alert("Form Submitted.");window.location=i.finishedpage}else{window.location=i.finishedpage}}else{if(i.finishedtext!=""){$("#main").html(i.finishedtext)}else{alert("Form Submitted.");window.location="/"}}}else{switch(i.rCode){case 90:alert("Warning!\nNo FormID was found in the form.\nA hidden field with an Name of FormID and a propper ID of a form must be present.");break;case 91:alert("Warning!\nThe FormID for this form does not exists in the database.\nPlease double check the FormID and try again.");break;case 98:alert("An error has occurred sending email.\nPlease check your email address and try again.\nIf this error continues, "+ContactInfo);break;case 99:alert("An error has occurred processing the form.\nPlease try again in a minute.\nIf this error continues, "+ContactInfo);break;default:alert("An unknown error has occurred.\nIf this error continues, "+ContactInfo);break}}},error:function(i,k,j){alert("There was an error processing the form.\nPlease wait a few minutes and try again.\nIf this error continues, "+ContactInfo)}})}return false})});