var timerHandle = 0;
var timerHandle2 = 0;

function showSubMenu()
{
	clearTimeout(timerHandle);
	document.getElementById('subNav').style.display = 'block';
	hideCatMenuNow();
	return false;
}

function hideSubMenuNow()
{
	clearTimeout(timerHandle);
	document.getElementById('subNav').style.display = 'none';
	return false;
}

function hideSubMenuSoon()
{
	clearTimeout(timerHandle);
	timerHandle = setTimeout(hideSubMenuNow, 500);
}

function showCatMenu()
{
	clearTimeout(timerHandle2);
	document.getElementById('catNav').style.display = 'block';
	hideSubMenuNow();
	return false;
}

function hideCatMenuNow()
{
	clearTimeout(timerHandle2);
	document.getElementById('catNav').style.display = 'none';
	return false;
}

function hideCatMenuSoon()
{
	clearTimeout(timerHandle2);
	timerHandle2 = setTimeout(hideCatMenuNow, 500);
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();

addEvent(window,'unload',EventCache.flush);

function calculateSquareFeet()
{
	var widthElement = document.getElementById('id[txt_10]');
	var heightElement = document.getElementById('id[txt_11]');
	var sqFtElement = document.getElementById('id[txt_12]');
	var widthFeet = Math.floor(widthElement.value / 12);
	var heightFeet = Math.floor(heightElement.value / 12);
	if(widthElement.value % 12 != 0)
	{
		widthFeet++;
	}
	if(heightElement.value % 12 != 0)
	{
		heightFeet++;
	}
	if(heightElement.value > 96 && widthElement.value > 96)
	{
		if(heightElement.value > widthElement.value)
		{
			widthElement.value = 96;
			widthFeet = 8;
		} else {
			heightElement.value = 96;
			heightFeet = 8;
		}
		alert('We are restricted to printing a maximum of 8 feet wide or tall. Please review the measurements you have entered.');
	}
	sqFtElement.value = widthFeet * heightFeet;
}

function initSquareFeet()
{
	var widthElement = document.getElementById('id[txt_10]');
	var heightElement = document.getElementById('id[txt_11]');
	if(!widthElement.value) widthElement.value = '12';
	if(!heightElement.value) heightElement.value = '12';
	calculatePrice();
	addEvent(widthElement,'change',calculatePrice);
	addEvent(heightElement,'change',calculatePrice);
	if(document.getElementById('price_row')) document.getElementById('price_row').style.display = 'none';
}

function calculatePrice()
{
	var sqFtElement = document.getElementById('id[txt_12]');
	var priceElement = document.getElementById('actual_price');
	var displayElement = document.getElementById('display_price');
	calculateSquareFeet();
	var displayPrice = priceElement.value * sqFtElement.value;
	displayElement.innerHTML = currencyFormat(displayPrice);
}

function currencyFormat($number)
{
	return '$' + $number.toDecimals(2);
}

Number.prototype.toDecimals=function(n)
{
	n=(isNaN(n)) ? 2 : n;
	var nT=Math.pow(10,n);
	function pad(s)
	{
		s=s||'.';
		return (s.length>n) ? s : pad(s+'0');
	}
	return (isNaN(this)) ? this : (new String(Math.round(this*nT)/nT)).replace(/(\.\d*)?$/,pad);
}