//ераер
var tree = extendClass (null,{
	id:'tree',
	path:[],
	_getDataXML:function(_xml){		$('tree_menu').empty();
		var response = dom.load_string(_xml);
		var res = response.getElementsByTagName('root').item(0);
		res = res.firstChild;
		if (res.nodeType==3)res = res.nextSibling;
		tree.convertDataView(res,'tree_menu',true,0);
		tree.upTree();
		tree.createPath();	},
	convertDataView:function(data, root, show, level){
		var ul = $().create({type:'ul',id:this.id+'_ul_'+data.getAttribute('mid')+'_'+data.getAttribute('iid'),
		style:{display:(show?'block':'none'), margin:0, padding:0}}).appendTo(root).e();

		if ($().browser.ie()) ul.style.marginLeft=level?'10px':'0px';
		else ul.style.paddingLeft=level?'10px':'0px';

		for (var i=data.firstChild; i!=null; i=i.nextSibling)
		{
			if (i.nodeType!=3)
			{
				for (var j=i.firstChild, n=0;j!=null;j=j.nextSibling) if (j.nodeType!=3) n++;

				var id = i.getAttribute('iid');
				var pid = parseInt(i.getAttribute('pid'));
				var title = i.getAttribute('title');
				var mid = i.getAttribute('mid');
				var url = i.getAttribute('url');
                switch (url){                	default: var _url = url; break;
                	case 'info': var _url = url+'/'+mid+'/'+id; break;                }
                switch(level){                	case 0: var fsize = '16px'; break;
                	case 1: var fsize = '14px'; break;
                	default: var fsize = '12px'; break;                }
				var tit = '<a style="color:rgb(0,153,255); font-size:'+fsize+'" id="'+this.id+'_a_'+mid+'_'+id+'" title="'+title+'" href="/'+globalLang+'/'+_url+'" lang="/'+_url+'">'+title+'</a>';
				if (mid==m_lev.mid && id==m_lev.id) {					tit = '<b style="color:black; font-size:'+fsize+'" id="'+this.id+'_a_'+mid+'_'+id+'" title="'+title+'" lang="/'+_url+'">'+title+'<b>';
					if ($('title_cnt').e()) $('title_cnt').setParam({innerHTML:title});
				}
				$().create({type:'li',style:{listStyleType:'none'},
									param:{ parent_id:pid,
											menu_id:mid,
											id:this.id+'_li_'+mid+'_'+id},
									text:tit
									}).appendTo(ul.id);

				if (n) this.convertDataView(i, this.id+'_li_'+mid+'_'+id, false, level+1);
			}
		}
	},
	upTree:function(){		if (arguments[0]) {			var parent = $(this.id+'_li_'+m_lev.mid+'_'+arguments[0]).e().parent_id;
			this.path.push({title:$(this.id+'_a_'+m_lev.mid+'_'+arguments[0]).e().title, url:$(this.id+'_a_'+m_lev.mid+'_'+arguments[0]).e().lang});
			if ($(this.id+'_ul_'+m_lev.mid+'_'+arguments[0]).e()) $(this.id+'_ul_'+m_lev.mid+'_'+arguments[0]).show();
		}
		else {			if (!$(this.id+'_li_'+m_lev.mid+'_'+m_lev.id).e()) return;
            this.path.push({title:$(this.id+'_a_'+m_lev.mid+'_'+m_lev.id).e().title, url:$(this.id+'_a_'+m_lev.mid+'_'+m_lev.id).e().lang});
			var parent = $(this.id+'_li_'+m_lev.mid+'_'+m_lev.id).e().parent_id;
			if ($(this.id+'_ul_'+m_lev.mid+'_'+m_lev.id).e()) $(this.id+'_ul_'+m_lev.mid+'_'+m_lev.id).show();
		}
		if (parent) tree.upTree(parent);	},
	createPath:function(){		if (!$('path_cnt').e()) return;
		this.path.push({title:main_title, url:'/'});
		var t=[];
		for(var i=0, l=this.path.length; i<l; i++) t.push('<a href="/'+globalLang+this.path[i].url+'" style="color:rgb(191,191,191);font-size:13px;">'+this.path[i].title+'</a>');
		var str = t.reverse().join('&nbsp;<img src="/img_front/r_one.gif" align="absmiddle" />&nbsp;')+'&nbsp;<img src="/img_front/b_one.gif" align="absmiddle" />';
		$('path_cnt').setParam({innerHTML:str});	}
});


var dom = extendClass (null,{
	load_file : function(xmlfile){		if(document.implementation && document.implementation.createDocument)
	    {   var doc = document.implementation.createDocument("","",null);
	    }
	    else if(window.ActiveXObject)
	    {
	    	var doc = new ActiveXObject ('Microsoft.XMLDOM');
	    }
	    doc.async = false;
	    doc.load(xmlfile);
	    return doc || null;
	},
	load_string : function(xmlstr){		if(document.implementation && document.implementation.createDocument)
	    {    var parser = new DOMParser();
	         var doc = parser.parseFromString(xmlstr,"text/xml");
	    }
	    else if(window.ActiveXObject)
	    {
	    	var doc = new ActiveXObject ('Microsoft.XMLDOM');
	        doc.async = false;
	        doc.loadXML(xmlstr);
	    }
	    return doc || null;
	},
	xslt : function(xmldoc,xsldoc){		if(document.implementation && document.implementation.createDocument)
	    {   var proc = new XSLTProcessor();
	        proc.importStylesheet(xsldoc);
	        var xhtmldoc = proc.transformToDocument(xmldoc);
	        var ser = new XMLSerializer();
	        return ser.serializeToString(xhtmldoc);
	    }
	    else if(window.ActiveXObject)
	    {   return xmldoc.transformNode(xsldoc);
	    }
	},
	asXML : function(xmldoc){
		if(document.implementation && document.implementation.createDocument)
	    {   var ser = new XMLSerializer();
	        return ser.serializeToString(xmldoc);
	    }
	    else if(window.ActiveXObject)
	    {   return xmldoc.xml;
	    }
	}
});
