﻿function onPageLoad() {
}





function onPageLoad_signup() {
	recalculateHostingPlan(0);
	recalculateHostingPlan(1);
	recalculateHostingPlan(2);
	recalculateHostingPlan(3);



	// The following doesn't return, so don't put anything after this
	if (document.getElementById('ckbPlan0').checked)
		selectHostingPlan(0, document.getElementById('_hostingDiscount').value);
	else if (document.getElementById('ckbPlan1').checked)
		selectHostingPlan(1, document.getElementById('_hostingDiscount').value);
	else if (document.getElementById('ckbPlan2').checked)
		selectHostingPlan(2, document.getElementById('_hostingDiscount').value);
	else if (document.getElementById('ckbPlan3').checked)
		selectHostingPlan(3, document.getElementById('_hostingDiscount').value);
	else
		selectHostingPlan(-1, 0);
		
	// The above doesn't return, so don't put anything here...
}




function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}


function extractNumbers(strValue) {
	return strValue.replace(/[^0-9\\.]/g, '').replace(/^(\d*\.\d*)\..*$/, "$1") * 1.0;
}














function optDomainExisting2_OnChange()
{
	setVarAndRedirectTo2("optDomainExisting", false, null);
	
	document.getElementById("lstDomainExisting").disabled = false;
	document.getElementById("txtDomainExisting").disabled = false;
	document.getElementById("lstDomainNew").disabled = true;
	document.getElementById("txtDomainNew").disabled = true;
}
function optDomainNew2_OnChange()
{
	setVarAndRedirectTo2("optDomainNew", false, null);

	document.getElementById("lstDomainExisting").disabled = true;
	document.getElementById("txtDomainExisting").disabled = true;
	document.getElementById("lstDomainNew").disabled = false;
	document.getElementById("txtDomainNew").disabled = false;
}
function lstDomainExisting2_SelectedIndexChanged()
{
	setVarAndRedirectTo2("lstDomainExisting", true, null);
}
function lstDomainNew2_SelectedIndexChanged()
{
	setVarAndRedirectTo2("lstDomainNew", true, null);
}


function setVarAndRedirectTo2(controlID, controlIsDropDown, redirectURL, param) {
	var sURL;

	sURL =  "includes/script.php?1=1";

	if (controlID == "optDomainExisting") {
		sURL += "&fn=clear_domain2_var" +
				"&fn2=set_var" +
				"&optDomainName2=1" +
				"&domainRegistered2=false" +
				"&domainNew2=false" +
				"&domainName2=";
	}
	else if (controlID == "optDomainNew") {
		sURL += "&fn=clear_domain2_var" +
				"&fn2=set_var" +
				"&optDomainName2=0" +
				"&domainRegistered2=false" +
				"&domainNew2=false" +
				"&domainName2=";
	}
	else if (controlID == "lstDomainExisting") {
		sURL += "&fn=clear_domain2_var" +
				"&fn2=set_var" +
				"&domainRegistered2=false" +
				"&domainNew2=false" +
				"&domainName2=";
	}
	else if (controlID == "lstDomainNew") {
		sURL += "&fn=clear_domain2_var" +
				"&fn2=set_var" +
				"&domainRegistered2=false" +
				"&domainNew2=false" +
				"&domainName2=";
	}
	else if (controlID == "optHostingPlan") {
		sURL += "&fn=set_var" +
				"&optHostingPlan=" + param;
	}
	else if (controlID == "optHostingOS") {
		sURL += "&fn=set_var" +
				"&optHostingOS=" + param;
	}
	else if (controlID == "optHostingPlusOS") {
		sURL += "&fn=set_var" +
				"&optHostingPlusOS=" + param;
	}
	else if (controlID == "txtAdvEmailPlan1") {
		sURL += "&fn=set_var" + 
				"&txtAdvEmailPlan1=" + param;
	}
	else if (controlID == "txtAdvEmailPlan2") {
		sURL += "&fn=set_var" + 
				"&txtAdvEmailPlan2=" + param;
	}
	else if (controlID == "txtAdvEmailPlan3") {
		sURL += "&fn=set_var" + 
				"&txtAdvEmailPlan3=" + param;
	}
	else if (controlID == "ckbASPPlan2") {
		sURL += "&fn=set_var" + 
				"&ckbASPPlan2=" + param;
	}
	else if (controlID == "ckbStatsPlan2") {
		sURL += "&fn=set_var" + 
				"&ckbStatsPlan2=" + param;
	}
	else if (controlID == "ckbSSLPlan2") {
		sURL += "&fn=set_var" + 
				"&ckbSSLPlan2=" + param;
	}
	else if (controlID == "ckbSSLPlan3") {
		sURL += "&fn=set_var" + 
				"&ckbSSLPlan3=" + param;
	}
	else if (controlID == "optSiteBuilderPlan2") {
		sURL += "&fn=set_var" +
				"&optSiteBuilderPlan2=" + param;
	}
	else if (controlID == "optSEOPlan2") {
		sURL += "&fn=set_var" +
				"&optSEOPlan2=" + param;
	}
	else if (controlID == "optSEOPlan3") {
		sURL += "&fn=set_var" +
				"&optSEOPlan3=" + param;
	}
	else {
		sURL += "&fn=set_var";
	}

	sURL += GetSetVarFnParameterForGeneralFields();

	if (redirectURL != null && redirectURL != "") {
		sURL += "&fn3=redirect_to&URL=" + redirectURL;

		window.location = sURL;
	}
	else {
		MyAjaxRequest('main', sURL);
	}
}


function selectHostingPlan(plan, discount)
{
	var dPrice = 0.0;

	setVarAndRedirectTo2("optHostingPlan", false, null, plan);

    disable('divPlan0', true);
    disable('divPlan1', true);
    disable('divPlan2', true);
    disable('divPlan3', true);

	for (i = 0; i < 4; i++)
		if (plan != i)
			document.getElementById("ckbPlan" + i).checked = false;

	if (plan == 0)
	    disable('divPlan0', false);
	else if (plan == 1)
	    disable('divPlan1', false);
	else if (plan == 2)
	    disable('divPlan2', false);
	else if (plan == 3)
	    disable('divPlan3', false);


	if (plan == 0)
		dPrice = extractNumbers(document.getElementById("lblTotalPlan0").innerHTML);
	else if (plan == 1)
		dPrice = extractNumbers(document.getElementById("lblTotalPlan1").innerHTML);
	else if (plan == 2)
		dPrice = extractNumbers(document.getElementById("lblTotalPlan2").innerHTML);
	else if (plan == 3)
		dPrice = extractNumbers(document.getElementById("lblTotalPlan3").innerHTML);


	dPrice = Math.round((dPrice - (discount/12)) * 100) / 100;  // Round to 2 decimals

	if (dPrice <= 0.00) {
		document.getElementById("divSubmitOrder").style.display = "";
		document.getElementById("divMakePayment").style.display = "none";
	} else {
		document.getElementById("divSubmitOrder").style.display = "none";
		document.getElementById("divMakePayment").style.display = "";
	}
}

function disable(controlID, flag)
{
	try { el = document.getElementById(controlID); disableHelper(el, flag); } catch(E){}
	try { el = document.getElementById(controlID + "T"); disableHelper(el, flag); } catch(E){}
	
	for (var i = 1; i < 16; i++) {
		try { el = document.getElementById(controlID + "TR" + i + ""); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C1"); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C1D1"); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C1D2"); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C1D3"); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C1D4"); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C2"); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C2D1"); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C2D2"); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C2D3"); disableHelper(el, flag); } catch(E){}
		try { el = document.getElementById(controlID + "TR" + i + "C2D4"); disableHelper(el, flag); } catch(E){}
	}
}
function disableHelper(el, flag)
{
	try {
		el.disabled = flag;
		if (flag) {
			if (el.style.backgroundColor == "maroon")
				el.style.backgroundColor = "gray";
			if (el.style.color == "" || el.style.color == "maroon")
				el.style.color = "gray";
		}
		else {
			if (el.style.backgroundColor == "gray")
				el.style.backgroundColor = "maroon";
			if (el.style.color == "" || el.style.color == "gray")
				el.style.color = "maroon";
		}
	}
    catch(E){
    }
}


function txtAdvEmailPlanX_OnChange(plan)
{
	setVarAndRedirectTo2("txtAdvEmailPlan"+plan, false, null, (isNaN(document.getElementById("txtAdvEmailPlan"+plan).value) ? 0 : document.getElementById("txtAdvEmailPlan"+plan).value));
	
	recalculateHostingPlan(plan);
}


function ckbASPPlanX_OnChange(plan)
{
	setVarAndRedirectTo2("ckbASPPlan"+plan, false, null, (document.getElementById("ckbASPPlan"+plan).checked) ? true : false);
	
	recalculateHostingPlan(plan);
}


function ckbStatsPlanX_OnChange(plan)
{
	setVarAndRedirectTo2("ckbStatsPlan"+plan, false, null, (document.getElementById("ckbStatsPlan"+plan).checked) ? true : false);
	
	recalculateHostingPlan(plan);
}


function ckbSSLPlanX_OnChange(plan)
{
	setVarAndRedirectTo2("ckbSSLPlan"+plan, false, null, (document.getElementById("ckbSSLPlan"+plan).checked) ? true : false);
	
	recalculateHostingPlan(plan);
}


function optSiteBuilderPlanX_OnChange(plan)
{
	if (document.getElementById("optSiteBuilder10Plan"+plan).checked)
		setVarAndRedirectTo2("optSiteBuilderPlan"+plan, false, null, 10);
	else if (document.getElementById("optSiteBuilder25Plan"+plan).checked)
		setVarAndRedirectTo2("optSiteBuilderPlan"+plan, false, null, 25);
	else if (document.getElementById("optSiteBuilder99Plan"+plan).checked)
		setVarAndRedirectTo2("optSiteBuilderPlan"+plan, false, null, 99);
	else
		setVarAndRedirectTo2("optSiteBuilderPlan"+plan, false, null, 0);
	
	recalculateHostingPlan(plan);
}


function optSEOPlanX_OnChange(plan)
{
	if (document.getElementById("optSEOBasicPlan"+plan).checked)
		setVarAndRedirectTo2("optSEOPlan"+plan, false, null, 1);
	else if (document.getElementById("optSEOHighPlan"+plan).checked)
		setVarAndRedirectTo2("optSEOPlan"+plan, false, null, 2);
	else if (document.getElementById("optSEOSuperPlan"+plan).checked)
		setVarAndRedirectTo2("optSEOPlan"+plan, false, null, 3);
	else
		setVarAndRedirectTo2("optSEOPlan"+plan, false, null, 0);
	
	recalculateHostingPlan(plan);
}


function optHostingOS_OnChange()
{
	if (document.getElementById("optHostingOSWin").checked)
	{
		document.getElementById("divPlan2TR6C1").style.display = "";
		document.getElementById("divPlan2TR6C2").style.display = "";
	}
	else
	{
		if (document.getElementById("ckbASPPlan2").checked) // If checked then unchek it since we don't want it to be included inthe price
			document.getElementById("ckbASPPlan2").click();
		document.getElementById("divPlan2TR6C1").style.display = "none";
		document.getElementById("divPlan2TR6C2").style.display = "none";
	}
	
	setVarAndRedirectTo2("optHostingOS", false, null, ((document.getElementById("optHostingOSLinux").checked) ? 0 : 1));
}

function optHostingPlusOS_OnChange()
{
	if (document.getElementById("optHostingPlusOSWin").checked)
	{
		document.getElementById("divPlan3TR7C1").style.display = "";
		document.getElementById("divPlan3TR7C2").style.display = "";
	}
	else
	{
		document.getElementById("divPlan3TR7C1").style.display = "none";
		document.getElementById("divPlan3TR7C2").style.display = "none";
	}

	setVarAndRedirectTo2("optHostingPlusOS", false, null, ((document.getElementById("optHostingPlusOSLinux").checked) ? 0 : 1));
}

function recalculateHostingPlan(plan)
{
	var dPriceAdvEmail = 0.00;
	var dPriceSiteBuilder = 0.00;
	var dPriceASP = 0.00;
	var dPriceSEO = 0.00;
	var dPriceStats = 0.00;
	var dPriceSSL = 0.00;
	var dPriceTLD = 0.00;
	var dPricePlan = 0.00;
	var bError = false;

	if (plan == 1) {
		if (isNaN(document.getElementById("txtAdvEmailPlan1").value))
			bError = true;
			
		if (bError) {
			document.getElementById("lblAdvEmailPlan1").innerHTML = "???";
			document.getElementById("lblTotalPlan1").innerHTML = "???";
		}
		else {
			dPriceAdvEmail = eval(document.getElementById("txtAdvEmailPlan1").value * document.getElementById("_priceAdvEmail").value);
			document.getElementById("lblAdvEmailPlan1").innerHTML = Math.round(dPriceAdvEmail * 100) / 100; // Round to 2 decimals
			
			dPriceTLD = eval(document.getElementById("_calc_tld_price_plan1").value);
			dPricePlan = eval(document.getElementById("_priceHostingEmail").value);
			document.getElementById("lblTotalPlan1").innerHTML = Math.round((dPriceAdvEmail + dPriceTLD + dPricePlan) * 100) / 100; // Round to 2 decimals
		}
	}
	else if (plan == 2) {
		if (isNaN(document.getElementById("txtAdvEmailPlan2").value))
			bError = true;
			
		if (bError) {
			document.getElementById("lblAdvEmailPlan2").innerHTML = "???";
			document.getElementById("lblTotalPlan2").innerHTML = "???";
		}
		else {
			dPriceAdvEmail = eval(document.getElementById("txtAdvEmailPlan2").value * document.getElementById("_priceAdvEmail").value);
			document.getElementById("lblAdvEmailPlan2").innerHTML = Math.round(dPriceAdvEmail * 100) / 100; // Round to 2 decimals

			dPriceASP = ((document.getElementById("ckbASPPlan2").checked) ? eval(document.getElementById("_priceASPNET35").value) : 0.00);
			document.getElementById("lblASPPlan2").innerHTML = Math.round(dPriceASP * 100) / 100; // Round to 2 decimals

			dPriceStats = ((document.getElementById("ckbStatsPlan2").checked) ? eval(document.getElementById("_priceMatrixStats").value) : 0.00);
			document.getElementById("lblStatsPlan2").innerHTML = Math.round(dPriceStats * 100) / 100; // Round to 2 decimals

			dPriceSSL = ((document.getElementById("ckbSSLPlan2").checked) ? eval(document.getElementById("_priceSSL").value) : 0.00);
			document.getElementById("lblSSLPlan2").innerHTML = Math.round(dPriceSSL * 100) / 100; // Round to 2 decimals

			if (document.getElementById("optSiteBuilder10Plan2").checked)
				dPriceSiteBuilder = eval(document.getElementById("_priceSiteBuilder10").value);
			else if (document.getElementById("optSiteBuilder25Plan2").checked)
				dPriceSiteBuilder = eval(document.getElementById("_priceSiteBuilder25").value);
			else if (document.getElementById("optSiteBuilder99Plan2").checked)
				dPriceSiteBuilder = eval(document.getElementById("_priceSiteBuilderUnlimited").value);
			else
				dPriceSiteBuilder = 0;
			document.getElementById("lblSiteBuilderPlan2").innerHTML = Math.round(dPriceSiteBuilder * 100) / 100; // Round to 2 decimals
			
			if (document.getElementById("optSEOBasicPlan2").checked)
				dPriceSEO = eval(document.getElementById("_priceSEOBasic").value);
			else if (document.getElementById("optSEOHighPlan2").checked)
				dPriceSEO = eval(document.getElementById("_priceSEOHigh").value);
			else if (document.getElementById("optSEOSuperPlan2").checked)
				dPriceSEO = eval(document.getElementById("_priceSEOSuper").value);
			else
				dPriceSEO = 0;
			document.getElementById("lblSEOPlan2").innerHTML = Math.round(dPriceSEO * 100) / 100; // Round to 2 decimals

			dPriceTLD = eval(document.getElementById("_calc_tld_price_plan2").value);
			dPricePlan = eval(document.getElementById("_priceHostingUnlimited").value);
			document.getElementById("lblTotalPlan2").innerHTML = Math.round((dPriceASP + dPriceStats + dPriceSSL + dPriceAdvEmail + dPriceSiteBuilder + dPriceSEO + dPriceTLD + dPricePlan) * 100) / 100;  // Round to 2 decimals
		}
	}
	else if (plan == 3) {
		if (isNaN(document.getElementById("txtAdvEmailPlan3").value))
			bError = true;
			
		if (bError) {
			document.getElementById("lblAdvEmailPlan3").innerHTML = "???";
			document.getElementById("lblTotalPlan3").innerHTML = "???";
		}
		else {
			dPriceSSL = ((document.getElementById("ckbSSLPlan3").checked) ? eval(document.getElementById("_priceSSL").value) : 0.00);
			document.getElementById("lblSSLPlan3").innerHTML = Math.round(dPriceSSL * 100) / 100; // Round to 2 decimals

			dPriceAdvEmail = eval(document.getElementById("txtAdvEmailPlan3").value * document.getElementById("_priceAdvEmail").value);
			document.getElementById("lblAdvEmailPlan3").innerHTML = Math.round(dPriceAdvEmail * 100) / 100; // Round to 2 decimals

			if (document.getElementById("optSEOBasicPlan3").checked)
				dPriceSEO = eval(document.getElementById("_priceSEOBasic").value);
			else if (document.getElementById("optSEOHighPlan3").checked)
				dPriceSEO = eval(document.getElementById("_priceSEOHigh").value);
			else if (document.getElementById("optSEOSuperPlan3").checked)
				dPriceSEO = eval(document.getElementById("_priceSEOSuper").value);
			else
				dPriceSEO = 0;
			document.getElementById("lblSEOPlan3").innerHTML = Math.round(dPriceSEO * 100) / 100; // Round to 2 decimals

			dPriceTLD = eval(document.getElementById("_calc_tld_price_plan3").value);
			dPricePlan = eval(document.getElementById("_priceHostingUnlimitedPlus").value);
			document.getElementById("lblTotalPlan3").innerHTML = Math.round((dPriceSSL + dPriceAdvEmail + dPriceSEO + dPriceTLD + dPricePlan) * 100) / 100;  // Round to 2 decimals
		}
	}
}


















function optDomainExisting_OnChange()
{
	setVarAndRedirectTo("optDomainExisting", false, null);
	
	document.getElementById("lstDomainExisting").disabled = false;
	document.getElementById("txtDomainNew").disabled = true;
	document.getElementById("lstTLD").disabled = true;
	document.getElementById("submitValidateDomain").disabled = true;
}
function optDomainNew_OnChange()
{
	setVarAndRedirectTo("optDomainNew", false, null);

	document.getElementById("lstDomainExisting").disabled = true;
	document.getElementById("txtDomainNew").disabled = false;
	document.getElementById("lstTLD").disabled = false;
	document.getElementById("submitValidateDomain").disabled = false;
}
function lstDomainExisting_SelectedIndexChanged()
{
	setVarAndRedirectTo("lstDomainExisting", true, null);
	
	var sTemp = document.getElementById("lstDomainExisting").value;
	if (sTemp == "-1")
		sTemp = "yourDomainName.com";
		
	document.getElementById("lblCustEmail0").innerText = sTemp;
	document.getElementById("lblCustEmail1").innerText = sTemp;
	document.getElementById("lblCustEmail2").innerText = sTemp;
	document.getElementById("lblCustEmail3").innerText = sTemp;
	document.getElementById("lblCustEmail4").innerText = sTemp;
	document.getElementById("lblCustEmail5").innerText = sTemp;
	document.getElementById("lblCustEmail6").innerText = sTemp;
}


function selectEmailBundle(bundle, discount)
{
	var dPrice = 0.0;
	
	setVarAndRedirectTo("optEmailBundle", false, null, bundle);
	
	document.getElementById("divCustEmail0").style.display = "none";
	document.getElementById("divCustEmail1").style.display = "none";
	document.getElementById("divCustEmail2").style.display = "none";
	document.getElementById("divCustEmail3").style.display = "none";
	document.getElementById("divCustEmail4").style.display = "none";
	document.getElementById("divCustEmail5").style.display = "none";
	document.getElementById("divCustEmail6").style.display = "none";

	document.getElementById("lblEmailBundleMsg").innerText = "";
	document.getElementById("lblEmailBundleMsg").style.color = "green";
	if (bundle > 0) {
		document.getElementById("lblEmailBundleMsg").innerText = "Only the 1st email is mandatory, you may leave the others blank and create them at a later date.";
	}

	if (bundle >= 0) {
		dPrice = eval(document.getElementById('_pricePersonalizedEmailBundleOption0').value);
		document.getElementById("divCustEmail0").style.display = "";
	}
	if (bundle >= 1) {
		dPrice = eval(document.getElementById('_pricePersonalizedEmailBundleOption1').value);
		document.getElementById("divCustEmail1").style.display = "";
		document.getElementById("divCustEmail2").style.display = "";
	}
	if (bundle >= 2) {
		dPrice = eval(document.getElementById('_pricePersonalizedEmailBundleOption2').value);
		document.getElementById("divCustEmail3").style.display = "";
		document.getElementById("divCustEmail4").style.display = "";
	}
	if (bundle >= 3) {
		dPrice = eval(document.getElementById('_pricePersonalizedEmailBundleOption3').value);
		document.getElementById("divCustEmail5").style.display = "";
		document.getElementById("divCustEmail6").style.display = "";
	}


	dPrice = Math.round((dPrice - discount) * 100) / 100;  // Round to 2 decimals


	if (dPrice <= 0.00) {
		document.getElementById("divSubmitOrder").style.display = "";
		document.getElementById("divMakePayment").style.display = "none";
	} else {
		document.getElementById("divSubmitOrder").style.display = "none";
		document.getElementById("divMakePayment").style.display = "";
	}
}





function setVarAndRedirectTo(controlID, controlIsDropDown, redirectURL, param) {
	var sURL;

	sURL =  "includes/script.php?1=1";

	if (controlID == "optDomainExisting") {
		sURL += "&fn=clear_domain_var" +
				"&fn2=set_var" +
				"&optDomainName=0";
	}
	else if (controlID == "optDomainNew") {
		sURL += "&fn=clear_domain_var" +
				"&fn2=set_var" +
				"&domainRegistered=false" +
				"&optDomainName=1";
	}
	else if (controlID == "lstDomainExisting") {
		sURL += "&fn=clear_domain_var" +
				"&fn2=set_var" +
				"&domainRegistered=true" +
				"&domainExisting=false" +
				"&domainNew=false" +
				"&domainName=" + ((document.getElementById(controlID).value == -1) ? "" : document.getElementById(controlID).value);
	}
	else if (controlID == "optEmailBundle") {
		sURL += "&fn=set_var" +
				"&optEmailBundle=" + param;
	}
	else {
		sURL += "&fn=set_var";
	}


	sURL += GetSetVarFnParameterForGeneralFields();

	if (redirectURL != null && redirectURL != "") {
		sURL += "&fn3=redirect_to&URL=" + redirectURL;

		window.location = sURL;
	}
	else {
		MyAjaxRequest('main', sURL);
	}
}

function GetSetVarFnParameterForGeneralFields() {
	var sURL = "";

	try {
		sURL += "&txtFirstName=" + trim(document.getElementById("txtFirstName").value);
		sURL += "&txtLastName=" + trim(document.getElementById("txtLastName").value);
		sURL += "&txtEmail=" + trim(document.getElementById("txtEmail").value);
		sURL += "&txtConfirmEmail=" + trim(document.getElementById("txtConfirmEmail").value);
		sURL += "&txtQA1=" + trim(document.getElementById("txtQA1").value);
		sURL += "&txtQA2=" + trim(document.getElementById("txtQA2").value);
		sURL += "&txtQA3=" + trim(document.getElementById("txtQA3").value);
		sURL += "&lstQA1=" + trim(document.getElementById("lstQA1").value);
		sURL += "&lstQA2=" + trim(document.getElementById("lstQA2").value);
		sURL += "&lstQA3=" + trim(document.getElementById("lstQA3").value);
	}
	catch (ex) {}

	return sURL;	
}






























function termsOfService() {
    //<A HREF="popupbasic.html" onClick="return popup(this, 'stevie')">my popup</A>
    popupInNewWindow('TOS.html', 'TOS', true);
}
function privacy() {
    popupInNewWindow('TOSPrivacy.html', 'TOSPrivacy', true);
}






function helpTitleLinkOnMouseOver(obj) {
    obj.className='cHelpTitleLinkMouseOver';
}
function helpTitleLinkOnMouseOut(obj) {
    obj.className='cHelpTitleLink';
}
function helpTitleLinkOnClick(obj, base, linkId) {
    var closeIt = false;
    
    if (document.getElementById(linkId).style['display'] == "block")
        closeIt = true;
        
    if (base == 0) {
        document.getElementById('0010').style['display'] = "none";
        document.getElementById('0020').style['display'] = "none";
        document.getElementById('0030').style['display'] = "none";
        document.getElementById('0040').style['display'] = "none";
        document.getElementById('0050').style['display'] = "none";
        document.getElementById('0060').style['display'] = "none";
        document.getElementById('0070').style['display'] = "none";
        document.getElementById('0080').style['display'] = "none";
        document.getElementById('0090').style['display'] = "none";
    }
    
    if (closeIt)
        document.getElementById(linkId).style['display'] = "none";
    else
        document.getElementById(linkId).style['display'] = "block";
        
    window.scroll(0,0);
}






var x;
function popupInNewWindow(mylink, windowname, refocus)
{
    var mywin, href;

    if (typeof(mylink) == 'string')
        href=mylink;
    else
        href=mylink.href;

    mywin = window.open('', windowname, 'width=900,height=600,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,scrollbars=yes');

    // if we just opened the window
    if (mywin.closed || 
        (! mywin.document.URL) || 
        (mywin.document.URL.indexOf("about") == 0))
            mywin.location=href;
    else if (refocus)
            mywin.focus();

x=mywin;            
    return false;
}










// HtmlDecode http://lab.msdn.microsoft.com/annotations/htmldecode.js 
//   client side version of the useful Server.HtmlDecode method 
//   takes one string (encoded) and returns another (decoded) 
// **********
// NOTE: Iraj has modified this code, see inside function for details.
// **********
function HtmlDecode(s) 
{ 
      var out = ""; 
      if (s==null) return; 

      var l = s.length; 
      for (var i=0; i<l; i++) 
      { 
            var ch = s.charAt(i); 
            
            if (ch == '&') 
            { 
                  var semicolonIndex = s.indexOf(';', i+1); 
                  
            if (semicolonIndex > 0) 
            { 
                        var entity = s.substring(i + 1, semicolonIndex); 
                        if (entity.length > 1 && entity.charAt(0) == '#') 
                        { 
                              if (entity.charAt(1) == 'x' || entity.charAt(1) == 'X') 
                                    ch = String.fromCharCode(eval('0'+entity.substring(1))); 
                              else 
                                    ch = String.fromCharCode(eval(entity.substring(1))); 
                        } 
                    else 
                      { 
                              switch (entity) 
                              { 
                                    case 'quot': ch = String.fromCharCode(0x0022); break; 
                                    case 'amp': ch = String.fromCharCode(0x0026); break; 
                                    case 'lt': ch = String.fromCharCode(0x003c); break; 
                                    case 'gt': ch = String.fromCharCode(0x003e); break; 
                                    case 'nbsp': ch = String.fromCharCode(0x00a0); break; 
                                    case 'iexcl': ch = String.fromCharCode(0x00a1); break; 
                                    case 'cent': ch = String.fromCharCode(0x00a2); break; 
                                    case 'pound': ch = String.fromCharCode(0x00a3); break; 
                                    case 'curren': ch = String.fromCharCode(0x00a4); break; 
                                    case 'yen': ch = String.fromCharCode(0x00a5); break; 
                                    case 'brvbar': ch = String.fromCharCode(0x00a6); break; 
                                    case 'sect': ch = String.fromCharCode(0x00a7); break; 
                                    case 'uml': ch = String.fromCharCode(0x00a8); break; 
                                    case 'copy': ch = String.fromCharCode(0x00a9); break; 
                                    case 'ordf': ch = String.fromCharCode(0x00aa); break; 
                                    case 'laquo': ch = String.fromCharCode(0x00ab); break; 
                                    case 'not': ch = String.fromCharCode(0x00ac); break; 
                                    case 'shy': ch = String.fromCharCode(0x00ad); break; 
                                    case 'reg': ch = String.fromCharCode(0x00ae); break; 
                                    case 'macr': ch = String.fromCharCode(0x00af); break; 
                                    case 'deg': ch = String.fromCharCode(0x00b0); break; 
                                    case 'plusmn': ch = String.fromCharCode(0x00b1); break; 
                                    case 'sup2': ch = String.fromCharCode(0x00b2); break; 
                                    case 'sup3': ch = String.fromCharCode(0x00b3); break; 
                                    case 'acute': ch = String.fromCharCode(0x00b4); break; 
                                    case 'micro': ch = String.fromCharCode(0x00b5); break; 
                                    case 'para': ch = String.fromCharCode(0x00b6); break; 
                                    case 'middot': ch = String.fromCharCode(0x00b7); break; 
                                    case 'cedil': ch = String.fromCharCode(0x00b8); break; 
                                    case 'sup1': ch = String.fromCharCode(0x00b9); break; 
                                    case 'ordm': ch = String.fromCharCode(0x00ba); break; 
                                    case 'raquo': ch = String.fromCharCode(0x00bb); break; 
                                    case 'frac14': ch = String.fromCharCode(0x00bc); break; 
                                    case 'frac12': ch = String.fromCharCode(0x00bd); break; 
                                    case 'frac34': ch = String.fromCharCode(0x00be); break; 
                                    case 'iquest': ch = String.fromCharCode(0x00bf); break; 
                                    case 'Agrave': ch = String.fromCharCode(0x00c0); break; 
                                    case 'Aacute': ch = String.fromCharCode(0x00c1); break; 
                                    case 'Acirc': ch = String.fromCharCode(0x00c2); break; 
                                    case 'Atilde': ch = String.fromCharCode(0x00c3); break; 
                                    case 'Auml': ch = String.fromCharCode(0x00c4); break; 
                                    case 'Aring': ch = String.fromCharCode(0x00c5); break; 
                                    case 'AElig': ch = String.fromCharCode(0x00c6); break; 
                                    case 'Ccedil': ch = String.fromCharCode(0x00c7); break; 
                                    case 'Egrave': ch = String.fromCharCode(0x00c8); break; 
                                    case 'Eacute': ch = String.fromCharCode(0x00c9); break; 
                                    case 'Ecirc': ch = String.fromCharCode(0x00ca); break; 
                                    case 'Euml': ch = String.fromCharCode(0x00cb); break; 
                                    case 'Igrave': ch = String.fromCharCode(0x00cc); break; 
                                    case 'Iacute': ch = String.fromCharCode(0x00cd); break; 
                                    case 'Icirc': ch = String.fromCharCode(0x00ce ); break; 
                                    case 'Iuml': ch = String.fromCharCode(0x00cf); break; 
                                    case 'ETH': ch = String.fromCharCode(0x00d0); break; 
                                    case 'Ntilde': ch = String.fromCharCode(0x00d1); break; 
                                    case 'Ograve': ch = String.fromCharCode(0x00d2); break; 
                                    case 'Oacute': ch = String.fromCharCode(0x00d3); break; 
                                    case 'Ocirc': ch = String.fromCharCode(0x00d4); break; 
                                    case 'Otilde': ch = String.fromCharCode(0x00d5); break; 
                                    case 'Ouml': ch = String.fromCharCode(0x00d6); break; 
                                    case 'times': ch = String.fromCharCode(0x00d7); break; 
                                    case 'Oslash': ch = String.fromCharCode(0x00d8); break; 
                                    case 'Ugrave': ch = String.fromCharCode(0x00d9); break; 
                                    case 'Uacute': ch = String.fromCharCode(0x00da); break; 
                                    case 'Ucirc': ch = String.fromCharCode(0x00db); break; 
                                    case 'Uuml': ch = String.fromCharCode(0x00dc); break; 
                                    case 'Yacute': ch = String.fromCharCode(0x00dd); break; 
                                    case 'THORN': ch = String.fromCharCode(0x00de); break; 
                                    case 'szlig': ch = String.fromCharCode(0x00df); break; 
                                    case 'agrave': ch = String.fromCharCode(0x00e0); break; 
                                    case 'aacute': ch = String.fromCharCode(0x00e1); break; 
                                    case 'acirc': ch = String.fromCharCode(0x00e2); break; 
                                    case 'atilde': ch = String.fromCharCode(0x00e3); break; 
                                    case 'auml': ch = String.fromCharCode(0x00e4); break; 
                                    case 'aring': ch = String.fromCharCode(0x00e5); break; 
                                    case 'aelig': ch = String.fromCharCode(0x00e6); break; 
                                    case 'ccedil': ch = String.fromCharCode(0x00e7); break; 
                                    case 'egrave': ch = String.fromCharCode(0x00e8); break; 
                                    case 'eacute': ch = String.fromCharCode(0x00e9); break; 
                                    case 'ecirc': ch = String.fromCharCode(0x00ea); break; 
                                    case 'euml': ch = String.fromCharCode(0x00eb); break; 
                                    case 'igrave': ch = String.fromCharCode(0x00ec); break; 
                                    case 'iacute': ch = String.fromCharCode(0x00ed); break; 
                                    case 'icirc': ch = String.fromCharCode(0x00ee); break; 
                                    case 'iuml': ch = String.fromCharCode(0x00ef); break; 
                                    case 'eth': ch = String.fromCharCode(0x00f0); break; 
                                    case 'ntilde': ch = String.fromCharCode(0x00f1); break; 
                                    case 'ograve': ch = String.fromCharCode(0x00f2); break; 
                                    case 'oacute': ch = String.fromCharCode(0x00f3); break; 
                                    case 'ocirc': ch = String.fromCharCode(0x00f4); break; 
                                    case 'otilde': ch = String.fromCharCode(0x00f5); break; 
                                    case 'ouml': ch = String.fromCharCode(0x00f6); break; 
                                    case 'divide': ch = String.fromCharCode(0x00f7); break; 
                                    case 'oslash': ch = String.fromCharCode(0x00f8); break; 
                                    case 'ugrave': ch = String.fromCharCode(0x00f9); break; 
                                    case 'uacute': ch = String.fromCharCode(0x00fa); break; 
                                    case 'ucirc': ch = String.fromCharCode(0x00fb); break; 
                                    case 'uuml': ch = String.fromCharCode(0x00fc); break; 
                                    case 'yacute': ch = String.fromCharCode(0x00fd); break; 
                                    case 'thorn': ch = String.fromCharCode(0x00fe); break; 
                                    case 'yuml': ch = String.fromCharCode(0x00ff); break; 
                                    case 'OElig': ch = String.fromCharCode(0x0152); break; 
                                    case 'oelig': ch = String.fromCharCode(0x0153); break; 
                                    case 'Scaron': ch = String.fromCharCode(0x0160); break; 
                                    case 'scaron': ch = String.fromCharCode(0x0161); break; 
                                    case 'Yuml': ch = String.fromCharCode(0x0178); break; 
                                    case 'fnof': ch = String.fromCharCode(0x0192); break; 
                                    case 'circ': ch = String.fromCharCode(0x02c6); break; 
                                    case 'tilde': ch = String.fromCharCode(0x02dc); break; 
                                    case 'Alpha': ch = String.fromCharCode(0x0391); break; 
                                    case 'Beta': ch = String.fromCharCode(0x0392); break; 
                                    case 'Gamma': ch = String.fromCharCode(0x0393); break; 
                                    case 'Delta': ch = String.fromCharCode(0x0394); break; 
                                    case 'Epsilon': ch = String.fromCharCode(0x0395); break; 
                                    case 'Zeta': ch = String.fromCharCode(0x0396); break; 
                                    case 'Eta': ch = String.fromCharCode(0x0397); break; 
                                    case 'Theta': ch = String.fromCharCode(0x0398); break; 
                                    case 'Iota': ch = String.fromCharCode(0x0399); break; 
                                    case 'Kappa': ch = String.fromCharCode(0x039a); break; 
                                    case 'Lambda': ch = String.fromCharCode(0x039b); break; 
                                    case 'Mu': ch = String.fromCharCode(0x039c); break; 
                                    case 'Nu': ch = String.fromCharCode(0x039d); break; 
                                    case 'Xi': ch = String.fromCharCode(0x039e); break; 
                                    case 'Omicron': ch = String.fromCharCode(0x039f); break; 
                                    case 'Pi': ch = String.fromCharCode(0x03a0); break; 
                                    case ' Rho ': ch = String.fromCharCode(0x03a1); break; 
                                    case 'Sigma': ch = String.fromCharCode(0x03a3); break; 
                                    case 'Tau': ch = String.fromCharCode(0x03a4); break; 
                                    case 'Upsilon': ch = String.fromCharCode(0x03a5); break; 
                                    case 'Phi': ch = String.fromCharCode(0x03a6); break; 
                                    case 'Chi': ch = String.fromCharCode(0x03a7); break; 
                                    case 'Psi': ch = String.fromCharCode(0x03a8); break; 
                                    case 'Omega': ch = String.fromCharCode(0x03a9); break; 
                                    case 'alpha': ch = String.fromCharCode(0x03b1); break; 
                                    case 'beta': ch = String.fromCharCode(0x03b2); break; 
                                    case 'gamma': ch = String.fromCharCode(0x03b3); break; 
                                    case 'delta': ch = String.fromCharCode(0x03b4); break; 
                                    case 'epsilon': ch = String.fromCharCode(0x03b5); break; 
                                    case 'zeta': ch = String.fromCharCode(0x03b6); break; 
                                    case 'eta': ch = String.fromCharCode(0x03b7); break; 
                                    case 'theta': ch = String.fromCharCode(0x03b8); break; 
                                    case 'iota': ch = String.fromCharCode(0x03b9); break; 
                                    case 'kappa': ch = String.fromCharCode(0x03ba); break; 
                                    case 'lambda': ch = String.fromCharCode(0x03bb); break; 
                                    case 'mu': ch = String.fromCharCode(0x03bc); break; 
                                    case 'nu': ch = String.fromCharCode(0x03bd); break; 
                                    case 'xi': ch = String.fromCharCode(0x03be); break; 
                                    case 'omicron': ch = String.fromCharCode(0x03bf); break; 
                                    case 'pi': ch = String.fromCharCode(0x03c0); break; 
                                    case 'rho': ch = String.fromCharCode(0x03c1); break; 
                                    case 'sigmaf': ch = String.fromCharCode(0x03c2); break; 
                                    case 'sigma': ch = String.fromCharCode(0x03c3); break; 
                                    case 'tau': ch = String.fromCharCode(0x03c4); break; 
                                    case 'upsilon': ch = String.fromCharCode(0x03c5); break; 
                                    case 'phi': ch = String.fromCharCode(0x03c6); break; 
                                    case 'chi': ch = String.fromCharCode(0x03c7); break; 
                                    case 'psi': ch = String.fromCharCode(0x03c8); break; 
                                    case 'omega': ch = String.fromCharCode(0x03c9); break; 
                                    case 'thetasym': ch = String.fromCharCode(0x03d1); break; 
                                    case 'upsih': ch = String.fromCharCode(0x03d2); break; 
                                    case 'piv': ch = String.fromCharCode(0x03d6); break; 
                                    case 'ensp': ch = String.fromCharCode(0x2002); break; 
                                    case 'emsp': ch = String.fromCharCode(0x2003); break; 
                                    case 'thinsp': ch = String.fromCharCode(0x2009); break; 
                                    case 'zwnj': ch = String.fromCharCode(0x200c); break; 
                                    case 'zwj': ch = String.fromCharCode(0x200d); break; 
                                    case 'lrm': ch = String.fromCharCode(0x200e); break; 
                                    case 'rlm': ch = String.fromCharCode(0x200f); break; 
                                    case 'ndash': ch = String.fromCharCode(0x2013); break; 
                                    case 'mdash': ch = String.fromCharCode(0x2014); break; 
                                    case 'lsquo': ch = String.fromCharCode(0x2018); break; 
                                    case 'rsquo': ch = String.fromCharCode(0x2019); break; 
                                    case 'sbquo': ch = String.fromCharCode(0x201a); break; 
                                    case 'ldquo': ch = String.fromCharCode(0x201c); break; 
                                    case 'rdquo': ch = String.fromCharCode(0x201d); break; 
                                    case 'bdquo': ch = String.fromCharCode(0x201e); break; 
                                    case 'dagger': ch = String.fromCharCode(0x2020); break; 
                                    case 'Dagger': ch = String.fromCharCode(0x2021); break; 
                                    case 'bull': ch = String.fromCharCode(0x2022); break; 
                                    case 'hellip': ch = String.fromCharCode(0x2026); break; 
                                    case 'permil': ch = String.fromCharCode(0x2030); break; 
                                    case 'prime': ch = String.fromCharCode(0x2032); break; 
                                    case 'Prime': ch = String.fromCharCode(0x2033); break; 
                                    case 'lsaquo': ch = String.fromCharCode(0x2039); break; 
                                    case 'rsaquo': ch = String.fromCharCode(0x203a); break; 
                                    case 'oline': ch = String.fromCharCode(0x203e); break; 
                                    case 'frasl': ch = String.fromCharCode(0x2044); break; 
                                    case 'euro': ch = String.fromCharCode(0x20ac); break; 
                                    case 'image': ch = String.fromCharCode(0x2111); break; 
                                    case 'weierp': ch = String.fromCharCode(0x2118); break; 
                                    case 'real': ch = String.fromCharCode(0x211c); break; 
                                    case 'trade': ch = String.fromCharCode(0x2122); break; 
                                    case 'alefsym': ch = String.fromCharCode(0x2135); break; 
                                    case 'larr': ch = String.fromCharCode(0x2190); break; 
                                    case 'uarr': ch = String.fromCharCode(0x2191); break; 
                                    case 'rarr': ch = String.fromCharCode(0x2192); break; 
                                    case 'darr': ch = String.fromCharCode(0x2193); break; 
                                    case 'harr': ch = String.fromCharCode(0x2194); break; 
                                    case 'crarr': ch = String.fromCharCode(0x21b5); break; 
                                    case 'lArr': ch = String.fromCharCode(0x21d0); break; 
                                    case 'uArr': ch = String.fromCharCode(0x21d1); break; 
                                    case 'rArr': ch = String.fromCharCode(0x21d2); break; 
                                    case 'dArr': ch = String.fromCharCode(0x21d3); break; 
                                    case 'hArr': ch = String.fromCharCode(0x21d4); break; 
                                    case 'forall': ch = String.fromCharCode(0x2200); break; 
                                    case 'part': ch = String.fromCharCode(0x2202); break; 
                                    case 'exist': ch = String.fromCharCode(0x2203); break; 
                                    case 'empty': ch = String.fromCharCode(0x2205); break; 
                                    case 'nabla': ch = String.fromCharCode(0x2207); break; 
                                    case 'isin': ch = String.fromCharCode(0x2208); break; 
                                    case 'notin': ch = String.fromCharCode(0x2209); break; 
                                    case 'ni': ch = String.fromCharCode(0x220b); break; 
                                    case 'prod': ch = String.fromCharCode(0x220f); break; 
                                    case 'sum': ch = String.fromCharCode(0x2211); break; 
                                    case 'minus': ch = String.fromCharCode(0x2212); break; 
                                    case 'lowast': ch = String.fromCharCode(0x2217); break; 
                                    case 'radic': ch = String.fromCharCode(0x221a); break; 
                                    case 'prop': ch = String.fromCharCode(0x221d); break; 
                                    case 'infin': ch = String.fromCharCode(0x221e); break; 
                                    case 'ang': ch = String.fromCharCode(0x2220); break; 
                                    case 'and': ch = String.fromCharCode(0x2227); break; 
                                    case 'or': ch = String.fromCharCode(0x2228); break; 
                                    case 'cap': ch = String.fromCharCode(0x2229); break; 
                                    case 'cup': ch = String.fromCharCode(0x222a); break; 
                                    case 'int': ch = String.fromCharCode(0x222b); break; 
                                    case 'there4': ch = String.fromCharCode(0x2234); break; 
                                    case 'sim': ch = String.fromCharCode(0x223c); break; 
                                    case 'cong': ch = String.fromCharCode(0x2245); break; 
                                    case 'asymp': ch = String.fromCharCode(0x2248); break; 
                                    case 'ne': ch = String.fromCharCode(0x2260); break; 
                                    case 'equiv': ch = String.fromCharCode(0x2261); break; 
                                    case 'le': ch = String.fromCharCode(0x2264); break; 
                                    case 'ge': ch = String.fromCharCode(0x2265); break; 
                                    case 'sub': ch = String.fromCharCode(0x2282); break; 
                                    case 'sup': ch = String.fromCharCode(0x2283); break; 
                                    case 'nsub': ch = String.fromCharCode(0x2284); break; 
                                    case 'sube': ch = String.fromCharCode(0x2286); break; 
                                    case 'supe': ch = String.fromCharCode(0x2287); break; 
                                    case 'oplus': ch = String.fromCharCode(0x2295); break; 
                                    case 'otimes': ch = String.fromCharCode(0x2297); break; 
                                    case 'perp': ch = String.fromCharCode(0x22a5); break; 
                                    case 'sdot': ch = String.fromCharCode(0x22c5); break; 
                                    case 'lceil': ch = String.fromCharCode(0x2308); break; 
                                    case 'rceil': ch = String.fromCharCode(0x2309); break; 
                                    case 'lfloor': ch = String.fromCharCode(0x230a); break; 
                                    case 'rfloor': ch = String.fromCharCode(0x230b); break; 
                                    case 'lang': ch = String.fromCharCode(0x2329); break; 
                                    case 'rang': ch = String.fromCharCode(0x232a); break; 
                                    case 'loz': ch = String.fromCharCode(0x25ca); break; 
                                    case 'spades': ch = String.fromCharCode(0x2660); break; 
                                    case 'clubs': ch = String.fromCharCode(0x2663); break; 
                                    case 'hearts': ch = String.fromCharCode(0x2665); break; 
                                    case 'diams': ch = String.fromCharCode(0x2666); break; 
                                    default: ch = ''; break; 
                              } 
                        } 
                        
                        // Iraj - Had to put this IF COndition since otherwise if we have a & in the text
                        //        that is not one of the special &amp; etc AND there happens to be a ; further
                        //        down the string then things screw up royally.
                        if (ch == '')
                            ch = '&';
                        else
                            i = semicolonIndex; 
                  } 
            } 
            
            out += ch; 
      } 
  
      return out; 
} 











// start ajaxrequest.js

// Following is a javascript function that makes a httprequest - AJAX. This is the AJAX bit and all that is needed in that manner.
// Only in this one we won't be using XML in our response, we will accept and handle
// pure text and html and display this response directly to the user within the
// desired <div id> tags. It can even be used to include pure html files as a substitute
// solution to the "old" frames method where as no php or other scripting language is nessesary on the server.
// but use it with care - it is not a search engine supported method and indexing will fail. Workaround for this is not included here

function MyAjaxRequest(target_div,file,check_div)
{
var MyHttpRequest = false;
var MyHttpLoading = '<p>Loading...</p>'; // or use an animated gif instead: var MyHttpLoading = '<img src="loading.gif" border="0" alt="running" />';
var ErrorMSG = 'Sorry - No XMLHTTP support in your browser, buy a newspaper instead';

if(check_div)
{
var check_value = document.getElementById(check_div).value;
}
else
{
var check_value = '';
}


if(window.XMLHttpRequest) // client use Firefox, Opera etc - Non Microsoft product
{
try
{
MyHttpRequest = new XMLHttpRequest();
}
catch(e)
{
MyHttpRequest = false;
}
}
else if(window.ActiveXObject) // client use Internet Explorer
{
try
{
MyHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
MyHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
MyHttpRequest = false;
}
}
}
else
{
MyHttpRequest = false;
}


if(MyHttpRequest) // browser supports httprequest
{
var random = Math.random() * Date.parse(new Date()); // make a random string to prevent caching

var file_array = file.split('.'); // prepare to check if we have a query string or a html/htm file
if(file_array[1] == 'php') // no query string, just calling a php file
{
var query_string = '?rand=' + random;
}
else if(file_array[1] == 'htm' || file_array[1] == 'html') // calling a htm or html file
{
var query_string = '';
}
else // we have presumable a php file with a query string attached
{
var query_string = check_value + '&rand=' + random;
}


MyHttpRequest.open("get", url_encode(file + query_string), true); // <-- run the httprequest using GET


// handle the httprequest
MyHttpRequest.onreadystatechange = function ()
{
if(MyHttpRequest.readyState == 4) // done and responded
{
//Iraj Commented out     document.getElementById(target_div).innerHTML = MyHttpRequest.responseText; // display result
}
else
{
//Iraj Commented out     document.getElementById(target_div).innerHTML = MyHttpLoading; // still working
}
}
MyHttpRequest.send(null);
}
else 
{
document.getElementById(target_div).innerHTML = ErrorMSG; // the browser was unable to create a httprequest
}
}
// end of "AJAX" function


// Here follows a function to urlencode the string we run through our httprequest, it has nothing to do with AJAX itself
// If you look carefully in the above httprequest you se that we use this url_encode function around the file and query_string
// This is very handy since we are using GET in our httprequest and for instance
// any occurrance of the char # (from textboxes etc) will brake the string we are sending to our file - we don't want that to brake!
// It will also convert spaces to +

function url_encode(string)
{
var string;
var safechars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/-_.&?=";
var hex = "0123456789ABCDEF";
var encoded_string = "";
for(var i = 0; i < string.length; i++)
{
var character = string.charAt(i);
if(character == " ")
{
encoded_string += "+";
}
else if(safechars.indexOf(character) != -1)
{
encoded_string += character;
}
else
{
var hexchar = character.charCodeAt(0);
if(hexchar > 255)
{
encoded_string += "+";
}
else
{
encoded_string += "%";
encoded_string += hex.charAt((hexchar >> 4) & 0xF);
encoded_string += hex.charAt(hexchar & 0xF);
}
}
}
return encoded_string;
}
// end .js file

