var order = new Object();  // object to store order items 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  = function (wt) {return 0;} // what to charge for shipping;

var stxt  = "";            // shipping text

var spos  = -1;            // shipping position selector

var ttax  = 0;             // percent for taxes

var ttxt  = "0";           // tax text

var tpos  = -1;            // tax position selector

var tamt=0,tqty=0,twgt=0,wgt=0,thnd=0;  // totals

 

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

// 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   = ""; // 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



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;

//  d.sub.value = Dollar (tamt);

//  d.wgt.value = twgt;

//  if (root.shp) d.shp.value = Dollar (shpr (twgt));

  tmp = tamt * ttax/100.00;

  if (root.tax) d.tax.value = Dollar (tmp);

  thnd = 0;                    // assume the worst;

  if (d.hnd) d.hnd.value = "0.00";

  if (tamt*1.0 < root.hamt) {  // calculate handling charge

      thnd = root.hand;        // figure it out

      if (d.hnd) d.hnd.value = Dollar (thnd);

  }

//  d.tot.value = Dollar (tamt + shpr (twgt) + tmp + thnd);

//  d.tot.value = Dollar (tamt + 5);

    

    d.amount.value = Dollar (tamt);







    if (tamt >= 200.00)

    {

    	d.discount.value = Dollar (10.00/100.00*tamt);

	tamt = tamt - 10.00/100.00*tamt;

    }

    else

    	d.discount.value = Dollar (0.00);	    

    

    d.sub.value = tamt;
	tamt = tamt+3.99;

    d.tax.value = Dollar ((9.4/100.00)*(tamt));

   // d.tot.value = Dollar (tamt+(9.4/100.00)*tamt);

    d.tot.value = Dollar (tamt+(9.4/100.00)*tamt);

}



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

  for (i=1; i<=opts; i++)        // load options

    if (op[i] != "") des = des + ", OP" + i + "=" + op[i];

  order[id].des = des;           // load up values

  order[id].amt = Dollar (amt);

  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;  // total amount

    tqty = tqty + qty;                 // total quantity

    twgt = twgt + order[i].wgt * qty;  // total ounces

  }

  twgt = Math.floor ((twgt + 15.99)/16.0);  // get pounds

  DispTots ();                         // calc totals

}



function SendCart () {  // send the cart to PayPal

var frst = true;  // 1st pass thru items.

var winpar = "width=710,height=390,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 total=0;

var i,j=0,z=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 (tpos > 0) strn = strn + "&tax_cart=" + Dollar (tamt*ttax/100.00);

  



  for (i in order)

  {  

        z++;

	if (order[i].qty > 0) 

    {


	total = total + order[i].qty*order[i].amt;

	i++;

    }

  }







  if (total < 40.00)

  {

	alert ("Total Amount should be greater than $40");

	return 0;

  }



  

//  i = 0;



  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

//        des = des + ", SHP=" + 5;

//        des = des + ", TAX=" + ttxt;

//        strn = strn + "&handling_cart=" + Dollar (thnd);

      }

      strn = strn + "&item_name_"    + j + "=" + escape (des) +

                    "&item_number_"  + j + "=" + i +

                    "&quantity_"     + j + "=" + order[i].qty +

                    "&amount_"       + j + "=";



	
	//alert(total);
	if (total >= 200.00)
	{
		strn = strn + (order[i].amt-(10.00/100.00)*order[i].amt);
	
	}
	else
	{
		strn = strn + (order[i].amt);
	}




//	if (document.orderf["firsttime"].checked)

//		strn = strn + (order[i].amt+(20/z));

//	else

//		strn = strn + (order[i].amt);



//	total = total + order[i].qty*order[i].amt;



	strn = strn + "&on0_"    + j + "=Level of Spice";

	strn = strn + "&os0_"    + j + "=" +document.orderf["spice"].value;



//	strn = strn + "&on0_"    + j + "=Level of Spice";

//	strn = strn + "&os0_"    + j + "=" +document.orderf["spice_"].value;





//      if (spos >= 0) {  // there is some shipping activity

//        if (frst) {     // first time thru

//          strn = strn + "&shipping_" + j + "=" + Dollar (shpr(twgt));

//        } else {        // every other time thru

//          strn = strn + "&shipping_" + j + "=0";

//        }

//      }

      

//      if (frst) {     // first time thru (added later by rizwan -oct23 2006)

//      	strn = strn + "&shipping_" + 1 + "=" + Dollar (5);	

//      }

	frst = false;

    }

  }



j++;
strn = strn + "&item_name_"    + j + "=Delivery Fees "  +

                    "&quantity_"     + j + "=1"  +

                    "&amount_"       + j + "=3.99";




j++;

if (document.orderf["firsttime"].checked)

{

	strn = strn + "&item_name_"    + j + "=One time deposit for insulated bag "  +

                    "&item_number_"  + j + "=firstTime"  +

                    "&quantity_"     + j + "=1"  +

                    "&amount_"       + j + "=20.00";


}



  strn = strn + "&tax_cart" + "=" + Dollar ((9.5/100.00)*tamt);

  strn = strn + "&cn" + "=Special Cooking and Other Instructions (like level of spice)";

 
  if (j > 0) window.open (strn, "paypal", winpar);

}



function SetShp (obj) {  // set shipping on user selection

  shpr = function (wt) {return 0;}  // zap it

  spos = obj.selectedIndex;  // which option selected

  stxt = obj.options[spos].text;

  // set various shipping functions.

  if (spos == 2) shpr = function (wt) {return 20;}

  if (spos == 1) shpr = function (wt) {return wt * 5.00;}

  DispTots ();

}



function SetTax (obj) {

  tpos = obj.selectedIndex;  // which option selected

  ttxt = obj.options[tpos].text;

  ttax = obj.options[tpos].value*1.0;

  DispTots ();

}



