/* http://ypslideoutmenus.sourceforge.net/ */
ypSlideOutMenu.Registry=[];ypSlideOutMenu.aniLen=250;ypSlideOutMenu.hideDelay=250;
ypSlideOutMenu.minCPUResolution=10;
function ypSlideOutMenu(id,_2,_3,_4,_5,_6){
	this.ie=document.all?1:0;
	this.ns4=document.layers?1:0;
	this.dom=document.getElementById?1:0;
	this.css="";
	if(this.ie||this.ns4||this.dom){
		this.id=id;
		this.dir=_2;
		this.orientation=_2=="left"||_2=="right"?"h":"v";
		this.dirType=_2=="right"||_2=="down"?"-":"+";
		this.dim=this.orientation=="h"?_5:_6;
		this.hideTimer=false;
		this.aniTimer=false;
		this.open=false;
		this.over=false;
		this.startTime=0;
		this.gRef="ypSlideOutMenu_"+id;eval(this.gRef+"=this");
		ypSlideOutMenu.Registry[id]=this;
		var d=document;var _8="";
		_8+="#"+this.id+" div{visibility:hidden;";
		_8+="left:"+_3+"px;";
		_8+="top:"+_4+"px;";
		_8+="width:"+_5+"px;";
		_8+="height:"+_6+"px;";
		_8+="overflow:hidden;z-index:10000;}";
		_8+="#"+this.id+" div,#"+this.id+" ul{position:absolute;";
		var _69=_5 - 2;
		var _70=_6 - 1;
		_8+="clip:rect(0 "+_5+" "+_6+" 0);";
		_8+="}";
		_8+="#"+this.id+" ul{width:"+_69+"px;";
		_8+="height:"+_70+"px;}";
		this.css=_8;this.load();}}ypSlideOutMenu.writeCSS=function(){document.writeln("<style type=\"text/css\">");for(var id in ypSlideOutMenu.Registry){document.writeln(ypSlideOutMenu.Registry[id].css);}document.writeln("</style>");};ypSlideOutMenu.prototype.load=function(){var d=document;
		var _10=this.id+"Container";
		var _11=this.id+"Content";

		//var _12=this.dom?d.getElementById(_10):this.ie?d.all[_10]:d.layers[_10];
		if(document.getElementById(this.id)) var _9114 = document.getElementById(this.id);
		if(_9114) var _12=_9114.getElementsByTagName('div').item(0);
		if(_12){
			//var _13=this.ns4?_12.layers[_11]:this.ie?d.all[_11]:d.getElementById(_11);
			var _13=_9114.getElementsByTagName('ul').item(0);
		}
		var _14;if(!_12||!_13){window.setTimeout(this.gRef+".load()",100);}else{this.container=_12;this.menu=_13;this.style=this.ns4?this.menu:this.menu.style;this.homePos=eval("0"+this.dirType+this.dim);this.outPos=0;this.accelConst=(this.outPos-this.homePos)/ypSlideOutMenu.aniLen/ypSlideOutMenu.aniLen;if(this.ns4){this.menu.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT);}this.menu.onmouseover=new Function("ypSlideOutMenu.showMenu('"+this.id+"')");this.menu.onmouseout=new Function("ypSlideOutMenu.hideMenu('"+this.id+"')");this.endSlide();}};ypSlideOutMenu.showMenu=function(id){var reg=ypSlideOutMenu.Registry;var obj=ypSlideOutMenu.Registry[id];if(obj.container){obj.over=true;for(menu in reg){if(id!=menu){ypSlideOutMenu.hide(menu);}}if(obj.hideTimer){reg[id].hideTimer=window.clearTimeout(reg[id].hideTimer);}if(!obj.open&&!obj.aniTimer){reg[id].startSlide(true);}}};ypSlideOutMenu.hideMenu=function(id){var obj=ypSlideOutMenu.Registry[id];if(obj.container){if(obj.hideTimer){window.clearTimeout(obj.hideTimer);}obj.hideTimer=window.setTimeout("ypSlideOutMenu.hide('"+id+"')",ypSlideOutMenu.hideDelay);}};ypSlideOutMenu.hideAll=function(){var reg=ypSlideOutMenu.Registry;for(menu in reg){ypSlideOutMenu.hide(menu);if(menu.hideTimer){window.clearTimeout(menu.hideTimer);}}};ypSlideOutMenu.hide=function(id){var obj=ypSlideOutMenu.Registry[id];obj.over=false;if(obj.hideTimer){window.clearTimeout(obj.hideTimer);}obj.hideTimer=0;if(obj.open&&!obj.aniTimer){obj.startSlide(false);}};ypSlideOutMenu.prototype.startSlide=function(_21){this[_21?"onactivate":"ondeactivate"]();this.open=_21;if(_21){this.setVisibility(true);}this.startTime=(new Date()).getTime();this.aniTimer=window.setInterval(this.gRef+".slide()",ypSlideOutMenu.minCPUResolution);};ypSlideOutMenu.prototype.slide=function(){var _22=(new Date()).getTime()-this.startTime;if(_22>ypSlideOutMenu.aniLen){this.endSlide();}else{var d=Math.round(Math.pow(ypSlideOutMenu.aniLen-_22,2)*this.accelConst);if(this.open&&this.dirType=="-"){d=-d;}else{if(this.open&&this.dirType=="+"){d=-d;}else{if(!this.open&&this.dirType=="-"){d=-this.dim+d;}else{d=this.dim+d;}}}this.moveTo(d);}};ypSlideOutMenu.prototype.endSlide=function(){this.aniTimer=window.clearTimeout(this.aniTimer);this.moveTo(this.open?this.outPos:this.homePos);if(!this.open){this.setVisibility(false);}if((this.open&&!this.over)||(!this.open&&this.over)){this.startSlide(this.over);}};ypSlideOutMenu.prototype.setVisibility=function(_24){var s=this.ns4?this.container:this.container.style;s.visibility=_24?"visible":"hidden";};ypSlideOutMenu.prototype.moveTo=function(p){this.style[this.orientation=="h"?"left":"top"]=this.ns4?p:p+"px";};ypSlideOutMenu.prototype.getPos=function(c){return parseInt(this.style[c]);};ypSlideOutMenu.prototype.onactivate=function(){};ypSlideOutMenu.prototype.ondeactivate=function(){};


// Menu configuration
//
	// the number you pass to initLeft doesn't matter since it will get
	// changed onactivate
	var myMenu1 = new ypSlideOutMenu("menu1", "down", 0, 30, 136, 96) // # of menu items * 19) + 1
	var myMenu2 = new ypSlideOutMenu("menu2", "down", 0, 30, 136, 346) // left, top, width, height
	var myMenu3 = new ypSlideOutMenu("menu3", "down", 0, 30, 150, 224)

 
// for each menu, we set up hte onactivate event to call repositionMenu with the amount offset from center, in pixels
	myMenu1.onactivate = function() { 
			document.getElementById('menu1').className='active';
	}
	myMenu1.ondeactivate = function() {document.getElementById('menu1').className='';}
	myMenu2.onactivate = function() { 
			document.getElementById('menu2').className='active';
	}
	myMenu2.ondeactivate = function() {document.getElementById('menu2').className='';}
	myMenu3.onactivate = function() { 
			document.getElementById('menu3').className='active';
	}
	myMenu3.ondeactivate = function() {document.getElementById('menu3').className='';}


ypSlideOutMenu.writeCSS();



// Function opens link in new window
//
function openInNewWindow(address) {
var newWindow = window.open(address, 'newWindow');
newWindow.focus();
return false;
}


// Function runs on window load, going through navigation links and configuring
// slideout menus
//
function initNav()
{
	if (!document.getElementsByTagName){ return; }
	var anchors = document.getElementById('nav').getElementsByTagName('a');
	// loop through all anchor tags
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		if (anchor.getAttribute("rel") == 'slideout'){
			//anchor.onclick = function () {alert('header'); return false;}
			anchor.onmouseover = function () {ypSlideOutMenu.showMenu(this.parentNode.getAttribute("id")); return false;}
			anchor.onmouseout = function () {ypSlideOutMenu.hideMenu(this.parentNode.getAttribute("id")); return false;}
		}
	}
}


// Function runs on window load, going through link tags looking for rel="external".
// These links receive onclick events that cause the link to open in a new window.
//
function initLinker()
{
	
	if (!document.getElementsByTagName){ return; }
	var anchors = document.getElementsByTagName("a");
	// loop through all anchor tags
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		
		if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "external")){
			anchor.onclick = function () {openInNewWindow(this.getAttribute("href")); return false;}
		}
	}
}

//
// getElementsByClassName(parent element,tag,class)
// returns all elements of a certain class name
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEvent(func)
{	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}

}



addLoadEvent(initLinker);
addLoadEvent(initNav);
addLoadEvent(loadPage);
