var prodskuFocus = new Object();
var dropdownWidth = 165; // needs to match width of dropdown on page!

function prodskuRegisterEventHandlers()
{
	var prod = document.getElementById("prodOpt");
	var sku = document.getElementById("skuOpt");

	if(prod && window.attachEvent) {
		prod.attachEvent("onmouseover",
			function() {prodskuSetActualWidth(prod);});
		prod.attachEvent("onmouseout",
			function() {prodskuMouseOut(prod);});
		prod.attachEvent("onfocus",
			function() {prodskuFocus(prod);});
		prod.attachEvent("onblur",
			function() {prodskuBlur(prod);});
	}

	if(sku && window.attachEvent) {
		sku.attachEvent("onmouseover",
			function() {prodskuSetActualWidth(sku);});
		sku.attachEvent("onmouseout",
			function() {prodskuMouseOut(sku);});
		sku.attachEvent("onfocus",
			function() {prodskuSetFocus(sku);});
		sku.attachEvent("onblur",
			function() {prodskuSetBlur(sku);});
	}
}

function prodskuGetWidth(element)
{
	var width = 0;

	for(var x = 0; x < element.options.length; x++) {
		if(width < element.options[x].text.length) {
			width = element.options[x].text.length;
		}
	}

	return ((width * 6) + 4); // approx width in px
}

function prodskuSetActualWidth(element)
{
	var width = prodskuGetWidth(element);

	if(dropdownWidth && (width < dropdownWidth)) {
		element.style.width = dropdownWidth + "px";
	} else {
		element.style.width = "auto";
	}
}

function prodskuSetDefaultWidth(element)
{
	element.style.width = dropdownWidth + "px";
}

function prodskuSetFocus(element)
{
	prodskuFocus[element] = true;
}

function prodskuSetBlur(element)
{
	prodskuFocus[element] = false;
	prodskuSetDefaultWidth(element);
}

function prodskuMouseOut(element)
{
	if(prodskuFocus[element] != true) {
		prodskuSetBlur(element);
	}
}

function prodskuChange(elementId)
{
	var sel = document.getElementById(elementId);
	var idx = sel.selectedIndex;

	window.location = sel[idx].value;
}

// register IE specific event handlers
if(window.attachEvent) {
	window.attachEvent("onload", prodskuRegisterEventHandlers);
}
