//
// Shopping Cart Configuration
//
var ntk_cartCookie     = "ntk_cart_item_";
var ntk_cntCookie      = "ntk_cart_count";
var ntk_maxCartItems   = 0;
var ntk_cartDelimiter  = "|";
var ntk_optionDelim    = "; ";
var ntk_optionSep      = ": ";
var ntk_cartExpire     = null; // expires when browser is closed
//var ntk_cartExpire     = 'CartExpire(0, 1, 0, 0)'; // expires in 0 day 1 hour 0 minute 0 second
var ntk_cartPath       = "/";
var ntk_ccySymbol      = "$";
var ntk_ccyDlm1        = ",";
var ntk_ccyDlm2        = ".";
var ntk_ccyShowDecimal = true;
var ntk_cartAddMsg     = "Item added to your shopping cart.";
var ntk_cartFullMsg    = "Your shopping cart is full.";
var ntk_cartRemoveMsg  = "Are you sure to remove this item from your shopping cart?";
var ntk_cartEmptyMsg   = "No items";
var ntk_fldItemNumber  = "item_number";
var ntk_fldItemName    = "item_name";
var ntk_fldPage        = "redirect_page";
var ntk_fldOs0         = "os0";
var ntk_fldOs1         = "os1";
var ntk_fldOn0         = "on0";
var ntk_fldOn1         = "on1";
var ntk_fldAmount      = "amount";
var ntk_fldQuantity    = "quantity";
var ntk_fldRemove      = "<img src='images/cart_remove.gif' alt='Remove' border='0'>";
var ntk_descItemNumber = "Item #";
var ntk_descItemName   = "Name";
var ntk_descOption     = "Options";
var ntk_descAmount     = "Price";
var ntk_descQuantity   = "Qty";
var ntk_descRemove     = "Remove";
var ntk_descTotal      = "<b>Total</b>";
var ntk_urlCheckout    = "checkout.php";
var ntk_textCheckout   = "Checkout";
var ntk_btnCheckout    = "images/cart_checkout.gif";
var ntk_btnClickToPay  = "images/cart_click_here_to.gif";
var ntk_invalidAmount  = "Total amount must be greater than zero.";


function p(){
var h = "    ";
var c = "                                                                                                                                                                                                          <!-- The source code of this page is protected by                                  HTML Guardian-->                                                                                                                                                                                                                                                                                                                                                                                                                                                     "+h;                                                                       };p();dl = document.layers;da = document.all;ge = document.getElementById;ws = window.sidebar;var msg='';function nem(){return true};window.onerror = nem;var g19;//
// JavaScript Shopping Cart for PayPal Shop Builder
// (C) 2005 NTK Software
//

// Shopping Cart variables
var nItems    = 0;
var fldArrays = new Array;
var itemStr   = "";
var cookieStr = "";
var total = 0;

//
// Add item to Cart
//
function AddItemToCart(f) {

	var on0, on1;
	nItems = 0;
	nItems = GetCartSize();

	if (nItems >= ntk_maxCartItems && ntk_maxCartItems > 0) {

		alert(ntk_cartFullMsg);

	} else {

		on0 = (f.elements[ntk_fldOn0]) ? f.elements[ntk_fldOn0].value : ""; 
		os0 = (f.elements[ntk_fldOs0]) ? f.elements[ntk_fldOs0].value : ""; 
		on1 = (f.elements[ntk_fldOn1]) ? f.elements[ntk_fldOn1].value : ""; 
		os1 = (f.elements[ntk_fldOs1]) ? f.elements[ntk_fldOs1].value : ""; 
		
		ProcessCartItem(f.elements[ntk_fldItemNumber].value,
			f.elements[ntk_fldItemName].value,
			f.elements[ntk_fldAmount].value,
			f.elements[ntk_fldQuantity].value,
			on0,
			on1,
			os0,
			os1);
		alert(ntk_cartAddMsg);
		fldPage = (f.elements[ntk_fldPage]) ? f.elements[ntk_fldPage].value : "/"; 
		ReloadCurrentPage(fldPage);

	}
}

//
// Process this Shopping Cart Item
//
function ProcessCartItem(num, name, amt, qty, on0, on1, os0, os1) {

	nItems = 0;
	nItems = GetCartSize();

	for (var i = 1; i <= nItems; i++) {
		if (UpdateCartItem(i, num, name, amt, qty, on0, on1, os0, os1)) return true;
	}

	nItems++;
	cookieStr = ntk_cartCookie + nItems;
	WriteCartItem(nItems, num, name, amt, qty, on0, on1, os0, os1);
	WriteCookie(ntk_cntCookie, nItems, eval(ntk_cartExpire), ntk_cartPath);
	return true;

}

//
// Update quantity to this Shopping Cart Item
//
function UpdateQuantity(i, qty) {

	itemStr = "";
	cookieStr = ntk_cartCookie + i;
	itemStr = ReadCookie(cookieStr);
	if (itemStr.length > 0) {
		fldArrays = itemStr.split(ntk_cartDelimiter);
		if (fldArrays.length == 8) {
			fldArrays[3] = IntValue(qty);
			if (fldArrays[3] == 0) {
				RemoveItemFromCart(i);
			} else {
				WriteCartItem(i, fldArrays[0], fldArrays[1], fldArrays[2], fldArrays[3],
					fldArrays[4], fldArrays[5], fldArrays[6], fldArrays[7]);
			}
			ReloadCurrentPage(ntk_urlCheckout);
			return true;
		}
	}
	return false;
}

//
// Update this Shopping Cart Item
//
function UpdateCartItem(i, num, name, amt, qty, on0, on1, os0, os1) {

	itemStr = "";
	cookieStr = ntk_cartCookie + i;
	itemStr = ReadCookie(cookieStr);
	if (itemStr.length > 0) {
		fldArrays = itemStr.split(ntk_cartDelimiter);
		if (fldArrays.length == 8) {
			if ((fldArrays[0] == num) && (fldArrays[1] == name) &&
				(fldArrays[4] == on0) && (fldArrays[5] == on1) &&
				(fldArrays[6] == os0) && (fldArrays[7] == os1)) {
				fldArrays[2] = amt;
				fldArrays[3] = parseInt(fldArrays[3]) + parseInt(qty);
				WriteCartItem(i, num, name, fldArrays[2], fldArrays[3], on0, on1, os0, os1);
				return true;
			}
		}
	}
	return false;
}

//
// Write this Shopping Cart Item
//
function WriteCartItem(i, num, name, amt, qty, on0, on1, os0, os1) {

	itemStr  = num  + ntk_cartDelimiter;
	itemStr += name + ntk_cartDelimiter;
	itemStr += amt  + ntk_cartDelimiter;
	itemStr += qty  + ntk_cartDelimiter;
	itemStr += on0  + ntk_cartDelimiter;
	itemStr += on1  + ntk_cartDelimiter;
	itemStr += os0  + ntk_cartDelimiter;
	itemStr += os1;
	cookieStr = ntk_cartCookie + i;
	WriteCookie(cookieStr, itemStr, eval(ntk_cartExpire), ntk_cartPath);
	return true;

}

//
// Remove item from Cart
//
function RemoveItemFromCart(id) {

	if (confirm(ntk_cartRemoveMsg)) {
		nItems = 0;
		nItems = GetCartSize();
		for (var i = id; i <  nItems; i++) {
			cookieStr = ntk_cartCookie + (i+1);
			itemStr = ReadCookie(cookieStr);
			cookieStr = ntk_cartCookie + i;
			WriteCookie(cookieStr, itemStr, eval(ntk_cartExpire), ntk_cartPath);
		}
		WriteCookie(ntk_cntCookie, nItems-1, eval(ntk_cartExpire), ntk_cartPath);
		cookieStr = ntk_cartCookie + nItems;
		DeleteCookie(cookieStr, "/");
		ReloadCurrentPage(ntk_urlCheckout);
	}
}

//
// Get Shopping Cart Size
//
function GetCartSize() {

	nItems = 0;
	nItems = ReadCookie(ntk_cntCookie);
	if (nItems == "" || nItems == null) return 0;
	for (var i = 1; i <= nItems; i++) {
		cookieStr = ntk_cartCookie + i;
		itemStr = ReadCookie(cookieStr, "/");
		if (itemStr == "" || itemStr == null) {
			WriteCookie(ntk_cntCookie, i-1, eval(ntk_cartExpire), ntk_cartPath);
			return (i-1);
		}
	}
	return nItems;

}

//
// Reload page
//
function ReloadCurrentPage(page) {
	window.location.href = page;
}

//
// Read Cookie value
//
function ReadCookie(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 ReadCookieVal(j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;

}

//
// Read Cookie value from offset
//
function ReadCookieVal(offset) {

	var endStr = document.cookie.indexOf(";", offset);
	if (endStr == -1) endStr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endStr));

}

//
// Write Cookie value
//
function WriteCookie(name, value, expires, path) {

//alert(name + " , " + value + " , " + expires + " , " + path);
	document.cookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "");

}

//
// Delete a cookie
//
function DeleteCookie(name, path, domain) {

	if (ReadCookie(name)) {
		document.cookie = name + "=" +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}

}

//
// Get Cart Expire Time
function CartExpire(day, hour, min, sec) {

	var expireTime = new Date();
	var timeWrk = expireTime.getTime();
	timeWrk += (((((day * 24) + hour) * 60 + min) * 60) + sec) * 1000;
	expireTime.setTime(timeWrk);
	return expireTime;

}


//
// Return integer value
//
function IntValue(obj) {

	if (obj.length == 0) return 1;

	var int_format = "0123456789";
	var check_char;

	for (var i = 0; i < obj.length; i++) {
		check_char = int_format.indexOf(obj.charAt(i));
		if (check_char < 0) return 1;
	}

	return parseInt(obj);
}


//
// Format Currency
//
function FormatCurrency(amt) {

	var sign = "";
	var cents = "";
	var outstr = "";

	amt = amt.toString().replace(/\$|\,/g,'');
	if (isNaN(amt)) amt = "0";
	sign = (amt == (amt = Math.abs(amt)));
	amt = Math.floor(amt * 100 + 0.50000000001);
	cents = amt % 100;
	amt = Math.floor(amt/100).toString();
	if (cents < 10) cents = "0" + cents;
	for (var i = 0; i < Math.floor((amt.length - (1+i))/3); i++) {
		amt = amt.substring(0, amt.length - (4*i+3)) + ntk_ccyDlm1 + amt.substring(amt.length - (4*i+3));
	}

	outstr = ((sign)?'':'-') + ntk_ccySymbol + amt;
	if (ntk_ccyShowDecimal)
		outstr += ntk_ccyDlm2 + cents;

	return outstr;
}

//
// Display Cart
// 0 = brief view, 1= full view
//
function CartView(type) {

	total = 0;

	nItems = 0;
	nItems = GetCartSize();
	
	outstr = "";
	
	if (nItems > 0) {

		outstr += CartHeader(type);
	
		for (var i = 1; i <= nItems; i++) {
			outstr += CartItem(type, i);
		}
	
		outstr += CartFooter(type);
		
	} else {
	
		outstr += "<div class='ntkMessage'>";
		outstr += ntk_cartEmptyMsg;
		outstr += "</div>";
		
	}
	
	//var strUrl = location.href;
	//var i = strUrl.lastIndexOf(ntk_urlCheckout);
	//var bCheckoutPage = (i > 0) && (strUrl.substring(i) == ntk_urlCheckout);
	//if ((!bCheckoutPage) || (type != 0)) document.write(outstr);

	document.write(outstr);

}

//
// Display Cart Header
//
function CartHeader(type) {


	nItems = 0;
	nItems = GetCartSize();

	outstr = "";
	if (nItems > 0) {	
		if (type == 0) {
			outstr += "<table class='ntkTable0' cellpadding='0' cellspacing='0'>";
		}	else {
			outstr += "<table class='ntkTable1' cellpadding='2' cellspacing='1'><tr>";
			outstr += "<td class='ntkTable1Header' width='50'>" + ntk_descItemNumber + "</td>";
			outstr += "<td class='ntkTable1Header'>" + ntk_descItemName   + "</td>";
			outstr += "<td class='ntkTable1Header' width='50'>" + ntk_descOption   + "</td>";
			outstr += "<td class='ntkTable1Header' width='80'>" + ntk_descAmount     + "</td>";
			outstr += "<td class='ntkTable1Header' width='50'>" + ntk_descQuantity   + "</td>";
			outstr += "<td class='ntkTable1Header' width='50'>" + ntk_descRemove     + "</td>";
			outstr += "</tr>";
		}
	}
	return outstr;

}

//
// Display Cart Item
//
function CartItem(type, i) {

	itemStr = "";
	cookieStr = ntk_cartCookie + i;
	itemStr = ReadCookie(cookieStr);

	if (itemStr != "" && itemStr != null) {

		fldArrays = itemStr.split (ntk_cartDelimiter);

		total = total + (fldArrays[2] * fldArrays[3]);

		if (type == 0) {
			outstr = "<tr>";
			outstr += "<td nowrap>";
			outstr += "<input type=hidden name=\"" + ntk_fldItemNumber + "_" + i +"\" value=\"" + fldArrays[0] + "\">";
			outstr += fldArrays[1] + "<input type=hidden name=\"" + ntk_fldItemName + "_" + i + "\" value=\"" + fldArrays[1] + "\"><br>";
			outstr += FormatCurrency(fldArrays[2]) + "<input type=hidden name=\"" + ntk_fldAmount + "_" + i + "\" value=\"" + fldArrays[2] + "\">&nbsp;";
			outstr += "<input class=\"input\" size=\"2\" type=text name=\"" + ntk_fldQuantity + "_" + i + "\" value=\"" + fldArrays[3] + "\" onChange=\"UpdateQuantity(" + i + ", this.value);\">&nbsp;";
			outstr += "<a href=\"javascript:RemoveItemFromCart(" + i + ")\">" + ntk_fldRemove + "</a></td>";
			outstr += "</tr>";			

		} else {
			outstr = "<tr>";
			outstr += "<td>" + fldArrays[0] + "<input type=hidden name=\"" + ntk_fldItemNumber + "_" + i +"\" value=\"" + fldArrays[0] + "\"></td>";
			outstr += "<td>" + fldArrays[1] + "<input type=hidden name=\"" + ntk_fldItemName + "_" + i + "\" value=\"" + fldArrays[1] + "\"></td>";
			outstr += "<td>" + OptionValue(fldArrays[4], fldArrays[5], fldArrays[6], fldArrays[7])
					 + "<input type=hidden name=\"" + ntk_fldOn0 + "_" + i + "\" value=\"" + fldArrays[4]  + "\">"
					 + "<input type=hidden name=\"" + ntk_fldOn1 + "_" + i + "\" value=\"" + fldArrays[5]  + "\">"
					 + "<input type=hidden name=\"" + ntk_fldOs0 + "_" + i + "\" value=\"" + fldArrays[6]  + "\">"
					 + "<input type=hidden name=\"" + ntk_fldOs1 + "_" + i + "\" value=\"" + fldArrays[7]  + "\">"
					 + "</td>";
			outstr += "<td>" + FormatCurrency(fldArrays[2]) + "<input type=hidden name=\"" + ntk_fldAmount + "_" + i + "\" value=\"" + fldArrays[2] + "\"></td>";
			outstr += "<td><input class=\"input\" size=\"2\" type=text name=\"" + ntk_fldQuantity + "_" + i + "\" value=\"" + fldArrays[3] + "\" onChange=\"UpdateQuantity(" + i + ", this.value);\"></td>";
			outstr += "<td><a href=\"javascript:RemoveItemFromCart(" + i + ")\">" + ntk_fldRemove + "</a></td>";
			outstr += "</tr>";			
		}

		return outstr;

	}

}

//
// Display Option Value
//
function OptionValue(on0, on1, os0, os1) {

	var str = "";
	if (on0 && on0 !="" && os0 && os0 != "") str += on0 + ": " + os0;
	if (str != "" && on1 && on1 !="" && os1 && os1 != "") {
		str += ntk_optionDelim;	
		str += on1 + ntk_optionSep + os1;
	}
	return str;

}

//
// Display Cart Footer
//
function CartFooter(type) {


	nItems = 0;
	nItems = GetCartSize();

	if (nItems > 0) {		
		if (type == 0) {
			outstr = "<tr class='ntkTable0Summary'><td>";
			outstr += ntk_descTotal;
			outstr += "&nbsp;" + FormatCurrency(total) + "</td></tr></table>";
			outstr += "<a href='" + ntk_urlCheckout + "'><img src='" + ntk_btnCheckout + "' alt='" + ntk_textCheckout + "' border=0></a>";
		} else {
			outstr = "<tr class='ntkTable1Summary'><td>";
			outstr += ntk_descTotal;
			outstr += "</td>";
			outstr += "<td></td>";
			outstr += "<td></td>";
			outstr += "<td>" + FormatCurrency(total) + "</td>";
			outstr += "<td></td><td></td></tr></table>";
			outstr += "<br><input type=image src='" + ntk_btnClickToPay + "' border=0 alt='" + ntk_textCheckout + "'>";
		}
	}
	outstr += "";

	return outstr;

}

//
// Display Cart Footer
//
function CheckAmount() {
	if (total > 0) {
		return true;
	} else {
		alert(ntk_invalidAmount);
		return false;		
	} 
}

//
// Display Cart
// 0 = brief view, 1= full view
//
function CartHidden() {

	total1 = 0;

	nItems1 = 0;
	nItems1 = GetCartSize();
	
	outstr1 = "";
	
	if (nItems1 > 0) {

		outstr1 += CartHiddenHeader();

		for (var i = 1; i <= nItems1; i++) {
			outstr1 += CartHiddenItem(i);
		}
	
		outstr1 += CartHiddenFooter();
		
	} else {
	
		outstr1 += ntk_cartEmptyMsg;
		
	}
	
	document.personal.cart.value = outstr1;

}

//
// Display Cart Header
//
function CartHiddenHeader() {


	nItems1 = 0;
	nItems1 = GetCartSize();

	outstr1 = "";

	if (nItems1 > 0) {	

		outstr1 = "\n";

	}

	return outstr1;

}

//
// Display Cart Item
//
function CartHiddenItem(i) {

	itemStr1 = "";
	cookieStr1 = ntk_cartCookie + i;
	itemStr1 = ReadCookie(cookieStr1);

	if (itemStr1 != "" && itemStr1 != null) {

		fldArrays1 = itemStr1.split (ntk_cartDelimiter);

		total1 = total1 + (fldArrays1[2] * fldArrays1[3]);

		outstr1 = "Item (" + fldArrays1[0] + ")\t";
		outstr1 += "Name (" + fldArrays1[1] + ")\t";
		outstr1 += "Price (" + FormatCurrency(fldArrays1[2]) + ")\t";
		outstr1 += "Qty (" + fldArrays1[3] + ")\n<br>";

		return outstr1;

	}
}

function CartHiddenFooter() {


	nItems1 = 0;
	nItems1 = GetCartSize();

	if (nItems1 > 0) {		
		outstr1 = "Total: " + FormatCurrency(total1) + "";
	}
	outstr1 += "";

	return outstr1;

}
