/*****************************************************
* 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()
* - 04/15/2004 : added .writeCSS() to support more
*                than 30 menus.
*
* --youngpup--
*****************************************************/
ypSlideOutMenu.Registry = []
ypSlideOutMenu.aniLen = 250
ypSlideOutMenu.hideDelay = 700
ypSlideOutMenu.minCPUResolution = 10

// constructor
function ypSlideOutMenu(id, dir, left, top, width, height)
{
	var ua = navigator.userAgent.toLowerCase();
	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.x = left;
		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 = "";
		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 += '}'

		if ( ua.indexOf("mac") != -1 )
			strCSS += '#' + this.id + 'Content { background-image: url(img/trasp60.png); }'

		this.css = strCSS;
		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 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]
		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() { }

// Dodatek originalnemu fajlu

//ypSlideOutMenu( id del menu, direzione di apertura, left, top, width, height)
var menus = [
	new ypSlideOutMenu("snipe", "down", 0, 185, 142, 80),
	new ypSlideOutMenu("scira", "down", 79, 185, 220, 180),
	new ypSlideOutMenu("calendario", "down", 324, 185, 183, 140),
	new ypSlideOutMenu("risultati", "down", 408, 185, 132, 198),
	new ypSlideOutMenu("classici", "down", 481, 185, 130, 75)
	]

for (var i = 0; i < menus.length; i++) {
	menus[i].onactivate =  new Function( "repositionMenu("+i+")" );
}

function repositionMenu( i )
{
	var newLeft = Math.floor( ( getWindowWidth() - 798 ) / 2 ) + menus[i].x;
	menus[i].container.style ? menus[i].container.style.left = newLeft + "px" : menus[i].container.left = newLeft;
}

function getWindowWidth()
{
	return document.body.clientWidth ? document.body.clientWidth : ( document.body.offsetWidth ? document.body.offsetWidth : window.innerWidth );
}

ypSlideOutMenu.writeCSS();