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;
	}
 
}

// For adding product sizes
function getFormValues(fobj) 
{ 
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 

   //alert(fobj.elements.length);
   str="email="+Url.encode(document.getElementById('email').value);
   str=str+"&password="+Url.encode(document.getElementById('password').value);
   str=str+"&security_question="+Url.encode(document.getElementById('security_question').value);
   str=str+"&security_answer="+Url.encode(document.getElementById('security_answer').value);
   str=str+"&find="+Url.encode(document.getElementById('how_find').value);
   str=str+"&referrer_name="+Url.encode(document.getElementById('referrer_name').value);
   str=str+"&referrer_email="+Url.encode(document.getElementById('referrer_email').value);
   str=str+"&referrer_phone="+Url.encode(document.getElementById('referrer_phone').value);
   
   return str; 
}

var xmlReq = null;
function call_ajax_for_form(formObj) 
{
   var file = "/register.php";
   //var str;
   //alert('hello');
   var str = getFormValues(formObj);
   
   //alert(str);
   document.getElementById('login_information').innerHTML=str_load;
   xmlReq = submit_login(file,str); 
}

function submit_login(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(file,str);
}

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

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


///////////////////////////////////////////////////////////////////
//Process Ajax for Personal Information
///////////////////////////////////////////////////////////////////
function getFormValues_pi(fobj) 
{ 
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 

   //alert(fobj.elements.length);
   str="fname="+Url.encode(document.getElementById('fname').value);
   str=str+"&lname="+Url.encode(document.getElementById('lname').value);
   str=str+"&address1="+Url.encode(document.getElementById('address1').value);
   str=str+"&address2="+Url.encode(document.getElementById('address2').value);
   str=str+"&city="+Url.encode(document.getElementById('city').value);
   str=str+"&state="+Url.encode(document.getElementById('state').value);
   str=str+"&country="+Url.encode(document.getElementById('country').value);
   str=str+"&phone="+Url.encode(document.getElementById('phone').value);
   
   return str; 
}

function call_ajax_for_information(formObj) 
{
   var file = "/add_personal_info.php";
   //var str;
   //alert('hello');
   var str = getFormValues_pi(formObj);
   
   //alert(str);
   document.getElementById('personal_information').innerHTML=str_load;
   xmlReq = submit_pi(file,str); 
}

function submit_pi(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_pi(file,str);
}

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

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

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

function submit_cart(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_cart(file,str);
}

function post_request_cart(url,str)
{
	request.open("POST",url,true);
	request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	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,packageid,credits,validity)
{
   var file = "/cart.php";
   //var str;
   //alert('hello');
   var str;
   
   str="packageid="+Url.encode(packageid);
   str=str+"&credits="+Url.encode(credits);
   str=str+"&validity="+Url.encode(validity);
   str=str+"&action="+Url.encode(action);
   
   //alert(str);
   document.getElementById('cart_confirm').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_confirm').innerHTML = newtext;
	}
}

/////////////////////////////////////////
//Ajax Request for the States Select Box
/////////////////////////////////////////
function getFormValues1(fobj,choose)
{ 
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 

   //alert(fobj.elements.length);
   if(choose == 'country')
   {
   	   str="country="+Url.encode(document.getElementById('country').value);
   }
   else
   {
	   str="state="+Url.encode(document.getElementById('state').value);
   }
   str=str+"&choose="+choose;
   return str; 
}

var xmlReq = null;
function call_ajax_for_state(formObj) 
{
   var file = "/combo_values.php";
   //var str;
   //alert('hello');
   var str = getFormValues1(formObj,'country');
   
   //alert(str);
   //document.getElementById('login_information').innerHTML=str_load;
   xmlReq = submit_state(file,str); 
}

function submit_state(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_for_state(file,str);
}

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

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


/////////////////////////////////
//This is for Signup page
/////////////////////////////////
function call_ajax_for_state_signup(formObj) 
{
   var file = "/combo_values.php";
   //var str;
   //alert('hello');
   var str = getFormValues1(formObj,'country');
   str=str+"&onlystate=true";
   //alert(str);
   //document.getElementById('login_information').innerHTML=str_load;
   xmlReq = submit_state_signup(file,str); 
}

function submit_state_signup(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_for_state_signup(file,str);
}

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

function updatestate_signup()
{
	if (request.readyState == 4)
	{
		var newtext=request.responseText;
		document.getElementById('statediv').innerHTML = newtext;
	}
}
/////////////////////////////////////////////
//Check if the Credits are Added from the 
//Cart Class. This is required in the 
//Proceed to checkout Page
/////////////////////////////////////////////
function check_credits()
{
   var file = "/cart.php";
   //var str;
   //alert('hello');
   var str;
   
   str="action=Check Credits Added";
   
   //alert(str);
   xmlReq = submit_check_credits_added(file,str);
}

function submit_check_credits_added(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_check_credits_added(file,str);
}

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

function updatepage_check_credits_added()
{
	if (request.readyState == 4)
	{
		var newtext=request.responseText;
		if(newtext == "true")
		{
			add_promo('Reload Confirmation','','','');community.cycleit('next','undefined');
		}
		else
		{
			alert("Please Add the Credits first to Proceed to Checkout");	
		}
	}
}