



//=================================================//
//   ANEAS.NET JavaScript Shopping Cart            //
//   Enterprise Quality Web Application Provider   //
//   http://aneas.net; aneas@aneas.net             //
//=================================================//

//--------------------//
// AddToCart()        //
// add item to cart   //
//--------------------//
function AddToCart(thisForm) {
	thisFormDone = 0;
        iNumberOrdered = 0;
        iNumberOrdered = GetCookie("NumberOrdered");
	//check if cookie for item name was already set
        for (i = 1; i <= iNumberOrdered; i++) {
                NewOrder = "Order." + i;
                database = "";
		database = GetCookie(NewOrder);
                Token0 = database.indexOf("|", 0);
                Token1 = database.indexOf("|", Token0+1);
		Token2 = database.indexOf("|", Token1+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, database.length );
		if (fields[2] == thisForm.NAME.options[thisForm.NAME.selectedIndex].value) {
			//update
			fields[0] = (fields[0] * 1) + (thisForm.QUANTITY.value * 1)
			dbUpdatedOrder = fields[0] + "|" + fields[1] + "|" + fields[2] + "|" + fields[3]
		        SetCookie (NewOrder, dbUpdatedOrder, null, "/");
			thisFormDone = 1;
			}
	}
	if (thisFormDone == 0) {
		//add new cookie
	        iNumberOrdered++;
	        if ( iNumberOrdered > 10 ) {
               		alert("I'm Sorry, your cart is full! Please checkout this order and place another order to purchase additional items.  We will combine multiple orders and only charge you one shipping rate."); 
			}
	        else {
	                dbUpdatedOrder = thisForm.QUANTITY.value + "|"
                        + thisForm.PRICE.value  + "|"
                        + thisForm.NAME.options[thisForm.NAME.selectedIndex].value + "|" +
			+ thisForm.ITEM_POUNDS.value
               		NewOrder = "Order." + iNumberOrdered;
	                SetCookie (NewOrder, dbUpdatedOrder, null, "/");
               		SetCookie ("NumberOrdered", iNumberOrdered, null, "/");
			}
		}
        window.location  = "shopcart.html"
}

//----------------------//
// GetCookie(name)      //
// get item to cookie   //
//----------------------//
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;
}

//------------------------//
// getCookieVal(offset)   //
// get cookie value       //
//------------------------//
function getCookieVal (offset) {
        var endstr = document.cookie.indexOf (";", offset);
        if (endstr == -1)
                endstr = document.cookie.length;
        return unescape(document.cookie.substring(offset, endstr));
}

//--------------------------------------------------------------//
// SetCookie(name,value,expiration date,path,domain,security)   //
// set the cookie                                               //
//--------------------------------------------------------------//
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" : "");
}

//--------------------------------------//
// GetFromCart()                        //
// write Cookei Content to HTML Table   //
//--------------------------------------//
function GetFromCart() {
        NumberOrdered = 0;
        Total=0;
        TOTotal=0;
        TOquantity = " ";
        TOprice = " ";
        TOid_num = " ";
        TOname = " ";
	TOWeight = 0;
	ShippingCost =0;
	GrandTotal = 0;
        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);
                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, database.length );

                Total = Total + (fields[1] * fields[0]);
		TOWeight = TOWeight + (fields[0] * fields[3]);
                TOTotal = moneyFormat(Total);
		
                whattowrite += "<tr><td align=center><input type=text size=2 name=\"QUANTITY_"+ i +"\" value='" + fields[0] + "'></td>"
				+ "<td><font size=-1>" + fields[2] + "</font></td>"
				+ "<td>$" + fields[1] + "</td>"
                                + "<td><input type=button value='  Remove  ' onClick=\"RemoveFromCart("+i+")\"></td>"
                                + "<input type=hidden name=\"NAME_"+ i +"\" value=\"" + fields[2] + "\">"
                                + "<input type=hidden name=\"PRICE_"+ i +"\" value=\"" + fields[1] + "\">";
        }

	ShippingCost = WeightToPrice(TOWeight);
	GrandTotal = moneyFormat(ShippingCost + Total)
	
        document.write(whattowrite);
        document.write("</td></tr><tr><td colspan=2><b>SUBTOTAL</b></td><td>$");
        document.write(TOTotal);
        document.write("</td><td></td>");
	
	document.write("</td></tr><tr><td colspan=2><b>SHIPPING*</b><h3>(International or Expedited shipping extra)</h3></td><td>$");
        document.write(moneyFormat(ShippingCost));
        document.write("</td><td></td>");

	document.write("</td></tr><tr><td colspan=2><b>GRAND TOTAL</b></td><td>$");
        document.write(GrandTotal);
        document.write("</td><td></td>");

}


//-----------------------------//
// WriteToForm()               //
// Write Information to 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);
                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, database.length );

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

	             itemname = ""
                   itemname = itemname + NAME
  

                document.write("<input type=hidden name=\"NAME_"+ i +"\" value=\"" + fields[2] + "\">");
                document.write("<input type=hidden name=\"PRICE_"+ i +"\" value=\"" + fields[1] + "\">");
                document.write("<input type=hidden name=\"QUANTITY_"+ i +"\" value=\"" + fields[0] + 
"\">");
			         
        }
}

//--------------------------//
// RemoveFromCart()         //
// Remove Order from 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;
}

//----------------------//
// DeleteCookie()       //
// Delete Cookie Item   //
//----------------------//
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";
        }
}

//------------------------------------------//
// MoneyFormat()                            //
// 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
}


//---------------------//
// recalculate()       //
// for recalculating   //
//---------------------//
function recalculate(shopping_cart) {
        q = new Array;
	q[1] = shopping_cart.QUANTITY_1
	q[2] = shopping_cart.QUANTITY_2
	q[3] = shopping_cart.QUANTITY_3
	q[4] = shopping_cart.QUANTITY_4
	q[5] = shopping_cart.QUANTITY_5
	q[6] = shopping_cart.QUANTITY_6
	q[7] = shopping_cart.QUANTITY_7
	q[8] = shopping_cart.QUANTITY_8
	q[9] = shopping_cart.QUANTITY_9
	q[10] = shopping_cart.QUANTITY_10
	q[11] = shopping_cart.QUANTITY_11
	q[12] = shopping_cart.QUANTITY_12
        NumberOrdered = 0;
        NumberOrdered = GetCookie("NumberOrdered");
        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);
                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, database.length );
		if (fields[0] != q[i].value){
			fields[0] = q[i].value * 1
			dbUpdatedOrder = fields[0] + "|" + fields[1] + "|" + fields[2] + "|" + fields[3]
		        SetCookie (NewOrder, dbUpdatedOrder, null, "/");
			}
		}
	location.href=location.href
}

//---------------------------------//
// WeightToPrice()                 //
// convert weight to price value   //
//---------------------------------//
function WeightToPrice(value){
ShippingCost = 0;
if (value >= .01)
	ShippingCost = .05;
if (value >= .05)
	ShippingCost = .50;
if (value >= .2)
	ShippingCost = .95;
if (value >= .3)
	ShippingCost = 1.95;
if (value >= .5)
	ShippingCost = 4.95;
if (value >= 1)
	ShippingCost = 5.95;
if (value >= 4)
	ShippingCost = 8.95
if (value >= 6)
	ShippingCost = 11.95
if (value >= 8)
	ShippingCost = 13.95
if (value >= 16)
	ShippingCost = 17.95
if (value >= 30)
	ShippingCost = 21.95
if (value >= 40)
	ShippingCost = 24.95
if (value >= 51)
	ShippingCost = 26.95
if (value >= 61)
	ShippingCost = 32.95
if (value >= 71)
	ShippingCost = 34.95
if (value >= 81)
	ShippingCost = 39.95
if (value >= 91)
	ShippingCost = 44.95
return ShippingCost
}

//---------------------------//
// PayPalForm()              //
// create form form PayPal   //
//---------------------------//
function PayPalForm() {
var PayPalItem = ""
var PayPalTotal = 0;
var ShippingCostTotal = 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);
                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, database.length );
		PayPalItem += fields[0] + " " + fields[2] + ", ";
                PayPalTotal = PayPalTotal + (fields[1] * fields[0]);
		ShippingCostTotal = ShippingCostTotal  + (fields[0] * fields[3]);
		}

PayPalText="<p><input type=hidden name='cmd' value='_xclick'><input type=hidden name='business' value='orders@malas.yogabasics.com'><input type=hidden name='return' value='http://www.yogabasics.com/'>" +
"<INPUT TYPE=hidden NAME='item_name' VALUE='" + PayPalItem + "'><INPUT TYPE=hidden NAME='amount' VALUE='" + moneyFormat(PayPalTotal) + "'><input type='hidden' name='no_intl' value='1'><INPUT TYPE=hidden NAME='shipping' VALUE='" + moneyFormat(WeightToPrice(ShippingCostTotal)) + "'></p>"
document.write(PayPalText)
}
