// namespace : webon.js.nav
// object : MenuItem
// version : 1.0.1
// modify : 20/09/2004
// req. js: webon.js.xml---webon_xml_tools.js---r1.0.0


function MenuItem(name,parent){
	
	this.javascript="";
	this.url="";
	this.name=name;
	this.label=name;
	this.parent=parent;
	this.subMenu=new Array();
	this.applyToChild="true";
	this.target=parent && parent.applyToChild=="true"?parent.target:"";
	this.align=parent && parent.applyToChild=="true"?parent.align:"";
	this.ID=parent && parent.applyToChild=="true"?parent.ID+"_"+this.name:this.name;	
	this.level=parent && parent.applyToChild=="true"?parent.level+1:0;	
	this.separator=parent && parent.applyToChild=="true"?parent.separator:"";
	this.separatorCss=parent && parent.applyToChild=="true"?parent.separatorCss:"";
	this.header=parent && parent.applyToChild=="true"?parent.header:"";
	this.headerCss=parent && parent.applyToChild=="true"?parent.headerCss:"";
	this.leftItem=parent && parent.applyToChild=="true"?parent.leftItem:"";
	this.rightItem=parent && parent.applyToChild=="true"?parent.rightItem:"";
	this.footer=parent && parent.applyToChild=="true"?parent.footer:"";
	this.footerCss=parent && parent.applyToChild=="true"?parent.footerCss:"";	
	this.tableCss=parent && parent.applyToChild=="true"?parent.tableCss:"";
	this.layerCss=parent && parent.applyToChild=="true"?parent.layerCss:"";
	this.layerWidth=parent && parent.applyToChild=="true"?parent.layerWidth:0;
	this.rollOverCss=parent && parent.applyToChild=="true"?parent.rollOverCss:"";
	this.rollOutCss=parent && parent.applyToChild=="true"?parent.rollOutCss:"";
	this.separatorCss=parent && parent.applyToChild=="true"?parent.separatorCss:"";
	this.xoffset=parent && parent.applyToChild=="true"?parent.xoffset:0;	
	this.yoffset=parent && parent.applyToChild=="true"?parent.yoffset:0;
	this.width=parent && parent.applyToChild=="true"?parent.width:0;
	this.height=parent && parent.applyToChild=="true"?parent.height:0;
	this.x=0;
	this.y=0;
	this.rollOverImage="";
	this.rollOutImage="";
	
}

MenuItem.prototype.isRoot=MenuItem_isRoot;
MenuItem.prototype.find=MenuItem_find;
MenuItem.prototype.addMenu=MenuItem_addMenu;
MenuItem.prototype.buildNav=MenuItem_buildNav;
MenuItem.prototype.buildSubNav=MenuItem_buildSubNav;
MenuItem.prototype.buildNavItem=MenuItem_buildNavItem;
MenuItem.prototype.setPosition=MenuItem_setPosition;
MenuItem.prototype.setSubPosition=MenuItem_setSubPosition;
MenuItem.prototype.setXmlNode=MenuItem_setXmlNode;


function MenuItem_setXmlNode(node){
	this.name=getNodeValue(node,"@name",this.name);
	this.url=getNodeValue(node,"@url",this.url);
	this.target=getNodeValue(node,"@target",this.target);
	this.label=getNodeValue(node,"@label",this.label);
	this.javascript=getNodeValue(node,"@javascript",this.javascript);
	this.align=getNodeValue(node,"@align",this.align);	
	this.separator=getNodeValue(node,"@separator",this.separator);
	this.leftItem=getNodeValue(node,"@leftItem",this.leftItem);
	this.rightItem=getNodeValue(node,"@rightItem",this.rightItem);
	this.header=getNodeValue(node,"@header",this.header);
	this.footer=getNodeValue(node,"@footer",this.footer);
	this.headerCss=getNodeValue(node,"@headerCss",this.headerCss);
	this.footerCss=getNodeValue(node,"@footerCss",this.footerCss);
	this.tableCss=getNodeValue(node,"@tableCss",this.tableCss);
	this.layerCss=getNodeValue(node,"@layerCss",this.layerCss);
	this.separatorCss=getNodeValue(node,"@separatorCss",this.separatorCss);
	this.rollOverImage=getNodeValue(node,"@rollOverImage",this.rollOverImage);
	this.rollOutImage=getNodeValue(node,"@rollOutImage",this.rollOutImage);
	this.rollOverCss=getNodeValue(node,"@rollOverCss",this.rollOverCss);
	this.rollOutCss=getNodeValue(node,"@rollOutCss",this.rollOutCss);
	this.applyToChild=getNodeValue(node,"@applyToChild",this.applyToChild);
	this.layerWidth=getNodeValue(node,"@layerWidth",this.layerWidth);
	this.width=getNodeValue(node,"@width",this.width);
	this.height=getNodeValue(node,"@height",this.height);
	this.xoffset=getNodeValue(node,"@xoffset",this.xoffset) *1;
	this.yoffset=getNodeValue(node,"@yoffset",this.yoffset) *1;
	if(this.parent!=null)this.ID=this.parent.ID+"_"+this.name;	
	else this.ID=this.name;	
	var subNodes=selectNodes(node,"menuItem");
	for(var i=0;i<subNodes.length;i++){
		var n=subNodes[i];
		var name=getNodeValue(n,"@name","");
		var m=this.addMenu(name);
		m.setXmlNode(n);
	}
}

function MenuItem_find(ID){
	for(var i=0;i<this.subMenu.length;i++){
		var sm=this.subMenu[i];
		if(ID==sm.ID)return sm;
		else{
			var m=sm.find(ID);
			if(m!=null)return m;
		}
	}
	return null;
}

function MenuItem_isRoot(){
	if(this.parent==null)return true;
	else return false;
}

function MenuItem_addMenu(name){
	var m=new MenuItem(name,this);
	this.subMenu[this.subMenu.length]=m;
	this[m.name]=m;
	return m;
}

function MenuItem_buildNav(builder){
	this.buildSubNav(builder);
}

function MenuItem_buildNavItem(builder){
	builder.writeTableItem(this);	
}

function MenuItem_setSubPosition(builder){
	for(var i=0;i<this.subMenu.length;i++){
		var sm=this.subMenu[i];
		sm.setPosition(builder);
	}	
}

function MenuItem_setPosition(builder){
	builder.setPosition(this);
	this.setSubPosition(builder);
}

function MenuItem_buildSubNav(builder){
	if(this.subMenu.length==0)return;
	
	builder.writeLayerStart(this);
	builder.writeTableStart(this);
	builder.writeHeader(this);
	for(var i=0;i<this.subMenu.length;i++){
		if(i>0){
			builder.writeSeparator(this);
		}
		var sm=this.subMenu[i];
		sm.buildNavItem(builder);
	}
	builder.writeFooter(this);
	builder.writeTableEnd(this);
	builder.writeLayerEnd(this);
	
	for(var i=0;i<this.subMenu.length;i++){
		var sm=this.subMenu[i];
		sm.buildSubNav(builder);		
	}
}