//---------------------------------------------------------------------------------------------------------------------
/*
* Created a long, long time ago by Tanny O'Haley
* Update history.
* 24 Oct 2006 - Added to http://tanny.ica.com
* 14 Jul 2006 - Modified the way the iframe is added to the DOM. I no longer use 
*			innerHTML but use DOM methods.
* 15 Sep 2006 - Added a check to see if the target element onmouseout is contained
*			in the onmouseout element. If it is then I dont' remove the
*			sfhover class. I made use of the Microsoft proprietary
*			obj.contains() method.
*		    Added check to make sure that the sfhover class is not already in
*			the li element.
/*

//---------------------------------------------------------------------------------------------------------------------
/*
*  Original Source from : Select tag overlap in IE
*  URL          :  http://tanny.ica.com/ICA/TKO/tkoblog.nsf/dx/select-tag-overlap-in-ie
*                       http://tanny.ica.com/ICA/TKO/tkoblog.nsf/dx/select-tag-overlap-in-ie-part-ii
*                       http://tanny.ica.com/ICA/TKO/tkoblog.nsf/dx/select-tag-overlap-in-ie-part-iii
*  Example  : http://tanny.ica.com/ICA/TKO/test.nsf/suckerfish/examplefix.htm
*
*  Modified by       : James
*  Version     : 2.0
*  Last Modified   : 09/01/2551
*  Require		: EVENTS.js for add event
*
*---------------------------------------------------------------------------------------------------------------------
*  edit by james [24/7/2552] : fix error in function setHover on loop ieULs =>ul haven't li 
*
*/
//---------------------------------------------------------------------------------------------------------------------


// for iframe
var offWidth = 5 ;
var offHeight = 20 ;

var MLDDM_ID = 'nav'						//  Id of dropdown menu( tag UL )
var MLDDM_CLASS = 'mlddm'		//  Class name of dropdown menu( tag UL )


sfHover = function() {
	// Support the standard nav without a class of nav.
	var el = document.getElementById(MLDDM_ID);
	if(el != null ){
		//if(!/\bnav\b/.test(el.className) && el.tagName == "UL")
		if(el.className != MLDDM_CLASS && el.tagName == "UL") {
			setHover(el);
		}
		// Find all unordered lists.
		var ieNavs = document.getElementsByTagName('ul');
		for(i=0; i<ieNavs.length; i++) {
			var ul = ieNavs[i];
			// If they have a class of nav add the menu hover.
			//if(/\bnav\b/.test(ul.className))
			if(ul.className == MLDDM_CLASS){
				setHover(ul);
			}
		}
	}

}

function setHover(nav) {
	var ieULs = nav.getElementsByTagName('ul');
	if (navigator.appVersion.substr(22,3)!="5.0") {
		// IE script to cover <select> elements with <iframe>s
		for (j=0; j<ieULs.length; j++) {
			if(ieULs[j].children.length>0) {		 //  edit by james [24/7/2552] : fix error when ul haven't li 
				var ieMat=document.createElement('iframe');
				if(document.location.protocol == "https:") {
					ieMat.src="//0";
				} else if(window.opera != "undefined") {
					ieMat.src="";
				} else {
					ieMat.src="javascript:false";
				}
				ieMat.scrolling="no";
				ieMat.frameBorder="0";

				// edit by james
				//ieMat.style.width=ieULs[j].offsetWidth+"px";
				//ieMat.style.height=ieULs[j].offsetHeight+"px";			
				ieMat.style.width=ieULs[j].offsetWidth +offWidth +"px";
				ieMat.style.height=ieULs[j].offsetHeight +offWidth+"px";
				// end 

				ieMat.style.zIndex="-1";
				ieULs[j].insertBefore(ieMat, ieULs[j].childNodes[0]);
				ieULs[j].style.zIndex="101";
			}
		}
		// IE script to change class on mouseover
		var ieLIs = nav.getElementsByTagName('li');
		for (var i=0; i<ieLIs.length; i++) if (ieLIs[i]) {
			// Add a sfhover class to the li.
			ieLIs[i].onmouseover=function() {
				if(!/\bsfhover\b/.test(this.className))
					this.className+=" sfhover";
			}
			ieLIs[i].onmouseout=function() {
				if(!this.contains(event.toElement))
					this.className=this.className.replace(' sfhover', '');
			}
		}
	} else {
		// IE 5.0 doesn't support iframes so hide the select statements on hover and show on mouse out.
		// IE script to change class on mouseover
		var ieLIs = document.getElementById(MLDDM_ID).getElementsByTagName('li');
		for (var i=0; i<ieLIs.length; i++) if (ieLIs[i]) {
			ieLIs[i].onmouseover=function() {this.className+=" sfhover";hideSelects();}
			ieLIs[i].onmouseout=function() {this.className=this.className.replace(' sfhover', '');showSelects()}
		}
	}
}

// If IE 5.0 hide and show the select statements.
function hideSelects(){
	var oSelects=document.getElementsByTagName("select");
	for(var i=0;i<oSelects.length;i++)
		oSelects[i].className+=" hide";
}

function showSelects(){
	var oSelects=document.getElementsByTagName("select");
	for(var i=0;i<oSelects.length;i++)
		oSelects[i].className=oSelects[i].className.replace(" hide","");
}


//---------------------------------------------------------------------------------------------------------------------
/*
// move to place, that call menu -> emv-topmenu.jsp
// sfHover must call befor menu initial
addEvent(window, "load", sfHover);
*/
// end