// pm_cart.js 20111106 derived from aussiet
function $(id){if(typeof id=='string')return document.getElementById(id); else return id;}

var order = new Array();                 // initialise global
if (readCookie('order') != undefined) {
 var orderlines = decodeURI( readCookie('order') ).split('\n');
 for (var n = 0; n < orderlines.length; n++) {
  var itemarray = orderlines[n].split('|');
  itemarray[2] = new Number(itemarray[2]);
  itemarray[3] = new Number(itemarray[3]);
  if (itemarray[0]) {
   order.push(itemarray);
  }
 }
}

function orderUpdate(part,desc,price,units) {
 var price = new Number(price);
 var units = new Number(units);
 var neworder = new Array();
 if ((part) && (desc) && (price > 0) && (units >= 0) && (Math.floor(units) == units)) {
  for(var n = 0; n < order.length; n++) {
   if (order[n][0] == part) {
    if (units > 0) {
     order[n][3] = units;
     neworder.push(order[n]);
    }
   }else {
    neworder.push(order[n]);
   }
  }
  orderSave(neworder);
 }
 $('ordercart').innerHTML = orderCart();
 return neworder;
}

function orderAdd(part,desc,price,units) {
 var price = new Number(price);
 var units = new Number(units);
 var neworder;
 if ((part) && (desc) && (price > 0) && (units > 0) && (Math.floor(units) == units)) {
  var newitem = new Array(part,desc,price,units);
  neworder = new Array(newitem);
  for(var n = order.length-1; n >= 0; n--) {
   if (order[n][0] == part) {
    neworder[0][3] += order[n][3];
   }else {
    neworder.push(order[n]);
   }
  }
  orderSave(neworder.reverse());
 }
 $('ordercart').innerHTML = orderCart();
 return neworder;
}

function orderSave(neworder) {
 var neworderlines = new Array();
 for (var n = 0; n < neworder.length; n++) {
  var newitemstring = neworder[n].join('|');
  neworderlines.push(newitemstring);
 }
 var neworderstring = neworderlines.join('\n');
 if (createCookie('order', encodeURI(neworderstring) , 0) == undefined) {
// if (createCookie('order', encodeURI(neworderstring) , 365) == undefined) {
  alert('unable to save order\ncookie memory is exhausted');
 }else {
  order = neworder; // modify global array
 }
}

function orderCart() {
 var orderitems = 0;
 var ordercart = '';
 var codes='';
 for (var n = 0; n < order.length; n++) {
  if ( order[n][0] ) {
   codes += order[n][0] + ',';
   orderitems++;
  }
 }
 codes=codes.replace(/,$/,'');
 if (orderitems > 0) {
  var label = 'item';
  if (orderitems > 1) {
   label = 'items';
  }
  if (document.location.href.match(/c2=list/)) {
   ordercart = "<div id='carttext'>My list: " + orderitems + " " + label + "</div> \
   <div style='text-align: right; padding-right: 14px'> \
    <a href='javascript: history.back()'>Hide</a> &nbsp; &nbsp;\
    <a href='javascript: history.back()' onclick=\"orderSave([]); $('ordercart').innerHTML = '&nbsp;'\">Clear</a> \
   </div>"
  }else {
   ordercart = "<div id='carttext'>My list: " + orderitems + " " + label + "</div> \
   <div style='text-align: right; padding-right: 14px'> \
    <a href='/products&c2=list&terms=" +  codes + "'>View</a> &nbsp; &nbsp;\
    <a href='#' onclick=\"orderSave([]); $('ordercart').innerHTML = '&nbsp;'\">Clear</a> \
   </div>"
  }
 }
 return ordercart;
}

