var order = new Object(); // object to store order in
var root  = new Object();  // selection criteria
var on    = true;
var off   = false;
var cntr    = 0;           // items in object
var opts    = 5;           // number of options to allow
var shpr    = 0;           // what to charge for shipping;
var stxt    = "";  // shipping text
var usrzip  = 0;           // user input of zip code
var spos    = -1;          // position in the shipping select
var zne     = 0;           // zone calc'ed from user zip
var zip     = "";          // user input of zip code
var ttax  = 0;             // percent for taxes
var ttxt  = "0";           // tax text
var tpos  = -1;            // tax position selector
var tamt=0,tqty=0,twgt=0,thnd=0;  // totals

var minqty = "0";			// set minimum quantity

handchg = 0.00	 // handling charge
root.hamt = 0;     // amount, below which, handling charge applies
root.hand = 0;     // handling charge for orders less than hamt
root.shp  = on;    // shipping selection line
root.tax  = on;    // tax selection line
// place for user-specific options
root.xx_can  = ""; // place for PayPal cancel return path
root.xx_cur  = ""; // enter default currency code (or null)
root.xx_id   = "ed@muellerartcover.com"; // PayPal ID
root.xx_img  = ""; // image URL
root.xx_lc   = ""; // enter default country code (or null)
root.xx_ret  = ""; // place for PayPal return path
root.xx_sty  = ""; // place for PayPal page style
root.xx_xtra = ""; // place for other PayPal commands

var zn = 0;                // ZIP, zone entries index
var zzip = new Array ();   // ZIP entry
var zone = new Array ();   // corresponding zone for ZIP





function CalcRoot () {  // calc root stuff
  if (root.shp) spos=0; 
  if (root.tax) tpos=0;
}



function DispTots () {  // display totals on the page
var tmp,d;
  d = document.orderf;
  
  	shpr = 6.95 + (document.orderf["qty10"].value * .5);
	shpr = shpr + (document.orderf["qty20"].value * .25);
    shpr = shpr + (document.orderf["qty30"].value * .25);  
   
    
  d.sub.value = Dollar (tamt);
  d.wgt.value = twgt;
  d.shp.value = Dollar (shpr);  
  
  tmp = tamt + shpr;
  
  d.tot.value = Dollar (tamt + shpr);
  //if (d.zne) d.zne.value = "Zone = " + zne;
}


function Dollar (val) {     // force to valid dollar amount
var str,pos,rnd=0;
  if (val < .995) rnd = 1;  // for old Netscape browsers
  str = escape (val*1.0 + 0.005001 + rnd);  // float, round, escape
  pos = str.indexOf (".");  // should be one, but OK if not
  if (pos > 0) str = str.substring (rnd, pos + 3);
  return str;               // return valid string
}


function GetOrder (id, des, amt, wgt) {  // get all ordered items
var i,nr,val,qty,pos;
var op = new Array ();    // accumulate options here
  tamt=0,tqty=0,twgt=0;   // clear totals
  nr = id.substring (2);  // get number part of ID
  qty = document.orderf["qty" + nr].value;  // get qty

  if (isNaN (qty)) {      // test entry
    alert ("That is not a valid number!  Try again.");
    return;
  }
  for (i=1; i<=opts; i++) {     // see if any options
    if (document.orderf["op" + i + nr]) {
      val = document.orderf["op" + i + nr].value;  // get option
      op[i] = val;
      pos  = val.indexOf ("+"); // price increment?
      if (pos > 0) amt = amt + val.substring (pos + 1)*1.0;
      pos  = val.indexOf ("%"); // percent change?
      if (pos > 0) amt = amt + (amt * val.substring (pos + 1)/100.0);
    }
    else op[i] = "";
  }
  document.orderf["prc" + nr].value = Dollar (qty * amt);
  document.orderf["toz" + nr].value = qty * wgt;
  if (cntr == 0) order = new Object (); // zap object
  cntr = cntr + 1;               // bump counter so no zap next time
  order[id] = new Object ();     // create new entry
  //des = des + ", Cover Text = " + op[1];
  //des = des + ", Font Size = " + op[2];
  for (i=1; i<=opts; i++)        // load options
   if (op[i] != "") des = des + ", " + op[i];
    
  order[id].des = des;
  order[id].amt = Dollar (amt);  // load base stuff
  order[id].qty = qty;
  if (wgt) order[id].wgt = wgt;
    else order[id].wgt = 0;
  for (i in order) {             // calc totals we might use
    qty = order[i].qty*1.0;
    tamt = tamt + order[i].amt * qty;
    tqty = tqty + qty;
    twgt = twgt + order[i].wgt * qty;
  }
  twgt = Math.floor ((twgt + 15.99)/16.0);  // get pounds
// here is where to add shipping and other stuff based on cart totals
  
  DispTots ();
}



		 
function SendCart () {  // send the cart to PayPal


var frst = true;  // 1st pass thru items.
var winpar = "width=1024,height=768,scrollbars," +
             "location,resizable,status";


var strn   = "https://www.paypal.com/cgi-bin/webscr?cmd=_cart" +
             "&upload=1" +
             "&business=" + root.xx_id + root.xx_xtra;
var i,j=0,des;
  if (root.xx_cur.length > 0)
    strn = strn + "&currency_code=" + root.xx_cur;
  if (root.xx_lc.length > 0)
    strn = strn + "&lc=" + root.xx_lc;
  if (root.xx_can.length > 0)
    strn = strn + "&cancel_return=" + root.xx_can;
  if (root.xx_ret.length > 0)
    strn = strn + "&return=" + root.xx_ret;
  if (root.xx_sty.length > 0)
    strn = strn + "&page_style=" + root.xx_sty;
  if (root.xx_img.length > 0)
    strn = strn + "&image_url=" + root.xx_img;
  if (ttax > 0) strn = strn + "&tax_cart=" + Dollar ((tamt +shpr) * ttax/100);
  for (i in order) {  // send all valid data
    if (order[i].qty > 0) {
      j = j + 1;
      des = order[i].des;
      if (j == 1) {  // put in descriptions for 1st item
        
        strn = strn + "&handling_cart=" + Dollar (thnd);
      }
      strn = strn + "&item_name_"    + j + "=" + escape (des) +
                    "&item_number_"  + j + "=" + i +
                    "&quantity_"     + j + "=" + order[i].qty +
                    "&amount_"       + j + "=" + order[i].amt;
      if (spos >= 0) {  // there is some shipping activity
        if (frst) {     // first time thru
          strn = strn + "&shipping_" + j + "=" + Dollar (shpr);
        } else {        // every other time thru
          strn = strn + "&shipping_" + j + "=0";
        }
      }
      frst = false;
    } 
  }
  if (j > 0) window.open (strn, "paypal", winpar);
}



