function handleerror(){
 //return true;
}


//-------------------------ROLLOVER FUNCTIONS
function initTT(){
 if(document.layers){
  document.captureEvents(Event.MOUSEMOVE);
 }
 document.onmousemove=moveToMouseLoc;
}
function moveToMouseLoc(e){
 var rx=0;
 var ry=0;
 var padding=20;
 var ttl=getStyle('toolTipLayer');
 
 if(ttl){
  var coords=getEvents.mmove(e);
  var x=coords[0];
  var y=coords[1]; 
  var ro=getObjDims("toolTipLayer");
  rx=parseInt(ro.w,10);
  ry=parseInt(ro.h,10);

  //CHECK BORDERS
  if(((y-docProperties.scrollTop())+ry+padding)>=parseInt(docProperties.windowHeight(),10)){
   $('offsetY').value=-(ry/2)-padding;
  }else{
   $('offsetY').value=6;
  }
  if(((x-docProperties.scrollLeft())+rx+padding)>=parseInt(docProperties.windowWidth(),10)){
   $('offsetX').value=-rx-padding;
  }else{
   $('offsetX').value=6;
  }
  
  ttl.left=(x+parseInt($('offsetX').value,10))+"px";
  ttl.top=(y+parseInt($('offsetY').value,10))+"px";
 }
 return true;
}
function toolTip(m,t){
 var ttl=getStyle('toolTipLayer');
 if(ttl){
  if(t){
   var p=m.split(";");
   var s="";
   for(var i=0; i<p.length; i++){
    s+="<p>"+p[i]+"</p>";
   }
   var content=s;
   $('toolTipLayer').innerHTML=content;
   ttl.display="block";
  }else{
   ttl.display="none";
  }
 }
}



//----------------EVENT YEAR CHANGE
function changeyear(y){
 window.location="events.php?y="+y;
}




function imgoverout(id,f){
 var o=getObject(id);
 if(o){
  o.className=(f)?"imgInnerDivOver":"imgInnerDivOut";
 }
}

function submitForm(){
 var d=df(0);
 if(checkForm()){
  d.action="sendemail.php";
  d.submit();
 }
}
function resetForm(){
 var d=df(0);
 d.reset();
 d.yourname.focus();
}


var exceptions=['Mackin', 'Machin', 'Machen', 'Macintosh', 'Macintyre', 'Macaulay', 'Macaskill', 'Macara', 'Mackay', 'Maciver', 'Maclaren', 'Macrae', 'Mach', 'MacO', 'MacA'];
var tcPattern1=new RegExp("[\\s'-]","g");
var tcPattern2=new RegExp("^(\\w)(.*)");
var tcPattern3=new RegExp("^(mac|mc{1,2}){0,1}(.*)","i");

String.prototype.titleCase=function(){
 var n=this.cleanStr(14);
 if(n.length>0){
  var newString='';
  var wordDividers=n.match(tcPattern1);
  var words=n.split(tcPattern1);
  for(var i in words){
   var e=isException(words[i]);
   if(e){
    var newwords=e;
   }else{
    var newwords='';
    var wordParts=words[i].match(tcPattern3);
    for(var j in wordParts)newwords+=(!wordParts[j])?'':upperLower(wordParts[j]);
   }
   newString+=newwords+((wordDividers==null)?'':((wordDividers[i]==undefined)?'':wordDividers[i]));
  }
  return newString;
 }
 return "";
};
function isException(w){
 for(var k in exceptions){
  var reg=new RegExp("^"+exceptions[k],'i');
  if(reg.test(w))return exceptions[k];
 }
 return false;
}
function upperLower(w){
 var p=tcPattern2.exec(w);
 return (p[1].toUpperCase()+p[2].toLowerCase());
}





//FORM SUBMISSIONS
function cleanValue(o){
 if(o.type=="text" || o.type=="textarea"){
  o.value=o.value.cleanStr(1);
 }
}
function requiredValues(reqf){
 var d=df(0);
 var a,b;
 var c=true;
 var f=false;
 for(var j=0;j<reqf.length;j++){
  a=d.elements[reqf[j]];
  if(a.type=="text" || a.type=="textarea"){
   cleanValue(a);
   if(a.name.indexOf("email")>=0){
    a.value=a.value.toLowerCase();
   }else if(a.name.indexOf("postcode")>=0){
    a.value=a.value.toUpperCase();
   }
   b=a.value;
  }else if(a.type=="selectone"){
   b=ddv(a);
  }
  if(b==""){
   c=false;
   if(!f){
    a.focus();
    f=true;
   }
  }  
 }
 return c;
}

function checkForm(){
 var d=df(0);
 if(requiredValues(["yourname", "youremail", "yourenquiry"])){
 
  cleanValue(d.yourname);
  cleanValue(d.yourenquiry);
  var n=d.yourname.value.trim();
  var e=d.youremail.value.trim();
  var m=d.yourenquiry.value.trim();
  
  if(n!="" && e!="" && m!=""){
   if(checkEmail(e,d.youremail)){
    return true;
   }else{
    return false;
   }
  }else{
   return false;
  }
 }else{
  alert("\n\nPlease complete all the fields\nbefore sending us your enquiry.\n\n");
  return false;
 }
}


//------------------------VERIFY EMAILS
function checkEmail(e,f){
 var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|mobi)$/;
 var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
 var validChars="\[^\\s"+specialChars+"\]";
 var atom=validChars+"+";
 var quotedUser="(\"[^\"]*\")";
 var word="("+atom+"|"+quotedUser+")";
 var prefix="\n\nThe E-Mail Address is formatted incorrectly.\n\n";

 var matchArray=e.match(/^(.+)@(.+)$/);
 if(matchArray==null){
  alert(prefix+"Please check the @ and . (dot) characters\n\n");
  if(f)f.focus();
  return false;
 }

 var user=matchArray[1];
 for(i=0;i<user.length;i++){
  if(user.charCodeAt(i)>127){
   alert(prefix+"It contains invalid characters.\n\n");
   if(f)f.focus();
   return false;
  }
 }
 var domain=matchArray[2];
 for(i=0;i<domain.length;i++){
  if(domain.charCodeAt(i)>127){
   alert(prefix+"It contains invalid characters.\n\n");
   if(f)f.focus();
   return false;
  }
 }

 var userPat=new RegExp("^"+word+"(\\."+word+")*$");
 if(user.match(userPat)==null){
  alert(prefix);
  if(f)f.focus();
  return false;
 }

 var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
 var IPArray=domain.match(ipDomainPat);
 if(IPArray!=null){
  for(i=1;i<5;i++){
   if(IPArray[i]>255){
    alert(prefix+"The destination IP address is invalid.\n\n");
    if(f)f.focus();
    return false;
   }
  }
 }

 var atomPat=new RegExp("^"+atom+"$");
 var domArr=domain.split(".");
 var len=domArr.length;

 if(len<2){
  alert(prefix+"It is missing a hostname.\n\n");
  if(f)f.focus();
  return false;
 }
 for(i=0;i<len;i++){
  if(domArr[i].search(atomPat)==-1){
   alert(prefix+"The domain name is not valid.\n\n");
   if(f)f.focus();
   return false;
  }
 }
 if(domArr[len-1].length!=2 && domArr[len-1].search(knownDomsPat)==-1){
  alert(prefix+"It must end in a well-known domain\nor a two letter country abbreviation.\n\n");
  if(f)f.focus();
  return false;
 }
 return true;
}
