 // Kameleon CMS v4 public site Javascript. Copyright Kameleon Digital (http://www.kameleondigital.com)
var KamForms=new Hash({validationErrors:null,initialise:function(){var a=$(document.body);if(a){this.setupForms(a)}},setupForms:function(a){$(a).getElements("form.kamValidate").each(function(c,b){c.removeEvents();c.addEvent("submit",function(){var d=KamForms.validate(c);if(!d){return false}});$$("input.kamDataTypeDate").each(function(d){new DatePicker(d)})})},validate:function(a){var a=$(a);if(a){var b=a.getElements("label").each(function(i){var k=i.get("for");if(k){var d=a.getElementById(k);if(d){var g=d.get("tag").toLowerCase();var c="";var f="";if(i.hasClass("kamDataTypeFile")){f=d.getSelectedFile()}else{(g=="select"||g=="textarea")?c=g:c=d.get("type");switch(c){case"select":if(d.options.length>0&&d.selectedIndex>=0){f=$(d.options[d.selectedIndex]).get("value")}else{f=""}break;default:f=d.get("value");break}}f=f.replace(/^\s+|\s+$/g,"");if(i.hasClass("kamRequired")){var h=false;if(c=="checkbox"){h=(!d.checked)?true:false}else{h=(f=="")?true:false}(h)?KamForms.generateFieldError(i.get("for"),i.get("html"),"is required"):null}if(f!=""){if(i.hasClass("kamDataTypeEmail")){(!KamForms.isEmailAddress(f))?KamForms.generateFieldError(i.get("for"),i.get("html"),"is not an email address"):null}else{if(i.hasClass("kamDataTypeInteger")){(!KamForms.isInteger(f))?KamForms.generateFieldError(i.get("for"),i.get("html"),"is not a whole number"):null}else{if(i.hasClass("kamDataTypeDecimal")){(!KamForms.isDecimal(f))?KamForms.generateFieldError(i.get("for"),i.get("html"),"is not a decimal number"):null}}}}}else{alert(k+" not found in document")}}else{if(i.hasClass("kamFieldLabel")&&i.hasClass("kamRequired")){var j=$(i.parentNode);if(j.tagName=="DIV"&&j.hasClass("kamCheckBox")){var h=true;var e=j.getElements("input").each(function(l){if(l.get("type")=="checkbox"){if(l.checked){h=false}}});if(h){(h)?KamForms.generateFieldError(null,i.get("html"),"is required"):null}}}}});if(KamForms.validationErrors){this.notifyOfErrors(a);return false}}else{KamForms.generateFieldError("Validation of form failed, form is null")}return true},isEmailAddress:function(b){var a=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;return a.test(b)},isInteger:function(a){return !(isNaN(a)||(a%1))},isDecimal:function(a){return !(isNaN(a))},removeTags:function(c,a){var b=new RegExp("<"+a+"[^.]*/"+a+">","gi");return c.replace(b,"").replace("  "," ")},generateFieldError:function(a,c,b){c=KamForms.removeTags(c.replace(":","").replace("*",""),"span");if(!KamForms.validationErrors){KamForms.validationErrors=new Array()}KamForms.validationErrors[KamForms.validationErrors.length]=new Hash({id:a,label:c,error:b})},notifyOfErrors:function(d){var c="There are problems with the form:\n\n";for(var a=0;a<KamForms.validationErrors.length;a++){var b=KamForms.validationErrors[a];c+=b.label+" "+b.error+"\n"}alert(c);KamForms.validationErrors=null}});window.addEvent("domready",function(){$("body").addClass("hasJS");$$("a").each(function(b){var a=b.get("rel");if(a){if(a.indexOf("kamPopUp")!=-1){b.addEvent("click",function(c){c.preventDefault();window.open(b.href)})}}});return KamForms.initialise()});
