/*****************************************************

* ypSlideOutMenu

* 3/04/2001

*

* a nice little script to create exclusive, slide-out

* menus for ns4, ns6, mozilla, opera, ie4, ie5 on

* mac and win32. I've got no linux or unix to test on but

* it should(?) work...

*

* Revised:

* - 08/29/2002 : added .hideAll()

*

* --youngpup--

*****************************************************/

ypSlideOutMenu.Registry = []

ypSlideOutMenu.aniLen = 250

ypSlideOutMenu.hideDelay = 500

ypSlideOutMenu.minCPUResolution = 10

// constructor

function ypSlideOutMenu(id, dir, left, top, width, height)

{

this.ie = document.all ? 1 : 0

this.ns4 = document.layers ? 1 : 0

this.dom = document.getElementById ? 1 : 0

if (this.ie || this.ns4 || this.dom) {

this.id = id

this.dir = dir

this.orientation = dir == "left" || dir == "right" ? "h" : "v"

this.dirType = dir == "right" || dir == "down" ? "-" : "+"

this.dim = this.orientation == "h" ? width : height

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 strCSS = '<style type="text/css">';

strCSS += '#' + this.id + 'Container { visibility:hidden; '

strCSS += 'left:' + left + 'px; '

strCSS += 'top:' + top + 'px; '

strCSS += 'overflow:hidden; z-index:10000; }'

strCSS += '#' + this.id + 'Container, #' + this.id + 'Content { position:absolute; '

strCSS += 'width:' + width + 'px; '

strCSS += 'height:' + height + 'px; '

strCSS += 'clip:rect(0 ' + width + ' ' + height + ' 0); '

strCSS += '}'

strCSS += '</style>'

d.write(strCSS)

this.load()

}

}

ypSlideOutMenu.prototype.load = function() {


var x = document.getElementsByTagName('body')[0];
x.style.marginLeft = ((rW() - 800) / 2) + 'px';




var d = document

var lyrId1 = this.id + "Container"

var lyrId2 = this.id + "Content"

var obj1 = this.dom ? d.getElementById(lyrId1) : this.ie ? d.all[lyrId1] : d.layers[lyrId1]

if (obj1) var obj2 = this.ns4 ? obj1.layers[lyrId2] : this.ie ? d.all[lyrId2] : d.getElementById(lyrId2)

var temp

if (!obj1 || !obj2) window.setTimeout(this.gRef + ".load()", 100)

else {

this.container = obj1

this.menu = obj2

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

// set event handlers.

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 + "')")

//set initial state

this.endSlide()

}

}

ypSlideOutMenu.showMenu = function(id)

{

var reg = ypSlideOutMenu.Registry

var obj = ypSlideOutMenu.Registry[id]

obj.container.style.marginLeft = ((rW() - 800) / 2) + 'px';

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(open) {

this[open ? "onactivate" : "ondeactivate"]()

this.open = open

if (open) this.setVisibility(true)

this.startTime = (new Date()).getTime()

this.aniTimer = window.setInterval(this.gRef + ".slide()", ypSlideOutMenu.minCPUResolution)

}

ypSlideOutMenu.prototype.slide = function() {

var elapsed = (new Date()).getTime() - this.startTime

if (elapsed > ypSlideOutMenu.aniLen) this.endSlide()

else {

var d = Math.round(Math.pow(ypSlideOutMenu.aniLen-elapsed, 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(bShow) {

var s = this.ns4 ? this.container : this.container.style

s.visibility = bShow ? "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() { }



var menus = [



	new ypSlideOutMenu("menu1", "down", 110, 116, 200, 115),

        new ypSlideOutMenu("menu2", "down", 210, 116, 200, 115),

        new ypSlideOutMenu("menu3", "down", 410, 116, 200, 115),

        new ypSlideOutMenu("menu4", "down", 510, 116, 200, 115),

        new ypSlideOutMenu("menu5", "down", 710, 116, 200, 115),

        new ypSlideOutMenu("menu6", "down", 610, 116, 200, 115),

        new ypSlideOutMenu("menu42", "down", 160, 125, 200, 115),

        new ypSlideOutMenu("menu43", "down", 160, 158, 200, 115),

        new ypSlideOutMenu("menu44", "down", 160, 191, 200, 115),

        new ypSlideOutMenu("menu45", "down", 160, 224, 200, 115),

        new ypSlideOutMenu("menu46", "down", 160, 257, 200, 115),

        
        new ypSlideOutMenu("menu62", "down", 160, 290, 200, 115),


        new ypSlideOutMenu("menu72", "down", 160, 125, 200, 115),
	new ypSlideOutMenu("menu68", "down", 160, 158, 200, 115),
	new ypSlideOutMenu("menu67", "down", 160, 191, 200, 115),
        new ypSlideOutMenu("menu78", "down", 160, 224, 200, 115),
	new ypSlideOutMenu("menu88", "down", 160, 257, 200, 115),
        new ypSlideOutMenu("menu76", "down", 160, 290, 200, 115),
        new ypSlideOutMenu("menu86", "down", 160, 323, 200, 115),
	new ypSlideOutMenu("menu91", "down", 160, 323, 200, 115),
	new ypSlideOutMenu("menu93", "down", 160, 356, 200, 115),

	



        

	

]

function rW(){
	return (window.innerWidth)?window.innerWidth:
		(document.documentElement.clientWidth)?document.documentElement.clientWidth:
		(document.body.clientWidth)?document.body.clientWidth:0;
}

//for (var i = 0; i < menus.length; i++) {

//	menu[i].onactivate = new Function("document.getElementById('act" + i + "').className='menu';");

//	menu[i].ondeactivate = new Function("document.getElementById('act" + i + "').className='menu';");

//}

