/* *********************************************************
** GENERAL.JS
** ==================================================
** This file contains data for the intercept of the click
** of the right mouse button. Please maintain this header!
** ENJOY! But please contact us regarding use of this script.
**
** Author                Ver  Date     Comments
** ======                ===  ====     ========
** BluePrint Web Designs 5.0  19/12/04 Cob's British Spares version
** BluePrint Web Designs 5.1  26/01/05 Production version
**
**            Copyright © 2002/2004, BluePrint Web Designs
**     MouseOver functions Copyright © 2002, Macromedia Corporation
**                   All rights reserved.
** Contact: BluePrint Web Designs on (Australia) 0404-850840.
**              or via 'http://blueprint.web.com'
********************************************************* */
eAdd = 'cob.smith@bigpond.com';
n = (document.layers) ? 1:0
ie = (document.all) ? 1:0
document.onmousedown = klick;
   if (n) document.captureEvents(Event.MOUSEDOWN)      


function klick(e){
  var answer=false
  if (ie && (event.button==2||event.button==6)) { 
    answer=confirm("This work is for the purpose of displaying website for\n Cob's British Motorcyles Spares only.\n\nPlease observe the copyright request. \n\nPress OK to view or CANCEL to return to the page."); 
    if (answer){pwinOpen('copyright',500,390);}
    }

  if (n){if (e.which==3) return false;}
}

document.onmousedown = klick;
   if (n) document.captureEvents(Event.MOUSEDOWN)      


/* *** MOUSE-OVER FUNCTIONS ****** */
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/* *** REDIRECT FUNCTIONS *** */
function listDirectorMfr(tMfr) {
  document.location = "partLister.php?mfr="+tMfr;
  }

/* *** COOKIE SUPPORTING FUNCTIONS *** */
/* ** Cookie Clear Function ** */
function clearOrder() {
    visitordata.order = ''; 
    visitordata.store();
    mainForm.reset();
}

/* ** Cookie Save Function *** */
function saveOrder(tID) {
 var prdID = tID;
 var prdQty = document.getElementById(tID).value;
 if (stripLeadingTrailingBlanks(visitordata.order)=='*')clearOrder();

 /* * Check Qty is a number * */
 if (!isBlank(prdQty)) {
   if (!isInteger(prdQty) || prdQty=='-' || prdQty=='+') {
     alert('Please enter numbers only ... (' + prdID + '=' + prdQty + ')');
     eval(document.getElementById(tID).focus());
     eval(document.getElementById(tID).select());
     return false;
     } 
   }

   /* Stop only if has a no current order for product */
   if (prdQty==0 && visitordata.order.indexOf(prdID)==-1 ) {
    return false;
    } 

   /* Set status to change order for this Item */
   var prdProcess = -1;
   if (prdQty==0 && visitordata.order.indexOf(",id_"+prdID)>0) {prdProcess=0} //Remove:0
   else {prdProcess=1} // Add:1
   // Update if found in order: do not increase order count
   if (prdProcess==1 && visitordata.order.indexOf(",id_"+prdID)>0) 
     {prdProcess=2;} //Update:2

   var prdOrder = 'count';
   var tCountStr = getOrderCount();
   var tCount = 0;
   
   tCount = parseInt(tCountStr);

   if(prdProcess==0){tCount=tCount-1}
   if(prdProcess==1){tCount++}
   if(tCount==0){
     clearOrder();
     return false;
     }

   tCountStr = tCount.toString();
   prdOrder+=tCountStr.toString();   

   var tOrder=OrderItemToStr(prdID, prdQty, prdProcess);
   var eOrder=GetOrder(prdID, prdProcess);

   prdOrder+=eOrder;
   if(prdQty!=0){prdOrder+=tOrder;}
//alert("Complete Order: "+prdOrder+"  \nRevised OrderCount: "+tCount.toString());

 visitordata.order = prdOrder;
 visitordata.store(); 
}

/* ** Cookie Display Function *** */
function displayOrder(tDisplay) {
 var k=0;
 var tCount = getOrderCount();
 var cOrder=stripLeadingTrailingBlanks(visitordata.order);
 if (cOrder=='*'||cOrder==''){
  clearOrder();
//  alert('No items to display.');
  return false;
  }
 var tOrder = cOrder.split(",");
 for(k=1;k<tCount+1;k++){
//alert("ITEM"+k+": "+tOrder[k]);

    var prdID = GetIDfromItem(tOrder[k]);
//    alert("Item "+prdID+" found");
    var prdQty = GetQtyfromItem(tOrder[k]);
//    alert("Qty of "+prdQty+" found for Item "+prdID+".");

// alert("Found?: "+document.getElementById(prdID).value);
//alert(tDisplay.search(prdID)+" ID: "+prdID+"\nDisplayedItems: "+dispItems);
 if(tDisplay.search(prdID)>-1){
//   alert("UPDATING '"+prdID+"'");
   document.getElementById(prdID).value=prdQty;
   }

/* Original Version (pre-External Host) */
// if(document.getElementById(prdID).value==0){
//   document.getElementById(prdID).value=prdQty;
//   alert("UPDATED '"+prdID+"'");
//   }
    }
}

/* *** COOKIE SUB-ROUTINES **************** */
/* Return Order without focussed Item (if selected) */
function GetIDfromItem(tItem) {
 tItem=tItem.replace('id_','');
 var sLen=tItem.search('qty_');
 tItem=tItem.slice(0,sLen);
// alert("ID: '"+tItem+"'");
 return tItem;
}

function GetQtyfromItem(tItem) {
 tItem=tItem.replace('id_','');
 var sLen=tItem.search('qty_');
 var eLen=tItem.length;
 tItem=tItem.slice(sLen+4,eLen);
// alert("Qty: '"+tItem+"'");
 return tItem;
}

function GetQtyfromCookie(tItem) {
  var k=0;
  var cCount = getOrderCount();
  var cOrder = visitordata.order;
  var spOrder = cOrder.split(",");
  for(k=1;k<cCount+1;k++){
    if(spOrder[k].search(tItem)!=-1){
      tQty=GetQtyfromItem(spOrder[k]);
//      alert("Item: "+tItem+" Qty: "+tQty);
      }
    }
  return tQty;
}

function GetOrder(prdID, prdProcess) {
  var strOrder='';
  var k=0;
  var cCount = getOrderCount();
  var cOrder = visitordata.order;
  var spOrder = cOrder.split(",");
  for(k=1;k<cCount+1;k++){
    if(spOrder[k].search(prdID)==-1){
      strOrder+=","+spOrder[k];
      }
    }
  return strOrder;
}


/* Build String for each item requested */
function OrderItemToStr(prdID, prdQty, prdProcess) {
  var strOrder=",id_"+stripLeadingTrailingBlanks(prdID)+"qty_"+prdQty;
  if(prdProcess==0)strOrder='';
  return strOrder;
}

/* Count number of items orders */
function getOrderCount() {
  var cOrderCount = 0;
  cOrderCount=countCharsInBag(visitordata.order,",");
  return cOrderCount;
 }

/* *** GENERAL FUNCTIONS *** */
function writePOP(){document.writeln("<a href=mailto:"+eAdd+">"+eAdd+"</a>");}

function popMailform() {
  if(visitordata.order){
    mainForm.name.value=visitordata.Name;
    mainForm.email.value=visitordata.Email;
    mainForm.telephone.value=visitordata.Phone;
    mainForm.address.value=visitordata.Address;
    mainForm.suburb.value=visitordata.Suburb;
    mainForm.state.value=visitordata.State;
    mainForm.postcode.value=visitordata.Postcode;
    mainForm.country.value=visitordata.Country;
  }
}

/* ** CURRENCY FUNCTIONS  ****************************************** */
function convertToTwoDecimals(num)  // accept number, return 2-decimal string
  {
  var changeNum = num;
  num = num.toString();
  var decimalPointPos = num.indexOf(".");
  if (decimalPointPos == -1)  // no decimal point
    num += ".00";
  else if (decimalPointPos == num.length - 2)  // only 1 decimal num present
    num += "0";
  else if (decimalPointPos == num.length - 3) // 2 decimal nums present
    num = num.substring(0, decimalPointPos + 3);
  else  // 3+ decimals: add half a cent to round and then truncate
        // deals with calcalution errors that should give whole cents
    {changeNum = changeNum + 0.005;num = changeNum.toString();
     num = num.substring(0, decimalPointPos + 3);}
  return num;
  }

