// namespace : webon.js.nav
// object : NavIE,nav methods
// version : 1.0.1
// modify : 26/10/2004
// req. js: webon.js.xml---webon_xml_tools.js---r1.0.0

var lastMenu;

function navClick(td,rootMenu){

	var menu=rootMenu.find(getAttrValue(td,"menuID"));
	if(menu.javascript!="")eval(menu.javascript);
	else if(menu.target!="" && menu.url!="")window.open(menu.url,menu.target);
	else if(menu.url!="")location=menu.url;
}

function navRollOut(td,rootMenu){
	var menu=rootMenu.find(getAttrValue(td,"menuID"));
	td.className=menu.rollOutCss;
	window.hideLayer=setTimeout("navHideLayers(lastMenu)",400);
	
}

function navRollOver(td,rootMenu){
	navHideLayers(lastMenu);
	var menu=rootMenu.find(getAttrValue(td,"menuID"));	
	td.className=menu.rollOverCss;
	navShowLayers(menu,rootMenu);	
	
}

function navShowOver(td,menu){
	if(menu.rollOverCss!="")td.className=menu.rollOverCss;
	if(menu.rollOverImage!=""){
		var img=document.getElementById("img_"+menu.ID);
		if(img!=null)img.src=menu.rollOverImage;
	}
}

function navShowOut(td,menu){
	if(menu.rollOutCss!="")td.className=menu.rollOutCss;
	if(menu.rollOutImage!=""){
		var img=document.getElementById("img_"+menu.ID);
		if(img!=null)img.src=menu.rollOutImage;
	}
}

function navShowLayers(menu,rootMenu){
	if(menu==null)return;
	var layer=document.getElementById("layer_"+menu.ID);
	var td=document.getElementById("td_"+menu.ID);
	if(td!=null)navShowOver(td,menu);
	if(layer!=null){
		layer.style.visibility="visible";
		layer.style.left=menu.x;
		layer.style.top=menu.y;	
		if(menu.layerWidth>0)layer.style.width=menu.layerWidth;	
	}
	navShowLayers(menu.parent,rootMenu);
	lastMenu=menu;
}

function navHideLayers(menu){
	if(menu==null)return;
	if(window.hideLayer!=null){
		clearTimeout(window.hideLayer);
		window.hideLayer=null;
	}
	var layer=document.getElementById("layer_"+menu.ID);
	if(layer!=null)layer.style.visibility="hidden";
	navHideLayers(menu.parent);
	var td=document.getElementById("td_"+menu.ID);
	if(td!=null)navShowOut(td,menu);
}



/*
=================================================================================
=================================================================================
=================================================================================
=================================================================================
*/
function NavIE(navName){
	this.navName=navName;
	this.output="string";
	this.outputString="";
	this.type="h";
}

NavIE.prototype.writeLayerStart=NavIE_writeLayerStart;
NavIE.prototype.writeLayerEnd=NavIE_writeLayerEnd;
NavIE.prototype.writeTableStart=NavIE_writeTableStart;
NavIE.prototype.writeTableEnd=NavIE_writeTableEnd;
NavIE.prototype.writeTableItem=NavIE_writeTableItem;
NavIE.prototype.write=NavIE_write;
NavIE.prototype.setPosition=NavIE_setPosition;
NavIE.prototype.writeSeparator=NavIE_writeSeparator;
NavIE.prototype.writeHeader=NavIE_writeHeader;
NavIE.prototype.writeFooter=NavIE_writeFooter;
NavIE.prototype.setXmlNode=NavIE_setXmlNode;

function NavIE_setXmlNode(node){
	this.output=getNodeValue(node,"@output",this.output);
	this.type=getNodeValue(node,"@type",this.type);
}

function NavIE_setPosition(menu){
	
	var td=document.getElementById("td_"+menu.ID);
	menu.x=td.offsetLeft+menu.parent.x;
	menu.y=td.offsetTop+menu.parent.y;
	
	menu.height=td.offsetHeight;
	menu.width=td.offsetWidth;
	if(menu.level==1){
		
		var table=td.offsetParent;
		if(table!=null){
			menu.x+=getGlobalLeft(table);
			menu.y+=getGlobalTop(table);
			if(this.type=="h")menu.y+=table.offsetHeight;
			else menu.x+=table.offsetWidth;
		}
	}else{
		menu.x+=menu.width;						
	}
	menu.x+=menu.xoffset;
	menu.y+=menu.yoffset;	
}

function getGlobalLeft(obj){
	if(obj==null)return 0;
	return obj.offsetLeft+getGlobalLeft(obj.offsetParent);
}

function getGlobalTop(obj){
	if(obj==null)return 0;
	return obj.offsetTop+getGlobalTop(obj.offsetParent);
}

function NavIE_writeSeparator(menu){
	if(menu.separator=="")return;
	if(menu.isRoot() && this.type=="v")this.write("<tr>");
	this.write("<td class=\""+menu.separatorCss+"\">"+menu.separator+"</td>");
	if(menu.isRoot() && this.type=="v")this.write("</tr>");
}

function NavIE_writeHeader(menu){
	if(menu.header=="")return;
	if(menu.isRoot() && this.type=="v")this.write("<tr>");
	this.write("<td class=\""+menu.headerCss+"\">"+menu.header+"</td>");
	if(menu.isRoot() && this.type=="v")this.write("</tr>");
}

function NavIE_writeFooter(menu){
	if(menu.footer=="")return;
	if(menu.isRoot() && this.type=="v")this.write("<tr>");
	this.write("<td class=\""+menu.footerCss+"\">"+menu.footer+"</td>");
	if(menu.isRoot() && this.type=="v")this.write("</tr>");
}

function NavIE_writeLayerStart(menu){
	if(menu.isRoot())return;
	this.write("<div id=\"layer_");
	this.write(menu.ID);
	this.write("\" ");
	if(menu.layerCss!="")this.write(" class=\""+menu.layerCss+"\" ");
	
	
	//write default style
	this.write("style=\"");
	this.write("position:absolute;visibility:hidden;");
	if(menu.layerWidth>0)this.write("width:"+menu.layerWidth+";");
	this.write("z-index:"+menu.zindex);
	this.write("\" ");	
	
	this.write(">");
}

function NavIE_writeLayerEnd(menu){
	if(menu.isRoot())return;
	this.write("</div>");
}

function NavIE_writeTableStart(menu){
	this.write("<table border=\"0\" cellspacing=0 cellpadding=0 ");
	if(menu.layerWidth>0)this.write(" width=\""+menu.layerWidth+"\" ");
	if(menu.tableCss!="")this.write(" class=\""+menu.tableCss+"\" ");
	this.write(">");
	if(menu.isRoot() && this.type=="h")this.write("<tr>");
}

function NavIE_writeTableEnd(menu){
	if(menu.isRoot() && this.type=="h")this.write("</tr>");
	this.write("</table>");
}

function NavIE_writeTableItem(menu){
	if(menu.parent.isRoot()==false || this.type=="v")this.write("<tr>");
	this.write("<td");
	this.write(" ID=\"td_"+menu.ID+"\"");
	this.write(" menuID=\""+menu.ID+"\"");
	if(menu.parent && menu.parent.layerWidth>0)this.write(" width=\""+menu.layerWidth+"\" ");
	else if(menu.width>0)this.write(" width=\""+menu.width+"\" ");
	if(menu.height>0)this.write(" height=\""+menu.height+"\"");
	if(menu.align!="")this.write(" align=\""+menu.align+"\"");
	
	//write CSS
	if(menu.rollOutCss!="")this.write(" class=\""+menu.rollOutCss+"\"");
	
	//write Events
	this.write(" onmouseover=\"navRollOver(this,"+this.navName+")\"");
	this.write(" onmouseout=\"navRollOut(this,"+this.navName+")\"");
	this.write(" onclick=\"navClick(this,"+this.navName+")\"");
	this.write(">");
	if(menu.leftItem!=""){
		this.write(menu.leftItem);
	}
	if(menu.rollOutImage!=""){
		this.write("<img border=0 src=\""+menu.rollOutImage+"\" ");
		this.write(" ID=\"img_"+menu.ID+"\" >");
	}else
		this.write(menu.label);
	
	if(menu.rightItem!=""){
		this.write(menu.rightItem);
	}

	this.write("</td>");
	if(menu.parent.isRoot()==false || this.type=="v")this.write("</tr>");
}

function NavIE_write(html){
	if(this.output=="string")this.outputString+=html;
	
	else document.write(html);
	
}

