var validationSet={'name':{'regexp':/^[ \.\-\'a-zA-Z]+$/,'error':"Please check your name.",'error2':"Please enter your name."},'company':{'regexp':/^[ \.\,\-\'()a-zA-Z0-9]+$/,'error':"Please check your organisation name.",'error2':"Please enter your organisation name."},'subject':{'regexp':/^[ \'a-zA-Z0-9]+$/,'error':"Please check the subject title."},'email':{'regexp':/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/,'error':"Please enter a valid email address.",'error2':"Please enter your email address."},'phone':{'regexp':/^[\- ()0-9]+$/,'error':"Please check your telephone number."},'mobile':{'regexp':/^[\- ()0-9]+$/,'error':"Please check your mobile number."},'message':{'regexp':/\w+/,'error':"Please check your message.",'error2':"Please enter your message."},'check':{'error':"Please check the anti-spam checkbox before submission."}};var vF={focusLabels:function(){if(typeof document.getElementById=='undefined'||typeof document.getElementsByTagName=='undefined'||typeof document.createElement=='undefined'){return}var labels=document.getElementsByTagName("label");for(var i=0;i<labels.length;i++){if(!labels[i].getAttribute("for")){continue}labels[i].onclick=function(){var id=this.getAttribute("for");if(!document.getElementById(id)){return false}var element=document.getElementById(id);element.focus()}}},prepareForms:function(){for(var i=0;i<document.forms.length;i++){var thisform=document.forms[i];if(thisform.id=='contactForm'){thisform.onsubmit=function(){return vF.validateForm(this)}}}},isFilled:function(field){if(field.value.length<1){return false}else{return true}},isValid:function(field){if(!field.value){return null}var fieldName=field.getAttribute('id').match(/[A-Za-z]+/);var regex='regexp';var RE=validationSet[fieldName][regex];if(!field.value.match(RE)){return field}else{return null}},validateForm:function(whichform){var error;for(var i=0;i<whichform.elements.length;i++){var whichfield=whichform.elements[i];if(whichfield.className&&whichfield.className.indexOf("required")!=-1){if(!vF.isFilled(whichfield)){error='error2';vF.displayError(whichfield,error);return false}else{vF.clearField(whichfield)}}if(whichfield.className&&whichfield.className.indexOf("validate")!=-1){if(vF.isValid(whichfield)){error='error';vF.displayError(whichfield,error);return false}else{vF.clearField(whichfield)}}}var checkbox=document.getElementById('check');if(!checkbox.checked){error='error';vF.displayError(checkbox,error);return false}var submit=document.getElementById("submit");submit.className="submitLoading";submit.value="Contacting server";return true},displayError:function(element,error){var fieldType=element.getAttribute('id').match(/[A-Za-z]+/);var errorMsg=validationSet[fieldType][error];alert('Error! '+errorMsg);addClass(element,"failed");element.focus()},clearField:function(element){if(element.className&&(element.className.indexOf('failed'))){element.className=element.className.replace(/\b ?failed ?\b/,'')}},addLink:function(){if(document.getElementById('linkHolder')){var linkHolder=document.getElementById('linkHolder');var link=document.createElement('a');link.href='#';link.id='toggleLink';link.onclick=vF.toggleFields;var txt=document.createTextNode('Remove optional fields?');link.appendChild(txt);linkHolder.appendChild(link)}else{return}},toggleFields:function(){var linkText=this.firstChild.nodeValue;this.firstChild.nodeValue=(linkText=='Remove optional fields?')?'Display optional fields?':'Remove optional fields?';var form=document.getElementById('contactForm');for(var i=0;i<form.elements.length;i++){var field=form.elements[i];if(field.className&&(field.className.indexOf("required")==-1)){var parent=field.parentNode;parent.style.display=(parent.style.display=='none')?'block':'none'}}return false}};addEvent(window,'load',vF.focusLabels,false);addEvent(window,'load',vF.prepareForms,false);addEvent(window,'load',vF.addLink,false);
