var ForceUpper={init:function(a){for(var b in a)$("#"+a[b]).change(ForceUpper.handler)},handler:function(){$(this).val($(this).val().toUpperCase())}};function FormValidator(a,b,c,d,e){this.form=$(a);this.fieldCSS=b;this.validators=c;this.handleInvalid=d;this.failed=null;e||this.form.submit($.proxy(this.handler,this))}
FormValidator.prototype.handler=function(a){var b=this.form.find("label:contains('*')"),c=this;this.failed&&this.changeColours(this.fieldCSS.valid);this.failed=[];b.each(function(d,e){c.checkEmpty.call(c,e)});this.validate();if(this.failed.length>0){this.changeColours(this.fieldCSS.invalid);a.preventDefault();this.handleInvalid(this.failed);return false}return true};
FormValidator.prototype.validate=function(){for(var a=0;a!=this.validators.length;a++){for(var b=this.validators[a].func+"(this, ",c=[],d=0;d!=this.validators[a].ops.length;d++)c.push("'"+this.validators[a].ops[d]+"'");b+=c.join(",")+")";eval(b)}};FormValidator.prototype.checkEmpty=function(a){a=this.form.find("#"+$(a).attr("for"));a.val()==""&&this.addFailed(a.attr("id"))};
FormValidator.prototype.changeColours=function(a){for(var b=0;b!=this.failed.length;b++){$("#"+this.failed[b]).css("background-color",a.inputColour);$("label[for='"+this.failed[b]+"']").css("color",a.labelColour);$("label[for='"+this.failed[b]+"']").css("fontWeight",a.labelWeight)}};FormValidator.prototype.addFailed=function(a){this.failed.push(a)};FormValidator.matchFields=function(a,b,c){if($("#"+b).val()!=$("#"+c).val()){a.addFailed(b);a.addFailed(c)}};
FormValidator.phoneNumber=function(a,b){/^ *\d+[\d ]*$/.test($("#"+b).val())||a.addFailed(b)};FormValidator.radioCheck=function(a,b){$("input[name='"+b+"']:checked").length==0&&$("input[name='"+b+"']").each(function(){a.addFailed($(this).attr("id"))})};var ContactUs={validators:new Array({func:"FormValidator.matchFields",ops:["email","cemail"]},{func:"FormValidator.phoneNumber",ops:["mphone"]},{func:"FormValidator.phoneNumber",ops:["lphone"]},{func:"FormValidator.radioCheck",ops:["usertype"]},{func:"ContactUs.testFAO",ops:["fao"]},{func:"ContactUs.testSerialNo",ops:["serialnum"]}),fieldColour:{invalid:{inputColour:"#FFFBC0",labelColour:"#CC0000",labelWeight:"bold"},valid:{inputColour:"#FFFFFF",labelColour:"#000000",labelWeight:"normal"}},triggerFlag:false,
sendingMsgId:"sending",init:function(a,b,c,d){ContactUs.url=a;ContactUs.cForm=b;ContactUs.column=c;ContactUs.invalidBox=d;$(ContactUs.cForm).submit(ContactUs.submitHandler);$(ContactUs.invalidBox).ajaxError(ContactUs.errorHandler);$(ContactUs.invalidBox).ajaxSend(ContactUs.sendMsg);ContactUs.formVal=new FormValidator("#contact",ContactUs.fieldColour,ContactUs.validators,ContactUs.handleInvalid,true);ForceUpper.init(["city","postcode"])},submitHandler:function(a){if(ContactUs.formVal.handler(a))if(!ContactUs.triggerFlag){$(ContactUs.invalidBox).children().remove();
$.post(ContactUs.url,$(ContactUs.cForm).serialize(),ContactUs.requestHandler,"json")}return ContactUs.triggerFlag},requestHandler:function(a){$("#"+ContactUs.sendingMsg).remove();switch(a.status){case 1:ContactUs.success(a);break;case 2:ContactUs.invalid(a);break;case 3:ContactUs.failed(a);break;default:ContactUs.failed(a);break}},errorHandler:function(){ContactUs.triggerFlag=true;$(ContactUs.cForm).submit()},success:function(a){$(ContactUs.column).append(a.result);$(ContactUs.invalidBox).hide();
$(ContactUs.cForm).hide()},invalid:function(a){$(ContactUs.invalidBox).prepend(a.result);$(ContactUs.invalidBox).show()},failed:function(a){$(ContactUs.column).append(a.result);$(ContactUs.invalidBox).hide();$(ContactUs.cForm).hide()},sendMsg:function(){scroll(0,0);$(this).append('<p id="'+ContactUs.sendMsgId+'">Please wait: Submitting your enquiry.</p>')},handleInvalid:function(a){$(ContactUs.invalidBox).append("<p>Invalid data has been entered in "+a.length+" fields!</p>");$(window).scrollTop(0)},
testFAO:function(a,b){$("#"+b+" option:selected").val()=="0"&&a.addFailed(b)},testSerialNo:function(a,b){var c=$("#"+b).val(),d=/^[^\d\s]([^\d\s]\d{4})|([^\d\s]{2}\d{5})$/;if(c!="")d.test(c)||a.addFailed(b)}};

