function addToCart(newProduct,newOptions,quantity,price)
{
 var oldOrder = retrieveCookie( 'currOrder' );
 var productKey = "p";
 for (i=0; i<10; i++)
 {
  productKey += Math.floor(Math.random()*10) + ""; 
 }
 newOrder = oldOrder + "xxx" + productKey + "zz" + newProduct + "zz" + newOptions + "zz" + quantity + "zz" + price;
 var cookieAccepted = setCookie( 'currOrder', newOrder );
 if (!cookieAccepted)
 {
  window.open('site_reqs.html','','width=400,height=300,scrollbars,resizeable'); 
 }
}

function removeFromCart(currProductKey)
{
 var oldOrder = retrieveCookie( 'currOrder' );
 clearCart();
 var products = oldOrder.split( "xxx" );
 for( var x = 0; x < products.length; x++ )
 {
  if(products[x] != "null")
  {
   var currProduct = products[x].split( "zz" );
   if( currProduct[0] != currProductKey  && currProduct[0] != "null")
   {
    addToCart( currProduct[1], currProduct[2], currProduct[3], currProduct[4] );
   }
  }
 }
}

function updateCart(currProduct)
{
 var newQuantity = document.forms[currProduct].quantity.value;
 if ( newQuantity <= 0)
 {
  removeFromCart(currProduct);
 }
 else
 {
  var currOrder = retrieveCookie( 'currOrder' );
  clearCart();
  var products = currOrder.split( "xxx" );
  for( var x = 0; x < products.length; x++ )
  {
   if(products[x] != "null")
   {
    var currProductDetails = products[x].split( "zz" );
    var productKey = currProductDetails[0];
    var currName = currProductDetails[1];
    var currOptions = currProductDetails[2];
    var currQuantity = currProductDetails[3];
    var currPrice = currProductDetails[4];
    //removeFromCart(productKey);
    if( productKey == currProduct )
    {
     addToCart(currName,currOptions,newQuantity,currPrice);
    }
    else
    {
     addToCart(currName,currOptions,currQuantity,currPrice);
    }
   }
  }
 } 
}

function numItemsInCart()
{
 var currOrder = retrieveCookie( 'currOrder' );
 productCount = 0;
 if(currOrder)
 {
  var products = currOrder.split( "xxx" );
  for( var x = 0; x < products.length; x++ )
  {
   if(products[x] != "null")
   {
    productCount++;
   }
  }
 }
 return productCount;
}

function clearCart()
{
 var cookieDeletePermitted = setCookie( 'currOrder', '', 'delete' );
 if (!cookieDeletePermitted)
 {
  window.open('delete_fail.html','','width=400,height=300,scrollbars,resizeable'); 
 }
}

function showMiniCart()
{
 document.write('<table border="0" cellpadding="3" cellspacing="0">');
 numItems = numItemsInCart();
 if (numItems == 0)
 {
  document.write('<tr><td><img src="../images/cart_empty2.gif" border="0" align="left"></td></tr>');
  document.write('<tr><td align="center" class="smallTitle">No registrations</td></tr>');
 }
 else
 {
  document.write('<td><a href="showcart.html" title="Click to view registrations"><img src="../images/cart_full2.gif"  border="0" align="left"></a><span class="smallText">checkout</span></td>');
  document.write('<tr><td align="center" class="smallTitle"><a href="showcart.html" title="Click to view registrations" class="smallTitle">' + numItems + ' Item(s)</a></td></tr>');
 }
 document.write('</table>');
}

function showCart(applySalesTax)
{
 setSalesTax("No");
 document.write('<table border="1" cellpadding="3" cellspacing="0" width="90%" align="center">');
 var currOrder = retrieveCookie( 'currOrder' );
 if(currOrder)
 {
  document.write('<tr><td align="center" class="question"><b>Class</b></td><td align="center" class="question"><b>Date</b></td><td align="center" class="question"><b>Price</b></td><td align="center" class="question"><b>Registrants</b></td><td align="center" class="question"><b>Action</b></td></tr>');
  var products = currOrder.split( "xxx" );
  for( var x = 0; x < products.length; x++ )
  {
   if(products[x] != "null")
   {
    var currProduct = products[x].split( "zz" );
	var productKey = currProduct[0];
	var productName = currProduct[1];
    var productOptions = currProduct[2]
	var quantity = '<form name="' + productKey + '"><input class="smallTitle" type="text" name="quantity" size="3" value="' + currProduct[3] + '"> <input type="button" class="smallTitle" value="CHANGE" onclick="javascript:updateCartQuantity(\'' + productKey + '\');"></form>';
	var price = currProduct[4];
	rowStr = '<tr><td valign="top" class="smallTitle">' + productName + '</td>' +
	         '<td valign="top" class="smallTitle">' + productOptions + '</td>' + 
	         '<td valign="top" class="smallTitle" align="right">' + format_number(price,2) + '</td>' + 
			 '<td valign="top" class="smallTitle" align="right">' + quantity + '</td>' + 
			 '<td valign="top" class="smallTitle"><form name="remove"><input type="button" class="smallTitle" value="REMOVE" onclick="javascript:removeProductFromCart(\'' + productKey + '\')"></form></td></tr>';
    document.write(rowStr);
   }
  }
 }
 else
 {
  document.write('<tr><td align="center">There are no items in your shopping cart.</td></tr>');
 }
 document.write('</table>');
}

function showOrder()
{
 document.write('<table border="1" cellpadding="3" cellspacing="0" width="600">');
 var currOrder = retrieveCookie( 'currOrder' );
 if(currOrder)
 {
  document.write('<tr><td align="center" class="question"><b>Class</b></td><td align="center" class="question"><b>Date</b></td><td align="center" class="question"><b>Price</b></td><td align="center" class="question"><b>Registrants</b></td><td align="center" class="question"><b>Total</b></td></tr>');
  var products = currOrder.split( "xxx" );
  var runningTotal = 0;
  for( var x = 0; x < products.length; x++ )
  {
   if(products[x] != "null")
   {
    var currProduct = products[x].split( "zz" );
	var productKey = currProduct[0];
	var productName = currProduct[1];
    var productOptions = currProduct[2];
	var quantity = currProduct[3];
	var price = currProduct[4];
	var currTotal = quantity * price;
	runningTotal += currTotal;
	rowStr = '<tr><td valign="top" class="smallTitle">' + productName + '</td>' +
	         '<td valign="top" class="smallTitle">' + productOptions + '</td>' + 
	         '<td valign="top" align="right" class="smallTitle">' + format_number(price,2) + '</td>' + 
			 '<td valign="top" align="right" class="smallTitle">' + quantity + '</td>' + 
			 '<td valign="top" align="right" class="smallTitle">' + format_number(currTotal,2) + '</td></tr>';
    document.write(rowStr);
   }
  }
  document.write('<tr><td colspan="4" align="right" class="smallTitle"><b>Subtotal:</b></td><td align="right" class="smallTitle">' + format_number(runningTotal,2) + '</td></tr>');
  var salesTax = retrieveCookie( 'salesTax' );
  if (salesTax == "No")
  {
   document.write('<tr><td colspan="4" align="right" class="smallTitle">No sales tax applies</td><td align="right" class="smallTitle">0.00</td></tr>');
  }
  else
  {
   salesTax = runningTotal * 0.05;
   runningTotal = runningTotal * 1.05;
   document.write('<tr><td colspan="4" align="right" class="smallTitle">No sales tax applies</td><td align="right" class="smallTitle">' + format_number(salesTax,2) + '</td></tr>');
  }
  document.write('<tr><td colspan="4" align="right" class="smallTitle"><b>Total:</b></td><td align="right" class="smallTitle">' + format_number(runningTotal,2) + '</td></tr>');
 }
 else
 {
  document.write('<tr><td align="center">You have not registered for any classes.</td></tr>');
 }
 document.write('</table>');
}

function showFinalOrder()
{
 document.write('<table border="1" cellpadding="3" cellspacing="0" width="600">');
 var currOrder = retrieveCookie( 'currOrder' );
 if(currOrder)
 {
  document.write('<tr><td align="center" class="question"><b>Class</b></td><td align="center" class="question"><b>Date</b></td><td align="center" class="question"><b>Price</b></td><td align="center" class="question"><b>Registrants</b></td><td align="center" class="question"><b>Total</b></td></tr>');
  var products = currOrder.split( "xxx" );
  var runningTotal = 0;
  for( var x = 0; x < products.length; x++ )
  {
   if(products[x] != "null")
   {
    var currProduct = products[x].split( "zz" );
	var productKey = currProduct[0];
	var productName = currProduct[1];
    var productOptions = currProduct[2];
	var quantity = currProduct[3];
	var price = currProduct[4];
	var currTotal = quantity * price;
	runningTotal += currTotal;
	rowStr = '<tr><td valign="top" class="smallTitle">' + productName + '</td>' +
	         '<td valign="top" class="smallTitle">' + productOptions + '</td>' + 
	         '<td valign="top" align="right" class="smallTitle">' + format_number(price,2) + '</td>' + 
			 '<td valign="top" align="right" class="smallTitle">' + quantity + '</td>' + 
			 '<td valign="top" align="right" class="smallTitle">' + format_number(currTotal,2) + '</td></tr>';
    document.write(rowStr);
   }
  }
  document.write('<tr><td colspan="4" align="right" class="smallTitle"><b>Subtotal:</b></td><td align="right" class="smallTitle">' + format_number(runningTotal,2) + '</td></tr>');
  var salesTax = retrieveCookie( 'salesTax' );
  if (salesTax == "No")
  {
   document.write('<tr><td colspan="4" align="right" class="smallTitle">No sales tax</td><td align="right" class="smallTitle">0.00</td></tr>');
  }
  else
  {
   salesTax = runningTotal * 0.05;
   runningTotal = runningTotal * 1.05;
   document.write('<tr><td colspan="4" align="right" class="smallTitle">No sales tax applies</td><td align="right" class="smallTitle">' + format_number(salesTax,2) + '</td></tr>');
  }
  document.write('<tr><td colspan="4" align="right" class="smallTitle"><b>Total:</b></td><td align="right" class="smallTitle">' + format_number(runningTotal,2) + '</td></tr>');
 }
 else
 {
  document.write('<tr><td align="center" class="smallTitle">You have not registered for any classses.</td></tr>');
 }
 document.write('</table>');
}

function setSalesTax(applyTax)
{
 var cookieAccepted = setCookie( 'salesTax', applyTax );
 if (!cookieAccepted)
 {
  window.open('site_reqs.html','','width=400,height=300,scrollbars,resizeable'); 
 }
}

function writeHiddenOrder()
{
 var currOrder = retrieveCookie( 'currOrder' );
 if(currOrder)
 {
  var products = currOrder.split( "xxx" );
  var runningTotal = 0;
  var productStr = "";
  for( var x = 0; x < products.length; x++ )
  {
   if(products[x] != "null")
   {
    var currProduct = products[x].split( "zz" );
	var productKey = currProduct[0];
	var productName = currProduct[1];
    var productOptions = currProduct[2];
	var quantity = currProduct[3];
	var price = currProduct[4];
	var currTotal = quantity * price;
	runningTotal += currTotal;
    productStr += 'Product:' + productName + ' Options:' + productOptions + ' ' + quantity + '@' + format_number(price,2) + '###';
   }
  }
  document.write('<input type="hidden" name="orderString" value="' + productStr + '">');
  var salesTax = retrieveCookie( 'salesTax' );
  if (salesTax == "Yes")
  {
   runningTotal = runningTotal * 1.05;
  }
  document.write('<input type="hidden" name="salesTax" value="' + salesTax + '">');
  document.write('<input type="hidden" name="total" value="' + runningTotal + '">');
 }
}

function format_number(pnumber,decimals) 
{  
  if (isNaN(pnumber)) { return 0};  
  if (pnumber=='') { return 0};  
   
  var IsNegative=(parseInt(pnumber)<0); 
  if(IsNegative)pnumber=-pnumber; 

  var snum = new String(pnumber);  
  var sec = snum.split('.');  
  var whole = parseInt(sec[0]);  
  var result = '';  
  if(sec.length > 1){  
    var dec = new String(sec[1]);  
    dec = parseInt(dec)/Math.pow(10,parseInt(dec.length-decimals-1)); 
    Math.round(dec); 
    dec = parseInt(dec)/10; 
    if(IsNegative) 
    { 
     var x = 0-dec; 
     x = Math.round(x); 
     dec = - x; 
    } 
    else 
    { 
     dec = Math.round(dec); 
    } 
    if(dec==Math.pow(10, parseInt(decimals)))
    { 
     whole+=1; 
     dec="0"; 
    } 
    dec = String(whole) + "." + String(dec);  
    var dot = dec.indexOf('.');  
    if(dot == -1){  
      dec += '.';  
      dot = dec.indexOf('.');  
    } 
    var l=parseInt(dot)+parseInt(decimals); 
    while(dec.length <= l) { dec += '0'; }  
    result = dec;  
  } else{  
    var dot;  
    var dec = new String(whole);  
    dec += '.';  
    dot = dec.indexOf('.');  
    var l=parseInt(dot)+parseInt(decimals); 
    while(dec.length <= l) { dec += '0'; }  
    result = dec;  
  }  
  if(IsNegative)result="-"+result; 
  return result;  
}  
