var str_load="<table border=0 width=100% height='100%'><tr><td height='250' valign='middle' align='center'><img src='images/loader.gif'/></td></tr><tr><td>&nbsp;&nbsp;</td></tr><tr><td align='center'><font face='verdana' size='2'><b>Submitting...</b></font></td></tr></table>";
var str_reload="<table border=0 width=100% height='100%'><tr><td height='250' valign='middle' align='center'><img src='images/loader.gif'/></td></tr><tr><td>&nbsp;&nbsp;</td></tr><tr><td align='center'><font face='verdana' size='2'><b>Re-Loading...</b></font></td></tr></table>";
/**
*
*  URL encode / decode
*
**/
 
var Url = {
 
	// public method for url encoding
	encode : function (string) {
		return escape(this._utf8_encode(string));
	},
 
	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},
 
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}

///////////////////////////////////////////////////////////////////
//Process Ajax for Cart
///////////////////////////////////////////////////////////////////
function add_to_cart(action,productid,type,packageid,quantity,show_return) 
{
   var file = "cart.php";
   //var str;
   //alert('hello');
   var str;
   
   str="productid="+Url.encode(productid);
   str=str+"&packageid="+Url.encode(packageid);
   str=str+"&type="+Url.encode(type);
   str=str+"&quantity="+Url.encode(quantity);
   str=str+"&action="+Url.encode(action);
   
   //alert(str);
   if(show_return == 1)
   {
	   document.getElementById('cart').innerHTML=str_reload;
   }
   xmlReq = submit_cart(file,str,show_return);
}

function submit_cart(file,str,show_return)
{		
	try {
	request = new XMLHttpRequest();
	} catch (trymicrosoft) {
	try {
	request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
	try {
	request = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (failed) {
	request = null;
	}
	}
	}
	if (request == null)
		alert("Error creating request object!");
	
	post_request_cart(file,str,show_return);
}

function post_request_cart(url,str,show_return)
{
	request.open("POST",url,true);
	request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	if(show_return == 1)
	{
		request.onreadystatechange = updatepage_cart;
	}
	request.send(str);
}

function updatepage_cart()
{
	if (request.readyState == 4)
	{
		var newtext=request.responseText;
		document.getElementById('cart').innerHTML = newtext;
	}
}


///////////////////////////////////////////////////////////////////
//Process Ajax for Cart Promotional Codes
///////////////////////////////////////////////////////////////////
function add_promo(action,productid)
{
   var file = "cart.php";
   //var str;
   //alert('hello');
   var str;
   
   str="productid="+Url.encode(productid);
   str=str+"&action="+Url.encode(action);
   
   //alert(str);
   document.getElementById('cart').innerHTML=str_reload;
   xmlReq = submit_promo(file,str);
}

function submit_promo(file,str)
{		
	try {
	request = new XMLHttpRequest();
	} catch (trymicrosoft) {
	try {
	request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
	try {
	request = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (failed) {
	request = null;
	}
	}
	}
	if (request == null)
		alert("Error creating request object!");
	
	post_request_promo(file,str);
}

function post_request_promo(url,str)
{
	request.open("POST",url,true);
	request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	request.onreadystatechange = updatepage_promo;
	request.send(str);
}

function updatepage_promo()
{
	if (request.readyState == 4)
	{
		var newtext=request.responseText;
		document.getElementById('cart').innerHTML = newtext;
	}
}
