
// Global variables
var Page
var ScrollTop = false;
var ScrollDown = false;
var PageIsLoaded = false;
var Resizing=false;


// Constants
var DEFAULT_SCROLL_BUTTON_HEIGHT = 15;
var PX = "px";
var WRITE_NOW = 1;
var DO_NOT_WRITE_NOW = 0;
var CLOSE_DIV = 1;
var DO_NOT_CLOSE_DIV = 0;

document.onreadystatechange=pageStateChanges;
function pageStateChanges() {
	if (document.readyState=="complete"){
			PageIsLoaded = true;
	}
}

/**************************************************************
*   Contstructors - Begin
***************************************************************/

// 
//  XML document object ctor.
//
function new_XML_document()
{
	try
	{
		var doc = new ActiveXObject("MSXMl.DOMDocument")
		return doc
	}
	catch(err)
	{
		return null
	}
}


//
// Page object ctor
//
function new_page(){
    var o=this;
    
	o.x=0;
	o.x2 = document.body.offsetWidth-20;
	o.y=0;
	o.orgy=o.y2=document.body.offsetHeight-6;
	o.x50=o.x2/2;
	o.y50=o.y2/2;
	return o;
}

//
// Menu object ctor
//
function new_menu(name){
  var o=this;

  o.menuCounter=0;
  o.name=name;
  o.submenus=new Array();
  o.level=new Array();
  o.l=new Array();
  o.tim=100;
  o.isresized=0;
  o.isover=0;
  o.zIndex=100;
  o.bar=0;
  o.z=0;
  o.totw=0;
  o.toth=0;
  o.maxw=0;
  o.maxh=0;
  o.scroll=0;

  // Events that can be overriden
  o.onshow="";
  o.onhide="";
  o.onconstruct="";
  
  // Methods
  o.makeMenu=menu_makeMe;
  o.construct=menu_construct;
  o.getcoords=menu_getcoords;
  o.showsub=menu_showsub;
  o.hidesub=menu_hidesub;
  o.makeObjects=menu_makeObjects;
  o.mout=menu_onmouseout;
  o.onclck=menu_onclick;
  
  Page = new new_page(); 
}

/**Level object**/
function new_level(){
  var o=this;
  var a=arguments;
  
  o.width=a[0]||null;
  o.height=a[1]||null; 
  o.regClass=a[2]||null;
  o.overClass=a[3]||null;
  o.borderX=a[4]||null; 
  o.borderY=a[5]||null;
  o.borderClass=a[6]||null;
  o.rows=a[7]>-1?a[7]:null; 
  o.align=a[8]||null;
  o.offsetX=a[9]||null;
  o.offsetY=a[10]||null;
  o.arrow=a[11]||null; 
  o.arrowWidth=a[12]||null;
  o.arrowHeight=a[13]||null;
  o.shadow=a[14]||null;
  o.shadowColor=a[15]||null;
  o.shadowWidth=a[16]||null;
  o.groupBorderColor=a[17]||null;
  o.arrowChar=a[18]||null;
  o.activeClass=a[19]||null;
  return o;
}

function new_menuItem(menuItemName,level){
  this.HTMLObject=document.getElementById(menuItemName)
  this.css=this.HTMLObject.style;
  this.ref=document; 
  this.obj = menuItemName + "Object"; 
  eval(this.obj + "=this");
  this.x=0;
  this.y=0;
  this.width=0;
  this.height=0;
  this.level=level;
  
  this.moveIt = menuItem_MoveIt;
  this.showIt = menuItem_ShowIt;
  this.hideIt = menuItem_HideIt;
  this.clipTo = menuItem_ClipTo;

  return this
}

/**************************************************************
*   Contstructors - End
***************************************************************/

/**************************************************************
*   Global functions - Start
***************************************************************/


// 
//  This function is used to create the DHTML menu from an XML file.
//
function BuildMenu(xmlSource, xmlDefaultSource, securityLevel, menuName) {
    
    // First step: load the XML file.
    var menudata = null;	
	if (xmlSource) {
		var xmlDoc = new_XML_document()
		if (xmlDoc)
		{
		    // To avoid using an onreadystatechange handler, we
		    // just have to set the async property to False.
		    // It means that the document will be completely 
		    // loaded on the next line after the call to the
		    // load method.
			xmlDoc.async = false
			xmlDoc.load(xmlSource)
			if (xmlDoc.parseError.errorCode == 0)
				menudata = xmlDoc.documentElement
				
            if (menudata == null) {
	            xmlDoc.load(xmlDefaultSource)
	            if (xmlDoc.parseError.errorCode == 0)
		            menudata = xmlDoc.documentElement    
            }				
		}
	}
    

        
    // Second step: create the DHTML menu object
    if (menudata != null) {

        // DHTML menu constructor
        var varToEval = '<' + 'script' + ' language="javascript"' + '>';
        varToEval += 'var ' + menuName + '=new new_menu("' + menuName + '");';
        varToEval += '<' + '/' + 'script' + '>';
        document.write(varToEval);
        
        var i;
        var j;
                
        var oM = eval(menuName);
                
        // Gets all the menu attribute and set those attributes in
        // the DHTML menu object
        var sm = menudata.selectSingleNode("//menu");                        
        for(i=0; i<sm.attributes.length; i++)
		{
		    eval("oM." + sm.attributes[i].nodeName + "=" + sm.attributes[i].nodeValue);
		}
       
        // Gets and sets the levels attributes
        var levels = menudata.selectNodes("//level");
        for(i=0; i<levels.length; i++)
		{
		    eval("oM.level[" + i + "]=new new_level()");
		    for(j=0; j<levels[i].attributes.length; j++)
		    {
		        eval("oM.level[" + i + "]." + levels[i].attributes[j].nodeName + "=" + levels[i].attributes[j].nodeValue);
		    }
		}
		
		// Gets and sets the branches attributes
		var branches = menudata.selectNodes("//branch");        
        for(i=0; i<branches.length; i++)
		{
		    if(branches[i].getAttribute("IncludeInMainMenu")!="0") {
		    		        
		        var branchSecurityLevel = (branches[i].getAttribute("securitylevel")==null?"0":branches[i].getAttribute("securitylevel"));

		        // The branchSecurityLevel variable might be a string that already contains a logical operation.
		        // That's why it is reevaluted here.
		        var branchSecurityAccess = eval(branchSecurityLevel + " & " + securityLevel);
		        
		        if (branchSecurityLevel=="0" || branchSecurityAccess ) {
		        
		            eval("oM.makeMenu('" + branches[i].getAttribute("id") + "'" 
		                + ", '" + (branches[i].parentNode.getAttribute("id")==null?"":branches[i].parentNode.getAttribute("id")) + "'"
		                + ", '" + (branches[i].getAttribute("name")==null?"":branches[i].getAttribute("name").replace("'", "&#39;")) + "'"
		                + ", '" + (branches[i].getAttribute("url")==null?"":branches[i].getAttribute("url")) + "'"
		                + ", '" + (branches[i].getAttribute("target")==null?"":branches[i].getAttribute("target")) + "'"
		                + ", '" + (branches[i].getAttribute("width")==null?"":branches[i].getAttribute("width")) + "'"
		                + ", '" + (branches[i].getAttribute("height")==null?"":branches[i].getAttribute("height")) + "'"
		                + ", '" + (branches[i].getAttribute("regImage")==null?"":branches[i].getAttribute("regImage")) + "'"
		                + ", '" + (branches[i].getAttribute("overImage")==null?"":branches[i].getAttribute("overImage")) + "'"
		                + ", '" + (branches[i].getAttribute("regClass")==null?"":branches[i].getAttribute("regClass")) + "'"
		                + ", '" + (branches[i].getAttribute("overClass")==null?"":branches[i].getAttribute("overClass")) + "'"
		                + ", '" + (branches[i].getAttribute("align")==null?"":branches[i].getAttribute("align")) + "'"
		                + ", '" + (branches[i].getAttribute("rows")==null?"":branches[i].getAttribute("rows")) + "'"
		                + ", '" + (branches[i].getAttribute("nolink")==null?"":branches[i].getAttribute("nolink")) + "'"
		                + ", '" + (branches[i].getAttribute("onclick")==null?"":branches[i].getAttribute("onclick")) + "'"
		                + ", '" + (branches[i].getAttribute("onmouseover")==null?"":branches[i].getAttribute("onmouseover")) + "'"
		                + ", '" + (branches[i].getAttribute("onmouseout")==null?"":branches[i].getAttribute("onmouseout")) + "');");
		        } 
            }
		}

        // Gets and sets the menu items attributes. Branches and items are alike.
        // The difference is used only in the XML file to be more clear for human read.
        // In the DHTML menu object, there is no difference between a branch 
        // and an item.
		var menuitems = menudata.selectNodes("//item");        
        for(i=0; i<menuitems.length; i++)
		{

		    var menuitemSecurityLevel = (menuitems[i].getAttribute("securitylevel")==null?"0":menuitems[i].getAttribute("securitylevel"));
		    
		    // The menuitemSecurityLevel variable might be a string that already contains a logical operation.
		    // That's why it is reevaluted here.
		    var menuitemSecurityAccess = eval(menuitemSecurityLevel + " & " + securityLevel);

		    if (menuitemSecurityLevel=="0" || menuitemSecurityAccess ) {
		        		
		        if(menuitems[i].getAttribute("IncludeInMainMenu")!="0") {
		            eval("oM.makeMenu('" + menuitems[i].getAttribute("id") + "'" 	    
        		        + ", '" + (menuitems[i].parentNode.getAttribute("id")==null?"":menuitems[i].parentNode.getAttribute("id")) + "'"		        
		                + ", '" + (menuitems[i].getAttribute("name")==null?"":menuitems[i].getAttribute("name").replace("'", "\'")) + "'"
		                + ", '" + (menuitems[i].getAttribute("url")==null?"":menuitems[i].getAttribute("url")) + "'"
		                + ", '" + (menuitems[i].getAttribute("target")==null?"":menuitems[i].getAttribute("target")) + "'"
		                + ", '" + (menuitems[i].getAttribute("width")==null?"":menuitems[i].getAttribute("width")) + "'"
		                + ", '" + (menuitems[i].getAttribute("height")==null?"":menuitems[i].getAttribute("height")) + "'"
		                + ", '" + (menuitems[i].getAttribute("regImage")==null?"":menuitems[i].getAttribute("regImage")) + "'"
		                + ", '" + (menuitems[i].getAttribute("overImage")==null?"":menuitems[i].getAttribute("overImage")) + "'"
		                + ", '" + (menuitems[i].getAttribute("regClass")==null?"":menuitems[i].getAttribute("regClass")) + "'"
		                + ", '" + (menuitems[i].getAttribute("overClass")==null?"":menuitems[i].getAttribute("overClass")) + "'"
		                + ", '" + (menuitems[i].getAttribute("align")==null?"":menuitems[i].getAttribute("align")) + "'"
		                + ", '" + (menuitems[i].getAttribute("rows")==null?"":menuitems[i].getAttribute("rows")) + "'"
		                + ", '" + (menuitems[i].getAttribute("nolink")==null?"":menuitems[i].getAttribute("nolink")) + "'"
		                + ", '" + (menuitems[i].getAttribute("onclick")==null?"":menuitems[i].getAttribute("onclick")) + "'"
		                + ", '" + (menuitems[i].getAttribute("onmouseover")==null?"":menuitems[i].getAttribute("onmouseover")) + "'"
		                + ", '" + (menuitems[i].getAttribute("onmouseout")==null?"":menuitems[i].getAttribute("onmouseout")) + "');");
                }		        
            }
		}		
        
        // This construct the DHTML menu object.
        oM.construct();
    }
}


/**************************************************************
*   Global functions - End
***************************************************************/


/**************************************************************
*   Private functions - Start
***************************************************************/

function showErrorMessage(txt){
	alert(txt); 
	return false;
}

/***get align num from text (better to evaluate numbers later)**/
function checkAlign(a){
  switch(a){
    case "right": return 1; break; case "left": return 2; break;
    case "bottom": return 3; break; case "top": return 4; break;
    case "righttop": return 5; break; case "lefttop": return 6; break;
    case "bottomleft": return 7; break; case "topleft": return 8; break;
  }return null
}


// getNumericPosition
//
// Return the value of a coordinate (vertical or horizontal) 
// represented by a percentage or expression.
//
// Parameters:
//  expressionToConvert         : the expression to convert.
//  getHorizontalCoordinate     : identify if the conversion of a percentage
//                                is done for a horizontal coordinate =1
//                                or a vertical coordinate =0. Has no effect
//                                for expression other than percentage.
//  numberToReduceAfterConversion : When conversion is done for a percentage,
//                                  this number is reducing the converted
//                                  number, Has no effect for expression 
//                                  other than percentage.
//
function getNumericPosition(expressionToConvert,getHorizontalCoordinate,numberToReduceAfterConversion){

    var returnedValue = 0;
    
	if(expressionToConvert) {
	    if(expressionToConvert.toString().indexOf("%")!=-1){
	        var maxValue = getHorizontalCoordinate?Page.x2:Page.y2;
	        returnedValue=parseInt((maxValue*parseFloat(expressionToConvert)/100));
            if(numberToReduceAfterConversion) 
                returnedValue-=numberToReduceAfterConversion; 
        }
        else 
            returnedValue=eval(expressionToConvert);
    } 
        
    return returnedValue
}

//Creating Div element
function createDiv(   divID
                    , divClass
                    , divContent
                    , writeNow
                    , closeDiv                    
                    , divExtraAttributes
                    , divExtraContent){
  
    var divString='<div id="' + divID + '" class="' + divClass + '"' ;
    if(divExtraAttributes) {
  	    divString+=" "+divExtraAttributes; 
    }
    
    divString+=">"+divContent; 
    
    if(divExtraContent) {
  	    divString+=divExtraContent; 
    }
    
    if(closeDiv) {
    	divString+='</div>'; 
    }
    
    if(writeNow) {
    	document.write(divString);     		
    }
    else {    		
    	return divString
    }
    
    		

  return ""
}

//Getting layer string for each menu
function getLayerStringForEachMenu(subMenu, menuName, borderClass, arrowSrc, arrowHeight, arrowWidth){
  var noLink = subMenu.nolink;
  var submenuDiv='';
  var submenuContent=subMenu.txt;
  var submenuEvent='';
  var submenuId = menuName + '_' + subMenu.name;
    
  if(subMenu.lev==0 && !noLink){
    submenuEvent=' onmouseover="'+menuName+'.showsub(\''+subMenu.name+'\')"' 
    +' onmouseout="'+menuName+'.mout(\''+subMenu.name+'\')"' 
    +' onclick="'+menuName+'.onclck(\''+subMenu.name+'\'); return false" '
  }
  
  if(subMenu.lev!=0) {
  	submenuContent=''; 
  }
  
  if(subMenu.lev==0) {
  	submenuDiv+=createDiv(submenuId+'_0'
  	                    ,borderClass
  	                    ,''); 
  }
  
  submenuDiv+=subMenu.d2=createDiv(submenuId
                        ,subMenu.cl
                        ,submenuContent
                        ,DO_NOT_WRITE_NOW
                        ,DO_NOT_CLOSE_DIV                     
                        ,submenuEvent)
  
  submenuDiv+='</div>'; 
  if(subMenu.lev==0){
    if(arrowSrc)
        submenuDiv+=subMenu.d3=createDiv(submenuId+'_a'
                                ,'clCMAbs'
                                ,'<img alt="" height="'+arrowHeight+'" width="'+arrowWidth+'" src="'+arrowSrc+'" />'
                                ,DO_NOT_WRITE_NOW
                                ,CLOSE_DIV); 
    submenuDiv+="</div>";
  }
  submenuDiv+="\n"; 

  return submenuDiv;
}

// Make rectangular drop shadow around a submenu container
function makeRectangularDropShadow(submenuContainer, color, shadowWidth, top, height)
{

	var blnCreate = false;
	
	if(top==undefined) {
		top = submenuContainer.css.posTop
	}

	if(height==undefined) {
		height = submenuContainer.css.posHeight
	}
	
	if(submenuContainer.css) {

		var i;
		if(!submenuContainer.shadow) {
			submenuContainer.shadow = new Array(shadowWidth);
			blnCreate = true;
		}
		        
		for (i=shadowWidth; i>0; i--)
		{
			if(blnCreate) {
				var rect = document.createElement('div'); 
				var rs = rect.style
				rs.position = 'absolute';
				rs.left = (submenuContainer.css.posLeft + i) + 'px';
				rs.top = (top + i) + 'px';
				rs.width = submenuContainer.css.posWidth + 'px';
				rs.height = height + 'px';
				rs.zIndex = submenuContainer.css.zIndex - i;
				rs.display = 'inline';

				rs.backgroundColor = color;
				var opacity = 1 - i / (i + 1);
				rs.filter = 'alpha(opacity=' + (100 * opacity) + ')';	
				document.body.insertAdjacentElement("AfterBegin", rect);				
				rect.id=submenuContainer.obj + "_shadow_" + i;
				submenuContainer.shadow[i] = rect							
			}
			else {
				submenuContainer.shadow[i].style.left = (submenuContainer.css.posLeft + i) + 'px';
				submenuContainer.shadow[i].style.top = (top + i) + 'px';
				submenuContainer.shadow[i].style.width = submenuContainer.css.posWidth + 'px';
				submenuContainer.shadow[i].style.height = height + 'px';
				submenuContainer.shadow[i].zIndex = submenuContainer.css.zIndex - i;
				submenuContainer.shadow[i].style.display = 'inline';
			}				
		}		
	}

}

// An iFrame control is created at the size of the submenu.
// This is for the menu to be shown over windowed controls like
// dropdowns and listboxes.
function makeiFrame(submenuContainer, shadowWidth, top, height)
{
	var blnCreate = false;
	var submenuIFrame;
	
	if(top==undefined) {
		top = submenuContainer.css.posTop		
	}

	if(height==undefined) {
		height = submenuContainer.css.posHeight
	}
	
	if(submenuContainer.css) {

		if(!submenuContainer.iFrame) {
			blnCreate = true;
		}
		
		if (blnCreate) {
		    submenuIFrame = document.createElement("iframe");	
		    submenuIFrame.id=submenuContainer.obj + "_iframe";
		    submenuIFrame.style.position = 'absolute';
		    submenuIFrame.style.left = (submenuContainer.css.posLeft) + 'px';
		    submenuIFrame.style.top = (top) + 'px';
		    submenuIFrame.style.width = (submenuContainer.css.posWidth + shadowWidth) + 'px';
		    submenuIFrame.style.height = (height + shadowWidth) + 'px';		
		    submenuIFrame.style.filter = "progid:DXImageTransform.Microsoft.Alpha( style=0,opacity=0);";
		    submenuIFrame.style.display = "inline";
		    submenuContainer.iFrame = submenuIFrame;
            
            document.body.insertAdjacentElement("AfterBegin", submenuIFrame);
            
        }
        else {
   		    submenuContainer.iFrame.style.left = (submenuContainer.css.posLeft) + 'px';
		    submenuContainer.iFrame.style.top = (top) + 'px';
		    submenuContainer.iFrame.style.width = (submenuContainer.css.posWidth + shadowWidth) + 'px';
		    submenuContainer.iFrame.style.height = (height + shadowWidth) + 'px';	
            submenuContainer.iFrame.style.display = "inline";
            
        }		
	}
	
}

// Change the class of parent menu items to Active class.
// This function is recursive and change the parents' classes until
// there's no more parent.
function setActiveParent(subMenu, mainMenu) {
	
	subMenu.cl = subMenu.levelActiveClass;	
	if(subMenu.parent!='0') {
		setActiveParent(mainMenu.submenus[subMenu.parent], mainMenu)
	}

	if(subMenu.lev==0) {
		setTimeout((mainMenu.name + '_' + subMenu.name + '.className="' + subMenu.cl + '"'),0);
	}
}


// Script used to debug. It shows detail information about an object.
function showObject(objectToInvestigate, showOnlyObjects, addCrLf) {
	var msg = '';
	
	if(showOnlyObjects==undefined) {
		showOnlyObjects = false;
	}
	if(addCrLf==undefined) {
		addCrLf = true;
	}
	
	try {
		msg += objectToInvestigate + (addCrLf?'\r':';');
		for(var prop in objectToInvestigate) {
			if(showOnlyObjects) {
				if(eval('obj.' + prop) == '[object]')
					msg += prop + '=' + eval('obj.' + prop) + (addCrLf?'\r':';');
				else if(eval('obj.' + prop) == '[object Object]')
					msg += prop + '=' + eval('obj.' + prop) + (addCrLf?'\r':';');					
			}
			else
				msg += prop + '=' + eval('obj.' + prop) + (addCrLf?'\r':';');
		}
		footerSection.innerText=msg + '\r********\r' + footerSection.innerText;
		//alert(msg)
		
	}
	catch(e) {
		alert(e.description)

	}	
}


// These should become methods of object instead of private functions

function scroll(level) {
	var SCROLL_DISTANCE = 5;
	var SCROLL_TIME = 25;	
	
	if(ScrollTop) {
		var strDivToScroll = eval("divScrollTop" + level + ".obj");
		var objDivToScroll = eval(strDivToScroll);
		
		if((objDivToScroll.HTMLObject.scrollTop+DEFAULT_SCROLL_BUTTON_HEIGHT)>=SCROLL_DISTANCE) {
			objDivToScroll.HTMLObject.scrollTop -= SCROLL_DISTANCE;
			setTimeout("scroll(" + level + ")",SCROLL_TIME);
		}
	}
	else if(ScrollDown) {					
		var strDivToScroll = eval("divScrollDown" + level + ".obj");
		var objDivToScroll = eval(strDivToScroll);	
		
		if((objDivToScroll.HTMLObject.scrollTop+objDivToScroll.HTMLObject.clientHeight) < (objDivToScroll.scrollHeight)) {
			objDivToScroll.HTMLObject.scrollTop += SCROLL_DISTANCE;
			setTimeout("scroll(" + level + ")",SCROLL_TIME);
		}
	}
}

function scrollTopOver(level, strObjMainMenu) {
	
	ScrollTop=true;
	ScrollDown=false;
	scroll(level);	
	var objMenu = eval(strObjMainMenu);	
	eval('divScrollTop' + level + '.className="' + objMenu.l[level].overClass + '"')
	
}

function scrollDownOver(level, strObjMainMenu) {
	ScrollDown=true;
	ScrollTop=false;
	scroll(level);	

	var objMenu = eval(strObjMainMenu);	
	eval('divScrollDown' + level + '.className="' + objMenu.l[level].overClass + '"')	
	
}

function scrollTopOut(level, strObjMainMenu) {
	ScrollTop=false;
	
	var objMenu = eval(strObjMainMenu);	
	eval('divScrollTop' + level + '.className="' + objMenu.l[level].regClass + '"')
		
	objMenu.tim = setTimeout("if(!"+objMenu.name+".isover)"+objMenu.name+".hidesub()",objMenu.wait)
	
}

function scrollDownOut(level, strObjMainMenu) {
	ScrollDown=false;
	
	var objMenu = eval(strObjMainMenu);	
	eval('divScrollDown' + level + '.className="' + objMenu.l[level].regClass + '"')
	
	objMenu.tim = setTimeout("if(!"+objMenu.name+".isover)"+objMenu.name+".hidesub()",objMenu.wait)
}

/**************************************************************
*   Private functions - End
***************************************************************/

/**************************************************************
*   new_menu methods - Start
***************************************************************/


//Methods

/**Making each individual menu **/
function menu_makeMe(name,parent,txt,lnk,targ,w,h,img1,img2,cl,levelOverClass,align,rows,nolink,onclick,onmouseover,onmouseout){
  var mainMenu = this; 
 
  if(!name) 
  	name = mainMenu.name+""+mainMenu.menuCounter; 
  var p = parent!=""&&parent&&mainMenu.submenus[parent]?parent:0;
  if(mainMenu.menuCounter==0){
  	var tmp=location.href;
    	
    	if(mainMenu.useBar){
    		if(!mainMenu.barBorderClass) 
    			mainMenu.barBorderClass=mainMenu.barClass; 
    		mainMenu.bar1 = createDiv(mainMenu.name+'bbar_0'
    		                            ,mainMenu.barClass
    		                            ,''
    		                            ,DO_NOT_WRITE_NOW
    		                            ,CLOSE_DIV);
      		mainMenu.bar = createDiv(mainMenu.name+'bbar'
      		                            ,mainMenu.barBorderClass
      		                            ,''
      		                            ,WRITE_NOW
      		                            ,CLOSE_DIV
      		                            ,0
      		                            ,mainMenu.bar1); 
      	}

  }
  var create=1,img,arrow; 
  var subMenu = mainMenu.submenus[name] = new Object(); 
  var i=0;
  subMenu.name=name; 
  subMenu.subs=new Array(); 
  subMenu.parent=p; 
  subMenu.arnum=0; 
  subMenu.arr=0
  var l = subMenu.lev = p?mainMenu.submenus[p].lev+1:0; 
  mainMenu.menuCounter++; 
  subMenu.hide=0;
  

  
  if(l>=mainMenu.l.length){
  	var p1,p2=0; 
  	if(l>=mainMenu.level.length)
  		p1=mainMenu.l[mainMenu.level.length-1];
    	else
    		p1=mainMenu.level[l];
    	mainMenu.l[l]=new Array();
    	if(!p2)
    		p2=mainMenu.l[l-1]
    	if(l!=0){ 
    		if(isNaN(p1.align))
    			p1["align"]=checkAlign(p1.align)
      		for(i in p1){
      			if(i!="str"&&i!="m"){
      				if(p1[i]==null)
      					mainMenu.l[l][i]=p2[i];
      				else
      					mainMenu.l[l][i]=p1[i] 
      			}
      		}
    	}
    	else {
    		mainMenu.l[l]=mainMenu.level[0]; 
    		mainMenu.l[l].align=checkAlign(mainMenu.l[l].align)
    	}
    	mainMenu.l[l]["str"]=''; 
    	mainMenu.l[l].submenus=new Array(); 
    	if(!mainMenu.l[l].borderClass) 
    		mainMenu.l[l].borderClass=mainMenu.l[l].regClass
    	mainMenu.l[l].app=0; 
    	mainMenu.l[l].max=0; 
    	mainMenu.l[l].arnum=0; 
    	mainMenu.l[l].o=new Array(); 
    	mainMenu.l[l].arr=new Array()
    	mainMenu.level[l]=p1=p2=null
    	if(l!=0) {
    		mainMenu.l[l].str=mainMenu.l[l].app=createDiv(mainMenu.name+ '_' +l+'_0'
    		                                                ,mainMenu.l[l].borderClass
    		                                                ,'')    		
    		
    	}
  }

  subMenu.cl=cl=cl||mainMenu.l[l].regClass; 
  subMenu.levelOverClass=levelOverClass||mainMenu.l[l].overClass;
  if(mainMenu.l[l].activeClass)
  	subMenu.levelActiveClass=mainMenu.l[l].activeClass;
  else
 	subMenu.levelActiveClass=mainMenu.l[l].regClass;
 	
  var strURL = document.location.toString()

  if(strURL.indexOf(lnk)>=0&&lnk.length>0) {
  	setActiveParent(subMenu, mainMenu)
  }

  
  if(p){
  	p = mainMenu.submenus[p];
  	p.subs[p.subs.length]=name; 
    	if(p.subs.length==1&&mainMenu.l[l-1].arrow){ 
    		p.arr=1; 
      		if(p.parent){
      			mainMenu.submenus[p.parent].arnum++
        		if(mainMenu.submenus[p.parent].arnum>mainMenu.l[l-1].arnum){
        			mainMenu.l[l-1].str+=mainMenu.l[l-1].arr[mainMenu.l[l-1].arnum]=createDiv(mainMenu.name+ '_a' +(l-1)+'_'+mainMenu.l[l-1].arnum
        			                                                                        ,'clCMAbs'
        			                                                                        ,'<img height="'+mainMenu.l[l-1].arrowHeight +'" width="'+mainMenu.l[l-1].arrowWidth+'" src="'+mainMenu.l[l-1].arrow+'" alt="" />'
        			                                                                        ,DO_NOT_WRITE_NOW
        			                                                                        ,CLOSE_DIV);
        			
        			mainMenu.l[l-1].arnum++
        		}
        	}
        }
    	else if(p.subs.length==1&&mainMenu.l[l-1].arrowChar){ 
    		p.arr=1; 
      		if(p.parent){
      			mainMenu.submenus[p.parent].arnum++
        		if(mainMenu.submenus[p.parent].arnum>mainMenu.l[l-1].arnum){
       				mainMenu.l[l-1].str+=mainMenu.l[l-1].arr[mainMenu.l[l-1].arnum]=createDiv(mainMenu.name+ '_a' +(l-1)+'_'+mainMenu.l[l-1].arnum
       				                                                                            ,'clCMAbs'
       				                                                                            ,'<div class=' + p.cl + ' style="height:' + p.height + 'px" ><font name="ARROWCHAR" face="WebDings">' + mainMenu.l[l-1].arrowChar + '</font></div>'
       				                                                                            ,DO_NOT_WRITE_NOW
       				                                                                            ,CLOSE_DIV);	
        			mainMenu.l[l-1].arnum++        			
        		}
        	}
        }          
        if(p.subs.length>mainMenu.l[l].max)
        	mainMenu.l[l].max = p.subs.length;
        else
        	create=0
  }
  subMenu.rows=rows>-1?rows:mainMenu.l[l].rows;
  subMenu.width=getNumericPosition(w||mainMenu.l[l].width,1);
  subMenu.height=getNumericPosition(h||mainMenu.l[l].height,0);
  subMenu.txt=txt;
  subMenu.lnk=lnk; 
  if(align)
  	align=checkAlign(align);
  subMenu.align=align||mainMenu.l[l].align;

  
  subMenu.targ=targ;
  
  subMenu.create=create;
  subMenu.mover=onmouseover;
  subMenu.out=onmouseout; 
  subMenu.onclck=onclick;
  subMenu.active = submenu_active;
  subMenu.isactive=0;
  subMenu.nolink=nolink
  if(create)
  	mainMenu.l[l].submenus[mainMenu.l[l].submenus.length]=name
  if(img1){
  	subMenu.img1 = new Image();
  	subMenu.img1.src=img1;
  	if(!img2)
  		img2=img1;
  	subMenu.img2 = new Image();
  	subMenu.img2.src=img2;
    	subMenu.cl="clCMAbs";
    	subMenu.txt='';
	subMenu.txt+='<img alt="" src="'+img1+'" width="'+subMenu.width+'" height="'+subMenu.height+'" id="img'+subMenu.name+'" '
	if(!nolink)
		subMenu.txt+='style="cursor:pointer; cursor:hand"';
	subMenu.txt+=' />';

  }
  else {
  	subMenu.img1=0;
  	subMenu.img2=0
  }
  
  if(l==0||create)
  	mainMenu.l[l].str+=getLayerStringForEachMenu(subMenu, mainMenu.name, mainMenu.l[l].borderClass, mainMenu.l[l].arrow, mainMenu.l[l].arrowWidth, mainMenu.l[l].arrowHeight)
  if(l==0){
  	if(subMenu.width>mainMenu.maxw)
  		mainMenu.maxw=subMenu.width;
  	if(subMenu.height>mainMenu.maxh)
  		mainMenu.maxh=subMenu.height;
  	mainMenu.totw+=mainMenu.pxBetween+subMenu.width+mainMenu.l[0].borderX;
  	mainMenu.toth+=mainMenu.pxBetween+subMenu.height+mainMenu.l[0].borderY
  }
  if(lnk && !onmouseover)
  	subMenu.mover="self.status='"+subMenu.lnk+"'"  	
}


//Constructing and initiating top items and bar
function menu_construct(nowrite){

	var c=this;
	if(!c.l[0]||c.l[0].submenus.length==0)
		return showErrorMessage('No menus defined');

	c.makeObjects(nowrite);
	Page = new new_page(); 

	var mpa,o,maxw=c.maxw,maxh=c.maxh,i,totw=c.totw,toth=c.toth,m,px=c.pxBetween
	var bx=c.l[0].borderX,by=c.l[0].borderY,x=c.fromLeft;y=c.fromTop,mp=c.menuPlacement,rows=c.rows
	
	if(rows){
		toth=maxh+by*2;
		totw=totw-px+bx;
	}
	else {
		totw=maxw+bx*2;
		toth=toth-px+by;
	}
	switch(mp){
		case "center":
			x=Page.x2/2-totw/2;
			break;
		case "right":
			x=Page.x2-totw-c.fromRight;
			break;
		case "bottom":
		case "bottomcenter":
			y=Page.y2-toth;
			if(mp=="bottomcenter")
				x=Page.x2/2-totw/2;
			break;
		default:
			if(mp.toString().indexOf(",")>-1)
				mpa=1;
			break;
	}
	
	for(i=0;i<c.l[0].submenus.length;i++){
		m = c.submenus[c.l[0].submenus[i]];

		o = m.b;
		if(mpa)
			rows?x=getNumericPosition(mp[i]):y=getNumericPosition(mp[i],0,0,1); 
		o.moveIt(x,y);
		o.showIt();

		if(m.arr) {
			m.o.arr.showIt();
		}
		o.oy=y; 
		if(!mpa)
			rows?x+=m.width+px+bx:y+=m.height+px+by
	
		
	}

	//MenuBar
	if(c.useBar){
		//Background-Bar
		bbx=c.barBorderX;
		bby=c.barBorderY; 
		bar1=c.bar1= new new_menuItem(c.name+'bbar_0')
		bar=c.bar= new new_menuItem(c.name+'bbar');
		bar.css.zIndex=c.zIndex+1
	
		var barx=c.barX=="menu"?c.submenus[c.l[0].submenus[0]].b.x-bbx:getNumericPosition(c.barx,1);
		var bary=c.barY=="menu"?c.submenus[c.l[0].submenus[0]].b.y-bby:getNumericPosition(c.barY);
		var barw=c.barWidth=="menu"?totw:getNumericPosition(c.barWidth,1,bbx*2);
		var barh=c.barHeight=="menu"?toth:getNumericPosition(c.barHeight,0,bby*2);
		bar1.clipTo(0,barw,barh,0,1);
		bar1.moveIt(bbx,bby);
		bar1.showIt();
		bar.clipTo(0,barw+bbx*2,barh+bby*2,0,1);
		bar.moveIt(barx,bary);
		bar.showIt();
	}
	
	if(c.resizeCheck){
		//Window resize code.		
		setTimeout('window.onresize=new Function("'+c.name+'.resized()")',500)
		
		c.resized=menu_onresized;
						
	}
	if(c.onconstruct)
		eval(c.onconstruct) //onconstruct event
		
	// This is commented because it cause problems when resizing
	//Make Scroll div	
	if(c.scroll) {
	    for(i=0;i<c.l.length;i++){		
		    createDiv("divScrollTop" + i
		                ,"divScrollTop" + i
		                ,"<center><font face='webdings'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></center>"
		                ,WRITE_NOW
		                ,CLOSE_DIV
		                ,'Style="display: none; position: absolute; cursor:pointer; cursor:hand" onMouseOver="scrollTopOver(' + i + ', \'' + c.name + '\');" onMouseLeave="scrollTopOut(' + i + ', \'' + c.name + '\');"');
		    createDiv("divScrollDown" + i
		                ,"divScrollDown" + i
		                ,"<center><font face='webdings'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></center>"
		                ,WRITE_NOW
		                ,CLOSE_DIV
		                ,'Style="display: none; position: absolute; cursor:pointer; cursor:hand" onMouseEnter="scrollDownOver(' + i + ', \'' + c.name + '\');" onMouseLeave="scrollDownOut(' + i + ', \'' + c.name + '\');"');
	    }
    }
	return true
}


//Getting x/y coords for subs 
function menu_getcoords(m,bx,by,x,y,maxw,maxh,ox,oy){
  var a=m.align; x+=m.o.x; y+=m.o.y
  switch(a){
    case 1:  x+=m.width+bx; break; case 2:  x-=maxw+bx; break;
    case 3:  y+=m.height+by; break; case 4:  y-=maxh+by; break;
    case 5:  x-=maxw+bx; y-=maxh-m.height; break;
    case 6:  x+=m.width+bx; y-=maxh-m.height; break;
    case 7:  y+=m.height+by; x-=maxw-m.width; break;
    case 8:  y-=maxh+by; x-=maxw-m.width+bx; break;
  }m.subx=x + ox; m.suby=y + oy
}
//Showing sub elements
function menu_showsub(el){
	if(!PageIsLoaded) {
		return;
	}
	var c=this,pm=c.submenus[el];
	var blnScroll=false;
	var origMaxh=0;

	if(!pm.b||(c.isresized&&pm.lev>0)) 
		pm.b=c.l[pm.lev].b; 
	c.isover=1;
  	clearTimeout(c.tim);
 	var ln=pm.subs.length,l=pm.lev+1;
  	if(c.l[pm.lev].a==el&&l!=c.l.length){
  		if(c.l[pm.lev+1].a) 
  			c.hidesub(l+1,el); 
  		return
  	}
	c.hidesub(l,el); 
	if(pm.mover) 
		eval(pm.mover); 
	if(!pm.isactive) 
		pm.active(1);
  	c.l[pm.lev].a = el; 
  	if(ln==0) 
  		return; 
  	
  	var b = c.l[l].b, bx=c.l[l].borderX, by=c.l[l].borderY, rows=pm.rows;
  	var x=bx,y=by,maxw=0,maxh=0,cn=0; b.hideIt();
  
  	for(var i=0;i<c.l[l].submenus.length;i++){  
  			m=c.submenus[c.submenus[el].subs[i]];
    		
    		if(m && m.parent==el&&!m.hide){
   				o=m.o=c.l[l].o[i];
      			
      			if(x!=o.x||y!=o.y) 
      				o.moveIt(x,y); 
      			
      			nl=m.subs.length;
      			

        		if(o.width!=m.width || o.height!=m.height) 
        			o.clipTo(0,m.width,m.height,0,1);
        		if(o.HTMLObject.className!=m.cl){ 
        			m.isactive=0; 
        			o.HTMLObject.className=m.cl;
        		}

        		o.HTMLObject.innerHTML=m.txt; 

        		if(!m.nolink){
          			o.HTMLObject.onmouseover=new Function(c.name+".showsub('"+m.name+"')")
          			o.HTMLObject.onmouseout=new Function(c.name+".mout('"+m.name+"')") //Added 4.02
 				    o.HTMLObject.onclick=new Function(c.name+".onclck('"+m.name+"')")
          			if(o.oldcursor){
          				o.css.cursor=o.oldcursor; 
          				o.oldcursor=0;
          			}
        		}
        		else {
        			o.HTMLObject.onmouseover=''; 
        			o.HTMLObject.onclick='';  
        			if(o.css.cursor=='') 
        				o.oldcursor="hand"; 
        			else 
        				o.oldcursor=o.css.cursor; 
        			o.css.cursor="auto"
        		}        

      			
      			if(m.arr){
      				o.arr=c.l[l].arr[cn];
      				if(c.l[l].arrowChar) {
						var objArrow=o.arr.HTMLObject.all[1]			
						o.arr.moveIt(x + m.width-(objArrow.offsetWidth+(objArrow.offsetWidth/2)),y-2);
						

      				}
      				else 
      					o.arr.moveIt(x + m.width-c.l[l].arrowWidth-3,y+m.height/2-(c.l[l].arrowHeight/2)); 
      				o.arr.css.visibility="inherit"; cn++;
      				
      			} 
      			else 
      				o.arr=0
      			
      			if(!rows){
      				y+=m.height+by; 
      				if(m.width>maxw) 
      					maxw=m.width; 
      				maxh=y
      			}
      			else {
      				x+=m.width+bx; 
      				if(m.height>maxh) 
      					maxh=m.height; 
      				maxw=x;
      			}
      			
      			o.css.visibility="inherit"; 
      			
    		}
    		
    		else {
    			o = c.submenus[c.l[l].submenus[i]].o; 
    			o.hideIt();
    		} 
    	}
  	
  	if(!rows) 
  		maxw+=bx*2; 
  	else 
  		maxh+=by*2; 
  		
			
  	b.clipTo(0,maxw,maxh,0,1)
  	
  	if(!pm.subx||!pm.suby||c.srollY>0||c.isresized) 
  		c.getcoords(pm,c.l[l-1].borderX,c.l[l-1].borderY,pm.b.x,pm.b.y,maxw,maxh,c.l[l-1].offsetX,c.l[l-1].offsetY)
  	
  	x=pm.subx; 
  	y=pm.suby; 
  	
	origMaxh = maxh

	if(maxh > (document.body.clientHeight-y-c.l[pm.lev].shadowWidth)) {
		maxh = (document.body.clientHeight-y-c.l[pm.lev].shadowWidth-DEFAULT_SCROLL_BUTTON_HEIGHT);
		b.clipTo(0,maxw,maxh,0,1)
		
		if (c.scroll) {
		    blnScroll = true;
		}

	}
		  	
  	b.moveIt(x,y); 

  	
  	if(c.onshow) {
  		eval(c.onshow); 
  	}
    b.showIt()
    
    if(c.l[pm.lev].groupBorderColor) 
    	b.css.border = c.l[pm.lev].groupBorderColor
    	
    if(c.l[pm.lev].shadow)
      	makeRectangularDropShadow(b, c.l[pm.lev].shadowColor, c.l[pm.lev].shadowWidth)  	
      	
    makeiFrame(b, c.l[pm.lev].shadowWidth);
      	

	b.HTMLObject.scrollTop = 0;
	  		
  	if(blnScroll) {
  
  		var divScrollTop = eval("divScrollTop" + l)
  		var divScrollDown = eval("divScrollDown" + l)
  		
  		divScrollTop.style.left = x;
		divScrollTop.style.top = y-DEFAULT_SCROLL_BUTTON_HEIGHT-c.l[l].shadowWidth;
		divScrollTop.style.width = maxw;
		divScrollTop.style.height = DEFAULT_SCROLL_BUTTON_HEIGHT;
		
		divScrollDown.style.left = x;
		divScrollDown.style.top = y+maxh-c.l[l].shadowWidth;
		divScrollDown.style.width = maxw;
		divScrollDown.style.height = DEFAULT_SCROLL_BUTTON_HEIGHT;
		
		
		divScrollTop.className = c.l[l].regClass;
		divScrollDown.className = c.l[l].regClass;
		divScrollTop.style.border = c.l[l].groupBorderColor
		divScrollDown.style.border = c.l[l].groupBorderColor
		
		divScrollTop.style.zIndex=c.z+1; 
		divScrollDown.style.zIndex=c.z+1; 
				
		b.scrollHeight = origMaxh;
		
		makeRectangularDropShadow(b, c.l[pm.lev].shadowColor, c.l[pm.lev].shadowWidth,b.css.posTop - DEFAULT_SCROLL_BUTTON_HEIGHT-c.l[l].shadowWidth, b.css.posHeight + (DEFAULT_SCROLL_BUTTON_HEIGHT*2) + (c.l[l].shadowWidth*2));
		makeiFrame(b, c.l[pm.lev].shadowWidth,b.css.posTop - DEFAULT_SCROLL_BUTTON_HEIGHT-c.l[l].shadowWidth, b.css.posHeight + (DEFAULT_SCROLL_BUTTON_HEIGHT*2) + (c.l[l].shadowWidth*2));
	
		divScrollTop.style.display = "inline";
		divScrollDown.style.display = "inline";

		divScrollTop.obj = b.obj;
		divScrollDown.obj = b.obj;

  	}
}
// Hide sub elements 
function menu_hidesub(l,el){

  if(!(ScrollTop||ScrollDown)) {
	var c = this,tmp,m,i,j
	if(!l){
  		if(!l)
  			l=1;
	}
	for(var i=l-1;i<c.l.length;i++){
  		if(i>0&&i>l-1) 
  			c.l[i].b.hideIt()
    		if(c.l[i].a&&c.l[i].a!=el){
    			m=c.submenus[c.l[i].a]; 
    			m.active(0,1); 
    			if(m.mout) 
    				eval(m.mout); 
    			c.l[i].a=0
    		}
    		if(i>l){
    			for(j=0;j<c.l[i-1].arnum;j++){
    				c.l[i-1].arr[j].hideIt(); 
    			}
    		} //opera bug
	}
	if(!l&&c.onhide)
  		eval(c.onhide) //onhide event
  }
}


// Make all menu div objects
function menu_makeObjects(nowrite){
  var c = this,oc,name,bx,by,w,h,l,no,ar,id,layersNest
    
  if(!nowrite){
  
  	for(var i=0;i<c.l.length;i++){
  	    if(i!=0) 
  	    	c.l[i].str+="</div>";
   	    	document.write(c.l[i].str);      	    
      	    c.l[i].str=null; 
    	}

  }
  
  c.z=c.zIndex+2
  
  for(i=0;i<c.l.length;i++){
  	oc=0
  	if(i!=0){
  		bobj=c.l[i].b = new new_menuItem(c.name + "_"+i+"_0",i); 
  		bobj.css.zIndex=c.z; 
		bobj.css.overflow='hidden';
   	}; 
    	bx=c.l[i].borderX; 
    	by=c.l[i].borderY; 
    	c.l[i].max=0;
    	
    	for(j=0;j<c.l[i].submenus.length;j++){
     		m = c.submenus[c.l[i].submenus[j]]; 
     		name=m.name; 
     		w=m.width; 
     		h=m.height; 
     		l=m.lev; 
     		no=m.nolink;
      		if(i>0){
      			m.b = bobj; 
      			layersNest=i;
      		}
      		else { 
      			m.b = new new_menuItem(c.name + "_"+name+"_0",i); 
      			m.b.css.zIndex=c.z; 
      			m.b.clipTo(0,w+bx*2,h+by*2,0,1); 
      			layersNest=name;
      		}
      		id = c.name + "_"+name; layersNest=c.name + "_"+layersNest;
		if(m.create){
        		o=m.o=new new_menuItem(id,i); 
        		o.z=o.css.zIndex=c.z+1; 
       			c.l[l].o[oc]=o; 
       			oc++;

      	  		if(l==0&&m.img1) 
        			o.css.visibility='inherit'; 
        		o.arr=0;
      		}
      		if(l==0) 
      			o.clipTo(0,w,h,0,1); 
      		o.moveIt(bx,by); 
      		o.z=o.css.zIndex=c.z+2;
      		if(j<c.l[i].arnum){
      			c.l[i].arr[j]=new new_menuItem(c.name+"_a"+i+"_"+j, i)
      			c.l[i].arr[j].css.zIndex=c.z+30+j;
      		}
      		else if(l==0&&m.arr==1){
      			o.arr=new new_menuItem(id+"_a",i)
      			o.arr.moveIt(bx+m.width-c.l[i].arrowWidth-3,by+m.height/2-(c.l[i].arrowHeight/2)); 
      			o.arr.css.zIndex=c.z+20;
      		}
      		c.z++; 
    	}
  }
}

// Onmouseout
function menu_onmouseout(){
	var c = this;
  if(!(ScrollTop||ScrollDown)) {
	clearTimeout(c.tim)
	c.isover = 0
	c.tim = setTimeout("if(!"+c.name+".isover)"+c.name+".hidesub()",c.wait)
  }
}

// Onclick of an item
function menu_onclick(m){


  m = this.submenus[m]
  if(m.onclck) eval(m.onclck); 
  lnk=m.lnk; targ=m.targ

  if(lnk){
    this.hidesub();
    	if(String(targ)=="undefined" || targ=="" || targ==0 || targ=="_self") location.href=lnk 
    else if(targ=="_blank") window.open(lnk)
    else if(targ=="_top" || targ=="window") top.location.href=lnk
    else if(top[targ]) top[targ].location.href=lnk
    else if(parent[targ]) parent[targ].location.href=lnk
  }else return false
 
}

// Capturing resize
function menu_onresized(){  
  if(Resizing) return;

  page2=new new_page(); 
  var off=5;

  if(page2.x2<Page.x2-off || page2.y2<Page.orgy-off || page2.x2>Page.x2+off || page2.y2>Page.orgy+off){
      Page=page2; 
      this.isresized=1; 
      if(this.onresize) eval(this.onresize); 
      this.hidesub();
      this.construct(1);      
      if(this.onafterresize) eval(this.onafterresize)
  }  
}

    /**************************************************************
    *   submenu methods - Start
    ***************************************************************/

    function submenu_active(on,h){
	    if(this.o.arr)
		    on?this.o.arr.hideIt():this.o.arr.css.visibility="inherit"

  		if(!this.img2)
  			this.o.HTMLObject.className=on?this.levelOverClass:this.cl
   		else
   			document.images["img"+this.name].src=on?this.img2.src:this.img1.src;
            	
  	    this.isactive=on?1:0
    }


    /**************************************************************
    *   submenu methods - End
    ***************************************************************/


/**************************************************************
*   new_menu methods - End
***************************************************************/


/**************************************************************
*   new_menuItem methods - Start
***************************************************************/

function menuItem_MoveIt(x,y){
	this.x=x;
	this.y=y;
	this.css.left=x+PX;
	this.css.top=y+PX
}

function menuItem_ShowIt(o){
	this.css.visibility="visible";
}

function menuItem_HideIt(no){
	if(!(ScrollTop||ScrollDown)) {
		this.css.visibility="hidden";
			
		try { 		

            this.iFrame.style.display = 'none';
			for(var i=1;i<this.shadow.length;i++) {
				this.shadow[i].style.display = 'none';
			}			
			eval('divScrollTop' + this.level + '.style.display = "none"');				
			eval('divScrollDown' + this.level + '.style.display = "none"');
			
		} 
		catch(e) {
		}
	}	
}

function menuItem_ClipTo(top,right,bottom,left,setwidth){ 
	this.width=right;
	this.height=bottom;
	
	if(top<0)
		top=0;
	if(right<0)
		right=0;
	if(bottom<0)
		bottom=0;
	if(left<0)
		left=0;
	
	this.css.clip="rect(" + top + PX + "," + right + PX + "," + bottom + PX + "," + left + PX + ")";
	
	if(setwidth){
	
		this.css.width=right+PX;
		this.css.height=bottom+PX;

	}

	
}
  
/**************************************************************
*   new_menuItem methods - End
***************************************************************/