var plus=new Image(); plus.src="graphics/plus.gif";
var minus=new Image(); minus.src="graphics/minus.gif";
var allowajax=true;
var colours={green:"#367d8e", dgreen:"#124754", lgreen:"#89bcc8", black:"#000000", grey:"#cccccc"};


//FURNITURE FUNCTIONS
function getFurniture(o){
 var d=df(0);
 d.fCategoryID.value=o;
 d.fVariantID.value='';
 d.topSearch.value='';
 d.fSearch.value='';
 d.fPageID.value=1;
 window.open("furnituregallery.php"+createSearchURL(),"_self");
}
function createSearchURL(){
 var d=df(0);
 var v=[];
 v[0]=d.fCategoryID.value.trim();
 v[1]=d.fVariantID.value.trim();
 v[2]=d.topSearch.value.trim();
 v[3]=d.fSearch.value.trim();
 v[4]=d.fPageID.value.trim();
 return geturlString(v);
}
function geturlString(v){
 var urlString="";
 var varbs=["fCategoryID", "fVariantID", "topSearch", "fSearch", "fPageID"];
 for(i=0; i<varbs.length; i++){
  urlString+=(v[i]=="")?"":(varbs[i]+"="+escape(v[i])+"&");
 }
 if(urlString!=""){
  urlString=urlString.substr(0,urlString.length-1);
 }
 return "?"+urlString;
}
function getFurnitureP(o,p){
 var d=df(0);
 d.fPageID.value=o;
 window.location="furnituregallery.php"+createSearchURL();
}
function getFurnitureV(o,p){
 var d=df(0);
 d.fCategoryID.value=o;
 d.fVariantID.value=p;
 d.topSearch.value='';
 d.fSearch.value='';
 d.fPageID.value=1;
 window.location="furnituregallery.php"+createSearchURL();
}
function emailF(o){
 var d=df(0);
 d.itemID.value=o;
 var h=465;
 var w=400;
 var t=20;
 var l=20;
 var c='toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=auto, resizable=no, copyhistory=no, width='+w+', height='+h+', screenX='+l+', screenY='+t+', top='+t+', left='+l;
 window.open("","appleEmail",c);
 d.target="appleEmail";
 d.action="emailF.php";
 d.submit();
}



/* GENERIC OPEN FUNCTION */
function openGeneric(n,w,h){
 var sw=docProperties.screenAvailWidth();
 var sh=docProperties.screenAvailHeight();
 var t=(sh)?(((sh-h)/2)-20):20;
 var l=(sw)?((sw-w)/2):20;
 var c='toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no';
 c+=', width='+w+', height='+h+', top='+t+', left='+l;
 if(document.layers){
  c+=', screenX='+l+', screenY='+t;
 }
 window.open(n,'_blank',c);
}
function emailp(o){
 openGeneric('emailpage.php?pID='+o,320,520);
}
function menuRollover(id,f){
 getObject(id).className=(f)?"menuover":"menuout";
}
function handleerror(){
 return true;
}
function shSendDiv(f){
 getStyle("sendOuterDiv").display=(f)?"block":"none";
 hsSendFaded(f);
}
function hsSendFaded(f){
 var o=getStyle("sendFadedDiv");
 getObject("sendfeedback").innerHTML='';
 if(f){
  o.height=(docProperties.pageHeight()-1)+"px";
  if(checkDisplay(o,f))o.display="block";
 }else{
  if(checkDisplay(o,f))o.display="none";
 }
}

function sendEnquiry(){
 var d=df(0);
 if(requiredValues(["yourname", "youremail", "yourenquiry"])){
  var e1=d.youremail;
  if(checkEmail(e1.value,e1)){
   d.action="contactprocess.php";
   d.submit();
  }else{
   return false;
  }
 }else{
  alert("\n\nPlease complete all required fields\nbefore submitting the form\n\n");
  return false;
 }
}


function checkSendForm(){
 if(checkSendValues()){
  sendXMLemail();
 }
}
function checkSendValues(){
 var d=df(0);
 if(requiredValues(["fromname", "fromemail", "toname", "toemail"])){
  var e1=d.fromemail;
  var e2=d.toemail;
  if(checkEmail(e1.value,e1) && checkEmail(e2.value,e2)){
   return true;
  }else{
   return false;
  }
 }else{
  alert("\n\nPlease complete all required fields\nbefore submitting the form\n\n");
  return false;
 }
}
function resetSendForm(){
 var d=df(0);
 d.fromname.value="";
 d.fromemail.value="";
 d.toname.value="";
 d.toemail.value="";
 d.comments.value="";
 getObject("sendfeedback").innerHTML='';
 if(d.fromname && getStyle("fromname").display=="block")d.fromname.focus();
}
function sendXMLemail(){
 var d=df(0);
 if(allowajax){
  setSendButtons(0);
  getObject("sendfeedback").innerHTML='';
  var Vars={
   itemID:d.itemID.value.ajaxCleanString(),
   fromname:d.fromname.value.ajaxCleanString(),
   fromemail:d.fromemail.value.toLowerCase().ajaxCleanString(),
   toname:d.toname.value.ajaxCleanString(),
   toemail:d.toemail.value.toLowerCase().ajaxCleanString(),
   comments:d.comments.value.ajaxCleanString()
  };
  //for(x in Vars)alert(x+", "+eval("Vars."+x));
  ajaxCaller.postForXML("sendXMLemail.php",Vars,onsendXMLemailresponse);
 }
}
function onsendXMLemailresponse(xml, headers, callingContext){
 setSendButtons(1);
 try{
  sendemail=xml.getElementsByTagName("tao_records")[0].firstChild;
 }catch(e){
  getObject("sendfeedback").innerHTML='An error occurred. Please try again to resend the email.';
  return true;
 }
 if(sendemail.nodeName=="emailsent"){
  getObject("sendfeedback").innerHTML='Thank you. Your email has been sent.';
 }else{
  getObject("sendfeedback").innerHTML='An error occurred. Please try again to resend the email.';
 }
 return true;
}
function setSendButtons(f){
 var d=df(0);
 var tf=(f)?false:true;
 d.sendButton.disabled=tf;
 d.resetButton.disabled=tf;
 d.closeButton.disabled=tf;
}



//ROLLOVER FUNCTIONS
function initTT(){
 if(document.layers){
  document.captureEvents(Event.MOUSEMOVE);
 }
 document.onmousemove=moveToMouseLoc;
}
function moveToMouseLoc(e){
 var r=getObject("rollover");
 var padding=20;
 if(r){
  rx=parseInt(r.width,10);
  ry=parseInt(r.height,10);
 }

 var ttl=getStyle('toolTipLayer');
 var coords=getEvents.mmove(e);
 var x=coords[0];
 var y=coords[1];
 var xOffset=($('offsetX'))?parseInt($('offsetX').value,10):0;
 var yOffset=($('offsetY'))?parseInt($('offsetY').value,10):0;
 if(ttl){
  ttl.left=(x+xOffset)+"px";
  ttl.top=(y+yOffset)+"px";
 }

 if((y+ry+padding)>=parseInt(docProperties.windowHeight(),10)){
  $('offsetY').value=-(ry/2)-padding;
 }else{
  $('offsetY').value=10;
 }
 if((x+rx+padding)>=parseInt(docProperties.windowWidth(),10)){
  $('offsetX').value=-rx-padding;
 }else{
  $('offsetX').value=10;
 }

 return true;
}
function toolTip(m,t){
 var ttl=getStyle('toolTipLayer');
 if(ttl){
  if(t){
   var content='<div class="toolTip">'+m+'</div>';
   $('toolTipLayer').innerHTML=content;
   ttl.display="block";
  }else{
   ttl.display="none";
  }
 }
}





//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;
}







//GALLERY
function setgallery(){
 var l=570;
 var p=20;
 var o=getStyle("lightboxOuterDiv");
 var h=docProperties.windowHeight();
 var s=0;
 if(o && window.XMLHttpRequest){
  o.position=(h<l)?"absolute":"fixed";
  s=(h<l)?docProperties.scrollTop():0;
 }else{
  o.position="absolute";
  s=docProperties.scrollTop();
 }
 getStyle("lightboxOuterDiv").top=(s+p)+"px";
}
function showGallery(m){
 var d=df(0);
 var l,r;
 l=m-1;
 r=m+1;
 l=(l<0)?imgf.length-1:l;
 r=(r>imgf.length-1)?0:r;
 
 d.l.value=l;
 d.m.value=m;
 d.r.value=r;
 
 getStyle("galleryOuterDiv").height=(docProperties.pageHeight()-1)+"px";
 getStyle("galleryOuterDiv").display="block";
 getStyle("lightboxOuterDiv").display="block";
 
 setgallery();
 showImages();
}
function closeGallery(){
 getStyle("galleryOuterDiv").display="none";
 getStyle("lightboxOuterDiv").display="none";
}
function imgLoaded(o){
 if(!o.complete){
  return false;
 }
 if(typeof(o.naturalWidth)!="undefined" && o.naturalWidth==0){
  return false;
 }
 return true;
}
function hsMainImage(f){
 if(f){
  getStyle("loadingimage").display="none";
  getStyle("galleryimage").display="block";
  getStyle("galleryimagetitle").display="block";
  getStyle("galleryimagedesc").display="block";
 }else{
  getStyle("galleryimage").display="none";
  getStyle("galleryimagetitle").display="none";
  getStyle("galleryimagedesc").display="none";
  getStyle("loadingimage").display="block";
 }
}
function showImages(){
 var d=df(0);
 var l,m,r;
 var alt;
 var path="graphics/products/";
 
 hsMainImage(0);
 
 l=parseInt(d.l.value,10);
 m=parseInt(d.m.value,10);
 r=parseInt(d.r.value,10);
 
 //SET THUMBS
 if(l!=m){
  alt=imgalt[l];
  getObject("gallerylimage").innerHTML='<a href="javascript:setupImages(-1)"><img src="" id="galleryleft" width="150" height="150" alt="'+alt+'" title="'+alt+'" /></a>';
  getObject("galleryleft").src=path+imgf[l]+"thumb.jpg";
 }else{
  getObject("gallerylimage").innerHTML='';
 }
 
 if(l!=r){
  alt=imgalt[r];
  getObject("galleryrimage").innerHTML='<a href="javascript:setupImages(1)"><img src="" id="galleryright" width="150" height="150" alt="'+alt+'" title="'+alt+'" /></a>';
  getObject("galleryright").src=path+imgf[r]+"thumb.jpg";
 }else{
  getObject("galleryrimage").innerHTML='';
 }
 
 
 //MAIN IMAGE
 alt=imgalt[m];
 getObject("galleryimage").innerHTML='<img src="" id="gallerymiddle" alt="'+alt+'" title="'+alt+'" />';
 getObject("galleryimagetitle").innerHTML=alt;
 getObject("galleryimagedesc").innerHTML=imgdes[m]+"<br />"+imgdim[m];
 var o=getObject("gallerymiddle");
 var img=new Image();
 img.src=path+imgf[m]+".jpg";
 o.src=img.src;
 
 if(imgLoaded(o)){
  hsMainImage(1);
 }else{
  iDetect=setInterval("detectImage("+m+")",500);
 }
}
function detectImage(m){
 if(imgLoaded(getObject("gallerymiddle"))){
  if(iDetect)clearInterval(iDetect);
  hsMainImage(1);
 }else{
  hsMainImage(0);
 } 
}
function setupImages(a){
 var d=df(0);
 var l,m,r;
 var x=imgf.length-1;
 m=parseInt(d.m.value,10)+a;
 m=(m<0)?x:m;
 m=(m>x)?0:m;
 l=m-1;
 r=m+1;
 l=(l<0)?x:l;
 r=(r>x)?0:r;
 d.l.value=l;
 d.m.value=m;
 d.r.value=r;
 showImages();
}
