var formValidator={validateArr:[],validationArr:["isEmail","isBlank","isSelect","isTel","isCalDate","isDigit"],calArr:[],forceSubmit:false,init:function(errorMessage){var f=document.getElementsByTagName("form")[0];var i;if(f){if((BrowserDetect.browser=="Explorer")){f.autocomplete="off";}var els=f.elements;var str="";$j("input,select,textarea").filter(function(index){if(this.className.indexOf("validid")!=-1){var myId=this.className.substr(this.className.indexOf("validid")+7);if(myId.indexOf(" ")!=-1){myId=myId.substr(0,myId.indexOf(" "));}$j(this).attr("validid",myId);}});for(i=0;i<els.length;i++){var el=els[i];var validid=el.getAttribute("validid");if(validid != null){var myValidator=formValidator.getValidators(el.className);formValidator.validateArr.push({validid:parseInt(validid),element:el,validators:myValidator});}else if(el.nodeName=="SELECT"&&el.className.indexOf("others")!=-1){el.onchange=function(){var val=formValidator.getFieldValue(this);var oe=$j(this.name+"others");if(oe){var els=oe.getElementsByTagName("input");if(val=="others"&&oe.className=="closed"){oe.className="opened";if(els.length>0){els[0].disabled=false;els[0].focus();}}else{oe.className="closed";if(els.length>0){els[0].value="";els[0].disabled=true;}}}}}else if(el.className.indexOf("btnReset")!=-1){el.onclick=function(){formValidator.reset();return false;}}if(el.className.indexOf("tdate")!=-1){var anchor=document.getElementById("popCal"+el.id);if(anchor){var cal=new CalendarPopup();var d=new Date();d.setDate(d.getDate()-1);cal.addDisabledDates(null,formatDate(d,"yyyy-MM-dd"));this.calArr[this.calArr.length]={id:el.id,anchor: "popCal"+el.id,calpop: cal};anchor.onclick=function(){for(var i=0;i<formValidator.calArr.length;i++){if(formValidator.calArr[i].anchor==this.id){formValidator.calArr[i].calpop.select(document.getElementById(formValidator.calArr[i].id),formValidator.calArr[i].anchor,'dd-MM-yyyy');break;}}return false;};}}}f.errorMessage=errorMessage;f.onsubmit=this.performValidation;f.onreset=this.reset;}},uninit:function(){var f=document.getElementsByTagName("form")[0];f.errorMessage=f.onsubmit=f.onreset=null;},getValidators: function(classes){var arr=[];for(var i=0;i<formValidator.validationArr.length;i++){if(classes.indexOf(formValidator.validationArr[i])!=-1){arr.push(formValidator.validationArr[i]);}}return arr;},performValidation:function(){if(formValidator.forceSubmit){return true;}var f=document.getElementsByTagName("form")[0];var strError="";var errObj=null;var i,j,e,retVal,refId;for(i=0;i<formValidator.validateArr.length;i++){el=formValidator.validateArr[i].element;retVal=false;for(j=0;j<formValidator.validateArr[i].validators.length;j++){retVal=eval("formValidator."+formValidator.validateArr[i].validators[j]+"(el)");if(!retVal){break;}}refId=formValidator.validateArr[i].validid;var obj;do{obj=document.getElementById("lblvalid"+(refId--));}while(!obj);if(!retVal){if(obj){obj.className="mandatory";}if(errObj==null) {errObj=el;}strError += "error";}else{if(obj){obj.className="";}}}errMsgObj=document.getElementById('warnmsg');if(strError==""){if(errMsgObj){errMsgObj.className='hidden';}f.submit();return true;}else{if(errMsgObj){errMsgObj.className='';}errObj.focus();return false;}return false;},getFieldValue:function(el){var result="";if(el.nodeName){switch (el.nodeName){case "INPUT":case "TEXTAREA":if(el.type=="checkbox"||el.type=="radio"){if(el.checked){result="checked";}}else{result=el.value;}break;case "SELECT":if((el.ignoreFirstOption&&el.selectedIndex>0)||(!el.ignoreFirstOption&&el.selectedIndex>=0)){result=el.options[el.selectedIndex].value;}break;}}else if(typeof el=="string"){ result=el;}return result.replace(/(^\s+|\s+$)/g,"");},isBlank:function(el){return (formValidator.getFieldValue(el).length>0);},isDigit:function(el){var str=el.value;var filter=/^([0-9]+)$/;if(str.length==0){return true;}if(filter.test(str)){return true;}else{return false;}},isEmail:function(el){var email=formValidator.getFieldValue(el);var filter=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;if(filter.test(email)&&email.length>0){return true;}return false;},isCalDate:function(el){var dmy,d,m,y;var val=formValidator.getFieldValue(el);var today = new Date();var date = new Date();if(val.length==0){return true;}dmy=val.split('-');if(dmy.length!=3){return false;}d=parseInt(dmy[0],10);m=parseInt(dmy[1],10);y=parseInt(dmy[2],10);if(isNaN(d) || isNaN(m) || isNaN(y)){return false;}date.setDate(d);date.setMonth(m-1);date.setFullYear(y);if ((date.getDate() != d) || (date.getMonth() != m-1) || (date.getFullYear() != y)){return false;}if (date<today){return false;}return true;},isTel:function(el){var p=formValidator.getFieldValue(el);var filter=/^([\(\)0-9 \-\+]+)$/;if((p.length>0 && filter.test(p))||p.length==0){return true;}return false;},isSelect:function(el){var opt=formValidator.getFieldValue(el);if(opt.length>0){return true;}return false;},reset:function(form){var errMsgObj=document.getElementById('warnmsg');if(errMsgObj){errMsgObj.className='hidden';}for(var i=0;i<formValidator.validateArr.length;i++){var e=formValidator.validateArr[i].element;var refId=formValidator.validateArr[i].validid;var obj;do{obj=document.getElementById("lblvalid"+(refId--));}while(!obj);if(obj){obj.className="";}}var f=document.getElementsByTagName('form')[0];if(f){var els=f.elements;for(var i=0;i<els.length;i++){var el=els[i];if(el.nodeName=="SELECT"&&el.className.indexOf("others")!=-1){var oe=$j(el.name+"others");if(oe){oe.className="closed";var inputs=oe.getElementsByTagName("input");if(inputs.length>0){inputs[0].value="";inputs[0].disabled=true;}}}}}return true;}};/* START: contact us form */var natureEventHandler={selected:function(el){var dop=$j("#diningOptions");var diningSelect=$j("#tDining");var plan=$j("#yourPlan");if (el.value=='dining') {dop.show();plan.show();} else {dop.hide();diningSelect.attr('selectedIndex',0);plan.hide();$j("#tDate").attr('value','');$j("#tHour").attr('selectedIndex',0);$j("#tMin").attr('selectedIndex',0);$j("#tNumber_of_People").attr('value','');}},toggleContactInfo:function(el){var v=el.value;if ($j(el).attr('id')=='tDining' && v==''){v='dining';}else if ($j(el).attr('id')=='tNature_of_feedback_or_enquiry' && v==''){v='general';}var cinfo=$j("#contactInfoDiv");var info=cinfo.find(".contactInfo");var infoHeading=cinfo.children("h3");info.each(function(){if($j(this).attr('id')=='contactInfo_'+v){$j(this).show();}else {$j(this).hide();}});if (info.filter(":visible").length==0){infoHeading.hide();}else {infoHeading.show();}}};/* END: contact us form */$j(document).ready(function(){formValidator.init();$j("#clearform").click(function(e){e.preventDefault();$j(this).parents('form').get(0).reset();});/* START: contact us form */$j("#tNature_of_feedback_or_enquiry").change(function(){natureEventHandler.selected(this);natureEventHandler.toggleContactInfo(this);}).trigger('change');$j("#tDining").change(function(){natureEventHandler.toggleContactInfo(this);});if($j("#tNature_of_feedback_or_enquiry").attr('value')=='dining'){$j("#tDining").trigger('change');}/* END: contact us form */$j('.form').find(":input:not('textarea')").keydown(function(e){if (e.which==13){e.preventDefault();formValidator.performValidation();return false;}});});