var loaded = 0;

function site_init()
{	
	do_menutree_init();	loaded = 1;
}

function do_menutree_init()
{	
	if ( window.menutree_init ) { menutree_init(); } else { setTimeout("do_menutree_init()",1000); }
}

/////////////////////////////
////// COOKIE FUNCTIONS /////
/////////////////////////////

function set_cookie(name,value,duration,path)
{
	var cookiestring = name + "=" + escape(value);
	if (!duration) { duration = 1;} cookiestring += "; expires=" + get_expiry_date(duration);
	if (!path)     { path = "/"; }  cookiestring += "; path=" + path; 

	//alert("setting cookie: " + cookiestring);
	document.cookie = cookiestring;
	
	return get_cookie(name);
}

function get_expiry_date(days)
{
	var today = new Date();
	today.setTime(Date.parse(today)+(days*24*60*60*1000));
	return today.toGMTString();
}

function is_cookie(name) { return (document.cookie.search(eval("/(^|;)\\s*" + name + "=[^;]+/") >= 0)); }

function get_cookie(name) 
{
	var value = document.cookie.match(eval("/(^|;)\\s*" + name + "=([^;]+)/"));
	return (value && value[2])? unescape(value[2]) : "";
}

function delete_cookie(cookie_name,path) { return set_cookie(cookie_name,"deleted",-1,path); }

function html_unescape(s) 
{ 
	// dumbass IE 5.0 crap
	var version = 0; var msie = navigator.appVersion.indexOf("MSIE"); 
	if (msie > 0) { var temp=navigator.appVersion.split("MSIE"); version=parseFloat(temp[1]);}
	if (msie > 0 && version < 5.5) { return stupid_unescape(s); }

	// real code
	return s.replace(/&#(\d{1,3});/g, function($0,$1){return String.fromCharCode(parseInt($1,10)); });
}

function stupid_unescape(s)
{
	s = s.replace(/&#10;/g,"\n");
	s = s.replace(/&#13;/g,"\n");
	s = s.replace(/&#34;/g,"\"");
	s = s.replace(/&#39;/g,"\'");
	return s;
}

/////////////////////////////
////// IE5 PROTOTYPES ///////
/////////////////////////////

if (!Array.prototype.shift) 
{
	Array.prototype.shift = function()
	{
		var firstElement = this[0];
		this.reverse();
		this.length = Math.max(this.length-1,0);
		this.reverse();
		return firstElement;
	}
}

if (!Array.prototype.unshift) 
{	
	Array.prototype.unshift = function()
	{
		this.reverse();
		for (var i = arguments.length - 1; i >= 0; i--) { this[this.length] = arguments[i]; }
		this.reverse();
		return this.length;
	}
}

if (!Array.prototype.push)
{
	Array.prototype.push = function()
	{
		for (var i = 0; i < arguments.length; i++) { this[this.length] = arguments[i]; }
		return this.length;
	}
}

if (!Array.prototype.pop)
{
	Array.prototype.pop = function()
	{
		var lastElement = this[this.length - 1];
		this.length--;
		return lastElement;
	}
}

/////////////////////////////

var sfmenuids=["sfmenu"]

var sfmenuoffsetY=[]

function getmenuoffsetY(){
    for (var i=0; i<sfmenuids.length; i++){
        var currentmenu=document.getElementById(sfmenuids[i])
     sfmenuoffsetY.push(isNaN(parseInt(currentmenu.style.top))? 0 : parseInt(currentmenu.style.top))
    }
        initsfmenu()
}

function initsfmenu(){
    var iebody=(document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
    var topcorner=(window.pageYOffset)? window.pageYOffset : iebody.scrollTop
    for (var i=0; i<sfmenuids.length; i++)
        document.getElementById(sfmenuids[i]).style.top=topcorner+sfmenuoffsetY[i]+"px"
    setTimeout("initsfmenu()", 100)
}

if (window.addEventListener)
window.addEventListener("load", getmenuoffsetY, false)
else if (window.attachEvent)
window.attachEvent("onload", getmenuoffsetY)

var toggle_plus = new Image(); toggle_plus.src="http://www.pinballmedic.net/images/go_button.gif";
var toggle_minus = new Image(); toggle_minus.src="http://www.pinballmedic.net/images/down_button.gif";

var display = (/MSIE/i.test(navigator.userAgent))? "table-header-group" : "table";

function menutitle_toggle(node)
{
	var currentElement = document.getElementById(node+"_branch");
	var currentToggle = document.getElementById(node+"_toggle");
	
	if (currentElement.style.display && currentElement.style.display == display) { currentElement.style.display = "none"; currentToggle.innerHTML = "<img src='data:image/gif;base64,R0lGODlhCgAKAOcAACQlni0umzo7jzM0nDM1qjk5vi8xyTo710NDtlNUrWFdsmZnj29vkERDx0VEyUpJyUJC11dVy1tYx11bxF5ayFVW2ldY0WllwGxszGJh0GBi2GRl2Gdo3Wxv2m5w3Hx6ynZ30HFz2Hd40nl613t803N14aaZdrioZ8e2S868R8GwWsO3euvVKubSM//uDfriG9TCRo2FlZSLk4eIrI6OvZ2drZaWsaOeqaCgraSlr7OzuL+/vYSEzYaI1qmpwqWn3qqr262t3q+w3bOz0by928LCwsTE3NfX09jY1c/P4NLS4tfX4eTk3+Xl6uvr6O3t8PX19PX2+fj49/7++/7+/gAAAHp2jHp2lHp2oAEABwAAAQAAAQAACHp2tHp2vHUAQmwAaS0AdG4AaUIAIFAATUMAIGQAb2MAZUIAAFAATSoAAEIALlAATSoAO0QALkIASSoAO1IALkUATGkAAGEAbWUAZ2IAL3AAbUIAAEL//2kAdXQAbGkALSAAblAASkcARUMAIGQAb2MAZUoAAEUAUAAARy4AKlAASjsARy4AKlAASkcARSoAO0oALkUAUCoAO0oALkkARgAARm0AaWcAYS8AZXAAamcAZf8AAEL//2kAdXQAbGkALSAAbkkARyAARm8AQ2UAZAAAY0kARwAARi4AKkkARwAARm0AaWcAYS8AZWkAZwAAZkZJR0dhOTc4Rv///////////3UAQmwAaS0AdG4AaVQAIEYASSAARm8AQ2UAZAAAY0kAVEYARioAAFQALkYASSoAO1QALkYASQAARm0AaWcAYS8AZWkAdGYAZkkAAP9NTUL//2kAdXQAbGkALSAAbk4AUCAAR28AQ2UAZAAAY04AUAAARy4AKk4AUAAAR20AaWcAYS8AZW4AcAAAZ05QiRoKDf///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAKAAoAAAhxAGHBopJECBAiUATCivJDBAgPHXoomTIliAYeK26UqEDiyZIRJT7AaCEjg4UhRkJwmIDCBYsYD2gY2VBBQooXJy4UmNEEAwQKKkxEODAgBywfCBwoaGAAwIIjsJzYSEAggAAGRaTAmsJkB44aOpBoDQgAOw==' border='0' alt=''>"; forget_menu(node); }
	else { currentElement.style.display = display; currentToggle.innerHTML = "<img src='data:image/gif;base64,R0lGODlhCgAKAOcAACQlni0umzo7jzM0nDM1qjk5vi8xyTo710NDtlNUrWFdsmZnj29vkERDx0VEyUpJyUJC11dVy1tYx11bxF5ayFVW2ldY0WllwGxszGJh0GBi2GRl2Gdo3Wxv2m5w3Hx6ynZ30HFz2Hd40nl613t803N14aaZdrioZ8e2S868R8GwWsO3euvVKubSM//uDfriG9TCRo2FlZSLk4eIrI6OvZ2drZaWsaOeqaCgraSlr7OzuL+/vYSEzYaI1qmpwqWn3qqr262t3q+w3bOz0by928LCwsTE3NfX09jY1c/P4NLS4tfX4eTk3+Xl6uvr6O3t8PX19PX2+fj49/7++/7+/gAAAIVx5IVx7IVx+AEABwAAAQAAAQAACIVyDIVyFHUAQmwAaS0AdG4AaUIAIFAATUMAIGQAb2MAZUIAAFAATSoAAEIALlAATSoAO0QALkIASSoAO1IALkUATGkAAGEAbWUAZ2IAL3AAbUIAAEL//2kAdXQAbGkALSAAblAASkcARUMAIGQAb2MAZUoAAEUAUAAARy4AKlAASjsARy4AKlAASkcARSoAO0oALkUAUCoAO0oALkkARgAARm0AaWcAYS8AZXAAamcAZf8AAEL//2kAdXQAbGkALSAAbkkARyAARm8AQ2UAZAAAY0kARwAARi4AKkkARwAARm0AaWcAYS8AZWkAZwAAZkZJR0dhOTc4Rv///////////3UAQmwAaS0AdG4AaVQAIEYASSAARm8AQ2UAZAAAY0kAVEYARioAAFQALkYASSoAO1QALkYASQAARm0AaWcAYS8AZWkAdGYAZkkAAP9NTUL//2kAdXQAbGkALSAAbk4AUCAAR28AQ2UAZAAAY04AUAAARy4AKk4AUAAAR20AaWcAYS8AZW4AcAAAZ05QiRoKDf///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAKAAoAAAhvAGEJbGLEyJIpAqc48YFhQ4gRQaLAYmIDAYQKHEpo+EFlRwIHFCRM+MBDRBIcBBSoSIECxgoQQmoEaGDihYsWNzwA0SHAQIQTLGSU6EAECQMABy7EyFChBxQpRRYMKPDAAgklAqUcyTGDxpAnCAMCADs=' border='0' alt=''v"; if (!recall_menu(node)) { remember_menu(node); } }
	
	return true;
}

function menutree_toggle(node)
{
	var currentElement = document.getElementById(node+"_branch");
	var currentToggle = document.getElementById(node+"_toggle");
	
	if (currentElement.style.display && currentElement.style.display == display) { currentElement.style.display = "none"; currentToggle.innerHTML = "<img src='http://www.pinballmedic.net/images/go_button.gif' border='0' alt=''>"; forget_menu(node); }
	else { currentElement.style.display = display; currentToggle.innerHTML = "<img src='http://www.pinballmedic.net/images/down_button.gif' border='0' alt=''>"; if (!recall_menu(node)) { remember_menu(node); } }
	
	return true;
}

function menu_toggle(node)
{
	var currentElement = document.getElementById(node+"_branch");
	var currentToggle = document.getElementById(node+"_toggle");
	
	if (currentElement.style.display && currentElement.style.display == display) { currentElement.style.display = "none"; forget_menu(node); }
	else { currentElement.style.display = display; if (!re_menu(node)) { remember_menu(node); } }
	
	return true;
}

function menutree_init()
{
	var items = document.getElementsByTagName("div");

	for (var i = 0; i < items.length; i++)
	{
		if (/^(.*?)_branch$/i.test(items[i].id)) 
		{ 
			var node = RegExp.$1;
			var currentElement = document.getElementById(node+"_branch");
			var currentToggle = document.getElementById(node+"_toggle");
			
			if ( recall_menu( node ) ) 
			{ 
				currentElement.style.display = display; 
				currentToggle.innerHTML = "<img src='http://www.pinballmedic.net/images/down_button.gif' border='0' alt=''>";
			} 
			else 
			{ 
				currentElement.style.display = "none"; 
				currentToggle.innerHTML = "<img src='http://www.pinballmedic.net/images/go_button.gif' border='0' alt=''>";
			}
		}
	}
	
	// add code here to expand menus for current page if not already expanded
}

function remember_menu(node)
{
	var menutree = get_cookie("menutree") || "";
	menutree += node + "; ";
	set_cookie("menutree",menutree);
}

function forget_menu(node)
{
	var menutree = get_cookie("menutree") || "";
	var re = new RegExp(node+"; ","gi");
	menutree = menutree.replace(re,"");
	set_cookie("menutree",menutree);
}

function recall_menu(node)
{
	var menutree = get_cookie("menutree") || "";
	return menutree.match(node+"; ");
}
