function joinMailingListOnSubmit()
	{
	var f = $("#joinMailingList");
	f[0].submitted_once = true;
	var ok = true;
	
	var e = $("[name='email']",f);
	
	if (!inputHasValue(e)) ok = alertField(e,{id:"email",message:"Please enter your <strong>email</strong> address."});
	else if (!strContains(e.val(),["@","."])) ok = alertField(e,{id:"email",message:"Please enter a valid <strong>email</strong> address."});
	else alertField(e,{id:"email"},true);
	
	return ok;
	}

function cacheImage(url)
	{
	if (typeof("global_img_cache") != "object") global_img_cache = new Array();
	global_img_cache.push(new Image());
	global_img_cache[global_img_cache.length-1].src = url;
	}

function getWidthHeightOfDocument()
	{
	return {width:$(document).width(),height:$(document).height()};
	}

function getWidthHeightOfWindow()
	{
	return {width:$(window).width(),height:$(window).height()};
	}

function getCenterOfScreen()
	{
	var scrollHeight = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
	var w_wh = getWidthHeightOfWindow();
	var x = w_wh.width/2;
	var y = w_wh.height/2+scrollHeight;
	return {x:x,y:y};
	}

function alertField(jobj,err,pass)
	{
	var err_elm = jobj.parents("form:first").find(".error."+err.id);
	if (pass)
		{
		jobj.removeClass("highlight");
		jobj.addClass("successful");
		if (err.id) err_elm.html("");
		if (err_elm.hasClass("dblock")) err_elm.fadeOut(300);
		return true;
		}
	else
		{
		jobj.removeClass("successful");
		jobj.addClass("highlight");
		err_elm.html(err.message);
		if (err_elm.hasClass("dblock")) err_elm.fadeIn(300);
		return false;
		}
	}

function inputHasValue(jobj)
	{
	if (!jobj.val() || (jobj.attr("type") != "hidden" && jobj.val() == jobj[0].defaultValue)) return false;
	return true;
	}

function strHasLengthOf(str,l_arr)
	{
	if (typeof(l_arr) != "object") l_arr = [l_arr];
	for (var i=0;i<l_arr.length;i++)
		{
		if (str.length == l_arr[i]) return true;
		}
	return false;
	}

function strContains(val,str_arr)
	{
	val = typeof(val) == "object" ? val.value : (val || "");
	for (var i=0;i<str_arr.length;i++)
		{
		if (val.indexOf(str_arr[i]) == -1) return false;
		}
	return true;
	}

function inputOnFocus(inp)
	{
	var i = $(inp);
	i.addClass("current");
	if (i[0] && i.val() == i[0].defaultValue)
		{
		i.val("");
		i.removeClass("example");
		}
	}

function inputOnBlur(inp)
	{
	var i = $(inp);
	i.removeClass("current");
	if (!i.val() && i[0] && i[0].defaultValue)
		{
		i.val(i[0].defaultValue);
		i.addClass("example");
		}
	}

function applyFormEventHandlers()
	{
	$("#joinMailingList [type='text']").bind("focus",function()
		{
		inputOnFocus(this);
		});
	$("#joinMailingList [type='text']").bind("blur",function()
		{
		inputOnBlur(this);
		});
	}

function setUpTopNav()
	{
	var all_anchors = $("#top_nav a");
	for (var i=0;i<all_anchors.length;i++)
		{
		var a = $(all_anchors[i]);
		if (a.attr("href") == "#") a.bind("click",function(){return false;});
		}
		
	var top_li = $("#main_links").children("li");
	top_li.hover(function()
		{
		var t = $(this);
		var a = $("a:first",t);
		var sub_ul = t.children("ul:first");
		$("a:first",t).addClass("hover");
		sub_ul.fadeIn(200);
		},
	function()
		{
		var t = $(this);
		var a = $("a:first",t);
		var sub_ul = t.children("ul:first");
		a.removeClass("hover");
		sub_ul.fadeOut(200);
		});
	
	var sub_li = $("#main_links li ul").children("li");
	sub_li.hover(function()
		{
		var t = $(this);
		var a = $("a:first",t);
		a.addClass("hover");		
		},
	function()
		{
		var t = $(this);
		var a = $("a:first",t);
		a.removeClass("hover");		
		});
	}

function handlePageLocationDescription(desc_override)
	{
	if (desc_override) $("#page_location_description").html(desc_override);
	if ($("#nav_page_loc").length) $("#nav_page_loc").remove();
	$("#top_nav").prepend('<div id="nav_page_loc"></div>');
	var nav_page_loc = $("#nav_page_loc");
	var hdesc = $("#page_location_description").text();
	var pieces = hdesc.split("/");
	for (var i=0;i<pieces.length;i++)
		{
		while (pieces[i].charAt(0) == "" && pieces[i].length) pieces[i] = pieces[i].substr(1);
		while (pieces[i].charAt(pieces[i].length-1) == "" && pieces[i].length) pieces[i] = pieces[i].substr(0,pieces[i].length-2);
		}
	var html2add = "<ul>";
	for (var i=0;i<pieces.length;i++) html2add += "<li>"+pieces[i]+"</li>";
	html2add += "</ul>";
	nav_page_loc.html(html2add);
	$("li:last",nav_page_loc).addClass("last");
	nav_page_loc.show(200);
	}

function getURLVars(from_str)
	{
	if (from_str) var url = from_str;
	else var url = ((typeof(window.location) == "string") ? window.location : window.location.href) || "";
	var var_string = url.split("?")[1] || "";
	var var_pairs = var_string.split("&");
	var get_object = new Object();
	for (var i=0;i<var_pairs.length;i++)
		{
		var pair = var_pairs[i].split("=");
		if (pair.length == 2) get_object[pair[0]] = pair[1];
		}
	return get_object;
	}
$_GET = getURLVars();

function ie6Fixes()
	{
	if ($.browser.msie && $.browser.version*1 <= 6)
		{
		var th_note1 = $("#th_note1");
		th_note1.addClass("th_note1-txt");
		th_note1.removeClass("th_note1-img");
		var ta_joinourlist = $("#joinMailingList .ta_joinourlist-img");
		ta_joinourlist.addClass("ta_joinourlist-txt");
		ta_joinourlist.removeClass("ta_joinourlist-img");
		return true;
		}
	return false;
	}

$(function()
	{
	ie6Fixes();
	applyFormEventHandlers();
	setUpTopNav();
	handlePageLocationDescription();
	});
