//	$Id: menu.js 1888 2005-10-07 16:02:48Z phil $
//	$Author: phil $
//	$Revision: 970 $ 


function MenuContent(nframes){
	this.defText = "<center><i>загрузка</i></center>";
	this.content=Array();
	this.nframe = 0;
	this.maxframe = nframes;

	this.LoadMenuContent = function(nSubLevel,nItem,sId){
		window.frames['preload'+this.nframe].location.href="submenu.do?item="+nItem+"&level="+nSubLevel+"&object="+sId;
		this.nframe++;
		if(this.nframe > (this.maxframe-1))
			this.nframe=0;
	};

				
	this.CreateFrames = function(){
		sHtml = "";
		for(i=0; i<this.maxframe;i++){
			sHtml += '<p><iframe name="preload'+i+'" src=""></iframe>';
		}

		FramesLayer = document.createElement("div");
		FramesLayer.className = "frameslayer";
		document.body.appendChild(FramesLayer);
		FramesLayer.innerHTML = sHtml;
	};

	this.getContent = function(nSubLevel, nItem, sId){
		if(this.content[nSubLevel+'x'+nItem+'x'+sId]){
			return this.content[nSubLevel+'x'+nItem+'x'+sId];
		}else{
//			this.content[nSubLevel+'x'+nItem+'x'+sId] = this.defText;
			this.LoadMenuContent(nSubLevel,nItem,sId);
			return this.defText;
		}
	};

	this.setContent = function(nSubLevel, nItem, sId, sText){
		this.content[nSubLevel+'x'+nItem+'x'+sId] = sText;
	};
	this.CreateFrames();
}

function myMenu(){

	this.nlevel=1;
	this.lm = new cLayerManager();
	this.refcount = 0;
	this.Content = new MenuContent(12);

	this.setSubMenuHtml = function(nSubLevel,nItem,sId,sHtml){
		this.Content.setContent(nSubLevel,nItem,sId, sHtml);
		if(document.getElementById('submenu'+nSubLevel)!=null){
			SubMenuLayer = document.getElementById('submenu'+nSubLevel);
			if(SubMenuLayer.getAttribute('sid') == sId)
				SubMenuLayer.innerHTML = sHtml;
			}
		};

	this.removeReference = function(){
		this.refcount--;
	};

	this.addReference = function(){
		this.refcount++;
	};

	this.isInUse = function(){
		if(this.refcount == 0){
			return false;
		}else{
			return true;
		}
	};

	this.subMenu = function(nSubLevel,nItem, sId){
		if(this.nlevel<nSubLevel){
			this.nlevel++;
			SubMenuLayer = document.createElement("div");
			SubMenuLayer.setAttribute('id', 'submenu'+this.nlevel);
			SubMenuLayer.setAttribute('name', 'submenu'+this.nlevel);
			SubMenuLayer.onmouseover = MouseIn;
			SubMenuLayer.onmouseout = MouseOut;
			SubMenuLayer.className = "menulayer";
			document.body.appendChild(SubMenuLayer);
		}

		SubMenuLayer = this.lm.GetObject('submenu'+nSubLevel);
		SubMenuLayer.setAttribute('sid', ''+sId);
		SubMenuLayer.innerHTML = this.Content.getContent(nSubLevel,nItem,sId);

		this.HideMenu(nSubLevel);
		this.lm.SetObject('submenu'+(nSubLevel-1));
		Y = this.lm.GetPosition().top;

		this.lm.SetObject('submenu'+nSubLevel);
		this.lm.SetPosition((nSubLevel-1)*180,Y+nItem*15);
		this.lm.Show();
	};

	this.HideMenu = function(nSubLevel){
		for(i=this.nlevel;i>nSubLevel;i--){
			this.lm.SetObject('submenu'+i);
			this.lm.Hide();
		}
	};

	this.Echo = function(){
		return "My Menu class v. 0.1";
	}
};