// JavaScript Document

function getFloatMenu(){
	this.childMenus=null;
	this.depth=0
}
getFloatMenu.prototype={
	getDefaultValues : function(containerId,xmlPath){
		this.ulElement=DOS.$(containerId).getElementsByTagName('ul')[0]
		this.xmlUrl=xmlPath;
		this.container=DOS.$(containerId)
		this.ulElementHeight=this.ulElement.offsetHeight
		this.linkArray=this.container.getElementsByTagName('a')
		this.currentMenu=new Array;
		this.hoverPause=new Array;
		this.request=null;
	},

	getSelfObject : function(){
		var selfObject=this;
		return selfObject
	},

	getCode : function(){
		var selfObject=this.getSelfObject();
		this.request=DOS.creatAjaxRequest();
		this.request.open('GET',this.xmlUrl,true)
		this.request.onreadystatechange =function(){selfObject.updatePage(selfObject.request,selfObject)}
		this.request.send(null);
	},

	updatePage : function(request,selfObject){
		if (request.readyState == 4){
		   if (request.status == 200){
					selfObject.xmlObj=request.responseXML
					var linkLength=this.linkArray.length
					for(var i=0;i<linkLength;i++){
						this.getChildMenu(this.linkArray[i],selfObject)
					}
		   	}
		}
	},
	
	getChildMenu : function(linkElement,selfObject){
		var titleTxt=linkElement.className
		var xmlTitles=selfObject.xmlObj.getElementsByTagName('title');
		var xmlTitlesLength=xmlTitles.length;
		for(var i=0;i<xmlTitlesLength;i++){
			if(xmlTitles[i].firstChild.data===titleTxt){
				var childListXml=xmlTitles[i].parentNode
				this.createChildMenu(linkElement,childListXml,this.depth,selfObject)
				return true;
			}
		}
		return false
	},

	createChildMenu : function(linkElement,childListXml,depth,selfObject){
		var childMenuDiv=document.createElement('div')
		childMenuDiv.className='childMenuContainer'+depth
		var childMenuUl=document.createElement('ul')
		childMenuDiv.appendChild(childMenuUl)
		this.container.appendChild(childMenuDiv)
		var childMenuLiXmls=childListXml.getElementsByTagName('menuElement')
		var childMenuLiXmlsLength=childMenuLiXmls.length
		if(depth===0){
			childMenuDiv.id=linkElement.className;
			var leftValue=linkElement.parentNode.offsetLeft+linkElement.parentNode.parentNode.offsetLeft
			childMenuDiv.style.left=leftValue+'px';
			childMenuDiv.style.top=this.container.offsetHeight+'px';
			
			}
		else if(depth>0){
			childMenuDivPositionLeft=linkElement.parentNode.parentNode.parentNode.offsetLeft+linkElement.offsetWidth
			childMenuDiv.style.left=childMenuDivPositionLeft+'px';
			childMenuDivPositionTop=linkElement.parentNode.parentNode.parentNode.offsetTop+linkElement.offsetTop;
			childMenuDiv.style.top=childMenuDivPositionTop+'px';
			}
		for(var i=0;i<childMenuLiXmlsLength;i++){
			//var childMenuLiName=childMenuLiXmls[i].getElementsByTagName('elementName')[0].firstChild.data;
			var childMenuLiName=childMenuLiXmls[i].getElementsByTagName('elementName')[0].firstChild.data;
			var childMenuLiLinkString=childMenuLiXmls[i].getElementsByTagName('elementLink')[0].firstChild.data;
			var childMenuLi=document.createElement('li')
			var childMenuLink=document.createElement('a')
			childMenuLink.href=childMenuLiLinkString;
			var childMenuLiText=document.createTextNode(childMenuLiName)
			
			if(childMenuLiName=="设 计 师 沙 龙"){
				childMenuLink.setAttribute("target","_blank");
			}
			
			//var childMenuLiText=document.createTextNode("test <![CDATA[<br/>]]> test")
			childMenuLink.appendChild(childMenuLiText)
			childMenuLi.appendChild(childMenuLink)
			childMenuUl.appendChild(childMenuLi)
			if(childMenuLiXmls[i].getElementsByTagName('childMenu').length!==0){
				childMenuLink.className='hasChild'
				this.createChildMenu(childMenuLink,childMenuLiXmls[i].getElementsByTagName('childMenu')[0],depth+1,selfObject)
				i=i+childMenuLiXmls[i].getElementsByTagName('menuElement').length
			}
			else{
				this.addMouseEvent(childMenuLink,null,depth,selfObject)
			}
		}
		childMenuDiv.style.display='none'
		this.addMouseEvent(linkElement,childMenuDiv,depth,selfObject)
	},
	
	addMouseEvent : function(linkElement,childMenuDiv,depth,selfObject){
		DOS.addEvent(linkElement,'mouseover',function(){
			for(var i=depth;i>=0;i--){
				window.clearTimeout(selfObject.hoverPause[i])
			}
			if(childMenuDiv!==null){
				if(!selfObject.currentMenu[depth]){
					childMenuDiv.style.display='block'
					selfObject.currentMenu[depth]=childMenuDiv
				}
				else if(selfObject.currentMenu[depth]!=childMenuDiv){
					selfObject.currentMenu[depth].style.display='none'
					childMenuDiv.style.display='block'
					selfObject.currentMenu[depth]=childMenuDiv
				}
			}
		})
		DOS.addEvent(linkElement,'mouseout',function(){
			for(var i=depth;i>=0;i--){
				selfObject.moveCurrentLists(i,linkElement,selfObject)
			}
		})
	},
	
	moveCurrentLists : function(currentDepth,linkElement,selfObject){
		selfObject.hoverPause[currentDepth]=setTimeout(function(){
				if(selfObject.currentMenu[currentDepth]){
					selfObject.currentMenu[currentDepth].style.display='none'
					selfObject.currentMenu[currentDepth]=null;
				}
			},40)
	},
		
	domOnReady : function(containerId,xmlPath){
		DOS.addOnload(function(){
			if(!document.getElementById(containerId)){return false}
		})
		var selfObject=this.getSelfObject();
		this.domReady=setTimeout(function(){
			if(!document.getElementById(containerId)){selfObject.domOnReady(containerId,xmlPath)}
			else {
				selfObject.getDefaultValues(containerId,xmlPath)
				selfObject.getCode()
				}
		},100) 
	}
}

var floatMenu=new getFloatMenu;
var floatMenuInner=new getFloatMenu;
DOS.addOnload(function(){
	floatMenuInner.domOnReady('globalNavi','/common/js/globalNav.xml');
	floatMenu.domOnReady('houseCenterNav','/products/house-center/innerNav.xml');
	floatMenu.domOnReady('houseSplitNav','/products/house-split/innerNav.xml');
	})


//document.getElementById("service").getElementsByTagName("li")[2].getElementsByTagName("a")[0].setAttribute("target","_blank")
