//var prefix1 = "gc_";
//var prefix2 = "gc:";
var prefix1 = clientID + "_";
var prefix2 = clientID + ":";

//get browser 
var isIE = navigator.userAgent.indexOf("MSIE") > -1;
var version = 0;
if (navigator.appVersion.indexOf("MSIE")!=-1)
{
temp=navigator.appVersion.split("MSIE");
version=parseFloat(temp[1]);
}

//preload images
var imgs = new Array();
var img_url = new Array();
img_url[0] = "/common/img/loading.gif";
img_url[1] = "/common/img/modalLogo.gif";
img_url[2] = "/common/img/modalBkgnd.jpg";
try
{
	if(document.images)
	{
		for(var i = 0; i < img_url.length; i ++)
		{
			var img = new Image();
			img.src = img_url[i];
			imgs[i] = img;
		}
	}	
}
catch(ex)
{
	
}

function textFieldCounter(field, outCountFieldID, maxlimit) {
	var countfield = document.getElementById(outCountFieldID);
	
	if(field.value && countfield)
	{
		if (field.value.length > maxlimit)
			field.value = field.value.substring(0, maxlimit);
		else 
			countfield.innerHTML = field.value.length;
	}
}

//function toggleStandard(display)
//{
//	var div = document.getElementById("divStandard");
//	div.style.display = display;
//	
//	var name = getElementByBaseId("txt_recipient");
//	var amount = getElementByBaseId("txt_amount");
//	var qty = getElementByBaseId("txt_quantity");
//	var comments = getElementByBaseId("txtComments");
//	
//	name.value = "";
//	amount.value = "";
//	qty.value = "";
//	comments.value = "";
//}

function checkDelivery(id, isEmail, price)
{
	if(isEmail)
	{
		getElementByBaseId('shippingDetailsEmail').style.display = 'block';
		
		getElementByBaseId('shippingDetailsAddress').style.display = 'none';
		getElementByBaseId('divCKSame').style.display = 'none';
		getElementByBaseId('divCKSame').checked = false;
		SameAsChecked();
	}
	else
	{
		getElementByBaseId('shippingDetailsEmail').style.display = 'none';
//		getElementByBaseId('ckSameEmail').checked = false;
//		SameAsEmail();
		
		getElementByBaseId('shippingDetailsAddress').style.display = 'block';
		getElementByBaseId('divCKSame').style.display = 'block';
	}
	//update the cart so that the new delivery fees are included
	SelectCurrentDeliveryMethod(id);
}

//function onShippingMethodChange(selDeliveryMethod, ClientID){
//	if (selDeliveryMethod == 'email')
//	{
//		document.getElementById('shippingDetailsEmail').style.display = 'block';
//		document.getElementById('shippingDetailsAddress').style.display = 'none';
//		document.getElementById('ckSameAsShip').enabled = false;
//	}
//	else
//	{
//		document.getElementById('shippingDetailsEmail').style.display = 'none';
//		document.getElementById('shippingDetailsAddress').style.display = 'block';
//		document.getElementById('ckSameAsShip').enabled = true;	
//	}
//	document.getElementById(ClientID).value = selDeliveryMethod;
//}	

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}

addLoadEvent(function() {  
showModal();
})


function getElementByBaseId(oBase)
{
	try
	{
		var oControl = document.getElementById(prefix1 + oBase);
		if(oControl != null)
		{
			return oControl;
		}
		else
		{
			var oControl2 = document.getElementById(prefix2 + oBase);
			return oControl2;
		}
	}
	catch(oError)
	{
		return null;
	}
}

function CloseScreenDivs()
{
	prepareIE('auto', 'scroll');
	var dFull = document.getElementById("overlay");
	var dSub = document.getElementById("lightbox");
	//display select box that gets hidden in "showModal" and "processOrder"
	try
	{
		document.forms[0]["giftCertificate9:ddlRegion"].style.display = "inline";
	}
	catch(ex)
	{
	}

	if(dFull != null)
		dFull.style.display = "none";
	if(dSub != null)
	{
		dSub.style.display = "none";
		dSub.innerHTML = "";	
	}
}

function prepareIE(height, overflow)
{
	try
	{
		var htm = document.getElementsByTagName('html')[0];
		htm.scrollTop = 0;
		scroll(0,0);
		htm.style.height = height;
		htm.style.overflow = overflow;
		if(height == "auto")
			toggleSelects(true);
		else
			toggleSelects(false);
	}
	catch(ex)
	{
		
	}
}
function toggleSelects(bOn)
{
	if(isIE && (version < 7))
	{
		var aSelects = document.getElementsByTagName("select");
		for(var i = 0; i < aSelects.length; i++)
		{
			if(bOn)
				aSelects[i].style.visibility = "visible";
			else
				aSelects[i].style.visibility = "hidden";
		}
	}
}
function showModal()
{
	var bShow = getElementByBaseId("bShow");
	if(bShow.innerHTML == "true")
	{
		var bClose = getElementByBaseId("bClose");
		var sMsg = getElementByBaseId("sMessage");
		var sClose = getElementByBaseId("sClose");
		
		prepareIE('100%', 'hidden');
		
		var dFull = document.getElementById("overlay");
		var dSub = document.getElementById("lightbox");	
		
		if(dFull != null)
			dFull.style.display = "block";
		if(dSub != null)
		{
			dSub.style.display = "block";	
			
			if(isIE)
			{			
				//compensate for an IE bug called burnthrough where select boxes do not respect z-index
				//document.forms[0]["giftCertificate9:ddlRegion"].style.display = "none"; 
				//older versions of IE need help with images
				var br = document.createElement('br');
				var divLogo = document.createElement('div');
				divLogo.appendChild(imgs[1]);
				divLogo.className='modallogo';
				dSub.innerHTML = sMsg.innerHTML + "<br>";
				if(bClose.innerHTML == "true")
				{
					dSub.innerHTML = dSub.innerHTML + "<a href='javascript:CloseScreenDivs();'>" + sClose.innerHTML + "</a><br>";
				}
				dSub.innerHTML = dSub.innerHTML + "<br>";
				dSub.appendChild(divLogo);		
			}
			else
			{
				dSub.innerHTML = sMsg.innerHTML + "<br>";
				if(bClose.innerHTML == "true")
				{
					dSub.innerHTML = dSub.innerHTML + "<a href='javascript:CloseScreenDivs();'>" + sClose.innerHTML + "</a><br>";
				}
				dSub.innerHTML = dSub.innerHTML +"<br><div class='modallogo'><img src='/common/img/modalLogo.gif' alt='Massage Envy' /></div>";
			}
		}		
	}
}

function processOrder()
{
	var btnProcess = getElementByBaseId('btnProcess');
	if(btnProcess)
	{
		btnProcess.display = "none";
	}
	prepareIE('100%', 'hidden');
	
	var dFull = document.getElementById("overlay");
	var dSub = document.getElementById("lightbox");	
	
	if(dFull != null)
		dFull.style.display = "block";
	if(dSub != null)
	{
		dSub.style.display = "block";	
		
		if(isIE)
		{			
			//compensate for an IE bug called burnthrough where select boxes do not respect z-index
			//document.forms[0]["giftCertificate9:ddlRegion"].style.display = "none"; 
			//older versions of IE need help with images
			var br = document.createElement('br');
			var divLogo = document.createElement('div');
			divLogo.appendChild(imgs[1]);
			divLogo.className='modallogo';
			var divProcess = document.createElement('div');
			divProcess.appendChild(imgs[0]);
			divProcess.className='modalprocess';
			dSub.innerHTML = "Your order is being processed. This may take a moment.<br />Thank you for your patience.";
			dSub.innerHTML = dSub.innerHTML + "<br>";
			dSub.appendChild(divProcess);
			dSub.innerHTML = dSub.innerHTML + "<br>";
			dSub.appendChild(divLogo);		
		}
		else
		{
			dSub.innerHTML = "Your order is being processed. This may take a moment.<br />Thank you for your patience.<div class='modalprocess'><img src='/common/img/loading.gif' alt='loading'></div><br><div class='modallogo'><img src='/common/img/modalLogo.gif' alt='Massage Envy' /></div>";
		}						
	}
	
	return true;	
}

function createXMLHttp()
{
	if(typeof XMLHttpRequest != "undefined")
	{
		return new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		var aVersions = [ "MSXML2.XMLHttp.5.0", 
		"MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0", 
		"MSXML2.XMLHttp", "Microsoft.XXMLHttp"];
		
		for (var i = 0; i < aVersions.length; i ++)
		{
			try
			{
				var oXmlHttp = new ActiveXObject(aVersions[i]);
				return oXmlHttp;
			}
			catch(oError)
			{
			
			}
		}
	}
	throw new Error("XmlHttp object could not be created.");
}
function requestInfo(oQuery, oType)
{
	try
	{
		var oXmlHttp = createXMLHttp();
		//var strPage = "/MassageEnvyExtensions/processGiftCard.aspx?";
		var strPage = "/process/processGiftCard.aspx?";
		
		oQuery += "&nocache=" + new Date().getTime();
		
		oXmlHttp.open("GET", strPage + oQuery, true);		
		oXmlHttp.setRequestHeader("Cache-Control", "no-cache");	
		oXmlHttp.onreadystatechange = function () { 
			try
			{
				if(oXmlHttp.readyState == 4)
				{
					if(oXmlHttp.status == 200)
					{
						parseResult(oXmlHttp.responseText, oType);
					}
				}
			}
			catch(oError)
			{
				parseResult(oError.description, "error");
			}
		}
		oXmlHttp.send(null);
	}
	catch(oError1)
	{
		parseResult(oError1.description, "error");
	}	
}

function trimString(strIn){
	return strIn.replace(/^\s*/, "").replace(/\s*$/, "");
}

function parseResult(sResult, oType)
{
	var lError = getElementByBaseId("lblError");
				
	if(oType == "cart")
	{
		var lCart = getElementByBaseId("lblCart");
		if(lCart)
		{
			var sDisplay = sResult.substring(sResult.indexOf("<!--start-->") + 12);
			sDisplay = sDisplay.substring(0, sDisplay.indexOf("<!--end-->"));
			if(trimString(sDisplay) != "")
			{
				lCart.innerHTML =  sDisplay;
				if(lError)
				{
					lError.innerHTML = "";
				}
			}
			else
			{
				if(lError)
				{
					lError.innerHTML = "There was an error in processing your request. Please try again. Message code js1.";
				}
			}
		}	
		GetTotal();
	}   
	
	if(oType == "total")
	{
		var lTotal = getElementByBaseId("lblTotal");
		if(lTotal)
		{
			var sDisplay = sResult.substring(sResult.indexOf("<!--start-->") + 12);
			sDisplay = sDisplay.substring(0, sDisplay.indexOf("<!--end-->"));
			
			lTotal.innerHTML =  sDisplay;
		}
	}
	
	if (oType == "fee")
	{
		var lCart = getElementByBaseId("lblCart");
		if (lCart)
		{
			var sDisplay = sResult.substring(sResult.indexOf("<!--start-->") + 12);
			sDisplay = sDisplay.substring(0, sDisplay.indexOf("<!--end-->"));
			if(trimString(sDisplay) != "")
			{
				lCart.innerHTML =  sDisplay;
				if(lError)
				{
					lError.innerHTML = "";
				}
			}
			else
			{
				var lError = getElementByBaseId("lblError");
				if(lError)
				{
					lError.innerHTML = "There was an error in processing your request. Please try again. Message code js2.";
				}
			}
		}
	}
	
	if(oType == "error")
	{
		var lError = getElementByBaseId("lblError");
		if(lError)
		{
			lError.innerHTML =  sResult;
		}	
	}
}

function GetTotal()
{
	//"Your credit card will be charged a total of " + dTotal.ToString("c") + " on " + DateTime.Now.ToShortTimeString()
	var sQuery;
	sQuery = "function=total";
	requestInfo(sQuery, "total");
}

function DeleteCard(iIndex)
{
	var sQuery = "function=delete&index=" + iIndex;
	requestInfo(sQuery, "cart");
}

function addCard(recipient, email, description, amount, qty, comments)
{
	var sQuery;
	sQuery = "function=add&recipient=" + recipient + "&description=" + description + "&amount=" + amount + "&qty=" + qty + "&comments=" + comments + "&email=" + email + "&";
	requestInfo(sQuery, "cart");	
}

function AddCardCustom(recipient, email, description, amount, qty, comments)
{
	if(email == '')
	{
		email = 'self';
	}
	addCard(recipient, email, description, amount, qty, comments)
}

function AddCardSimple(recipientID, emailID, amountID, qtyID, commentsID)
{
	var ctrlEmail = document.getElementById(emailID);
	var strEmail = 'self';
	if(ctrlEmail.value != '')
	{
		strEmail = ctrlEmail.value;
	}
	addCard(document.getElementById(recipientID).value.replace("&", "%26").replace("'", "%27").replace(",", "%2C").replace("?", "%3F"), strEmail, 'Standard', document.getElementById(amountID).value, document.getElementById(qtyID).value, document.getElementById(commentsID).value.replace("&", "%26").replace("'", "%27").replace(",", "%2C").replace("?", "%3F"));
	//toggleStandard('none');
}

function SelectCurrentDeliveryMethod(id)
{
	var sQuery = "function=selectDeliveryMethod&iDeliveryMethod=" + id + "&";
	requestInfo(sQuery, "cart");
}

function ShowPrice()
{
	var ddRegion = getElementByBaseId("ddlRegion");
	var lPrice = getElementByBaseId("lblRegionPrice");
	if(ddRegion && lPrice)
	{
		lPrice.innerHTML = "$" + ddRegion.value.substring(0, ddRegion.value.indexOf("|"));
	}
}

//function SameAsEmail()
//{
//	var ck = getElementByBaseId("ckSameEmail");
//	if(ck != null)
//	{
//		//get payment elements
//		var bEmail = getElementByBaseId("txtEmail");
//		var bEmailConfirm = getElementByBaseId("txtConfirmEmail");
//		
//		if(ck.checked)
//		{
//			//get delivery email
//			var sEmail = getElementByBaseId("emailAddress1_p");
//			var sEmailConfirm = getElementByBaseId("emailAddress2_p");
//			
//			if(bEmail && sEmail)
//				bEmail.value = sEmail.value;
//			if(bEmailConfirm && sEmailConfirm)
//				bEmailConfirm.value = sEmailConfirm.value;
//				
//			bEmailConfirm.disabled = true;
//			bEmail.disabled = true;
//		}
//		else
//		{
//			bEmailConfirm.disabled = false;
//			bEmail.disabled = false;
//		}
//	}
//}

function SameAsChecked()
{
	var ck = getElementByBaseId("ckSameAsShip");
	if(ck != null)
	{
		//get address elements
		var bAddress1 = getElementByBaseId("txtBillAddress1");
		var bAddress2 = getElementByBaseId("txtBillAddress2");
		var bCity = getElementByBaseId("txtBillCity");
		var bState = getElementByBaseId("ddlBillState");
		var bZip = getElementByBaseId("txtBillZip");
		
		var bDayPhone1 = getElementByBaseId("txtBillDayPhone1");
		var bDayPhone2 = getElementByBaseId("txtBillDayPhone2");
		var bDayPhone3 = getElementByBaseId("txtBillDayPhone3");
		var bDayPhoneX = getElementByBaseId("txtBillDayPhoneExt");
		
		var bNPhone1 = getElementByBaseId("txtBillNightPhone1");
		var bNPhone2 = getElementByBaseId("txtBillNightPhone2");
		var bNPhone3 = getElementByBaseId("txtBillNightPhone3");
		
		if(ck.checked)
		{
			var sAddress1 = getElementByBaseId("txtShipAddress1");
			var sAddress2 = getElementByBaseId("txtShipAddress2");
			var sCity = getElementByBaseId("txtShipCity");
			var sState = getElementByBaseId("ddlShipState");
			var sZip = getElementByBaseId("txtShipZip");	
			
			var sDayPhone1 = getElementByBaseId("txtShipDayPhone1");
			var sDayPhone2 = getElementByBaseId("txtShipDayPhone2");
			var sDayPhone3 = getElementByBaseId("txtShipDayPhone3");
			var sDayPhoneX = getElementByBaseId("txtShipDayPhoneExt");
			
			var sNPhone1 = getElementByBaseId("txtShipNightPhone1");
			var sNPhone2 = getElementByBaseId("txtShipNightPhone2");
			var sNPhone3 = getElementByBaseId("txtShipNightPhone3");
			
			if(sAddress1 && bAddress1)
				bAddress1.value = sAddress1.value;
				
			if(sAddress2 && bAddress2)
				bAddress2.value = sAddress2.value;
			
			if(sCity && bCity)
				bCity.value = sCity.value;
			
			if(sState && bState)
				bState.value = sState.value;
				
			if(sZip && bZip)
				bZip.value = sZip.value;
				
			if(sDayPhone1 && bDayPhone1)
				bDayPhone1.value = sDayPhone1.value;
			if(sDayPhone2 && bDayPhone2)
				bDayPhone2.value = sDayPhone2.value;
			if(sDayPhone3 && bDayPhone3)
				bDayPhone3.value = sDayPhone3.value;
			if(sDayPhoneX && bDayPhoneX)
				bDayPhoneX.value = sDayPhoneX.value;
				
			if(sNPhone1 && bNPhone1)
				bNPhone1.value = sNPhone1.value;
			if(sNPhone2 && bNPhone2)
				bNPhone2.value = sNPhone2.value;
			if(sNPhone3 && bNPhone3)
				bNPhone3.value = sNPhone3.value;
				
			bAddress1.disabled = true;
			bAddress2.disabled = true;
			bCity.disabled = true;
			bState.disabled = true;
			bZip.disabled = true;
			
			//phone stuff
			bDayPhone1.disabled = true;
			bDayPhone2.disabled = true;
			bDayPhone3.disabled = true;
			bDayPhoneX.disabled = true;
			
			bNPhone1.disabled = true;
			bNPhone2.disabled = true;
			bNPhone3.disabled = true;			
		}
		else
		{
			bAddress1.disabled = false;
			bAddress2.disabled = false;
			bCity.disabled = false;
			bState.disabled = false;
			bZip.disabled = false;
			
			//phone stuff
			bDayPhone1.disabled = false;
			bDayPhone2.disabled = false;
			bDayPhone3.disabled = false;
			bDayPhoneX.disabled = false;
			
			bNPhone1.disabled = false;
			bNPhone2.disabled = false;
			bNPhone3.disabled = false;
		}
	
	}
}
