/*
 *  Javascript Arts by Arwin Ortiz
 *  Form Validation @v2.061010
 */
var WIN=(typeof WIN=="object")?WIN:{};WIN.validateForm=function(buttonId,valSetting,processPage,msgSuccess,msgError){var buttonId=$('#'+buttonId);var formId=buttonId.parents("form").attr("id");var loadingHtml='<img src="images/win_loading.gif" class="loading_html" />';buttonId.after(loadingHtml);$('#'+formId+' .loading_html').hide();var errors=[];var formReset=function(elmId,wrongValue,messageText){errors=[];};var loadingShow=function(){buttonId.hide();$('#'+formId+' .loading_html').show();};var loadingHide=function(){$('#'+formId+' .loading_html').hide();buttonId.show();};var createAlert=function(elmId,messageText){errors.push(messageText);};var valueCheck=function(elmId,fields_val,messageText){if(fields_val==''||fields_val.length==0){createAlert(elmId,messageText);}};var isEmail=function(s){var reEmail=new RegExp(/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i);if(!reEmail.test(s))return false;else return true;};var isChecked=function(id){var checked=$("input[name="+id+"]:checked").length;if(checked==0)return false;else return true;};var isInt=function(n){var reInt=new RegExp(/^-?\d+$/);if(!reInt.test(n))return false;else return true;};var isAlpha=function(n){var reAlpha=new RegExp(/^[a-zA-Z]+$/);if(!reAlpha.test(n))return false;else return true;};var isUrl=function(n){var reUrl=new RegExp(/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i);if(!reUrl.test(n))return false;else return true;};var recaptchaCheck=function(formId){challengeField=$('#'+formId+' input#recaptcha_challenge_field').val();responseField=$('#'+formId+' input#recaptcha_response_field').val();var html=$.ajax({type:"POST",url:"recaptcha_ajax.php",data:"recaptcha_challenge_field="+challengeField+"&recaptcha_response_field="+responseField,async:false,dataType:"html"}).responseText;if(html=='success'){return true;}else{return false;}};var isRegex=function(fieldsArgs,fields_val){var reRegex=new RegExp(fieldsArgs,'i');if(!reRegex.test(fields_val)){return false;}else{return true;}};var report=function(errors){var msg="We have found the following error(s):\n";for(var i=0;i<errors.length;i++){var numError=i+1;msg+="\n"+numError+". "+errors[i];}alert(msg);};var msgOk='<div style="clear:both"><div style="font:bold 20px/1.5em Arial, Helvetica, sans-serif">Success</div><br /><div style="font:normal 12px/1.5em Arial, Helvetica, sans-serif">Your email was sent.</div></div>';var msgNotOk='<div style="clear:both"><div style="font:bold 20px/1.5em Arial, Helvetica, sans-serif">Errors occured</div><br /><div style="font:normal 12px/1.5em Arial, Helvetica, sans-serif">Please try again later.</div></div>';var msgSuccessDefault=function(){$('#'+formId).slideUp("normal",function(){$('#'+formId).before(msgOk);});};var msgErrorDefault=function(){$('#'+formId).slideUp("normal",function(){$('#'+formId).before(msgNotOk);});};if(msgSuccess==''||msgSuccess==null){msgSuccess=msgSuccessDefault;}if(msgError==''||msgError==null){msgError=msgErrorDefault;}var send=function(formId,target_url){var inputs=$('#'+formId+' :input').serialize();$.ajax({type:"POST",url:target_url,data:inputs,dataType:"html",success:function(response){if(response){response=jQuery.trim(response);if(response=='success'){msgSuccess();}else{msgError();}}},error:function(xhr,err,e){alert("Error: "+err);loadingHide();}});return false;};var runCheck=function(){loadingShow();formReset();for(i=0;i<valSetting.fields.length;i++){var fieldsId=valSetting.fields[i].id;var fieldsType=valSetting.fields[i].type;var fieldsMsg=valSetting.fields[i].msg;var fieldsArgs=(valSetting.fields[i].args!='')?valSetting.fields[i].args:'';if(fieldsType!="checkbox"){var fields_val=jQuery.trim($('#'+fieldsId).val());}if(fieldsType=="checkbox"||fieldsType=="radio"){if(!isChecked(fieldsId)){createAlert(fieldsId,fieldsMsg);}}else if(fieldsType=="email"){if(isEmail(fields_val)==false){createAlert(fieldsId,fieldsMsg);}}else if(fieldsType=="number"){if(isInt(fields_val)==false){createAlert(fieldsId,fieldsMsg);}}else if(fieldsType=="alpha"){if(isAlpha(fields_val)==false){createAlert(fieldsId,fieldsMsg);}}else if(fieldsType=="url"){if(isUrl(fields_val)==false){createAlert(fieldsId,fieldsMsg);}}else if(fieldsType=="recaptcha"){var recaptchaUp=true;if(!recaptchaCheck(formId)){createAlert(fieldsId,fieldsMsg);}}else if(fieldsType=="func"){if(!fieldsArgs()){createAlert(fieldsId,fieldsMsg);}}else if(fieldsType=="regex"){if(isRegex(fieldsArgs,fields_val)==false){createAlert(fieldsId,fieldsMsg);}}else{valueCheck(fieldsId,fields_val,fieldsMsg);}}if(errors.length>0){loadingHide();if(recaptchaUp){Recaptcha.reload();}report(errors);}else{send(formId,processPage);}};buttonId.click(function(){runCheck();return false;});};WIN.defaultVal=function(obj){for(i=0;i<obj.fields.length;i++){var id=obj.fields[i].id;var type=(obj.fields[i].type!='')?obj.fields[i].type:'';var args=obj.fields[i].args;if(type=="checkbox"||type=="radio"){for(i2=0;i2<args.length;i2++){args2=args[i2];$('input[name="'+id+'"]:nth('+args2+')').attr('checked','checked');}}else if(type=="regular"){$('#'+id).val(args);}else{$('#'+id).addClass('defaultVal').val(args);}}$('.defaultVal').each(function(){var default_value=this.value;$(this).focus(function(){if(this.value==default_value){this.value='';}});$(this).blur(function(){if(this.value==''){this.value=default_value;}});});};WIN.refreshPage=function(id){$('#'+id).click(function(){var sURL=unescape(window.location.pathname);window.location.href=sURL;});};WIN.redirect=function(s){window.location.replace(s);};
