AddWindowOnload("AttachEvents()");
var KEY_ENTER = 13;

function AttachEvents()
{
	if (browser.IsDOM && !browser.IsIE)
	{
		window.addEventListener ("mousemove",WindowMouseMove,false);
		window.addEventListener ("keypress",HandleEnterEvent,false);
	}
	else if (browser.IsIE)
	{
		document.onmousemove = WindowMouseMove;
		document.onkeypress = HandleEnterEvent;
	}
}

function ProductEnlargeImagePopUp(url)
{
	if (typeof(popUpManager) != "undefined")
	{
		popUpManager.WindowOpen("EnlargedProductImageWin", 
								url, 
								"EnlargedProductImage", 
								"toolbar=0,menubar=0,scrollbars=0,resizable=1,width=500,height=564", 
								false);
	}
}

function ApparelSizeChartPopUp(url)
{
	if (typeof(popUpManager) != "undefined")
	{
		popUpManager.WindowOpen("ApparelSizeChartWin", 
								url, 
								"ApparelSizeChart", 
								"toolbar=0,menubar=0,scrollbars=0,resizable=1,width=750,height=604", 
								false);
	}
}

function AdjustProductDetailOverflowHeight(id)
{
	if (!browser.IsDOM)
	{
		return;
	}
	
	var overflowDiv = document.getElementById(id);
	
	if (!overflowDiv)
	{
		return;
	}
	
	if (overflowDiv.scrollHeight < GetElementHeight(overflowDiv))
	{
		SetElementHeight(overflowDiv, overflowDiv.scrollHeight);
	}
	
}

function DisplayBrowseElement(id, prefix)
{
	if (!window[prefix])
	{
		return;
	}
	
	id = window[prefix] + id;
	var imageID = id + "Image";
	var linkID = id + "Link";
	
	var imageX = GetPageX(imageID);
	var imageY = GetPageY(imageID);
	var imageHeight = GetHeight(imageID);
	var imageWidth = GetWidth(imageID);
	var listWidth = GetWidth(id);
	
	if (listWidth < imageWidth)
	{
		SetWidth(id, imageWidth - 2);
	}
	
	MoveTo(id, imageX, imageY + (imageHeight - 1));
	window["ActiveBrowseElementImage"] = imageID;
	window["ActiveBrowseElement"] = id;
	SetVisibility(id, "visible");
}

function WindowKeyPress(e)
{
	var childID = (browser.IsIE && browser.IsDOM)
		? event.srcElement.id
		: e.target.id;
}

function WindowMouseMove(e)
{
	var childID = (browser.IsIE && browser.IsDOM)
		? event.srcElement.id
		: e.target.id;
		
	if (!window["ActiveBrowseElement"] && !window["ActiveBrowseElementImage"])
	{
		return;
	}
	
	if (!IsChild(window["ActiveBrowseElementImage"], childID) &&
		!IsChild(window["ActiveBrowseElement"], childID) &&
		window["ActiveBrowseElementImage"] != childID &&
		window["ActiveBrowseElement"] != childID)
	{
		SetVisibility(window["ActiveBrowseElement"], "hidden");
		window["ActiveBrowseElement"] = null;
		window["ActiveBrowseElementImage"] = null;
	}
}

function CancelBubble(e)
{
	if (!e)
	{
		e = window.event;
	}
	e.cancelBubble = true;
}

function SetInnerHtml(id, content)
{
	if (!browser.IsDOM)
	{
		return;
	}
	
	var element = document.getElementById(id);
	
	if (!element)
	{
		return;
	}
	
	element.innerHTML = content;
}

function SetImageSrc(id, src)
{
	if (!browser.IsDOM)
	{
		return;
	}
	
	var element = document.getElementById(id);
	
	if (!element)
	{
		return;
	}
	
	element.src = src;
}

function SetEnlargeScript(id, url)
{
//javascript:ProductEnlargeImagePopUp(
	var enlargeLink = document.getElementById(id);
	
	if (!enlargeLink || !enlargeLink.href)
	{
		return;
	}
	
	enlargeLink.href = "javascript:ProductEnlargeImagePopUp('" + url + "');";
}

function SetBuyNowLink(id, sku)
{
	var buyNowLink = document.getElementById(id);
	
	if (!buyNowLink || !buyNowLink.href)
	{
		return;
	}
	
	var startPosition = buyNowLink.href.indexOf("product");
	
	if (startPosition > 0)
	{
		buyNowLink.href = buyNowLink.href.substr(0, startPosition) + "product=" + sku;
	}
}

function AttachFormStateToAnchor(e, returnUrl)
{
	var anchor = (browser.IsIE && browser.IsDOM)
		? event.srcElement
		: e.target;
	
	anchor.href += anchor.href.indexOf("?") >= 0
		? "&" + GetFormStateString() + "&" + returnUrl
		: "?" + GetFormStateString() + "&" + returnUrl;
}

function ClearTextBox(e, message)
{
	var textBox = (browser.IsIE && browser.IsDOM)
		? event.srcElement
		: e.target;
		
	if (!textBox || !textBox.value)
	{
		return;
	}
	
	if (textBox.value == message)
	{
		textBox.value = "";
	}
}

function GoToClosestRetailers(url, id, defaultMessage)
{
	var element = document.getElementById(id);
	if (!element)
	{
		return;
	}
	if (element.value == "" || element.value == defaultMessage)
	{
		alert("Please enter your Zip Code in order to locate a store.");
		element.focus();
		return;
	}
	url += "?zipcode=" + element.value;
	location.href = url;
}

function GoToClosestRetailersCheckSubmit(e, url, id, defaultMessage)
{
	if (browser.IsIE)
	{
		if (event.keyCode == KEY_ENTER)
		{
			GoToClosestRetailers(url, id, defaultMessage);
			return CancelEnterEvent(event);
		}
	}
	else 
	{
		if (browser.IsDOM)
		{
			if (e.which == KEY_ENTER)
			{
				GoToClosestRetailers(url, id, defaultMessage);
				return CancelEnterEvent(e);
			}
		}
	}
}

function GoToSearch(url, id, defaultMessage)
{
	var element = document.getElementById(id);
	if (!element)
	{
		return;
	}
	if (element.value == "" || element.value == defaultMessage)
	{
		alert("You must enter something to search for.");
		element.focus();
		return;
	}
	url += "?query=" + element.value;
	location.href = url;
}

function CheckSearchSubmit(e, url, id, defaultMessage)
{
	if (browser.IsIE)
	{
		if (event.keyCode == KEY_ENTER)
		{
			GoToSearch(url, id, defaultMessage);
			return CancelEnterEvent(event);
		}
	}
	else 
	{
		if (browser.IsDOM)
		{
			if (e.which == KEY_ENTER)
			{
				GoToSearch(url, id, defaultMessage);
				return CancelEnterEvent(e);
			}
		}
	}
}

function EmailSignUp(url, id, defaultMessage)
{
	var element = document.getElementById(id);
	if (!element)
	{
		return;
	}
	if (element.value == "" || element.value == defaultMessage)
	{
		alert("Please enter your e-mail address in order to stay connected.")
		return;
	}
	var emailRegxp = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;
	if (emailRegxp.test(element.value) != true)
	{
		alert("The e-mail address does not appear to be valid, please confirm and try again.");
		element.focus();
		return;
	}

	url += "?email=" + element.value;

	if (typeof(popUpManager) != "undefined")
	{
		popUpManager.WindowOpen("EmailListWin", 
								url, 
								"EmailList", 
								"top=10,left=10,toolbar=0,menubar=0,scrollbars=0,resizable=0,width=500,height=200", 
								false);
		element.value = defaultMessage;
	}
}

function EmailSignUpCheckSubmit(e, url, id, defaultMessage)
{
	if (browser.IsIE)
	{
		if (event.keyCode == KEY_ENTER)
		{
			EmailSignUp(url, id, defaultMessage);
			return CancelEnterEvent(event);
		}
	}
	else 
	{
		if (browser.IsDOM)
		{
			if (e.which == KEY_ENTER)
			{
				EmailSignUp(url, id, defaultMessage);
				return CancelEnterEvent(e);
			}
		}
	}
}

function HandleEnterEvent(e)
{
	if (browser.IsIE)
	{
		if (event.keyCode == KEY_ENTER)
		{
			return CancelEnterEvent(event);
		}
	}
	else 
	{
		if (browser.IsDOM)
		{
			if (e.which == KEY_ENTER)
			{
				return CancelEnterEvent(e);
			}
		}
	}
}

function CancelEnterEvent(e)
{
	if (browser.IsIE)
	{
		e.returnValue = false; 
		e.cancel = true; 
	}
	else
	{
		if (browser.IsDOM)
		{
			e.returnValue = false; 
			e.cancel = true; 
			e.preventDefault(); 
		}
	}
	return false;
}