﻿function AddHandler(control, eventName, target)
{
	if (control==null)
		{ return; }
	if (typeof control.attachEvent!="undefined")
		{ control.attachEvent("on" + eventName, target); }
	else if (typeof control.addEventListener!="undefined")
		{ control.addEventListener(eventName, target, false); }
	else 
	{
		alert(control + " failed to pass event attachment.");
	}
}
function BindEvent(mTarget, sEventName, handler)
{
	if (mTarget.attachEvent)
		{ mTarget.attachEvent("on" + sEventName, handler); }
	else
	if (mTarget.addEventListener)
		{ mTarget.addEventListener(sEventName, handler, false); }
}
function BindEvents()
{
	var	Elements		= document.getElementsByTagName("INPUT");
	for (var i=0; i<Elements.length; i++)
	{
		if ((Elements[i].type=="radio") || (Elements[i].type=="checkbox"))
			{ BindEvent(Elements[i], "click", CalculateForm); }
	}
	CalculateForm();
}
function BindEventsForColorPreview()
{
	var	Elements		= document.getElementsByName("rdoColors");
	for (var i=0; i<Elements.length; i++)
	{
		if ((Elements[i].type=="radio") || (Elements[i].type=="checkbox"))
			{ BindEvent(Elements[i], "mouseover", DoColorPreviewOver);	BindEvent(Elements[i].nextSibling, "mouseover", DoColorPreviewOver);	}
		if ((Elements[i].type=="radio") || (Elements[i].type=="checkbox"))
			{ BindEvent(Elements[i], "mouseout", DoColorPreviewOff);	BindEvent(Elements[i].nextSibling, "mouseout", DoColorPreviewOff);		}
	}
	BindEvent(document.getElementById("imgColorPreview"), "error", DoDefaultNoImage);
}
function DoDefaultNoImage()
{
	document.getElementById("imgColorPreview").src = '../images/Colors/NoImagePreview.png';
}
function DoColorPreviewOver(e)
{
	if (typeof window.event!="undefined")
		{ e = window.event; }
	var		Target		= null;
	Target				= e.srcElement ? e.srcElement : e.target; 
	if (Target.tagName=="LABEL")
	{ 
		Target = Target.previousSibling; 
	}
	document.getElementById("imgColorPreview").src = '../images/colors/' + Target.value + '.jpg';
}
function DoColorPreviewOff(e)
{
	var	Elements		= document.getElementsByName("rdoColors");
	for (var i=0; i<Elements.length; i++)
	{
		if (Elements[i].checked==true)
		{
			document.getElementById("imgColorPreview").src = '../images/colors/' + Elements[i].value + '.jpg';
			return;
		}
	}
	document.getElementById("imgColorPreview").src = '../images/Colors/NoImagePreview.png';
}

function CalculateForm()
{
	var Total			= 0;
	var	Elements		= document.getElementsByTagName("INPUT");
	for (var i=0; i<Elements.length; i++)
	{
		if (((Elements[i].type=="radio") || (Elements[i].type=="checkbox")) && (Elements[i].checked==true))
		{
			var SubElements		= Elements[i].parentNode.parentNode.getElementsByTagName("div");
			var Value			= parseFloat(SubElements[0].innerHTML.replace(/\$/, '').replace(/\s/, ''));
			if (isNaN(Value)==true)
				{ Value = 0; }
			Total				+= Value;
		}
	}
	var lblTotal = document.getElementById("lblTotal");
	var hdfTotal = document.getElementById("hdfTotal");
	hdfTotal.value			= "$ " + Total;
	lblTotal.innerHTML		= "$ " + Total;
}
