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;		   // 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,thnd=0;  // totals
var nr;
var shippos;
var shiptype;
var phn;

// 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
//root.xx_shpr = "";
//root.xx_shpr_alt = "";


function CalcShip ()
{
shippos = document.orderf["op1Ship"].value; // get shipping rate
			if (shippos == 0)
  				{
  					shpr  = 0;
   					document.orderf["shp"].value = "0.00";
   				}
   			else if (shippos == 1)
   				{
   					shpr  = root.xx_shpr_elect/cntr;
   					shiptype = "Electronic (email)"
   					document.orderf["shp"].value = root.xx_shpr_elect;
   				}
			else if (shippos == 2)
   				{
   					shpr  = root.xx_shpr/cntr;
   					shiptype = "Priority Mail"
   					document.orderf["shp"].value = root.xx_shpr;
   				}
   			else if (shippos == 3)
   				{
   					shpr  = root.xx_shpr_alt/cntr;
   					shiptype = "DHL"
   					document.orderf["shp"].value = root.xx_shpr_alt;
   				}
   			DispTots ();                         // calc totals
}


function ValidateOrder ()
	{
		phn = document.orderf["phnContact"].value;
		shippos = document.orderf["op1Ship"].value;
		if (phn.length < 13)
			{
				alert ("Please enter a valid phone number.\n" +
		 			  "Format: (xxx)xxx-xxxx.\n" +
		 			  "This will help us contact you if we have any questions.");
				return;
			}
		if (cntr == 0)
   			{
   				alert ("Your cart is empty.  Please, select item to purchase.");
   				return;
   			}
		if (shippos == 0)
  			{
  				alert ("Please Select Type of Shipping.");
   				return;
   			}
   		SendCart ();
	}

function EnableCheckout ()
	{
		document.orderf["submit"].disabled = false;
		document.orderf["submit"].value   = "Checkout";
	}

function DispTots () // display totals on the page
	{
		var tmp,d;
		d = document.orderf;
		d.sub.value = Dollar (tamt);
		d.tot.value = Dollar (tamt + (shpr*cntr));
	}

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)  // get all ordered items
	{  
		var i,val,qty,pos;
		tamt=0,tqty=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;
   		}
		document.orderf["prc" + nr].value = Dollar (qty * amt);
  		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
  		order[id].des = des;           // load up values
  		order[id].amt = Dollar (amt);
  		order[id].qty = qty;
  		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
  			}
  			//shpr = "0";
  			CalcShip ();                         // calc totals
	}

function SendCart () 
{  // send the cart to PayPal
document.orderf["submit"].disabled = true;
document.orderf["submit"].value   = "Please Reset";
var frst = true;  // 1st pass thru items.
var winpar = "width=800,height=400,scrollbars," +
             "location,resizable,status";
var strn   = "https://www.paypal.com/cgi-bin/webscr?cmd=_cart" +
             "&upload=1" +
             "&business=" + root.xx_id + root.xx_xtra;//+
             //"&shipping=" + root.xx_shpr;
var i,j=0,des,nme;
  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;
	  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;// + " - Contact Number: " + phn;
       		strn = strn + 	"&item_name_" 	+ j + "=" + escape (des) +
       						"&quantity_" 	+ j + "=" + order[i].qty +
       						"&amount_" 		+ j + "=" + order[i].amt +
       						"&on0_"			+ j + "=" + "Contact Number" +
       						"&os0_"			+ j + "=" + phn +
       						"&on1_"			+ j + "=" + "Shipping Method" +
       						"&os1_"			+ j + "=" + shiptype +
       						"&shipping_" 	+ j + "=" + shpr;
      		}
	  	else(j > 0)
	  		{
	  		des = des;
       		strn = strn + "&item_name_"    + j + "=" + escape (des) +
                    	"&quantity_"     + j + "=" + order[i].qty +
                    	"&amount_"       + j + "=" + order[i].amt +
                   	 	"&shipping_"     + j + "=" + shpr;
      		}
			
      	  }
      	}
      	j = j + 1;
      	strn = strn + "&item_name_" + j + "Contact Number: " + phn;
      	frst = false;
    
  	if (j > 0) window.open (strn, "paypal", winpar);
}