function Menu(parameters) {
	this.HTML = new Object();
	this.HTML.lnk = document.getElementById(parameters['lnk_id']);
	this.HTML.tar = document.getElementById(parameters['tar_id']);
	
	this.init();
}

Menu.prototype.constructor = Menu;

Menu.prototype = {
	init: function() {
		var Menu = this;
		
		//cleanWhiteSpace(this.HTML.tar);
		
		this.HTML.tar.style.position	= 'absolute';
		this.HTML.tar.style.zIndex		= 100;
		
		this.dsp = true;
		this.itv = null;
		
		this.setPos();
		this.getBrd();
		this.setDim();
		this.setTBrdDim();
		this.hide(true);
		
		this.HTML.lnk.onmouseover = function() {
			Menu.show();
		}
		
		this.HTML.lnk.onmouseout = function() {
			Menu.hide();
		}
		
		if(navigator.appName == 'Microsoft Internet Explorer') {
			addEvent(document,'click',function() { Menu.isClickedOut(); },true);
		}
		else {
			addEvent(document,'click',function(e) { Menu.isClickedOut(e); },true);
		}
	},
	
	getBrd: function() {
		divs = this.HTML.tar.getElementsByTagName('div');
		this.brd = new Object();
		for(i=0;i<divs.length;i++) {
			if(divs[i].className == 'men_con_brd_t_l') {
				this.brd.t_l = divs[i];
			}
			if(divs[i].className == 'men_con_brd_t_m') {
				this.brd.t_m = divs[i];
			}
			if(divs[i].className == 'men_con_brd_t_r') {
				this.brd.t_r = divs[i];
			}
			if(divs[i].className == 'men_con_brd_l_t') {
				this.brd.l_t = divs[i];
			}
			if(divs[i].className == 'men_con_brd_r_t') {
				this.brd.r_t = divs[i];
			}
		}
	},
	
	setDim: function() {
		if(this.HTML.tar.offsetWidth < this.HTML.lnk.offsetWidth) {
			this.HTML.tar.style.width = (this.HTML.lnk.offsetWidth+this.brd.r_t.offsetWidth+15)+'px';
		}
		else {
			w = 0;
			elt = this.HTML.tar.getElementsByTagName('ul');
			if(elt.length > 0 && elt[0].firstChild) {
				cleanWhiteSpace(elt[0])
				elt = elt[0].firstChild;
			}
			else { elt = false; }
			while(elt) {
				w = (elt.firstChild && elt.firstChild.offsetWidth > w) ? elt.firstChild.offsetWidth : w;
				elt = (elt.nextSibling) ? elt.nextSibling : false;
			}
			this.HTML.tar.style.width = (w+this.brd.l_t.offsetWidth+this.brd.r_t.offsetWidth+5)+'px';
		}
	},
	
	setPos: function() {
		this.HTML.tar.style.top  = (getTop(this.HTML.lnk) + this.HTML.lnk.offsetHeight) + 'px';
		this.HTML.tar.style.left = getLeft(this.HTML.lnk) + 'px';
	},
	
	setTBrdDim: function() {
		t_l_width = this.HTML.lnk.offsetWidth-5;
		this.brd.t_l.style.width = t_l_width+'px';
		this.brd.t_r.style.width = (this.HTML.tar.offsetWidth-(this.brd.t_l.offsetWidth+this.brd.t_m.offsetWidth+this.brd.r_t.offsetWidth))+'px';
	},
	
	hide: function(bool) {
		//window.alert('Menu.hide('+bool+')');
		var Menu = this;
		bool = (bool) ? true : false;
		if(this.dsp) {
			if(!bool && this.itv == null) {
				this.itv = setInterval(function() { Menu.hide(true); },200);
			}
			else if(bool) {
				if(this.itv != null) {
					clearInterval(this.itv);
					this.itv = null;
				}
				this.dsp = false;
				this.HTML.tar.style.display = 'none';
			}
		}
	},
	
	show: function() {
		//window.alert('Menu.show()');
		if(this.itv != null) {
			clearInterval(this.itv);
			this.itv = null;
		}
		if(!this.dsp) {
			this.dsp = true;
			this.HTML.tar.style.display = 'block';
			this.setPos();
		}
	},
	
	isClickedOut: function(e) {
		if(!e) { e = window.event; element = e.srcElement; }
		else   { element = e.target; }
		bool = false;
		while(false == bool && undefined != element) {
			if(element == this.HTML.tar || element == this.HTML.lnk) { return false; }
			if(element.tagName.toLowerCase() == "html") {
				this.hide();
				return true;
			}
			element = element.parentNode;
		}
	}
}