
function Menu(id){
	var self = this;

	this.container	= getObject(id);
	this.items = [];
	this.current;
	
	this.speed = 20;
	
	this.animation = false;

	this.init = function(current, subitem){
		this.current = current;
		var divs = this.container.getElementsByTagName('div');
		for(var temp in divs){
			if(divs[temp].id != undefined && divs[temp].id.indexOf('item_') != -1 && divs[temp].id.length < 7){
				this.items[/*this.items.length*/parseInt(divs[temp].id.substr(5)) - 1] = [divs[temp], getObject(divs[temp].id + '_sub'), /*getObject(divs[temp].id + '_sub').parentNode.offsetHeight*/parseInt(getObject(divs[temp].id + '_sub').parentNode.style.height), null];//blad w ie
//				alert(this.items[this.items.length - 1][2]);
				divs[temp].onclick = function(){
					self.selectItem(this.id.substr(5)/*, true*/);
				};
			}
		}
//		if(this.items[this.current] != undefined){
			this.selectItem(this.current, true);
//		}
		if(getObject('item_' + current + '_sub_' + subitem) != null){
			//getObject('item_' + current + '_sub_' + subitem).style.background = 'url(../images/submenuitembg_selected.gif) top left repeat-x;';
			getObject('item_' + current + '_sub_' + subitem).className = 'submenuitem_selected';
		}
	}

	this.selectItem = function(item, start){
		if(start == undefined) start = false;
		if((this.current == item && !start) || this.animation) return;
		for(var i = 0; i < this.items.length; i++){
			if(i != item - 1){
				if(start){
					this.items[i][1].parentNode.style.height = '0px';
					this.items[i][1].parentNode.style.display = this.items[i][1].style.display = 'none';
				} else/* if(i == this.current - 1)*/ this.animation_hide(i, 0);
			}
		}
		if(start){
			if(this.items[item - 1] != undefined){
				this.items[item - 1][1].parentNode.style.height = this.items[item - 1][2] + 'px';
				this.items[item - 1][1].parentNode.style.display = this.items[item - 1][1].style.display = 'block';
			}
		} else this.animation_show(item - 1, 0);
		this.current = item;
	}
	
	this.animation_show = function(item, step){
		if(step == 0 && self.items[item][1].parentNode.style.display == 'block') return;
		temp = Math.round(self.items[item][2] / 10);
		if(/*temp * step < self.items[item][1][2]*/step < 10){
			if(step == 0) self.items[item][1].parentNode.style.display = self.items[item][1].style.display = 'block';
			self.items[item][1].parentNode.style.height = (step * temp) + 'px';
			if(is.ie) self.items[item][1].style.filter = 'alpha(opacity=' + (step * 10) + ')';//na 100
			else if(is.opera) self.items[item][1].style.opacity = (step * 0.1);//na 1
			else self.items[item][1].style.MozOpacity = (step * 0.1);//na 1
			self.items[item][1].style.clip = 'rect(auto, auto, ' + (step * temp) + 'px, auto)';
			self.items[item][3] = setTimeout(function(){self.animation_show(item, step + 1);}, self.speed);
			self.animation = true;
		} else{
			self.items[item][1].parentNode.style.height = self.items[item][2] + 'px';
			if(is.ie) self.items[item][1].style.filter = 'alpha(opacity=100)';//na 100
			else if(is.opera) self.items[item][1].style.opacity = 1;//na 1
			else self.items[item][1].style.MozOpacity = 1;//na 1
			self.items[item][1].style.clip = 'rect(auto, auto, ' + (self.items[item][2]) + 'px, auto)';
			clearTimeout(self.items[item][3]);
			self.animation = false;
		}
	}
	
	this.animation_hide = function(item, step){
		if(step == 0 && self.items[item][1].parentNode.style.display == 'none') return;
		temp = Math.round(self.items[item][2] / 10);
		if(/*temp * step < self.items[item][1][2]*/step < 10){
			self.items[item][1].parentNode.style.height = (self.items[item][2] - (step * temp)) + 'px';
			if(is.ie) self.items[item][1].style.filter = 'alpha(opacity=' + (100 - (step * 10)) + ')';//na 100
			else if(is.opera) self.items[item][1].style.opacity = (1 - (step * 0.1));//na 1
			else self.items[item][1].style.MozOpacity = (1 - (step * 0.1));//na 1
			self.items[item][1].style.clip = 'rect(auto, auto, ' + (self.items[item][2] - (step * temp)) + 'px, auto)';
			self.items[item][3] = setTimeout(function(){self.animation_hide(item, step + 1);}, self.speed);
			self.animation = true;
		} else{
			self.items[item][1].parentNode.style.height = '0px';
			if(is.ie) self.items[item][1].style.filter = 'alpha(opacity=0)';//na 100
			else if(is.opera) self.items[item][1].style.opacity = 0;//na 1
			else self.items[item][1].style.MozOpacity = 0;//na 1
			self.items[item][1].style.clip = 'rect(auto, auto, 0px, auto)';
			self.items[item][1].parentNode.style.display = self.items[item][1].style.display = 'none';
			clearTimeout(self.items[item][3]);
			self.animation = false;
		}
	}
}
