﻿if(typeof RD_MENU=="undefined"||!RD_MENU) var RD_MENU={};
RD_MENU.Dom = {
			getCurrentStyle : function(e,s){//read only
    			var retVal;
    			if(e.currentStyle) retVal=e.currentStyle[s];//IE
				else if(document.defaultView&&document.defaultView.getComputedStyle) retVal=document.defaultView.getComputedStyle(e,null).getPropertyValue(this.dashify(s));//Mozilla
				else retVal=null;//Safari
    			return retVal;
			},
			dashify : function(str){
    			return str.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();
			},
			getLocalOffset : function(offset,direction){//direction: Top Left
				var y=offset['offset'+direction];
    			var div;
    			try{div=offset.offsetParent;}
				catch(ex){return y;}
    			while(div&&RD_MENU.Dom.getCurrentStyle(div,'position')=='static'){
        			y+=div['offset'+direction];
        			try{div=div.offsetParent;}
					catch(ex){return y;}
    			}
    			return y;
			},
			myAttachEvent : function(d,e,f){
				try {
					if(d.attachEvent) d.attachEvent("on"+e,f);
					else if(d.addEventListener) d.addEventListener(e,f,false);
					else{
						var oldF = eval('d.on'+e);
						if(typeof oldF!='function') eval('d.on'+e+'=f');
						else eval('d.on'+e)=function(){oldF();f();}
					}
				}
				catch (error){}
			}
};
RD_MENU.html = document.getElementById('RD_menu')||null;
if(RD_MENU.html!=null){
	RD_MENU.fnInit = function(){
		var s = this;
		s.menuItemLI = [];
		s.menuItem_subItemDiv = [];
		s.menuItem = [];

		function rdMenuItem(li,div){
			this.trigger = li;
			this.submenu_dCon = div;
			this.submenu_tCon = this.submenu_dCon.childNodes[0].className=='RD_subMenu_inner'?this.submenu_dCon.childNodes[0]:null;
			var ss = this;
			this.submenu_dCon.onmouseover = function(e){
				/*if(window.event) window.event.cancelBubble = true;
				else e.cancelBubble = true;*/
				ss.stopHideCon();
			}
			this.submenu_dCon.onmouseout = function(e){
				/*if(window.event) window.event.cancelBubble = true;
				else e.cancelBubble = true;*/
				ss.startHideCon();
			}
			var li = this.submenu_tCon.getElementsByTagName('li'),i;
			for(i=0;li[i];i++){
				li[i].onmouseover = function(e){
					this.className = this.className.replace('outsub','oversub');
				}
				li[i].onmouseout = function(e){
					this.className = this.className.replace('oversub','outsub');
				}
			}
			this.submenuW = parseFloat(this.submenu_tCon.offsetWidth);
			this.submenuH = parseFloat(this.submenu_tCon.offsetHeight);
			this.initPosition();
			this.AnyIter = 10;
			this.AnyTime = 5;
			this.curIter = null;
			this.timer = null;//for scroll
			this.timerHide = null;
		}
		rdMenuItem.prototype = {
			initPosition : function(){
				this.submenu_dCon.style.visibility = 'hidden';
				this.submenu_dCon.style.height = '0px';
				this.status = 'off';
				var x = parseInt(RD_MENU.Dom.getLocalOffset(this.trigger,'Left'))-1;
				var y = parseInt(RD_MENU.Dom.getLocalOffset(this.trigger,'Top'))+parseInt(this.trigger.offsetHeight);
				this.submenu_dCon.style.left = x + 'px';
				this.submenu_dCon.style.top = y + 'px';
				this.startY = -1*this.submenuH;
				this.submenu_tCon.style.top = this.startY + 'px';
				this.submenu_tCon.style.left = '0px';
				if(this.submenu_dCon.currentStyle && navigator.userAgent.indexOf("MSIE 7") == -1){//ie6
					if(!this.divShim){
						this.divShim = document.createElement('iframe');
						this.divShim.src = 'javascript:""';
            			this.divShim.frameBorder = '0';
            			this.divShim.scrolling = 'no';
            			this.divShim.className = 'iframeShim';
            			this.divShim.style.zIndex = this.submenu_dCon.currentStyle.zIndex - 1;
						this.divShim.style.position = 'absolute';
						this.divShim.style.visibility = 'hidden';
						this.divShim.style.width = RD_MENU.Dom.getCurrentStyle(this.submenu_dCon,'width');
						this.divShim.style.height = RD_MENU.Dom.getCurrentStyle(this.submenu_dCon,'height');
						this.submenu_dCon.parentNode.appendChild(this.divShim);
					}
					if(this.divShim){
						this.divShim.style.left = this.submenu_dCon.currentStyle.left;
						this.divShim.style.top = this.submenu_dCon.currentStyle.top;
					}
				}
			},
			popupMenu : function(flag){
				if(this.status==(flag?'on':'off')) return;
				this.fnAnimation(flag);
			},
			fnAnimation : function(flag){
				if(this.timer!=null){
					clearTimeout(this.timer);
					this.timer = null;
				}
				if(this.status!='active') this.status = 'active';
				if(this.curIter==null) this.curIter = 0;
				if(RD_MENU.Dom.getCurrentStyle(this.submenu_dCon,'visibility')=='hidden'){
					this.submenu_dCon.style.visibility = 'visible';
					if(this.divShim) this.divShim.style.visibility = 'visible';
				}
				if(this.curIter>=0&&this.curIter<=this.AnyIter){
					var per = this.curIter*(95/this.AnyIter)+5;
					var ss = this;
					this.submenu_dCon.style.height = this.submenuH*per/100 + 'px';
					this.submenu_tCon.style.top = this.startY + this.submenuH*per/100 + 'px';
					if(this.divShim) this.divShim.style.height = parseFloat(this.submenu_dCon.style.height)+'px';
					var timeout = this.AnyTime;//per==100?0:this.AnyTime-this.AnyTime/this.AnyIter*this.curIter;
					this.curIter += flag?1:-1;
					if(this.curIter<0 || this.curIter>this.AnyIter){
						this.curIter = this.curIter<1?0:this.AnyIter;
						this.status = this.curIter==this.AnyIter?'on':'off';
						this.submenu_dCon.style.visibility = this.status=='on'?'visible':'hidden';
						if(this.divShim) this.divShim.style.visibility = this.submenu_dCon.style.visibility;
					}
					else this.timer = setTimeout(function(){ss.fnAnimation(flag)},timeout);
				}
			},
			stopHideCon : function(){
				if(this.timerHide!=null){
					clearTimeout(this.timerHide);
					this.timerHide = null;
				}
			},
			startHideCon : function(){
				var ss = this;
				if(this.timerHide==null) this.timerHide = setTimeout(function(){ss.popupMenu(false)},100);
			}
		}
		function _d_mouse(menuIndex){
			var li = s.menuItemLI[menuIndex];
			var div = s.menuItem_subItemDiv[menuIndex];
			if(!(li.id in s.menuItem)) s.menuItem[li.id] = new rdMenuItem(li,div);
			if(li.id in s.menuItem){
				var menu = s.menuItem[li.id];
				li.onmouseover = function(e){
					this.className = this.className.replace('out','over');
					for(var i in s.menuItem) if(s.menuItem[i].trigger.id!=menu.trigger.id) s.menuItem[i].popupMenu(false);
					menu.popupMenu(true);
					menu.stopHideCon();
				}
				li.onmouseout = function(e){
					this.className = this.className.replace('over','out');
					menu.startHideCon();
				}
				var aTags = li.getElementsByTagName('a');
				for(var i=0;aTags[i];i++) aTags[i].onfocus = function(e){this.blur();};
			}
		}
		var i,div;
		var menuItemAll = s.html.getElementsByTagName('li');
		for(i=0;menuItemAll[i];i++){
			menuItemAll[i].onmouseover = function(e){
				this.className = this.className.replace('out','over');
			};
			menuItemAll[i].onmouseout = function(e){
				this.className = this.className.replace('over','out');
			};
			div = menuItemAll[i].getElementsByTagName('div')[0]||null;
			if(div!=null && div.className=='RD_subMenu_outer'){
				s.menuItemLI[s.menuItemLI.length] = menuItemAll[i];
				s.menuItem_subItemDiv[s.menuItem_subItemDiv.length] = div;
				new _d_mouse(s.menuItemLI.length-1);
			}
		}
		function fnResizeWin(){
			for(var i in s.menuItem) s.menuItem[i].initPosition();
		}
		RD_MENU.Dom.myAttachEvent(window,'resize',fnResizeWin);
		if(!document.all) RD_MENU.Dom.myAttachEvent(window,'load',fnResizeWin);
	};
	RD_MENU.fnInit();
}