//---------------------------------------------------------------------||
// FUNCTION:    CKquantity                                             ||
// PARAMETERS:  Quantity to                                            ||
// RETURNS:     Quantity as a number, and possible alert               ||
// PURPOSE:     Make sure quantity is represented as a number          ||
//---------------------------------------------------------------------||
function CKquantity(checkString) 
{
	strNewQuantity = "";    // String Adjusted Item Quantity
	count     = 0;          // Generic Loop Counter
	
	for (i = 0; i < checkString.length; i++) 
	{
		ch = checkString.substring(i, i+1);
		if ((parseInt(ch) >= 0 && parseInt(ch) <= 9) || (ch == '.')) 
		{
			strNewQuantity += ch;
		}
	}
	
	if (strNewQuantity.length < 1)
		strNewQuantity = "1";
	if (strNewQuantity == "0")
		strNewQuantity = "1";
	return strNewQuantity;
}


//---------------------------------------------------------------------||
// FUNCTION:    AddToCart                                              ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//---------------------------------------------------------------------||
function AddToCart(thisForm) 
{
	if(parseInt(thisForm.QUANTITY.value)<=0)
	{
		alert("Product Quantity can be less than [0]!");
		thisForm.QUANTITY.value=1
		return false
	}
	if(confirm('Do you want to Add '+thisForm.QUANTITY.value +", ["
			   	+ thisForm.NAME.value +"] to your cart?" ))
	{		
        iNumberOrdered = 0;  //Integer number of products already ordered

        iNumberOrdered = GetCookie("NumberOrdered");
        iNumberOrdered++;
        if ( iNumberOrdered > 50 )
                alert("I'm Sorry, your cart is full, please proceed to checkout.");
        else {
                dbUpdatedOrder = thisForm.QUANTITY.value + "|"
                                 + thisForm.PRICE.value  + "|"
                                 + thisForm.ID_NUM.value + "|"
                                 + thisForm.NAME.value + "|"
                                 + thisForm.DISCOUNT.value;

                NewOrder = "Order." + iNumberOrdered;
                SetCookie (NewOrder, dbUpdatedOrder, null, "/");
                SetCookie ("NumberOrdered", iNumberOrdered, null, "/");

                notice = thisForm.NAME.value + "\n\nAdded to your Inquiry cart.";

                alert(notice);
        }
		
	}
}

//---------------------------------------------------------------------||
// FUNCTION:    ChangeFromCart                                         ||
// PARAMETERS:  Order Number to Remove                                 ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Changes an item from a users shopping cart             ||
//---------------------------------------------------------------------||
function ChangeFromCart(RemOrder,thisForm) 
{
	if(parseInt(thisForm.QUANTITY.value)<=0)
	{
		alert("Product Quantity can be less than [0]!");
		thisForm.QUANTITY.value=1
		return false
	}
	if (confirm("Click 'OK' to Change this product to your shopping cart.")) 
	{
		//Add to cart
		dbUpdatedOrder = thisForm.QUANTITY.value + "|"
						 + thisForm.PRICE.value  + "|"
						 + thisForm.ID_NUM.value + "|"
						 + thisForm.NAME.value + "|"
                         + thisForm.DISCOUNT.value;

		NewOrder = "Order." + RemOrder;
		SetCookie (NewOrder, dbUpdatedOrder, null, "/");
		//SetCookie ("NumberOrdered", RemOrder, null, "/");

		notice = thisForm.NAME.value + " "
				+ "\n\nAdded to your Inquiry cart.";

		alert(notice);
		GetCartTotal();
	}
}

//---------------------------------------------------------------------||
// FUNCTION:    getCookieVal                                           ||
// PARAMETERS:  offset                                                 ||
// RETURNS:     URL unescaped Cookie Value                             ||
// PURPOSE:     Get a specific value from a cookie                     ||
//---------------------------------------------------------------------||
function getCookieVal (offset) {
        var endstr = document.cookie.indexOf (";", offset);
        if (endstr == -1)
                endstr = document.cookie.length;
        return unescape(document.cookie.substring(offset, endstr));
}


//---------------------------------------------------------------------||
// FUNCTION:    FixCookieDate                                          ||
// PARAMETERS:  date                                                   ||
// RETURNS:     date                                                   ||
// PURPOSE:     Fixes cookie date, stores back in date                 ||
//---------------------------------------------------------------------||
function FixCookieDate (date) {
        var base = new Date(0);
        var skew = base.getTime();
        date.setTime (date.getTime() - skew);
}


//---------------------------------------------------------------------||
// FUNCTION:    GetCookie                                              ||
// PARAMETERS:  Name                                                   ||
// RETURNS:     Value in Cookie                                        ||
// PURPOSE:     Retrieves cookie from users browser                    ||
//---------------------------------------------------------------------||
function GetCookie (name) {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        while (i < clen)
                {
                var j = i + alen;
                if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
                i = document.cookie.indexOf(" ", i) + 1;
                if (i == 0) break;
                }

        return null;
}


//---------------------------------------------------------------------||
// FUNCTION:    SetCookie                                              ||
// PARAMETERS:  name, value, expiration date, path, domain, security   ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Stores a cookie in the users browser                   ||
//---------------------------------------------------------------------||
function SetCookie (name,value,expires,path,domain,secure) {
        document.cookie = name + "=" + escape (value) +
                        ((expires) ? "; expires=" + expires.toGMTString() : "") +
                        ((path) ? "; path=" + path : "") +
                        ((domain) ? "; domain=" + domain : "") +
                        ((secure) ? "; secure" : "");
}


//---------------------------------------------------------------------||
// FUNCTION:    DeleteCookie                                           ||
// PARAMETERS:  Cookie name, path, domain                              ||
// RETURNS:     null                                                   ||
// PURPOSE:     Removes a cookie from users browser.                   ||
//---------------------------------------------------------------------||
function DeleteCookie (name,path,domain) {
        if (GetCookie(name)) {
                document.cookie = name + "=" +
                                ((path) ? "; path=" + path : "") +
                                ((domain) ? "; domain=" + domain : "") +
                                "; expires=Thu, 01-Jan-70 00:00:01 GMT";
        }
}


//---------------------------------------------------------------------||
// FUNCTION:    MoneyFormat                                            ||
// PARAMETERS:  Number to be formatted                                 ||
// RETURNS:     Formatted Number                                       ||
// PURPOSE:     Reformats Dollar Amount to #.## format                 ||
//---------------------------------------------------------------------||
function moneyFormat(input) {
        var dollars = Math.floor(input)
        var tmp = new String(input)
        for (var decimalAt = 0; decimalAt < tmp.length; decimalAt++) {
                if (tmp.charAt(decimalAt)==".")
                        break;
        }

        var cents  = "" + Math.round(input * 100)
        cents = cents.substring(cents.length-2, cents.length)
        dollars += ((tmp.charAt(decimalAt+2)=="9")&&(cents=="00"))? 1 : 0;

        return dollars + "." + cents
}
//---------------------------------------------------------------------||
// FUNCTION:    ClearCart 		                                       ||
// PARAMETERS:  Order Number to Remove                                 ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Removes an item from a users shopping cart             ||
//---------------------------------------------------------------------||
function ClearCart() 
{
	document.cookie =null;
	var NumberOrdered = GetCookie("NumberOrdered");
	//alert(NumberOrdered);
	for(i=NumberOrdered; i >=0  ; i--)
	{
		NewOrder1 = "Order." + (i+1);
		NewOrder2 = "Order." + (i);
		database = GetCookie(NewOrder1);
		SetCookie (NewOrder2, database, null, "/");
		NewOrder = "Order." + i;
		SetCookie ("NumberOrdered", i, null, "/");
		DeleteCookie(NewOrder, "/");
	}
}

//---------------------------------------------------------------------||
// FUNCTION:    RemoveFromCart                                         ||
// PARAMETERS:  Order Number to Remove                                 ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Removes an item from a users shopping cart             ||
//---------------------------------------------------------------------||
function RemoveFromCart(RemOrder) {
        if (confirm("Click 'OK' to remove this product from your shopping cart.")) {
                NumberOrdered = GetCookie("NumberOrdered");
                for(i=RemOrder; i <  NumberOrdered; i++) {
                        NewOrder1 = "Order." + (i+1);
                        NewOrder2 = "Order." + (i);
                        database = GetCookie(NewOrder1);
                        SetCookie (NewOrder2, database, null, "/");
                }
                NewOrder = "Order." + NumberOrdered;
                SetCookie ("NumberOrdered", NumberOrdered-1, null, "/");
                DeleteCookie(NewOrder, "/");
                location.href=location.href;
        }
}


//---------------------------------------------------------------------||
// FUNCTION:    GetFromCart                                            ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Product Table Written to Document                      ||
// PURPOSE:     Draws current cart product table on HTML page          ||
//---------------------------------------------------------------------||
function GetFromCart() {
	NumberOrdered = 0;
	Total=0;
	TOTotal=0;
	TOquantity = " ";
	TOprice = " ";
	TOid_num = " ";
	TOname = " ";
	NumberOrdered = GetCookie("NumberOrdered");
	whattowrite = "";

	for (i = 1; i <= NumberOrdered; i++) {
		NewOrder = "Order." + i;
		database = "";
		database = GetCookie(NewOrder);

		Token0 = database.indexOf("|", 0);
		Token1 = database.indexOf("|", Token0+1);
		Token2 = database.indexOf("|", Token1+1);
		Token3 = database.indexOf("|", Token2+1);

		fields = new Array;
		fields[0] = database.substring( 0, Token0 );
		fields[1] = database.substring( Token0+1, Token1 );
		fields[2] = database.substring( Token1+1, Token2 );
		fields[3] = database.substring( Token2+1, Token3 );
		fields[4] = database.substring( Token3+1, database.length );

		Total = Total + (fields[1] * fields[0]);
		TOTotal = moneyFormat(Total);

		whattowrite = "<form name=cart_\"+i+\"><tr bgcolor=\"#DDDDDD\"><td >"
			+ fields[3] + "</td>"
			+ '<td align=center><input type=hidden class="button" value="  Change  " '
			+ "onClick=\"ChangeFromCart("+i+",this.form)\">"
			+ "&nbsp;<input type=button class=\"button\" value=\"  Remove  \" onClick=\"RemoveFromCart("+i+")\"></td>"
			+ "<input type=hidden name=\"ID_NUM\" value=\"" + fields[2] + "\">"
			+ "<input type=hidden name=\"NAME\" value=\"" + fields[3] + "\">"
			+ "<input type=hidden name=\"PRICE\" value=\"" + fields[1] + "\">" 
			+ "<input type=hidden name=\"DISCOUNT\" value=\"" + fields[4] + "\"></td></tr></form>";
		document.write(whattowrite);
	}	
	return i
}

//---------------------------------------------------------------------||
// FUNCTION:    ShowCart                                            ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Product Table Written to Document                      ||
// PURPOSE:     Draws current cart product table on HTML page          ||
//---------------------------------------------------------------------||
function ShowCart() {
	NumberOrdered = 0;
	Total=0;
	TOTotal=0;
	TOquantity = " ";
	TOprice = " ";
	TOid_num = " ";
	TOname = " ";
	NumberOrdered = GetCookie("NumberOrdered");
	whattowrite = "";

	for (i = 1; i <= NumberOrdered; i++) {
		NewOrder = "Order." + i;
		database = "";
		database = GetCookie(NewOrder);

		Token0 = database.indexOf("|", 0);
		Token1 = database.indexOf("|", Token0+1);
		Token2 = database.indexOf("|", Token1+1);
		Token3 = database.indexOf("|", Token2+1);

		fields = new Array;
		fields[0] = database.substring( 0, Token0 );
		fields[1] = database.substring( Token0+1, Token1 );
		fields[2] = database.substring( Token1+1, Token2 );
		fields[3] = database.substring( Token2+1, Token3 );
		fields[4] = database.substring( Token3+1, database.length );

		Total = Total + (fields[1] * fields[0]);
		TOTotal = moneyFormat(Total);

		whattowrite = "<form name=cart_\"+i+\"><tr bgcolor=\"#DDDDDD\"><td >"
			+ fields[3] + "</td>"
			+ '<td align=center><input type=hidden class="button" value="  Change  " '
			+ "onClick=\"ChangeFromCart("+i+",this.form)\">"
			+ "&nbsp;<input type=hidden class=\"button\" value=\"  Remove  \" onClick=\"RemoveFromCart("+i+")\"></td>"
			+ "<input type=hidden name=\"ID_NUM\" value=\"" + fields[2] + "\">"
			+ "<input type=hidden name=\"NAME\" value=\"" + fields[3] + "\">"
			+ "<input type=hidden name=\"PRICE\" value=\"" + fields[1] + "\">" 
			+ "<input type=hidden name=\"DISCOUNT\" value=\"" + fields[4] + "\"></td></tr></form>";
		document.write(whattowrite);
	}	
	return i
}
//---------------------------------------------------------------------||
// FUNCTION:    GetCartTotal                                           ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Product Table Written to Document                      ||
// PURPOSE:     Draws current cart product table on HTML page          ||
//---------------------------------------------------------------------||
function GetCartTotal()
{
	NumberOrdered = 0;
	Total=0;
	TOTotal=0;
	TOquantity = " ";
	TOprice = " ";
	TOid_num = " ";
	TOname = " ";
	NumberOrdered = GetCookie("NumberOrdered");
	whattowrite = "";
	//alert(NumberOrdered);
	//return false;
	var foo = document.getElementById("total");
	if(foo.getAttribute("type")){ // form fields
		if(NumberOrdered>0)
			foo.value = NumberOrdered;
		else
			foo.value = 'Empty Cart';
	} else { // others
		if(NumberOrdered>0)
			foo.innerHTML = NumberOrdered;
		else
			foo.innerHTML = 'Empty Cart';
	}	
}

function GetCartDiscount() 
{
	NumberOrdered = 0;
	Total=0;
	TOTotal=0;
	TOquantity = " ";
	TOprice = " ";
	TOid_num = " ";
	TOname = " ";
	NumberOrdered = GetCookie("NumberOrdered");
	whattowrite = "";

	for (i = 1; i <= NumberOrdered; i++) 
	{
		NewOrder = "Order." + i;
		database = "";
		database = GetCookie(NewOrder);

		Token0 = database.indexOf("|", 0);
		Token1 = database.indexOf("|", Token0+1);
		Token2 = database.indexOf("|", Token1+1);
		Token3 = database.indexOf("|", Token2+1);

		fields = new Array;
		fields[0] = database.substring( 0, Token0 );//Qty
		fields[1] = database.substring( Token0+1, Token1 );//Price
		fields[2] = database.substring( Token1+1, Token2 );
		fields[3] = database.substring( Token2+1, Token3 );
		fields[4] = database.substring( Token3+1, database.length );//Discount
		var tt=0;	var pr=0; var tm=0;
		pr = fields[4]/100;
		tt = fields[1] * fields[0];
		tm=(tt * pr);
		Total = Total + tm;		
	}
	TOTotal = moneyFormat(Total);
	var mon = document.getElementById("discount");
	if(mon.getAttribute("type"))
	{ // form fields
		mon.value = TOTotal;
	} 
	else 
	{ // others
		mon.innerHTML = TOTotal;
	}
}

function GetCartGrandTotal(tax,cost,vat) 
{
	NumberOrdered = 0;
	Total=0;
	TOTotal=0;
	TOquantity = " ";
	TOprice = " ";
	TOid_num = " ";
	TOname = " ";
	NumberOrdered = GetCookie("NumberOrdered");
	whattowrite = "";
	if(tax == null ) tax=0;
	if(cost == null ) cost=0;
	var dt=0;
	for (i = 1; i <= NumberOrdered; i++) 
	{
		NewOrder = "Order." + i;
		database = "";
		database = GetCookie(NewOrder);

		Token0 = database.indexOf("|", 0);
		Token1 = database.indexOf("|", Token0+1);
		Token2 = database.indexOf("|", Token1+1);
		Token3 = database.indexOf("|", Token2+1);

		fields = new Array;
		fields[0] = database.substring( 0, Token0 );//Qty
		fields[1] = database.substring( Token0+1, Token1 );//Price
		fields[2] = database.substring( Token1+1, Token2 );
		fields[3] = database.substring( Token2+1, Token3 );
		fields[4] = database.substring( Token3+1, database.length );//Discount		
		var tt=0;	var pr=0; var tm=0;
		pr = fields[4]/100;
		tt = fields[1] * fields[0];//Price*Qty
		tm=tt * pr;
		dt = dt + tm;
		Total = Total + tt;		
		
	}
	var mytax=Total * (tax/100);
	var myvat=Total * (vat/100);
	
	TOTotal = moneyFormat(Total-dt+parseFloat(myvat)+parseFloat(mytax)+parseFloat(cost));
	var mon = document.getElementById("gt");
	if(mon.getAttribute("type"))
	{ // form fields
		mon.value = TOTotal;
	} 
	else 
	{ // others
		mon.innerHTML = TOTotal;
	}
	return TOTotal;
}

function TotalVat(vat) 
{
	NumberOrdered = 0;
	Total=0;
	TOTotal=0;
	TOquantity = " ";
	TOprice = " ";
	TOid_num = " ";
	TOname = " ";
	NumberOrdered = GetCookie("NumberOrdered");
	whattowrite = "";
	if(vat == null ) vat=0;
	for (i = 1; i <= NumberOrdered; i++) 
	{
		NewOrder = "Order." + i;
		database = "";
		database = GetCookie(NewOrder);

		Token0 = database.indexOf("|", 0);
		Token1 = database.indexOf("|", Token0+1);
		Token2 = database.indexOf("|", Token1+1);
		Token3 = database.indexOf("|", Token2+1);

		fields = new Array;
		fields[0] = database.substring( 0, Token0 );//Qty
		fields[1] = database.substring( Token0+1, Token1 );//Price
		fields[2] = database.substring( Token1+1, Token2 );
		fields[3] = database.substring( Token2+1, Token3 );
		fields[4] = database.substring( Token3+1, database.length );//Discount
		Total = Total + (fields[1] * fields[0]);		
	}
	var mytax=Total * (vat/100);
	TOTotal = moneyFormat(parseFloat(mytax));
	var mon = document.getElementById("gvat");
	if(mon.getAttribute("type"))
	{ // form fields
		mon.value = TOTotal;
	} 
	else 
	{ // others
		mon.innerHTML = TOTotal;
	}
	return TOTotal;
}
function TotalTax(tax) 
{
	NumberOrdered = 0;
	Total=0;
	TOTotal=0;
	TOquantity = " ";
	TOprice = " ";
	TOid_num = " ";
	TOname = " ";
	NumberOrdered = GetCookie("NumberOrdered");
	whattowrite = "";
	if(tax == null ) tax=0;
	for (i = 1; i <= NumberOrdered; i++) 
	{
		NewOrder = "Order." + i;
		database = "";
		database = GetCookie(NewOrder);

		Token0 = database.indexOf("|", 0);
		Token1 = database.indexOf("|", Token0+1);
		Token2 = database.indexOf("|", Token1+1);
		Token3 = database.indexOf("|", Token2+1);

		fields = new Array;
		fields[0] = database.substring( 0, Token0 );//Qty
		fields[1] = database.substring( Token0+1, Token1 );//Price
		fields[2] = database.substring( Token1+1, Token2 );
		fields[3] = database.substring( Token2+1, Token3 );
		fields[4] = database.substring( Token3+1, database.length );//Discount
		var dt= (fields[1] * fields[0]);
		Total = Total + dt ;		
	}	
	var mytax=Total * (tax/100);
	TOTotal = moneyFormat(parseFloat(mytax));
	var mon = document.getElementById("gtax");
	if(mon.getAttribute("type"))
	{ // form fields
		mon.value = TOTotal;
	} 
	else 
	{ // others
		mon.innerHTML = TOTotal;
	}
}

//---------------------------------------------------------------------||
// FUNCTION:    WriteToForm                                            ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Product hidden fields Written to Document              ||
// PURPOSE:     Draws current cart product hidden fields on HTML form  ||
//---------------------------------------------------------------------||
function WriteToForm() {
    NumberOrdered = 0;
	Total=0;
	TOTotal=0;
	TOquantity = " ";
	TOprice = " ";
	TOid_num = " ";
	TOname = " ";
	NumberOrdered = GetCookie("NumberOrdered");
	whattowrite = "";

	for (i = 1; i <= NumberOrdered; i++) {
		NewOrder = "Order." + i;
		database = "";
		database = GetCookie(NewOrder);

		Token0 = database.indexOf("|", 0);
		Token1 = database.indexOf("|", Token0+1);
		Token2 = database.indexOf("|", Token1+1);
		Token3 = database.indexOf("|", Token2+1);

		fields = new Array;
		fields[0] = database.substring( 0, Token0 );
		fields[1] = database.substring( Token0+1, Token1 );
		fields[2] = database.substring( Token1+1, Token2 );
		fields[3] = database.substring( Token2+1, Token3 );
		fields[4] = database.substring( Token3+1, database.length );

		Total = Total + (fields[1] * fields[0]);
		TOTotal = moneyFormat(Total);

		whattowrite = "<input type=hidden name=\"qty[]\" value=\"" + fields[0] + "\">"
			+ "<input type=hidden name=\"pid[]\" value=\"" + fields[2] + "\">";
		document.write(whattowrite);
	}	
	return i
}

function tc() {
    NumberOrdered = 0;
	Total=0;
	TOTotal=0;
	TOquantity = " ";
	TOprice = " ";
	TOid_num = " ";
	TOname = " ";
	NumberOrdered = GetCookie("NumberOrdered");
	whattowrite = "";

	for (i = 1; i <= NumberOrdered; i++) {
		NewOrder = "Order." + i;
		database = "";
		database = GetCookie(NewOrder);

		Token0 = database.indexOf("|", 0);
		Token1 = database.indexOf("|", Token0+1);
		Token2 = database.indexOf("|", Token1+1);
		Token3 = database.indexOf("|", Token2+1);

		fields = new Array;
		fields[0] = database.substring( 0, Token0 );
		fields[1] = database.substring( Token0+1, Token1 );
		fields[2] = database.substring( Token1+1, Token2 );
		fields[3] = database.substring( Token2+1, Token3 );
		fields[4] = database.substring( Token3+1, database.length );

		Total = Total + (fields[1] * fields[0]);
		TOTotal = moneyFormat(Total);

		//whattowrite = "<input type=hidden name=\"qty[]\" value=\"" + fields[0] + "\">"
			//+ "<input type=hidden name=\"pid[]\" value=\"" + fields[2] + "\">";
		//document.write(whattowrite);
	}	
	return i
}

