﻿//<class name='displayMenu' version='6.31' date='01.04.2006' author='HK510.com' />
function __displaymenu(o)
{
	this.extend 			= __class;
	this.extend(o);
	this.toString			= _toString;
	this.display			= _display;
	this.setInitialValue	= _setInitialValue;
	this.runItitial			= _runItitial;
	this.initialValue		= null;
	function _toString(){return "root.div.displaymenu";};
	function _display()
	{
		for(var i=0;i<=arguments.length-1;i++) core(arguments[i],_scope(this));
	};
	function _setInitialValue(v)
	{
		_scope(this).initialValue = v;
	};
	function _runItitial()
	{
		var o = _scope(this);
		var v = o.initialValue;
		if(v!=null) o.display(v);
	};
	function _scope(s){return (s==root.div.displaymenu)?s:root.div.displaymenu;};
	function core(i,w)
	{
		var t = typeof(i);
		var _i = null;
		if(t=='string' || t=='object') _i = (t=='string')? i : i.id;
		if(_i==null) return;
		var a =  (_i.indexOf('$')!=-1)? _i.split('$') : null;
		if(a==null) return;
		var s1= a[0];
		var a1= a[1].split('.');
		var m = (!w.exist(s1))? w.createEmptyObject(s1) : w[s1];
		if(!m.exist('__p')) m.__p = new Array();
		var c = m;
		var s2 = s1+'$'+a1[0];
		for(var i = 0; i<=a1.length-1;i++)
		{
			var s3 = a1[i];
			if(i!=0) s2 += '.'+s3;
			if(!c.exist(s3))
			{
				var m2 =  c.createEmptyObject(s3);
				 m2._img = w.getObject('img_'+s2);
			}
			c = c[s3];
			c.id = s2;
		}
		if(w.getObject(_i)!=null)
		{
			var l = getLimit(a1,m.__p);
			if(l==null)
			{
				setMenuItem(l,a1,s1,true,w);
			}else{
				var m2 = getItem(a1,l,s1,w);
				var s2 = a1.join('.');
				var s3 = m.__p.join('.');
				if(s2==s3) setDisplay(m2,!m2.visible);
				if(s2!=s3)
				{
					if(!m2.visible) setMenuItem(l,a1,s1,true,w);
					setMenuItem(l,m.__p,s1,false,w);
				}
			}
		}
		m.__p = a1;
	};
	function getLimit(a,b)
	{
		var r = null;
		if(b.length-1!=-1){for(var i = 0;i<=a.length-1;i++){r = i;if(a[i]!=b[i]) break;}}
		return r;	
	};
	function setMenuItem(l,a,m,v,w)
	{
		var l = (l==null)? 0 : l;
		for(var i = a.length-1;i>=l;i--) setDisplay(getItem(a,i,m,w),v);
	};
	function getItem(a,l,m,w)
	{
		var o = w[m];
		for(var i =0;i<=l;i++) o = o[a[i]];
		return o;		
	};
	function setDisplay(o,v)
	{	
		o.visible = v;
		var d = (v)? 'block' : 'none';
		var s = (v)? 'active' : 'normal';
		root.div.setProperty(o.id,'display',d);
		if(o._img!=null) root.images.swap(o._img.id+','+s);		
	};
};
root.div.extendClass('displaymenu',__displaymenu);
root.events.register(root.div.displaymenu.runItitial,'onload');
