var onload_events = new Array();

function set_onload(f)
{
	var i = onload_events.length;
	onload_events[i] = f;
}

function do_onload()
{
	if(onload_events.length==0) return;

	for(var i=0; i<onload_events.length; i++)
	{
		var function_name = onload_events[i];
		var params = "";

		if(function_name.indexOf(",") > -1)
		{
			function_name = onload_events[i].split(",")[0];
			params = "'" + onload_events[i].split(",")[1] + "'";
		}

		eval(function_name + "(" + params + ")");
	}
}

onload=do_onload;

//////////// Form Functions

function trim(s)
{
	return s.replace(/^\s+|\s+$/g, '');
}

function valid_email(ea)
{
	var email_reg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var regex = new RegExp(email_reg);
	return regex.test(ea);
  }

function validate(f,el)
{
	var address = trim(document.getElementById(el).value);
	var valid = valid_email(address);

	if(!valid)
	{
		alert("\"" + address + "\" is not a valid email address. A valid email address is required to submit this form.");
		f.focus();
		f[el].select();
		return false;
	}
	else return true;
}

function form_focus()
{
	var f = document.forms[0];
	
	if(f == null)
		return;

	for(var i=0; i<f.elements.length; i++)
	{
		if(f.elements[i].type.indexOf("text") > -1 && f.elements[i].disabled != true)
		{
			f.elements[i].focus();
			break;
		}
	}
}

set_onload("form_focus");

//////////////// Page Tools

function print_page()
{
	window.print();
	return;
}

function email_link()
{
	var strURL = window.location.href;
	var strTitle = document.getElementsByTagName("h1");
	var strPageName = strTitle[0].innerText;
	var strSubject = "A Link To The Keystone Technologies Website";
	var strBody = "A link to the '" + strPageName + "' page at the Keystone Technologies website has been sent to you. %0D%0DYou can visit this page at the Keystone Technologies website: " + strURL + "%0D%0DThank you.%0D%0D------------------------%0DThis email was auto generated from the Keystone Technologies website. Please do not reply to this email.";
	window.open("mailto:?subject=" + strSubject + "&body=" + strBody);
	return;
}

//////////////// Generic Image Swapping

function swap_image()
{
	var img = document.getElementsByTagName("img");

	for(var i=0; i<img.length; i++)
	{
		if(img[i].className == "swap-image")
		{
			img[i].onmouseover = function()
			{
				var the_image = this;
				var the_file = the_image.getAttribute("src");
				var the_new_file = the_file.substring(0,the_file.lastIndexOf(".")) + "-on" + the_file.substring(the_file.lastIndexOf("."), the_file.length);
				the_image.setAttribute("src",the_new_file);
			}
			img[i].onmouseout = function()
			{
				var the_image = this;
				var the_file = the_image.getAttribute("src");
				var the_new_file = the_file.replace("-on.",".");
				the_image.setAttribute("src",the_new_file);
			}
		}
	}
}

set_onload("swap_image");

///////////// Get Coordinates

function get_top(o)
{
	var o_top = o.offsetTop;
	var o_parent = o.offsetParent;
	var parents = 10;

	while(parents>0 && o_parent)
	{
		o_top += (isNaN(o_parent.offsetTop)) ? 0 : o_parent.offsetTop;
		o_parent = o_parent.offsetParent;
		parents--;
	}
	return o_top;
}

function get_left(o)
{
	var o_left = o.offsetLeft;
	var o_parent = o.offsetParent;
	var parents = 10;

	while(parents>0 && o_parent)
	{
		o_left += (isNaN(o_parent.offsetLeft)) ? 0 : o_parent.offsetLeft;
		o_parent = o_parent.offsetParent;
		parents--;
	}
	return o_left;
}

//////////////// Make A Shadow

function page_shadow(o)
{
	if(document.getElementById(o))
	{
		var html_body = document.getElementsByTagName("body")[0];
		var shadow = document.createElement("div");
		var obj = document.getElementById(o);
	
		var shadow_offset = 2;
	
		shadow.style.position = "absolute";
		shadow.style.display = "block";
		shadow.style.top = get_top(obj) + shadow_offset + "px";
		shadow.style.left = get_left(obj) + shadow_offset + "px";
		shadow.style.width = obj.offsetWidth + "px";
		shadow.style.height = obj.offsetHeight + "px";
		shadow.style.zIndex = "10";
	
		if((navigator.userAgent.toLowerCase().indexOf("msie") > -1) && (navigator.userAgent.toLowerCase().indexOf("opera") == -1))
		{
			shadow.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/layout/shadow.png',sizingMethod='scale')";
		}
		else
		{
			shadow.style.backgroundImage = "url(/images/layout/shadow.png)"
		}
	
		html_body.appendChild(shadow);
	}
}

set_onload("page_shadow,left-menu");

//////////////// Table Row Shading

function zebra_table()
{
	var t = document.getElementsByTagName("table");

	for(var i=0; i<t.length; i++)
	{
		if(t[i].className && t[i].className.indexOf("listing-table") > -1 || t[i].className && t[i].className.indexOf("option-table") > -1)
		{
			var r = t[i].rows;

			for(var j=0; j<r.length; j++)
			{
				if(r[j].className.indexOf("shade") > -1) r[j].className = r[j].className.replace("shade","");
				if(j%2 == 0) r[j].className+= " shade";
			}
		}
	}
}

set_onload("zebra_table");

//////////////// Table Row Highlighting

function highlight_row()
{
	var t = document.getElementsByTagName("table");

	for(var i=0; i<t.length; i++)
	{
		if(t[i].className && t[i].className.indexOf("listing-table") > -1)
		{
			var table = t[i];

			for(var j=0; j<table.rows.length; j++)
			{
				table.rows[j].onmouseover = function()
				{
					if(this.className != "lite")
					{
						this.className += " liter";
					}
				}
				table.rows[j].onmouseout = function()
				{
					this.className = this.className.replace(" liter","");
				}
			}
		}
	}
}

set_onload("highlight_row");