var popUpSections = new Array();

popUpSections.push(["newsletter","/media/build/ttl_popup_newslettersignup.gif","Newsletter Signup"]);
popUpSections.push(["newsletterdiscount","/media/build/ttl_popup_10discount.gif","10% Discount"]);
popUpSections.push(["sendtoafriend", "/media/build/ttl_popup_sendtoafriend.gif", "Send to a friend"]);
popUpSections.push(["addtobasket","/media/build/ttl_yourshoppingbag.gif", "Your Shopping Bag"])

var loadingImg = "<div class='popLoad'><img src='/media/build/ajax-loader.gif' width='35' height='35' alt='' /></div>";
var updatingBag = "<div class='popLoad'><img src='/media/build/ajax-loader.gif' width='35' height='35' alt='' /></div>";
// var updatingBag = "<div class='popRow'><img src='/media/build/loading.gif' width='138' height='31' alt='Updating Bag...' /></div>";

function popupBox(type)
{
	var validation  = true;		
	var sizeatt = getPageSize();
	var scrollatt = getPageScroll();
	var fullHeight = "";
		
	if(type == "newsletter")
	{
		validation = validateSignUp(type);
	}
	
	if(type == "newsletterdiscount")
	{
		validation = validateSignUp(type);
	}
	
	if(type == "addtobasket")
	{
		validation = validateProductOption(type);
	}
	
	if(validation  == true)
	{			
		if(navigator.userAgent.indexOf("MSIE 6") != -1)
		{
			hideDdls();
		}
	
		if(navigator.userAgent.indexOf("Camino") != -1)
		{
			hideObject();
		}
		
		bodyTag = document.getElementsByTagName("body")[0];	
		var overlay = document.createElement("div");
		overlay.id = "dataOverlay";		
		overlay.style.display = "block";	
		
		if(navigator.appName.indexOf("Opera") != -1)
		{
			fullHeight = parseInt(document.getElementsByClassName("mainContainer")[0].offsetHeight) + 
							 parseInt(document.getElementsByClassName("bottomNavContainer")[0].offsetHeight) + 
							 parseInt(document.getElementsByClassName("footerContainer")[0].offsetHeight);	
		}
		else
		{
			fullHeight = sizeatt[1];
		}
		
		overlay.style.height = fullHeight + "px";							
		
		if(navigator.userAgent.indexOf("MSIE") != -1)	
		{
			overlay.style.width = (sizeatt[0]) + "px";			
		}
		else
		{
			overlay.style.width = (sizeatt[0] - 17) + "px";		
		}
		
		bodyTag.appendChild(overlay);
			
		if(navigator.userAgent.indexOf("MSIE 6") != -1)	
		{
			var relativeBox = document.createElement("div");
			relativeBox.style.position = "relative";
			relativeBox.id = "ie6Addition";
			bodyTag.appendChild(relativeBox);
		}
		
		var overlayBox = document.createElement("div");
		overlayBox.id = "dataOverlayBox";
		overlayBox.style.display = "block";
		overlayBox.style.top = scrollatt[1] + "px";
			
		var overlayContent = document.createElement("div");
		overlayContent.id = "overlayContent";		
		overlayBox.appendChild(overlayContent);	
		
		if(type != "addtobasket")
		{		
			var ribbonImg = document.createElement("img");	
			
			if(navigator.userAgent.indexOf("MSIE 6") != -1)	
			{
				ribbonImg.src = "/media/build/popupribbon.gif";		
			}
			else
			{
				ribbonImg.src = "/media/build/popupribbon.png";		
			}
			
			ribbonImg.id = "popupRibbon";	
			overlayContent.appendChild(ribbonImg);	
		}	
		
		var closeBtn = document.createElement("a");
		closeBtn.className = "overlayBtn";
		closeBtn.title = "Close";	
		closeBtn.onclick = function() {hideBox()};
		overlayContent.appendChild(closeBtn);
		
		var closeButtonImg = document.createElement("img");
		closeButtonImg.src = "/media/build/popup_close_off.gif";
		closeButtonImg.style.width = 26 + "px";
		closeButtonImg.style.height = 25 + "px";
		closeBtn.appendChild(closeButtonImg);
		
		var overlayTitleImg = document.createElement("img");	
		
		for(i=0;i<popUpSections.length;i++)
		{
			if(popUpSections[i][0] == type)
			{	
				overlayTitleImg.src = popUpSections[i][1];						
				overlayTitleImg.alt = popUpSections[i][2];							
				overlayContent.appendChild(overlayTitleImg);				
				
				var table = document.createElement("span");							
				table.id = "formResult";							
				overlayContent.appendChild(table);		
			}
		}
		
		bodyTag.appendChild(overlayBox);
		
		if(table.id != null)
			{
				if(type == "addtobasket")
				{
					addToBasket();
				}
				else if(type == "sendtoafriend")
				{
					sendToAFriend(arguments[1]);
				}
				else
				{
					newsletterSignUp(type);
				}
			}
	}
}

function validateProductOption(type)
{	
	var formID = document.getElementById("productForm");
	var valid = true;	
	var productQuantity = document.getElementById("txtProductQuantity");	
	var productQuantityValue = productQuantity.value;
	var strpattern  = new RegExp("^\d*\d$", "g");
	
	if(document.getElementById("outOfStockWarning") != null)
	{
		if(document.getElementById("IUnderstand").checked == false)
		{
			document.getElementById("errorConfirmed").style.display = "block";
			valid = false;

		}
	}	
	else if(isNaN(productQuantity.value))
	{
		productQuantity.className += " error";
		valid = false;
	}	
	else if(productQuantityValue.match(strpattern) == false)
	{
		productQuantity.className += " error";
		valid = false;
	}
	
	return valid;
}

function validateSignUp(type)
{
	var valid = true;
	var textClassName;
	
	if(type == "newsletter")
	{
		var name = document.getElementById("txtNewsletterFirstName");
		var email = document.getElementById("txtNewsletterEmailAddress");
		textClassName = "txtFootSignUp";
	}
	else if(type == "newsletterdiscount")
	{
		var name = document.getElementById("txtHomeFirstName");
		var email = document.getElementById("txtHomeEmailAddress");
		textClassName = "txtSubscribe";
	}
	
	if((name.value == "") || (name.value == "Enter First Name"))
	{
		valid = false;
		name.className += " error";
	}
	else
	{	
		name.className = textClassName;
	}
			
	if((email.value == "") || (email.value == "Enter Email Address"))
	{
		valid = false;
		email.className += " error";
	}				
	else
	{
		email.className = textClassName;
	}
	
	if(email.value != "")
	{			
		var supEmail = email.value;
		var emLen = supEmail.length;
		var posAt = supEmail.indexOf('@')
		var posDot = supEmail.lastIndexOf('.')
		if((emLen < 7) || (posAt < 1) || (posDot <= (posAt + 1)) || (posDot >= (emLen - 1)))
		{
			valid = false;
			email.className += " error";
		}
	}
	else			
	{
		email.className = textClassName;
	}
	
	return valid;
}

function hideBox()
{	
	overlayObj = document.getElementById("dataOverlay");
	overlayBoxObj = document.getElementById("dataOverlayBox");
	
   document.body.removeChild(overlayObj);
	document.body.removeChild(overlayBoxObj);
		
	if(navigator.userAgent.indexOf("Camino") != -1)
	{
		showObject();		
	}
	
	if(navigator.userAgent.indexOf("MSIE 6") != -1)	
	{
		showDdls();	
		var relativeBoxObj = document.getElementById("ie6Addition");
		document.body.removeChild(relativeBoxObj);
	}		
}

function GetXmlHttpObject()
{
	var xmlHttp = null;	
	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function hideDdls()
{
	for(i=0;i<document.getElementsByTagName("select").length;i++)
	{
		document.getElementsByTagName("select")[i].style.visibility = "hidden";
	}
}

function showDdls()
{
	for(i=0;i<document.getElementsByTagName("select").length;i++)
	{
		document.getElementsByTagName("select")[i].style.visibility = "visible";
	}
}

function hideObject()
{	
	for(i=0;i<document.getElementsByTagName("object").length;i++)
	{
		document.getElementsByTagName("object")[i].style.visibility = "hidden";
	}
}

function showObject()
{	
	for(i=0;i<document.getElementsByTagName("object").length;i++)
	{
		document.getElementsByTagName("object")[i].style.visibility = "visible";
	}
}



function sendToAFriend()
{
	var isValid = true;
	var call = "new";
	if(document.getElementById("txtFriendsFirstName") != null)
	{
		call = "submit";
		var thePageTitle = document.getElementById("txtPageTitle");
		var friendsFirstName = document.getElementById("txtFriendsFirstName");
		var friendsEmailAddress = document.getElementById("txtFriendsEmailAddress");
		var firstName = document.getElementById("txtFirstName");
		var emailAddress = document.getElementById("txtEmailAddress");
		var message = document.getElementById("txtFriendMessage");
		
		if(friendsFirstName.value == "")
		{
			isValid = false;
			friendsFirstName.className += " error";
		}
		else
		{
			friendsFirstName.className = "txtHalf";
		}
		
		if(friendsEmailAddress.value == "")
		{
			isValid = false;
			friendsEmailAddress.className += " error";
		}
		else
		{
			if(friendsEmailAddress.value != "")
			{
				var supEmail = friendsEmailAddress.value;
				var emLen = supEmail.length;
				var posAt = supEmail.indexOf('@')
				var posDot = supEmail.lastIndexOf('.')
				if((emLen < 7) || (posAt < 1) || (posDot <= (posAt + 1)) || (posDot >= (emLen - 1)))
				{
					isValid = false;		
					friendsEmailAddress.className += " error";			
				}	
				else
				{			
					friendsEmailAddress.className = "txtHalf";
				}		
			}
		}
			
		if(firstName.value == "")
		{
			isValid = false;
			firstName.className += " error";
		}
		else
		{
			firstName.className = "txtHalf";
		}

		if(emailAddress.value == "")
		{
			isValid = false;
			emailAddress.className += " error";
		}
		else
		{
			if(emailAddress.value != "")
			{
				var supEmail = emailAddress.value;
				var emLen = supEmail.length;
				var posAt = supEmail.indexOf('@')
				var posDot = supEmail.lastIndexOf('.')
				if((emLen < 7) || (posAt < 1) || (posDot <= (posAt + 1)) || (posDot >= (emLen - 1)))
				{
					isValid = false;
					emailAddress.className += " error";			
				}	
				else
				{
					emailAddress.className = "txtHalf";
				}
			}	
		}
	}
	
	if(isValid == true)
	{
		xmlHttp = GetXmlHttpObject();				
		var url = "/sendtoafriend.aspx";
		url = url + "?call=" + call;		
		
		if(document.getElementById("txtFriendsFirstName") != null)
		{			
			url = url + "&pageTitle=" + thePageTitle.value;
			url = url + "&friendName=" + friendsFirstName.value;	
			url = url + "&friendEmailAddress=" + friendsEmailAddress.value;
			url = url + "&firstName=" + firstName.value;
			url = url + "&emailAddress=" + emailAddress.value;
			url = url + "&friendMessage=" + message.value;		
		}
		else
		{
			url = url + "&pageTitle=" + arguments[0];
		}
		
		xmlHttp.onreadystatechange = checkStatus;
		xmlHttp.open("POST",url,true);
		
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", url.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(url);		
	}
}

function newsletterSignUp(process)
{	
	xmlHttp = GetXmlHttpObject();				
	var url = "/newsletter.aspx";
	
	var nameId = "";
	var emailId = "";
	var signUpQuery = "";
	
	if(process == "newsletter")
	{
		nameId = document.getElementById("txtNewsletterFirstName");
		emailId = document.getElementById("txtNewsletterEmailAddress");
		signUpQuery += "&el=newsletter&txtSignUpName="+nameId.value + "&txtSignUpEmail=" + emailId.value;
	}
	else if(process == "newsletterdiscount")
	{
		nameId = document.getElementById("txtHomeFirstName");
		emailId = document.getElementById("txtHomeEmailAddress");	
		signUpQuery += "&el=newsletterdiscount&txtSignUpName="+nameId.value + "&txtSignUpEmail=" + emailId.value;
	}
	
	// url = url + "?el=" + process;		
	//url = url + "&sid=" + Math.random();
	
	xmlHttp.onreadystatechange = checkStatus;	
	xmlHttp.open("POST",url,true);	
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", signUpQuery.length);
	xmlHttp.setRequestHeader("Connection", "close");
	
	xmlHttp.send(signUpQuery);		
	
	nameId.value = "Enter First Name";
	emailId.value = "Enter Email Address";
		
}

function addToBasket()
{		
	var formID = document.getElementById("productForm");
	var buildQuery = "&el=addtobasket";
	
	for(i=0;i<formID.elements.length;i++)	
	{
		if((formID.elements[i].style.display != "none") && (formID.elements[i].value != ""))
		{ 			
			buildQuery += "&" + formID.elements[i].id + "=" + escape(formID.elements[i].value);			
		}
	}

	xmlHttp = GetXmlHttpObject();				
	var url = "/topbasket.aspx";
	xmlHttp.onreadystatechange = addToBasketStatus;
	xmlHttp.open("POST",url,true);	
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", buildQuery.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(buildQuery);
	
	// setTimeout('ajaxBasket()', 500);
}

function ajaxBasket()
{			
	xmlHttp = GetXmlHttpObject();				
	var url = "/topbasket.aspx";	
	url = url + "?sid=" + Math.random();
	url = url + "&el=topbasket";
	xmlHttp.onreadystatechange = basketProcess;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function cmStatus()
{
	if (xmlHttp.readyState == 4)
	{		
		alert("added");
	}

}

function checkStatus()
{
	if (xmlHttp.readyState == 4)
	{		
		document.getElementById("formResult").innerHTML = xmlHttp.responseText;						
	}
	else
	{
		document.getElementById("formResult").innerHTML = loadingImg;	
	}
}

function addToBasketStatus()
{
	if (xmlHttp.readyState == 4)
	{		
		document.getElementById("formResult").innerHTML = xmlHttp.responseText;				
		ajaxBasket();
	}
	else
	{
		document.getElementById("formResult").innerHTML = loadingImg;	
	}
}

function basketProcess()
{
	var upBag = "<img src='/media/build/loadgraphic_cut.gif' />";

	if (xmlHttp.readyState == 4)
	{		
		document.getElementById("topBasket").innerHTML = xmlHttp.responseText;
	}
	else
	{
		document.getElementById("topBasket").innerHTML = upBag;
	}
}

function getPageScroll()
{

	var yScroll;

	if (self.pageYOffset) 
	{
		yScroll = self.pageYOffset;
	} 
	else if (document.documentElement && document.documentElement.scrollTop)
	{
		yScroll = document.documentElement.scrollTop;
	} 
	else if (document.body) 
	{
		yScroll = document.body.scrollTop;
	}
	
	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}

function getPageSize()
{
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) 
	{	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} 
	else if (document.body.scrollHeight > document.body.offsetHeight)
	{
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} 
	else 
	{ 
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	
	var windowWidth, windowHeight;
	if (self.innerHeight) 
	{
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} 
	else if (document.documentElement && document.documentElement.clientHeight) 
	{
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} 
	else if (document.body) 
	{
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	

	
	if(yScroll < windowHeight)
	{
		pageHeight = windowHeight;
	} 
	else 
	{ 
		pageHeight = yScroll;
	}

	if(xScroll < windowWidth)
	{	
		pageWidth = windowWidth;
	} 
	else 
	{
		pageWidth = xScroll;
	}
	
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;

}
