var stateSelectPopped = false;

function FindStateSelectPosition(item) {
	if (item) {
		if (item.offsetParent) {
			for (var posX = 0, posY = 0; item.offsetParent; item = item.offsetParent) {
				posX += item.offsetLeft;
				posY += item.offsetTop;
			}
			return [ posX, posY ];
		} else {
			return [ item.x, item.y ];
		}
	}
}

function HideStateSelect() {  
	HideStateSelectElementById("StateSelect");
	HideStateSelectElementById("StateSelectPanel");
	HideStateSelectElementById("stateSelectError");
	
	ShowStateSelectUnfriendlyElements();
	
	stateSelectPopped = false;
}

function ShowStateSelectUnfriendlyElements() {
	ShowStateSelectElementByIdAndName("qty");
	ShowStateSelectElementByIdAndName("srt");
	ShowStateSelectElementByIdAndName("state");
	ShowStateSelectElementByIdAndName("hpOne");
	ShowStateSelectElementByIdAndName("hpTwo");
	ShowStateSelectElementByIdAndName("hpThree");
	ShowStateSelectElementByIdAndName("ddSortListTop");
	ShowStateSelectElementByIdAndName("ddPageLengthTop");
}

function HideStateSelectUnfriendlyElements() {
	HideStateSelectElementById("qty");
	HideStateSelectElementById("srt");
	HideStateSelectElementById("state");
	HideStateSelectElementById("hpOne");
	HideStateSelectElementById("hpTwo");
	HideStateSelectElementById("hpThree");
	HideStateSelectElementById("ddSortListTop");
	HideStateSelectElementById("ddPageLengthTop");
}
        
function HideStateSelectElementById(name) {
	var item = document.getElementById(name);
	if (item) {
		item.style.visibility = "hidden";
	}
}

function ShowStateSelectElementByIdAndName(name) {
	var elements = document.getElementsByName(name);
	if (elements) {
		if (elements.length > 0) {
			for(var i = 0; i < elements.length; i++) {
				elements.item(0).style.visibility = "visible";
			}
			return;
		}
	}
	
	var element = document.getElementById(name);
	if (element) {
		element.style.visibility = "visible";
	}
}

function RePositionStateSelectPopup() {
	var height = 300;
	var leftOffSet = 180;
	var topOffSet = 110;
	var positionTop = null;
	var positionBottom = null;
	
	var topPlace = document.getElementById("lowerTopNav");
	if (topPlace) {
		positionTop = FindStateSelectPosition(topPlace);
	}
	
	var btmPlace = document.getElementById("lowerBottomNav");
	if (btmPlace) {
		positionBottom =  FindStateSelectPosition(btmPlace);
	}

	if ((positionTop) && (positionBottom)) {
		height = positionBottom[1] - positionTop[1];
		leftOffSet = 180 + positionTop[0];
		topOffSet = 110 + positionTop[1];
		
		var stateSelect = document.getElementById("StateSelect");
		if (stateSelect) {
			stateSelect.style.position = "absolute";
			stateSelect.style.height = height + "px";
			
			if (stateSelect.style.width.length == 0) {
				stateSelect.style.top = positionTop[1] + "px";
				stateSelect.style.left = positionTop[0] + "px";
			}
		}
		
		var stateSelectPanel = document.getElementById("StateSelectPanel");
		if (stateSelectPanel) {
			stateSelectPanel.style.position = "absolute";
			stateSelectPanel.style.left = "50%";
			stateSelectPanel.style.top = topOffSet + "px";
			stateSelectPanel.style.marginLeft = "-245px";
		}
	}
}

var StateSelectResizeHandler = function() {
	if (stateSelectPopped) {
		RePositionStateSelectPopup();
	}
}

function ShowStateSelect(friendly) {
	window.onresize = StateSelectResizeHandler;
	HideStateSelectElementById("stateSelectError");
	HideStateSelectElementById("cookieRequiredError");
	
    RePositionStateSelectPopup();
	
    if (friendly == false) {
		HideStateSelectElementById("StateSelect");
	}
	
	ShowStateSelectElementByIdAndName("StateSelect");
	ShowStateSelectElementByIdAndName("StateSelectPanel");
	
	HideStateSelectUnfriendlyElements();
	
    stateSelectPopped = true;
	
    if (document.cookie == "") {
		ShowStateSelectElementByIdAndName("cookieRequiredError");
	}
} 

function NewStateSelectPopUPSelect(obj) {
	var popUp = document.getElementById("stateSelectPopUp");
	var selectedString;
	
	if (popUp) 
	{
		selectedString = popUp.options[popUp.selectedIndex].value;
		if (selectedString == "--") {
			ShowStateSelectElementByIdAndName("stateSelectError");
		}
		else 
		{
			CreateStateSelectCookie("state_select", "true", 1 );
			document.aspnetForm.submit();
		}
	}
}

function StateSelectPopUPSelect(obj) {
	var popUp = document.getElementById("stateSelectPopUp");
	if (popUp) {
		var selectedString = popUp.options[popUp.selectedIndex].value;
		
		if (selectedString == "--") {
			ShowStateSelectElementByIdAndName("stateSelectError");
		} else {
			if (document.shipping.state) {
				var states = document.shipping.state.length;
				for (i = 0; i < states; i++) {
					if (document.shipping.state.options[i].value == selectedString) {
						document.shipping.state.options[i].selected = true;
						CreateStateSelectCookie("state_select", "true", 1 );
						document.shipping.submit();
						stateSelectPopped = false;  
						break;
					}
				}
			}
		}
	}
}
        
function CreateStateSelectCookie(name, value, days) {
	var expires = "";
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		expires = "; expires=" + date.toGMTString();
	}
	
	document.cookie = name + "=" + value + expires + "; path=/; domain=wine.com;";
}
