

var global_hash = new Object();

var go_icon = new Object();
with (go_icon["on"] = new Image())
	src = "/images/go_on.gif";
with (go_icon["off"] = new Image())
	src = "/images/go.gif";
with (go_icon["nav_bg_on"] = new Image())
	src = "/images/nav_bg_on.gif";

function go_on(obj)
{
	obj.src = go_icon["on"].src;
}

function go_off(obj)
{
	obj.src = go_icon["off"].src;
}

var toggel_icon = new Object();
with (toggel_icon["panel_min"] = new Image())
	src = "/images/panel_min.gif";
with (toggel_icon["panel_max"] = new Image())
	src = "/images/panel_max.gif";
with (toggel_icon["panel_min_on"] = new Image())
	src = "/images/panel_min_on.gif";
with (toggel_icon["panel_max_on"] = new Image())
	src = "/images/panel_max_on.gif";

with (toggel_icon["mini_arrow_min"] = new Image())
	src = "/images/mini_arrow_min.gif";
with (toggel_icon["mini_arrow_max"] = new Image())
	src = "/images/mini_arrow_max.gif";
with (toggel_icon["mini_arrow_min_on"] = new Image())
	src = "/images/mini_arrow_min_on.gif";
with (toggel_icon["mini_arrow_max_on"] = new Image())
	src = "/images/mini_arrow_max_on.gif";


with (toggel_icon["mini_plus_min"] = new Image())
	src = "/images/mini_plus_min.gif";
with (toggel_icon["mini_plus_max"] = new Image())
	src = "/images/mini_plus_max.gif";
with (toggel_icon["mini_plus_min_on"] = new Image())
	src = "/images/mini_plus_min_on.gif";
with (toggel_icon["mini_plus_max_on"] = new Image())
	src = "/images/mini_plus_max_on.gif";


with (toggel_icon["top"] = new Image())
	src = "/images/top.gif";
with (toggel_icon["top_on"] = new Image())
	src = "/images/top_on.gif";


with (toggel_icon["selected_label_bullet"] = new Image())
	src = "/images/selected_label_bullet.gif";

with (toggel_icon["sm_remove"] = new Image())
	src = "/images/sm_remove.gif";
with (toggel_icon["sm_remove_on"] = new Image())
	src = "/images/sm_remove_on.gif";

with (toggel_icon["sm_invite"] = new Image())
	src = "/images/sm_invite.gif";
with (toggel_icon["sm_invite_on"] = new Image())
	src = "/images/sm_invite_on.gif";
	
	
function panel_toggle_on(obj)
{
	obj.src = toggel_icon[obj.src.replace(/.*?\/|\.gif/g,"") + "_on"].src;
}

function panel_toggle_off(obj)
{
	obj.src = toggel_icon[obj.src.replace(/.*?\/|_on\.gif/g,"")].src;
}

function toggle_panel(obj)
{
	var node = obj;
	while (node.nodeName != "TABLE")
		node = node.parentNode;
		
	while (node.nodeName != "TR")
		node = node.parentNode;
	
	var a = node.getElementsByTagName("table");

	var op = false;

	for (i=0;i<a.length;i++)
	{
		node = a[i];
		if (node.className == "panel_head")
		{
			while (node.nodeName != "DIV" && node.className != "panel_content")
				node = node.nextSibling;

			if (node.style.display == "none")
			{
				node.style.display = "";
			} else
			{
				node.style.display = "none";
				op = true;
			}
			
			b = a[i].getElementsByTagName("UL");
			for (j=0;j<b.length;j++)
			{
				if (op)
					b[j].style.display = "none";
				else
					b[j].style.display = "";
			}
			
			c = a[i].getElementsByTagName("TD");
			for (j=0;j<c.length;j++)
			{
				if (c[j].className.indexOf("panel_title") != -1)
				{
					c[j].className = op ? "panel_title panel_title_off" : "panel_title";
				}
			}
			
		}
	}
	
	obj.src = op ? toggel_icon["panel_max_on"].src : toggel_icon["panel_min_on"].src;
}
	
function nav_press(nav)
{
	var a = nav.parentNode.parentNode.getElementsByTagName("li");
	
	var nav2 = nav;
	while (nav2.nodeName != "DIV")
		nav2 = nav2.parentNode;
	
	
		
	while (nav2.className == undefined || nav2.className.indexOf("subnav") < 0)
		nav2 = nav2.nextSibling;
	
	


	var b = nav2.getElementsByTagName("ul");
	
	for (i=0;i<a.length;i++)
	{
		if (nav.firstChild.nodeValue == a[i].firstChild.firstChild.nodeValue)
		{
			a[i].className = "selected";
			b[i].style.display = "";
		} else
		{
			a[i].className = "";
			b[i].style.display = "none";
		}
	}
}

function panel_press(obj, title)
{
	global_hash[title].display = obj.firstChild.nodeValue.toLowerCase();
	
	var a = obj.parentNode.parentNode.getElementsByTagName("li");
	
	
	var node = obj;
	while (node.nodeName != "TABLE")
		node = node.parentNode;
	
	while (node.nodeName != "DIV" && node.className != "panel_container")
		node = node.nextSibling;
		
		
	var b = node.getElementsByTagName("div");
	node = null;
	for (i=0;i<b.length;i++)
	{
		if (b[i].className == "graph_control")
		{
			node = b[i];
			break;
		}
	}
	
	b = node.getElementsByTagName("table");
		
	for (i=0;i<a.length;i++)
	{
		if (obj.firstChild.nodeValue == a[i].firstChild.firstChild.nodeValue)
		{
			selected_new = b[i];

			a[i].className = "selected";
			b[i].style.display = "";
		} else
		{
			if (b[i].style.display != "none")
				selected_old = b[i];

			a[i].className = "";
			b[i].style.display = "none";
		}
	}
	

	// Keep controls in sync
	var old_props = selected_old.getElementsByTagName("select");
	for (cnt=0;cnt<b.length;cnt++)
	{
		if (b[cnt] == selected_old)
			continue;

		other_props = b[cnt].getElementsByTagName("select");
		
		for (i=0;i<old_props.length;++i)
		{
			old = old_props[i];
			
			for (j=0;j<other_props.length;++j)
			{
				otr = other_props[j];

				if (old.name == otr.name && old.selectedIndex+1 <= otr.length && otr.options[old.selectedIndex].value == old.options[old.selectedIndex].value)
					otr.selectedIndex = old.selectedIndex;
			}
		}
	}
	
	
	panel_update(node, title);
}


function panel_option_select(obj, title)
{
	panel_update(obj, title);
}

function panel_update(obj, title) // obj -- any node contained by panel_content
{
	var node = obj;
	while (!(node.nodeName == "DIV" && node.className == "panel_content"))
		node = node.parentNode;

	var a = node.getElementsByTagName("img");
	
	var tables = node.getElementsByTagName("table");
	for (i=0;i<tables.length;i++)
		if (tables[i].style.display != "none")
			table = tables[i];
	
	for (i=0;i<a.length;++i)
	{
		if (a[i].className == "panel_image" && table != undefined)
		{
			node = a[i];

			buf = "";
			b = table.getElementsByTagName("select");
			for (cnt=0;cnt<b.length;cnt++)
				buf += "&" + escape(b[cnt].name) + "=" + escape(b[cnt].options[b[cnt].selectedIndex].value);
			
			node.src = "/draw/" + global_hash[title].display + "?mc=" + global_hash[title].color + "&" + global_hash[title].data.replace("&amp;","&") + buf;
			break;
		}
	}
}

function days_in_month(y, m)
{
	return 32 - new Date(y, m, 32).getDate();
}

function range_changed(obj, period)
{
	var node = obj;
	while (!(node.nodeName == "DIV" && node.className == "page_control"))
		node = node.parentNode;

	var select_boxes = node.getElementsByTagName("select");
	
	// Make access to select boxes easier
	var items = new Object();
	for (i=0;i<select_boxes.length;++i)
		items[select_boxes[i].name] = {"handle":select_boxes[i], "value":select_boxes[i].options[select_boxes[i].selectedIndex].value};


	// No need to recalc # of days in month if the day was selected
	if (obj.name != "day")
	{
		old_day = items["day"].value;
		
		num_days = days_in_month(items["year"].value, items["month"].value-1);
		items["day"].handle.length = 0;
		for (i=0;i<num_days;++i)
			items["day"].handle[i] = new Option(i+1, i+1);
			
		if (items["day"].handle.options.length < items["day"].value)
			items["day"].handle.selectedIndex = items["day"].handle.options.length-1;
		else
			items["day"].handle.selectedIndex = items["day"].value-1;
		
		items["day"].value = items["day"].handle.options[items["day"].handle.selectedIndex].value;
	}
}


function traffic_go(obj,base,target)
{
	if (target == undefined)
		target = "traffic/";

	var node = obj;
	while (!(node.nodeName == "DIV" && node.className == "page_control"))
		node = node.parentNode;


	var select_boxes = node.getElementsByTagName("select");
	
	// Make access to select boxes easier
	var items = new Object();
	for (i=0;i<select_boxes.length;++i)
		items[select_boxes[i].name] = {"handle":select_boxes[i], "value":select_boxes[i].options[select_boxes[i].selectedIndex].value};

	var buffer = base + target;
	
	if (items["year"] != undefined)
	{
		buffer += items["year"]["value"] + "/";
		if (items["month"] != undefined)
		{
			buffer += items["month"]["value"] + "/";
			if (items["day"] != undefined)
				buffer += items["day"]["value"] + "/";
		}
	
	}

	window.location = buffer;
}

function panel_swap_chart(obj, name)
{
	var a = obj.parentNode.parentNode.getElementsByTagName("li");
	
	for (i=0;i<a.length;i++)
	{
		if (obj.firstChild.nodeValue == a[i].firstChild.firstChild.nodeValue)
			a[i].className = "selected";
		else
			a[i].className = "";
	}
	
	var node = obj;
	while (node.nodeName != "TABLE")
		node = node.parentNode;
		
	while (node.nodeName != "TD")
		node = node.parentNode;
	
	var b = node.getElementsByTagName("img");
	
	for (i=0;i<b.length;i++)
		if (b[i].className == "panel_image")
			b[i].src = b[i].src.replace(/\/([^\/]*)\?/g,"/" + name + "?");
}

function toggle_sibling(obj)
{
	var node = obj;
	while (node.nodeName != "DIV")
		node = node.parentNode;

	var node = node.nextSibling;
	while (node.nodeName != "DIV")
		node = node.nextSibling;
	
	if (node.style.display == "") // Min
	{
		node.style.display = "none";
		obj.src = "/images/mini_" + (obj.src.indexOf("arrow") != -1 ? "arrow" : "plus") + "_min_on.gif";
	} else // Max
	{
		node.style.display = "";
		obj.src = "/images/mini_" + (obj.src.indexOf("arrow") != -1 ? "arrow" : "plus") + "_max_on.gif";
	}
}



function option_select(nav)
{
	var a = nav.parentNode.parentNode.getElementsByTagName("li");
	
	var nav2 = nav;
	while (nav2.nodeName != "DIV")
		nav2 = nav2.parentNode;
	
	var b = new Array();
	
	do
	{
		nav2 = nav2.nextSibling;

		if (nav2.nodeName == "DIV")
			b.push(nav2);

	} while (nav2.nextSibling != null);
	
	for (i=0;i<a.length;i++)
	{
		if (nav.firstChild.nodeValue == a[i].firstChild.firstChild.nodeValue)
		{
			a[i].className = "selected";
			b[i].style.display = "";
		} else
		{
			a[i].className = "";
			b[i].style.display = "none";
		}
	}
}


function account_select(obj)
{
	if (obj.options[obj.selectedIndex].value == "")
	{
		window.location = "/accounts";
	} else
	{
		var str = window.location + "";
		
		var num = 0;
		for (var i=0;i<str.length;++i)
			if (str[i] == '/')
				++num;

		if (num == 3)
		{
			str = "/account/"  + obj.options[obj.selectedIndex].value + "/";
		} else
		{
			str = str.replace(/account\/[^\/]+/,"account/" + obj.options[obj.selectedIndex].value);
		}

		
		window.location = str;
	}
	
}

function form_focus(obj)
{
	while (obj.nodeName != "LABEL")
		obj = obj.previousSibling;

	obj.className = "focus";
}

function form_blur(obj)
{
	while (obj.nodeName != "LABEL")
		obj = obj.previousSibling;

	obj.className = "";
}

function gen_email(first, second)
{
	var ady = first + "@" + second;
	document.write("<a href=\"mailto:" + ady + "\">" + ady + "</a>");
}



