var plus=new Image(); plus.src="graphics/plus.gif";
var minus=new Image(); minus.src="graphics/minus.gif";
var yearright=new Image(); yearright.src="graphics/dgrey-bullet.gif";
var yeardown=new Image(); yeardown.src="graphics/dgrey-bullet-down.gif";
var loadingimg=new Image(); loadingimg.src="graphics/loading.gif";
var allowajax=true;
var gallerysearchDelay=0;
var updateflag=true;
var defaultSearchString="Search our gallery...";

function handleerror(){
 return true;
}

function setcolumnheight(){
 var col_height=parseFloat(getObject("containerDiv").offsetHeight);
 if(col_height>100){
  getStyle("sidecolumnDiv").height=(col_height-4)+"px";
 }
}

function optionsexplained(){
 var w=700;
 var h=500;
 var sw=screen.availWidth;
 var sh=screen.availHeight;
 var t=40;
 var l=(sw)?((sw-w)/2):10;
 var c="toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no";
 c+=", width="+w+", height="+h+", top="+t+", left="+l;
 if(document.layers){
  c+=", screenX="+l+", screenY="+t;
 }
 window.open("optionsexplained.php","options",c);
}
function getDetails(){
 window.location="gallery.php?"+createURL()+"pageID=1";
}
function getDetails2(o){
 var d=df(0);
 if(d && d.colourID){
  if(d.gallerysearch)d.gallerysearch.value="Search our gallery...";
  if(d.categoryID && d.categoryID.options)d.categoryID.selectedIndex=0;
  if(d.colourID.options){
   d.colourID.selectedIndex=0;
   d.colourID.options.length=1;
  }
  if(d.colourMatch)d.colourMatch.value=0;
 }
 window.location="gallery.php?categoryID="+o+"&pageID=1";
}
function getPhoto(o){
 window.location="artistsandphotographers.php?photoID="+o;
}
function getArtist(o){
 window.location="artistsandphotographers.php?artID="+o;
}





//------------------------SEARCH LOADING
var searchLoading;
function startSearchLoading(){
 endSearchLoading();
 searchLoading=setTimeout("showSearchLoading()",100);
}
function endSearchLoading(){
 if(searchLoading)clearTimeout(searchLoading);
}
function showSearchLoading(){
 var o=getObject("gallerysearchoptionsDiv");
 if(o)o.innerHTML='<div class="searchloadingDiv"><p>Please Wait</p><img src="graphics/loading.gif" alt="Please wait, retrieving images..." /><p>Retrieving Images...</p></div>';
 getStyle("gallerysearchoptionsDiv").display="block";
}


//-------------------------GALLERY2a ADD / REMOVE LOADING
var gallery2aLoading;
function startGallery2aLoading(){
 endGallery2aLoading();
 gallery2aLoading=setTimeout("showGallery2aLoading()",100);
}
function endGallery2aLoading(){
 if(gallery2aLoading)clearTimeout(gallery2aLoading);
}
function showGallery2aLoading(){
 var o=getStyle("gallery2aLoading");
 if(o){
  o.display="block";
 }
}
function resetGallery2aLoading(){
 var o=getStyle("gallery2aLoading");
 if(o){
  o.display="none";
 }
 endGallery2aLoading();
}

//-------------------------GALLERY2b ADD / REMOVE LOADING
var gallery2bLoading;
function startGallery2bLoading(){
 endGallery2bLoading();
 gallery2bLoading=setTimeout("showGallery2bLoading()",100);
}
function endGallery2bLoading(){
 if(gallery2bLoading)clearTimeout(gallery2bLoading);
}
function showGallery2bLoading(){
 var o=getStyle("gallery2bLoading");
 if(o){
  o.display="block";
 }
}
function resetGallery2bLoading(){
 var o=getStyle("gallery2bLoading");
 if(o){
  o.display="none";
 }
 endGallery2bLoading();
}


//------------------------UPDATE LOADING
var addremoveLoading;
function startAddRemoveLoading(){
 endAddRemoveLoading();
 addremoveLoading=setTimeout("showAddRemoveLoading()",100);
}
function endAddRemoveLoading(){
 if(addremoveLoading)clearTimeout(addremoveLoading);
}
function showAddRemoveLoading(){
 var v=getObject("imageID").value;
 var o=getObject("innerImageLoading"+v);
 if(o){
  getStyle("image"+v).display="none";
  o.innerHTML='<p>Please Wait</p><img src="graphics/loading.gif" alt="Please wait, updating details" /><p>Updating Details...</p>';
  getStyle("innerImageLoading"+v).display="block";
 }
}
function resetAddRemoveLoading(){
 var v=getObject("imageID").value;
 getStyle("innerImageLoading"+v).display="none";
 getStyle("image"+v).display="block";
 endAddRemoveLoading();
}



//------------------------MYGALLERY LOADING
var mygalleryLoading;
function startMyGalleryLoading(){
 endMyGalleryLoading();
 mygalleryLoading=setTimeout("showMyGalleryLoading()",100);
}
function endMyGalleryLoading(){
 if(mygalleryLoading)clearTimeout(mygalleryLoading);
}
function showMyGalleryLoading(){
 var v=getObject("imageID").value;
 var o=getObject("mygalleryLoading"+v);
 if(o){
  getStyle("options"+v+"Div").display="none";
  getStyle("mygalleryLoading"+v).display="block";
 }
}
function resetMyGalleryLoading(){
 var v=getObject("imageID").value;
 getStyle("mygalleryLoading"+v).display="none";
 getStyle("options"+v+"Div").display="block";
 endMyGalleryLoading();
}






//---------------------GALLERY IPP
function setippXML(n){
 if(allowajax){
  var Vars={v:ddv("galpages"+n).ajaxCleanString()};
  //for(x in Vars)alert(x+", "+eval("Vars."+x));
  ajaxCaller.postForXML("setipp.php",Vars,onXMLsetipp);
 }
}
function onXMLsetipp(xml, headers, callingContext){
 getDetails();
}





//---------------------GALLERY SEARCH
function getgallerysearchoptionsXML(v){
 if(allowajax){
  startSearchLoading();
  var Vars={v:v.ajaxCleanString()};
  //for(x in Vars)alert(x+", "+eval("Vars."+x));
  ajaxCaller.postForXML("gallerysearch.php",Vars,onXMLgallerysearchoptions);
 }
}
function onXMLgallerysearchoptions(xml, headers, callingContext){
 var f="gallerysearch";
 endSearchLoading()
 try{
  gallerysearch=xml.getElementsByTagName("canvas_records")[0].firstChild;
 }catch(e){
  hideObjOptions(f);
  return true;
 }
 if(gallerysearch.nodeName=="image"){
  var st="<ul>";
  var node=xml.getElementsByTagName("canvas_records")[0];
  var nodelength=node.childNodes.length;
  if(nodelength==0){
   hideObjOptions(f);
  }else{
   for(var i=0; i<node.childNodes.length; i++){
    var gallerysearch_node=node.childNodes[i];
    var imageID=gallerysearch_node.childNodes[0].firstChild.nodeValue;
    var imagename=gallerysearch_node.childNodes[1].firstChild.nodeValue;
    var category=gallerysearch_node.childNodes[2].firstChild.nodeValue;
    st+='<li><a href="gallery2.php?imageID='+imageID+'"><b>'+imagename+'</b> '+category+'</a></li>';
   }
   getObject(f+"optionsDiv").innerHTML=st+"</ul>";
   showObjOptions(f);
  }
 }else{
  hideObjOptions(f);
  return true;
 }
}
function clearForm(){
 var d=df(0);
 d.gallerysearch.value=defaultSearchString;
 d.categoryID.selectedIndex=0;
 d.colourID.selectedIndex=0;
 d.colourID.options.length=1;
 d.colourMatch.value=0;
 setfocus();

 for(i=0; i<allcolours.length; i++){
  if(allcolours[i].indexOf("|")>-1){
   csplit=allcolours[i].split("|");
   d.colourID.options[i+1]=new Option(csplit[1],csplit[0],0,0);
  }
 }
}



//----------------GENERIC AUTOCOMPLETE FUNCTIONS
function setObjTimeout(n){
 var o=getObject(n);
 var v=o.value.trim();
 var f=n+"Delay";
 if(o){
  if(v.length>2){
   eval("if("+f+")clearTimeout("+f+")");
   eval(f+"=setTimeout(\"get"+n+"optionsXML('"+v+"')\",10)");
  }else{
   hideObjOptions(n);
   getObject(n+"optionsDiv").innerHTML="";
  }
 }
}
function showObjOptions(n){
 var v=getObject(n).value.trim();
 if(v.length>2){
  if(getObject(n+"optionsDiv").innerHTML==""){
   eval("get"+n+"optionsXML('"+v+"')");
  }else{
   getStyle(n+"optionsDiv").display="block";
  }
 }else{
  hideObjOptions(n);
  getObject(n+"optionsDiv").innerHTML="";
 }
}
function hideObjOptions(n){
 var s=getStyle(n+"optionsDiv");
 if(s){
  s.display="none";
 }
}
function hsObjDiv(n,h){
 var o=getObject("hs"+n+"Div");
 if(o){
  o.value=h;
 }
}
function populateField(n,v){
 getObject(n).value=v;
 hideObjOptions(n);
 getObject(n+"optionsDiv").innerHTML="";
}
function objblurfocus(o,f,n){
 if(o){
  if(f){
   showObjOptions(n);
  }else{
   if(parseInt(getObject("hs"+n+"Div").value,10)==0)hideObjOptions(n);
  }
 }
}







//---------------------GALLERY SCRIPTS
function removeorderImage(o){
 var d=df(0);
 d.imageID.value=o;
 d.action="removeimageo.php";
 d.submit();
}
function addorderImage(o){
 var d=df(0);
 d.imageID.value=o;
 d.action="addimageo.php";
 d.submit();
}
function resetorderForm(){
 var d=df(0);
 d.reset();
 d.fullname.focus();
}
function addImage(o,f){
 if(allowajax){
  if(updateflag){
  
   var d=df(0);
   d.imageID.value=o;
   if(f==1){
    clearfocus();
   }

   try{
    var Vars={imageID:o.ajaxCleanString()};
    //for(x in Vars)alert(x+", "+eval("Vars."+x));
    updateflag=false;
      
    switch (f){
     case 1:
      startAddRemoveLoading();
      ajaxCaller.postForXML("addXMLimage.php",Vars,onXMLaddimage1response);  //GALLERY MAIN PAGE
      break;
     case 2:
      startGallery2aLoading();
      ajaxCaller.postForXML("addXMLimage.php",Vars,onXMLaddimage2response);  //GALLERY2 TOP
      break;
     case 3:
      startGallery2bLoading();
      ajaxCaller.postForXML("addXMLimage.php",Vars,onXMLupdateimage3response);  //GALLERY2 BOTTOM 'CONTAINS'
      break;
     case 4:
      startMyGalleryLoading();
      ajaxCaller.postForXML("addXMLimage.php",Vars,onXMLupdatemygalleryresponse);  //MY GALLERY
      break;
    }
   }catch(e){
    d.action="addimage.php";
    d.submit();
   }
  }
 }else{
  d.action="addimage.php";
  d.submit(); 
 }
}
function onXMLaddimage1response(xml, headers, callingContext){  //GALLERY MAIN PAGE
 var d=df(0);
 resetAddRemoveLoading();
 updateflag=true;
 
 if(allowajax){
  try{
   var gallery=xml.getElementsByTagName("canvas_records")[0].firstChild;
  }catch(e){
   d.imageID.value="";
   return true;
  }
  if(gallery.nodeName=="okay"){
   var imageID=d.imageID.value;
   getObject("imgoptions"+imageID+"Div").innerHTML='<a href="javascript:removeAllImages(\''+imageID+'\',1)" class="gallery">Remove</a><a href="javascript:removeAllImages(\''+imageID+'\',1)"><img src="graphics/remove.gif" alt="Remove image" title="Remove image" class="gicon1" /></a><a href="javascript:showImageDetails(\''+imageID+'\')">Details</a><a href="javascript:showImageDetails(\''+imageID+'\')"><img src="graphics/mag.gif" alt="View image details" title="View image details" class="gicon2" /></a>';
  }else{
   d.imageID.value="";
   return true;
  }
 }
}
function onXMLaddimage2response(xml, headers, callingContext){  //GALLERY2 TOP
 var d=df(0);
 resetGallery2aLoading();
 updateflag=true;
 
 if(allowajax){
  try{
   var gallery=xml.getElementsByTagName("canvas_records")[0].firstChild;
  }catch(e){
   d.imageID.value="";
   return true;
  }
  if(gallery.nodeName=="okay"){
   var imageID=d.thisimageID.value;
   var imagename=d.thisimagename.value;
   var total=parseInt(nValue(xml,"total"),10);
   
   getObject("imgtopbtnDiv").innerHTML='<a href="javascript:removeAllImages(\''+imageID+'\',2)"><img src="graphics/removefrommygallery.gif" alt="Remove from My Gallery" class="roundedbtn" /></a>';
   
   //UPDATE MY GALLERY TABLE
   addTable1Row("tblgallerycontains",imageID);
   
   //LEFT
   var st='<ul><li><a href="javascript:showImageDetails(\''+imageID+'\')" class="u">'+imagename+'</a></li></ul>';
   getObject("imgleft"+imageID+"Div").innerHTML=st;
   
   //RIGHT
   st='<a href="javascript:addImage(\''+imageID+'\',3)"><img src="graphics/add.gif" alt="Add image" title="Add image" /></a>';
   st+='<a href="javascript:removeAllImages(\''+imageID+'\',3)"><img src="graphics/remove.gif" alt="Remove image" title="Remove image" /></a>';
 
   getObject("imgright"+imageID+"Div").innerHTML=st;
   updatemygallerytbl(total);
   setcolumnheight();
   
  }else{
   d.imageID.value="";
   return true;
  }
 }
}
function onXMLupdateimage3response(xml, headers, callingContext){  //GALLERY2 BOTTOM 'CONTAINS'
 var d=df(0);
 resetGallery2bLoading();
 updateflag=true;
 
 if(allowajax){
  try{
   var gallery=xml.getElementsByTagName("canvas_records")[0].firstChild;
  }catch(e){
   d.imageID.value="";
   return true;
  }
  if(gallery.nodeName=="okay"){
   var amount=parseInt(nValue(xml,"amount"),10);
   var imagename=nValue(xml,"imagename");
   var imageID=nValue(xml,"imageID");
   var total=parseInt(nValue(xml,"total"),10);
   
   if(amount==0){
    //DELETE MY GALLERY ROW
    delnlTableRowID("tblgallerycontains","imgrow"+imageID+"Div");
    
    //MY GALLERY HEADING
    if(total==0){
     getObject("imgheaderDiv").innerHTML='<h5>My Gallery is empty</h5>';
    }else{
     getObject("imgheaderDiv").innerHTML='<h5>My Gallery contains:</h5>';
    }
   
    //UPDATE PAGE
    if(d.thisimageID.value==imageID){
     getObject("imgtopbtnDiv").innerHTML='<a href="javascript:addImage(\''+imageID+'\',2)"><img src="graphics/addtomygallery.gif" alt="Add to My Gallery" class="roundedbtn" /></a>';
    }
   }else{
   
    //LEFT
    var st='<ul><li><a href="javascript:showImageDetails(\''+imageID+'\')" class="u">'+imagename+'</a>';
    if(amount>1){
     st+='<span class="text8"> (&times;'+amount+')</span>';
    }
    st+='</li></ul>';
    getObject("imgleft"+imageID+"Div").innerHTML=st;
    
    //RIGHT
    st='<a href="javascript:addImage(\''+imageID+'\',3)"><img src="graphics/add.gif" alt="Add image" title="Add image" /></a>';
    if(amount==1){
     st+='<a href="javascript:removeAllImages(\''+imageID+'\',3)"><img src="graphics/remove.gif" alt="Remove image" title="Remove image" /></a>';
    }else{
     st+='<a href="javascript:removeImage(\''+imageID+'\',3)"><img src="graphics/remove.gif" alt="Remove image" title="Remove image" class="remove" /></a><a href="javascript:removeAllImages(\''+imageID+'\',3)"><img src="graphics/removeall.gif" alt="Remove line" title="Remove line" /></a>';
    }
    getObject("imgright"+imageID+"Div").innerHTML=st;
   }
   
   updatemygallerytbl(total);
   setcolumnheight();
  }else{
   d.imageID.value="";
   return true;
  }
 }
}


//------------------REMOVE IMAGES
function removeImage(o,f){
 var d=df(0);
 d.imageID.value=o;
 
 if(allowajax){
  if(updateflag){
   try{
    var Vars={imageID:o.ajaxCleanString()};
    //for(x in Vars)alert(x+", "+eval("Vars."+x));
    updateflag=false;

    switch (f){
     case 3:
      startGallery2bLoading();
      ajaxCaller.postForXML("removeXMLimages.php",Vars,onXMLupdateimage3response);  //GALLERY2 BOTTOM 'CONTAINS'
      break;
     case 4:
      startMyGalleryLoading();
      ajaxCaller.postForXML("removeXMLimages.php",Vars,onXMLupdatemygalleryresponse);  //MY GALLERY
      break;
    }
   }catch(e){
    d.action="removeimages.php";
    d.submit();
   }
  }
 }else{
  d.action="removeimages.php";
  d.submit();
 }
}

function removeAllImages(o,f){
 if(allowajax){
  if(updateflag){

   var d=df(0);
   var p="";
   var pxml="";
   d.imageID.value=o;
   if(f==1){
    clearfocus();
   }

   try{
    var Vars={imageID:o.ajaxCleanString()};
    //for(x in Vars)alert(x+", "+eval("Vars."+x));
    updateflag=false;

    switch (f){
     case 1:
      startAddRemoveLoading();
      ajaxCaller.postForXML("removeallXMLimages.php",Vars,onXMLremoveimage1response);  //GALLERY MAIN PAGE
      break;
     case 2:
      startGallery2aLoading();
      ajaxCaller.postForXML("removeallXMLimages.php",Vars,onXMLremoveimage2response);  //GALLERY2 TOP
      break;
     case 3:
      startGallery2bLoading();
      ajaxCaller.postForXML("removeallXMLimages.php",Vars,onXMLupdateimage3response);  //GALLERY2 BOTTOM 'CONTAINS'
      break;
     case 4:
      startMyGalleryLoading();
      ajaxCaller.postForXML("removeallXMLimages.php",Vars,onXMLupdatemygalleryresponse);  //MY GALLERY
      break;
    }
   }catch(e){
    d.action="removeallimages.php";
    d.submit();
   }
  }
 }else{
  d.action="removeallimages.php";
  d.submit();
 }
}
function onXMLremoveimage1response(xml, headers, callingContext){  //GALLERY MAIN PAGE
 var d=df(0);
 resetAddRemoveLoading();
 updateflag=true;
 
 if(allowajax){
  try{
   var gallery=xml.getElementsByTagName("canvas_records")[0].firstChild;
  }catch(e){
   d.imageID.value="";
   return true;
  }
  if(gallery.nodeName=="okay"){
   var imageID=d.imageID.value;
   getObject("imgoptions"+imageID+"Div").innerHTML='<a href="javascript:addImage(\''+imageID+'\',1)" class="gallery">Order</a><a href="javascript:addImage(\''+imageID+'\',1)"><img src="graphics/add.gif" alt="Order image" title="Order image" class="gicon1" /></a><a href="javascript:showImageDetails(\''+imageID+'\')">Details</a><a href="javascript:showImageDetails(\''+imageID+'\')"><img src="graphics/mag.gif" alt="View image details" title="View image details" class="gicon2" /></a>';
  }else{
   d.imageID.value="";
   return true;
  }
 }
}
function onXMLremoveimage2response(xml, headers, callingContext){  //GALLERY2 TOP
 var d=df(0);
 resetGallery2aLoading();
 updateflag=true;
 
 if(allowajax){
  try{
   var gallery=xml.getElementsByTagName("canvas_records")[0].firstChild;
  }catch(e){
   d.imageID.value="";
   return true;
  }
  if(gallery.nodeName=="okay"){
   var imageID=d.imageID.value;
   var total=parseInt(nValue(xml,"total"),10);
   
   getObject("imgtopbtnDiv").innerHTML='<a href="javascript:addImage(\''+imageID+'\',2)"><img src="graphics/addtomygallery.gif" alt="Add to My Gallery" class="roundedbtn" /></a>';
   
   //DELETE ROW
   delnlTableRowID("tblgallerycontains","imgrow"+imageID+"Div");
   updatemygallerytbl(total);
   setcolumnheight();
  }else{
   d.imageID.value="";
   return true;
  }
 }
}

function updatemygallerytbl(total){
 if(total==0){
  getStyle("orderbtnDiv").display="none";
  getObject("imgheaderDiv").innerHTML='<h5>My Gallery is empty</h5>';
 }else if(total==1){
  getStyle("orderbtnDiv").display="block";
  getObject("orderbtnDiv").innerHTML='<a href="order.php"><img src="graphics/orderimage.gif" class="orderimagesbtn" alt="Order Image" /></a>';
  getObject("imgheaderDiv").innerHTML='<h5>My Gallery contains:</h5>';
 }else{
  getStyle("orderbtnDiv").display="block";
  getObject("orderbtnDiv").innerHTML='<a href="order.php"><img src="graphics/orderimages.gif" class="orderimagesbtn" alt="Order Images" /></a>';
  getObject("imgheaderDiv").innerHTML='<h5>My Gallery contains:</h5>';
 }
}





//------------------GALLERY NAVIGATION

function gotoOrderPage(o){
 var d=df(0);
 d.action="order.php";
 d.submit();
}
function orderImage(o){
 var d=df(0);
 d.action="order.php";
 d.submit();
}
function getImage(){
 var d=df(0);
 var f=ddv(d.filterID);
 if(f==""){
  backtoGallery();
 }else{
  showImageDetails(f);
 }
}
function showImageDetails(o){
 var d=df(0);
 var p="";
 if(d.pageID)p=d.pageID.value;
 if(d.imageID)d.imageID.value=o;
 window.location="gallery2.php?"+createURL()+"imageID="+o+((p=="")?"":("&pageID="+p));
}
function setCategory(o){
 var d=df(0);
 d.categoryID.value=o;
 window.location="gallery.php?"+createURL()+"pageID=1";
}
function setColour(o){
 var d=df(0);
 d.colourID.value=o;
 window.location="gallery.php?"+createURL()+"pageID=1";
}
function gotoMygallery(){
 var d=df(0);
 d.action="mygallery.php";
 d.submit();
}
function createURL(){
 var d=df(0);
 var urlString="";
 var colourID="";
 var categoryID="";
 var searchstring="";
 
 if(ddv("colourID")){
  colourID=ddv("colourID");
 }else if(d.colourID){
  colourID=d.colourID.value;
 }
 if(ddv("categoryID")){
  categoryID=ddv("categoryID");
 }else if(d.categoryID){
  categoryID=d.categoryID.value;
 }

 if(d.gallerysearch)searchstring=d.gallerysearch.value.trim();
 urlString+=(colourID=="")?"":("colourID="+escape(colourID)+"&");
 urlString+=(categoryID=="")?"":("categoryID="+escape(categoryID)+"&");
 urlString+=(searchstring=="" || searchstring==defaultSearchString)?"":("searchstring="+escape(searchstring)+"&");
 return urlString;
}






//-----------------SEARCH OPTIONS

function updateColours(o){
 var d=df(0);
 var dc=d.colourID;
 var id=ddv(o);
 var v=(id=="")?allcolours:colours[id-1];
 var cm=parseFloat(d.colourMatch.value);
 var cID=ddv(dc);
 if(cm==0){
  mValue=(cID=="")?0:parseFloat(cID);
 }else{
  mValue=cm;
 }
 dc.options.length=1;
 for(i=0; i<v.length; i++){
  if(v[i].indexOf("|")>-1){
   csplit=v[i].split("|");
   m=(parseFloat(csplit[0])==mValue)?1:0;
   dc.options[i+1]=new Option(csplit[1],csplit[0],m,m);
  }
 }
}
function gotoPage(p){
 window.location="gallery.php?"+createURL()+"pageID="+p;
}
function gotoPageDD(o){
 var p=ddv(o);
 if(p!=""){
  gotoPage(p);
 }
}





//------------------MY GALLERY
function onXMLupdatemygalleryresponse(xml, headers, callingContext){  //MY GALLERY
 var d=df(0);
 resetMyGalleryLoading();
 updateflag=true;

 if(allowajax){
  try{
   var gallery=xml.getElementsByTagName("canvas_records")[0].firstChild;
  }catch(e){
   d.imageID.value="";
   return true;
  }
  if(gallery.nodeName=="okay"){
   var imageID=d.imageID.value;
   var amount=nValue(xml,"amount");
   
   if(amount==0){
    window.location="mygallery.php";
   }else{
    getObject("qty"+imageID+"Div").innerHTML='<b>Qty</b> &times;'+amount;
     
    var st='<a href="javascript:addImage(\''+imageID+'\',4)"><img src="graphics/add.gif" class="add2" alt="Add another image" title="Add another image" /></a>';
    if(amount>1){
     st+='<a href="javascript:removeImage(\''+imageID+'\',4)"><img src="graphics/remove.gif" class="remove2" alt="Remove one image" title="Remove one image" /></a>';
    }
    if(amount>1){
     st+='<a href="javascript:removeAllImages(\''+imageID+'\',4)"><img src="graphics/removeall.gif" class="removeall2" alt="Remove line" title="Remove line" /></a>';
    }else{
     st+='<a href="javascript:removeImage(\''+imageID+'\',4)"><img src="graphics/removeall.gif" class="remove2" alt="Remove line" title="Remove line" /></a>';
    }
    
    getObject("change"+imageID+"Div").innerHTML=st;
   }
  }else{
   d.imageID.value="";
   return true;
  }
 }
}


















//-----------------------GALLERY ROLLOVER


var iDelay="";
function iBlock(){
 var ttl=getStyle("toolTipLayer");
 if(ttl){
  ttl.display="block";
  if(iLoop)clearInterval(iLoop);
 }
}
function setfocus(){
 var d=df(0);
 d.lastfocus.value="options";
}
function clearfocus(){
 var d=df(0);
 d.lastfocus.value="";
}
function galleryfocus(o){
 var st="Search our gallery...";
 setfocus();
 if(o.value==st)o.value="";
}
function galleryblur(o){
 var st="Search our gallery...";
 clearfocus();
 if(o.value=="")o.value=st;
}


function hideDD(f){
 if(document.all && !window.XMLHttpRequest){
  if(f){
   divStyle.hidden("categoryID");
   divStyle.hidden("colourID");
   divStyle.hidden("pageDD0");
   divStyle.hidden("pageDD1");  
  }else{
   divStyle.visible("categoryID");
   divStyle.visible("colourID");
   divStyle.visible("pageDD0");
   divStyle.visible("pageDD1");
  }
 }
}
function showImg(o,p){
 var r=getObject("rollover");
 var ttl=getStyle("toolTipLayer");
 if(r){
  if(p){
   if(o.complete || (!document.all && typeof(o.naturalWidth)!="undefined" && o.naturalWidth==0)){
    with(r){
     src=o.src;
     width=o.width;
     height=o.height;
    }
   }else{
    with(r){
     src=loading.src;
     width=loading.width;
     height=loading.height;
    }
    iLoop=setInterval("loadImg("+o+")",200);
   }
   if(ttl){
    hideDD(1);
    iDelay=setTimeout("iBlock()",800);
    if(!isNaN(parseFloat(o.width))){
     ttl.width=parseFloat(o.width)+"px";
     ttl.height=parseFloat(o.height)+"px";
    }
   }   
  }else{
   ttl.display="none";
   hideDD(0);
   clearTimeout(iDelay);
   if(iLoop)clearInterval(iLoop);
  }
 }
}
function loadImg(o){
 var r=getObject("rollover");
 if(o.complete || (!document.all && typeof(o.naturalWidth)!="undefined" && o.naturalWidth==0)){
  r.src=o.src;
  r.width=o.width;
  r.height=o.height;
 }
}

function tcPopup(){
 var w=700;
 var h=570;
 var sw=screen.availWidth;
 var sh=screen.availHeight;
 var t=(sh)?(((sh-h)/2)-30):10;
 var l=(sw)?((sw-w)/2):10;
 var c="toolbar=yes, location=no, directories=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no";
 c+=", width="+w+", height="+h+", top="+t+", left="+l;
 if(document.layers){
  c+=", screenX="+l+", screenY="+t;
 }
 window.open("tsandcs.php","tcpopup",c);
}





//---------------PRICING
function seta10acrylic(){
 var h=parseInt(ddv("a10height"),10);
 var w=parseInt(ddv("a10width"),10);
 var wh=h*w;
 var whprice=wh*0.23;

 if(wh>999 || wh<=1200){
  whprice*=0.9;
 }else if(wh>1200){
  whprice*=0.8;
 }
 setAspect(w*2.54,h*2.54,0,0);
 getObject("a10price").innerHTML="&pound;"+twoDP(whprice);
}

function setbm(){
 var h=parseInt(ddv("bmheight"),10);
 var w=parseInt(ddv("bmwidth"),10);
 var wh=h*w;
 var whprice=wh*0.13;
 
 if(wh<144){
  getObject("bmprice").innerHTML="<p>The selected area is "+wh+"&sup2;in,which is less than then minimum area of 1&sup2;ft (144&sup2in). Please select another height and width.</p>";
 }else{
  setAspect(w*2.54,h*2.54,0,0);
  getObject("bmprice").innerHTML="&pound;"+twoDP(whprice);
 }
}

function setAspect(w,h,n,b){
 var canvasW=150;
 var canvasH=150;
 var g=parseInt(getObject("g").value,10);
 g=(g==0)?1:g;
 
 if(n!=0 && b!=0)changeRowColour(n,b);

 if(g==1 || g==3){
  o=getObject("picobjDiv");
  if(o){
   cliptop=(canvasH-h)/2;
   clipbottom=cliptop+h;
   clipleft=(canvasW-w)/2;
   clipright=clipleft+w;
   
   if(document.layer){
    o.clip.top=cliptop+"px";
    o.clip.right=clipright+"px";
    o.clip.bottom=clipbottom+"px";
    o.clip.left=clipleft+"px"; 
   }else{ 
    o.style.clip="rect("+cliptop+"px "+clipright+"px "+clipbottom+"px "+clipleft+"px)";
   }
  }
 }else{ 
  o=getStyle("picobj");
  if(o && document.images){
   w=(g==4)?(w*3):w;
   document.images["picobj"].width=parseInt(w,10);
   document.images["picobj"].height=parseInt(h,10);
   o.marginTop=((canvasH-h)/2)+"px";
  }
 }
}
function changeRowColour(n,b){
 var f="464746";
 b=(b=="")?"ffffff":b;
 for(var i=0; i<5; i++){
  var c=getStyle('cell'+i+'_'+n);
  if(c){
   c.background="#"+b;
   c.color="#"+f;
  }
 }
}








//-------------------SEND UPLOAD
function sendOrder(){
 var d=df(0);
 if(!requiredValues(["fullname", "email", "postcode", "imagedimensions", "daytimetel"])){
  alert("\n\nPlease complete all required fields\nbefore submitting the form\n\n");
 }else{
  if(isTelNum(d.daytimetel,"Day-Time Contact")){
   if(checkEmail(d.email.value,d.email)){
    d.submit();
   }
  }
 }
}
function resetuploadForm(){
 var d=df(0);
 d.reset();
 d.yourname.focus();
}










//----------------------ORDER VERIFICATION
function twoDP(v){
 if(v<0 || isNaN(v)){
  v="0.00";
 }else{
  var s=""+Math.round(v*100)/100;
  var i=s.indexOf('.');
  if(i<0){
   v=s+".00";
  }else{
   var t=s.substring(0, i+1)+s.substring(i+1, i+3);
   if(i+2==s.length)t+="0";
   v=t;
  }
 }
 return v;
}
function setPrice(o){
 var p1=ddv(o);
 var p2=p1.split("_");
 var s=o.id.split("_");
 var a1=getObject("amount_"+s[1]+"_"+s[2]);
 var a2=getObject("amounth_"+s[1]+"_"+s[2]);
 setdefaultframesize(s[1],s[2]);
 if(a1){
  var p=twoDP(p2[3]);
  a1.innerHTML="&pound;"+p;
  a2.value=p;
 }
 calcOrderTotal();
}
function setPrice2(o){
 var p1=ddv(o);
 var p2=p1.split("_");
 var s=o.id.split("_");
 var a1=getObject("amountByArtist_"+s[1]+"_"+s[2]);
 var a2=getObject("amountByArtisth_"+s[1]+"_"+s[2]);
 if(a1){
  var p=twoDP(p2[3]);
  a1.innerHTML="&pound;"+p;
  a2.value=p;
 }
 calcOrderTotal();
}
function setMiscPaperCosts(o){
 var p1=ddv(o);
 var s=o.id.split("_");
 var a1=getObject("miscamountpaper_"+s[1]+"_"+s[2]);
 var a2=getObject("miscamountpaperh_"+s[1]+"_"+s[2]);
 if(a1){
  var p=twoDP(p1);
  a1.innerHTML="&pound;"+p;
  a2.value=p;
 }
 calcOrderTotal();
}
function setMiscCanvasCosts(o){
 var p1=ddv(o);
 var s=o.id.split("_");
 var a1=getObject("miscamountcanvas_"+s[1]+"_"+s[2]);
 var a2=getObject("miscamountcanvash_"+s[1]+"_"+s[2]);
 if(a1){
  var psplit=p1.split("_");
  var p=twoDP(psplit[1]);
  a1.innerHTML="&pound;"+p;
  a2.value=p;
 }
 calcOrderTotal();
}
function setOrderAspect(p){
 var t=ddv(p);
 if(t!="" && t!=null){
  var canvasW=150;
  var canvasH=150;
  var s=t.split("_");
  var w=parseInt(s[1],10);
  var h=parseInt(s[2],10);

  cliptop=(canvasH-h)/2;
  clipbottom=cliptop+h;
  clipleft=(canvasW-w)/2;
  clipright=clipleft+w;

  o=getObject("picobjDiv");
  if(o){
   if(document.layer){
    o.clip.top=cliptop+"px";
    o.clip.right=clipright+"px";
    o.clip.bottom=clipbottom+"px";
    o.clip.left=clipleft+"px";
   }else{
    o.style.clip="rect("+cliptop+"px "+clipright+"px "+clipbottom+"px "+clipleft+"px)";
   }
  }
 }
}





//-------------------------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=(getObject('offsetX'))?parseInt(getObject('offsetX').value,10):0;
 var yOffset=(getObject('offsetY'))?parseInt(getObject('offsetY').value,10):0;
 xOffset=(isNaN(xOffset))?0:xOffset;
 yOffset=(isNaN(yOffset))?0:yOffset;
 if(ttl){
  ttl.left=(x+xOffset)+"px";
  ttl.top=(y+yOffset)+"px";
 }

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

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









//----------------------FAQs
function showFaq(o){
 var d=df(0);
 if(d.lastfaq.value!=""){
  getStyle("faq_"+d.lastfaq.value).display="none";
 }
 d.lastfaq.value=o;
 getStyle("faq_"+o).display="block";
 setcolumnheight();
}









//--------------------NEWS
var iDelay="";
function openNews(o){
 var d=df(0);
 var h=d.headlineID.value;
 window.location="news.php?id="+o+((h=="")?"":"&hID="+h);
}
function hideshowObject(o,f){
 var el=getStyle(o);
 if(el && el!="undefined"){
  el.display=(f)?'block':'none';
 }
}
function toggleMenu(o){
 var thisMenu=getStyle("hs"+o);
 if(thisMenu){
  df(0).headlineID.value=o;
  hideshowObject("hs"+o,((thisMenu.display=='none')?1:0));
  getObject("mp"+o).src=(thisMenu.display=='none')?plus.src:minus.src;
  collapseOthers(o,0);
  setcolumnheight();
 }
}
function toggleNews(n){
 ndiv=getStyle("newsDiv"+n);
 ndiv.display=(ndiv.display=="none")?'block':'none';
 np=getObject("news"+n);
 np.src=(ndiv.display=="block")?minus.src:add.src;
}
function collapseOthers(o,f){
 var divs=document.getElementsByTagName('div');
 for(i=0; i<divs.length; i++){
  a=divs[i].id;
  if(a.substr(0,2)=="hs" && a!=("hs"+o)){
   hideshowObject(a,f);
   getObject("mp"+(a.substr(2))).src=(f)?minus.src:plus.src;
  }
 }
}
function toggleYear(o){
 var thisMenu=getStyle("newsyeardiv_"+o);
 if(thisMenu){
  df(0).headlineID.value=o;
  hideshowObject("newsyeardiv_"+o,((thisMenu.display=='none')?1:0));
  getObject("newsyearimg_"+o).src=(thisMenu.display=='none')?yearright.src:yeardown.src;
  setcolumnheight();
 }
}







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

function nValue(xml,n){
 var v;

 try{
  v=xml.getElementsByTagName(n)[0];
 }catch(e){
  return "";
 }
 if(!v){
  return "error";
 }else{
  var w=v.firstChild.nodeValue;
  return (w=="null" || w=="")?"":w;
 }
}


//------------------- ADD NEW ROWS
function addTable1Row(o,id){
 obj=new getTable(o);
 var newrow=document.createElement('tr');
 newrow.id="imgrow"+id+"Div";

 for(i=0; i<=obj.cols; i++){
  var td=document.createElement('td');
  switch (i){
   case 0:
    td.setAttribute('id', 'imgleft'+id+'Div');
    break;
   case 1:
    td.setAttribute('id', 'imgright'+id+'Div');
    td.setAttribute('class', 'right');
    td.setAttribute('className', 'right');
    break;  
  }
  td.appendChild(document.createTextNode(" "));
  newrow.appendChild(td);
 }
 if(document.all && !window.opera){
  obj.tbody.appendChild(newrow);
 }else{
  obj.tbody.insertBefore(newrow,obj.tbody.rows[0]);
 }
}

//------------------- DELETE TABLE ROWS
function delnlTableRowID(o,id){
 var del=getObject(id);
 if(del){
  del.parentNode.removeChild(del);
 }
}

//------------------- TABLE MANIPULATION FUNCTIONS
function getTable(o){
 this.tbl=getObject(o);
 this.tbody=this.tbl.tBodies[0];
 this.thead=this.tbl.tHead;
 this.rows=this.tbody.rows.length;
 this.cols=this.thead.rows[0].cells.length;
}

