
function ENN_menu (tobj) {
	var menuitems = new Array;	
	var thiss = this;	
	function initmenu () {
		this.render_ul(this.tobj, 0);
	}
	var oStore = new Object;
	function clearoverlay (ul) {
		var diff;
		for (var i = 0; i< ENN_allflash.length; i++) {
			if ( diff = ENN_boxover(ul,ENN_allflash[i])) {
				if (!oStore[ul.id]) {
					oStore[ul.id] = new Array;
				}
				oStore[ul.id].push({item:ENN_allflash[i], amount:diff});
				var s = ENN_allflash[i].style;
				s.marginTop = s.marginTop ? (parseInt(s.marginTop) + diff) + 'px' : diff + 'px';
			}
		}
	}
	function restoreoverlay (ul) {
		if (!oStore[ul.id])
			return;
		for (var i = 0; i< oStore[ul.id].length; i++) {
			var o = oStore[ul.id][i].item;
			var s = o.style;
			var diff = oStore[ul.id][i].amount
// 			alert('Margintop ' + parseInt(s.marginTop) + '-' + diff);
			s.marginTop = (parseInt(s.marginTop) - diff) + 'px';
		}
		oStore[ul.id].length = 0;
		
	}
	
	function render_ul (obj,iter) {
	var narrow = false;
		for (var i = 0; i < obj.childNodes.length; i++) {
		
			if (obj.childNodes[i].nodeName.toLowerCase() == 'ul') {
				narrow = true;
				var ul = obj.childNodes[i];
				if (!ul.style.zIndex) ul.style.zIndex = this.zIndex++;
				if (iter) {
					
					ul.parentNode.onmouseover = function (evt) {
// 						alert(ul.innerHTML);
// 						evt = evt || window.event;
// 						var obj = evt.srcElement || evt.target;
						/* align is an alias for float */
// 						ul.style.align = 'none';
						var frun = false;
						var s = ul.style;
						if (!ul.id) {
							ul.id = 'menu-' + menuitems.length;
							menuitems.push(ul.id);
							s.display = 'block';
							s.position = 'absolute';
							frun = true;
						}
						if (1 || !ul.id) {
							
							var isFirstLevel = (ul.parentNode.parentNode.parentNode.nodeName.toLowerCase() != 'li') ? true : false;
							var coords = ENN_get_coords(ul.parentNode);
							var wW = ENN_get_window_dimensions().width;
							var right = coords.x + ul.parentNode.offsetWidth + ul.offsetWidth;
							
							if (( right  - 3) > wW) {
								var diff = right - wW;
								if (diff > ( ul.parentNode.offsetWidth/2) ) {
									s.left = 'auto';
									if (isFirstLevel) {
										var gap = (wW - (coords.x + ul.parentNode.offsetWidth));
// 										if (is_ie)
// 											gap -= 2;
										s.right = gap + 'px';
									}
									else{
										s.right = (ul.parentNode.offsetWidth  - 5)  + 'px';
									}
								}
								else {
									if (isFirstLevel) {
										s.left = (coords.x - 20)  + 'px';
									}
									else {
										s.left = (ul.parentNode.offsetWidth  - diff  - 20) + 'px';
										
									}
								
								}
							}
							else {
								
								s.right = 'auto';
								if (isFirstLevel) {
									s.left = (coords.x - ((ENN_site == 'mac') ? 0 : 1))  + 'px';
								}
								else {
									s.left = (ul.parentNode.offsetWidth  - 3)  + 'px';
								}
							}
	// 						alert("coords: " + coords.x + "-" +coords.y);
							if (isFirstLevel) {
								s.top = (coords.y + ul.parentNode.offsetHeight ) + 'px';
							}
							else {
								s.top = (ul.parentNode.offsetTop - (is_ie ? 6: 1) ) +'px';	
							}
							if (frun) {
								ENN_menushadow(ul);
							}
							thiss.clearoverlay(ul);
							
						}
						if (s.visibility != 'visible') {
							s.visibility = 'visible';
							if (is_ie && !(is_ie7 || is_ie8)) {
								ul.parentNode.className = 'li hvr';
// 								ENN_set_opacity(ul.parentNode.parentNode,100);
// 								ENN_fade(ul,'in',20,100);
							}
							else if (is_ie7 || is_ie8) {
								ul.parentNode.className = 'li hvr';
								ENN_fade(ul,'in',20,100);
							}
							else {
								ENN_fade(ul,'in',20,100);
// 								ul.style.visibility = 'visible';
							}
						}
						
					}
					ul.contains = function (obj){
						if (!obj)
							return false;
						if (obj == this)
							return true;
						return this.contains(obj.parentNode);
					};
					ul.parentNode.onmouseout = function (evt) {
						evt = evt || window.event;
						var obj = evt.srcElement || evt.target;
// 						alert(evt.relatedTarget.innerHTML);
						var to = evt.relatedTarget || evt.toElement;
// 						if (isKS)
// 							alert(to.parentNode.nodeName);
						if (is_ie && ul.parentNode.contains(to)) {
							return;
						}
						if (!is_ie && (ul.contains(to) || (to.parentNode == ul.parentNode ))) {
							return;
						}
						if (is_ie) {
							ul.parentNode.className = null;
// 							ENN_set_opacity(ul.parentNode.parentNode,85);
						}
						ul.style.visibility = 'hidden';
						thiss.restoreoverlay(ul);
						
					}
// 					thiss.render_li(ul);
// 					thiss.render_li(ul,iter);
				}
				thiss.render_li(ul,iter);
				
				
				
			}
		}
		if (narrow && iter) {
			return narrow;
		}
		return false;
		
	}
	function render_li (obj,iter) {
		for (var i = 0; i< obj.childNodes.length; i++) {
			if (obj.childNodes[i].nodeName.toLowerCase() == 'li') {
				var li = obj.childNodes[i];
				li.style.display = 'block';
				if ( is_ie && (li.className != 'hrule') && (li.className != 'imglink')) {
					li.onmouseover = function (evt) {
						evt = evt || window.event;
						var obj = evt.srcElement || evt.target;
						(obj.nodeName.toLowerCase() == 'li') ? obj.className = 'li hvr' : obj.parentNode.className = 'li hvr';
					};
					li.onclick = function (evt) {
						evt = evt || window.event;
						var obj = evt.srcElement || evt.target;
						if (obj.nodeName.toLowerCase() == 'li') 
							window.location.href=obj.firstChild.href;

					};
					li.onmouseout = function (evt) {
						evt = evt || window.event;
						var obj = evt.srcElement || evt.target;
						(obj.nodeName.toLowerCase() == 'li') ? obj.className = null : obj.parentNode.className = null;
					};
				}
				var narrow = this.render_ul(li,'insub');
				if (narrow && iter) {
					li.style.backgroundImage = 'url(http://www.ectnews.com/images/2005/menuarrow.gif)';
					li.style.backgroundRepeat = 'no-repeat';
					li.style.backgroundPosition = '99% 9px';
				}
				else if (!iter) {
				}
// 				size_ul(li);
				
			}
		}
	}
	
	this.tobj = tobj;
	this.initmenu = initmenu;
	this.render_ul = render_ul;
	this.render_li = render_li;
	this.clearoverlay = clearoverlay;
	this.restoreoverlay = restoreoverlay;
	this.zIndex = 90000;
	this.i = 0;
	this.initmenu();
// 	this.tobj.addEventListener('click',this.mouseout,false);

}


function ENN_menushadow (obj) {
		var dv = document.createElement('div');
		var s = dv.style;
		s.zIndex = -2000;
		s.display = 'block';
		s.position = 'absolute';
// 		dv.style.align = 'left';
		
		if(is_ie8 || is_ie7 || !is_ie) {
			s.top = '0px';
			s.left = '0px';
			s.width = (obj.offsetWidth + 5) + 'px';
			s.height = (obj.offsetHeight +  6) +'px';
			
			s.backgroundImage = 'url(http://www.ectnews.com/images/2005/big_dropshadow.png)';
			s.backgroundRepeat = 'no-repeat';
			s.backgroundPosition = 'bottom  right';
		
		}
		else {
			s.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="http://www.ectnews.com/images/2005/big_dropshadow.png",sizingMethod="image")'
			s.clip = 'rect(' + (635-obj.offsetHeight) + 'px,640px,640px,' + (635 - obj.offsetWidth) +'px)';

			s.width = (obj.offsetWidth + 6) + 'px';
			s.height = (obj.offsetHeight +  6) +'px';
			s.right = '-7px';
			s.bottom = '-8px';
// 			alert(dv.style.clip);
		}
		
		obj.appendChild(dv);
}

var tbar = document.getElementById("topmenubar");
// var mbar = document.getElementById("menubartemp");

new ENN_menu(tbar);
