﻿var menu_engine = {
	a: {  l:10, select:[], fx:{ set:0, to:[30,10], e:[] }, ie:navigator.appName=="Microsoft Internet Explorer", id:function($){ return document.getElementById($); }, mouse:{}, cursor:[], css:function(elm,property){ var style = navigator.appName!='Microsoft Internet Explorer'?document.defaultView.getComputedStyle(elm, null):elm.currentStyle; return style[property]; } },
	elm: {},
	init: function(){  

		with(menu_engine)
		{
			if(typeof a.data!="object")
				return alert("<menu>\nInvalid input.");
				
			elm.a = document.createElement("div");
			elm.a.setAttribute("id","menu");
			a.place.appendChild(elm.a);

			for(x in a.data)
			{
				a.data[x].a_.elm = document.createElement("a");
				a.data[x].a_.elm.setAttribute("href",a.data[x].a_.url);
				a.data[x].a_.elm.setAttribute((a.ie?"className":"class"),"link"+(typeof a.data[x].a_.className!='undefined'?" "+a.data[x].a_.className:""));
				a.data[x].a_.elm.setAttribute("menu_run","menu_engine.a.data['"+x+"']");
				a.data[x].a_.elm.setAttribute("menu_depth","0");
				
				a.data[x].a_.elm.innerHTML = x;
				
				elm.a.appendChild(a.data[x].a_.elm);

				a.data[x].a_.elm.childNodes[0].setAttribute("menu_run","menu_engine.a.data['"+x+"']");
			}
			
			var $ = document.createElement("div");
			$.style.clear = "both";
			elm.a.appendChild($);
			
			for(i=1; i<a.l; i++)
			{
				elm["sub_"+i] = document.createElement("div");
				elm["sub_"+i].setAttribute((a.ie?"className":"class"),"sub sub_"+i);
				elm["sub_"+i].setAttribute("menu_hide",i+1)
				elm.a.appendChild(elm["sub_"+i]);
			}
			
			if(a.ie)
				document.body.attachEvent("onmousemove",menu_engine.du.fmouse);
			else
				document.body.addEventListener("mousemove",menu_engine.du.fmouse,false);
	
		}
	},
	du: {
		select: function(key,depth)
		{
			with(menu_engine)
			{
				if(key==null)return 0;
			
				var type = key.split("+").length>1?1:0;
				key = key.split("+").length>1?key.split("+")[1]:key;
				var node = document.getElementById(key);
				
				if(type)
				{
					node.style.visibility = "visible";
					if(typeof a.select[depth]!="undefined" && a.select[depth]!=node)
						a.select[depth].style.visibility = "hidden"
				} /*else {
					node.style.background = "#434750 url(nav1.png) no-repeat 7px center";
					if(typeof a.select[depth]!="undefined" && a.select[depth]!=node)
						a.select[depth].style.visibility = "hidden"
				}*/

				a.select[depth] = node;
			}
		},
		fx: function(b,pdTop)
		{
			with(menu_engine)
			{
				
				if(a.fx.set<1)return false;
				
				a.fx.e.push({ a:null, lp:0, b:b });
				var $ = a.fx.e.length-1;
				eval('a.fx.e['+$+'].a = setInterval(function(){ if(a.fx.e['+$+'].lp==10){ clearInterval(a.fx.e['+$+'].a); return false }; a.fx.e['+$+'].lp+=1; a.fx.e['+$+'].b.style.opacity = (a.fx.e['+$+'].lp<10?("0."+a.fx.e['+$+'].lp):"1"); a.fx.e['+$+'].b.style.filter = "Alpha(Opacity="+(a.fx.e['+$+'].lp*10)+")"; },a.fx.to[0]);');
				
				if(a.fx.set<2)return false;
				a.fx.e.push({ a:null, lp:0, li:b.offsetHeight-parseInt(a.css(b,"paddingTop"))-parseInt(a.css(b,"paddingBottom"))-pdTop, b:b });
				b.style.height = pdTop;
				var $ = a.fx.e.length-1;
				eval('a.fx.e['+$+'].a = setInterval(function(){ if(a.fx.e['+$+'].lp>=a.fx.e['+$+'].li){ clearInterval(a.fx.e['+$+'].a); return false }; a.fx.e['+$+'].lp+='+(a.fx.e[$].li/10)+'; a.fx.e['+$+'].b.style.height = ('+pdTop+'+a.fx.e['+$+'].lp)+"px"; },a.fx.to[1]);');
			}
		},
		get: function(data,place){
		
			with(menu_engine)
			{
				a.place = place;
				if(document.implementation&&document.implementation.createDocument)
				{
					a.xml = document.implementation.createDocument("", "", null);
					a.xml.onload = du.convert;
				}
				else if(window.ActiveXObject)
				{
					a.xml = new ActiveXObject("Microsoft.XMLDOM");
					a.xml.onreadystatechange = function(){
						if (a.xml.readyState == 4)du.convert()
					};
				}
				a.xml.load(data);
			}
			
		},
		convert: function()
		{
			with(menu_engine)
			{
				a.data = {};
				var node = a.xml.getElementsByTagName("root");
				
				for(i=0; i<node.length; i++)
				{
					a.data[node[i].getElementsByTagName("title")[0].childNodes[0].nodeValue] = { "a_":{ "url":node[i].getElementsByTagName("url")[0].childNodes[0].nodeValue, elm:null } }
					
					var $ = node[i].getElementsByTagName("sub0");
					if($.length>0)
						du.fsub($,a.data[node[i].getElementsByTagName("title")[0].childNodes[0].nodeValue],0);	
					
				}
				init();
			}
		},
		fsub: function($,$$,$$$)
		{
			with(menu_engine)
			{
				for(f=0; f<$.length; f++)
				{
					$$[$[f].getElementsByTagName("title")[0].childNodes[0].nodeValue] = { "a_":{ url:"", elm:"" } }
					if($[f].getElementsByTagName("sub"+($$$+1)).length>0)
						du.fsub($[f].getElementsByTagName("sub"+($$$+1)),$$[$[f].getElementsByTagName("title")[0].childNodes[0].nodeValue],$$$);
				}
			}
		},
		show: function(data,depth,pdTop,fx){
			with(menu_engine)
			{
				data_string = data;
				data = eval(data);
				pdTop = typeof pdTop=="undefined"?0:pdTop;
				depth = typeof depth=="undefined"?0:depth;
				
				var $ = 0;
				for(i=depth; i<a.l-1; i++)
					elm["sub_"+(i+1)].style.display = "none";
				
				depth = depth>-1?depth:0;
				du.select(typeof data["a_"]["parent"]!="undefined"?data["a_"]["parent"]:null,depth);

				for(x in data)
				{
					if(x=="a_")
						continue;
					if($==0)
						try{ elm["sub_"+(depth+1)].innerHTML = ""; }catch (e){}

					$++;
					data[x].a_.elm = document.createElement("a");
					data[x].a_.elm.setAttribute("href",data[x].a_.url);
					data[x].a_.elm.setAttribute("id","link_"+$);

					var $$ = 0;
					for(xx in data[x])
					{
						if(xx=="a_")
							continue;
						$$++;
					}
			
					if($$>0)
					{
						eval("data[x].a_.elm.onmouseover = function(){ data['"+x+"'].a_.elm.style.background = '#434750  url(/tr/_i/nav1.png) no-repeat 7px center'; }; data[x].a_.elm.onmouseout = function(){ data['"+x+"'].a_.elm.style.background = 'transparent  url(/tr/_i/nav0.png) no-repeat 7px center'; }");
						data[x].a_.elm.setAttribute("menu_run",data_string+"['"+x+"']");
						data[x].a_.elm.setAttribute("menu_depth",depth+1);
					}
					else
						data[x].a_.elm.setAttribute("menu_hide",depth+1);
					
					data[x].a_.elm.innerHTML = x;

					try { elm["sub_"+(depth+1)].appendChild(data[x].a_.elm); }catch (e){}
				}
				
				if($>0)
				{
					var $ = 0;
					if(depth>0)
					{
						
						$ = parseInt(a.ie?(elm["sub_"+depth].currentStyle.marginLeft=="auto"?0:elm["sub_"+depth].currentStyle.marginLeft):document.defaultView.getComputedStyle(elm["sub_"+depth],null).marginLeft);
						$ = ($ + parseInt(elm["sub_"+depth].offsetWidth) + parseInt(elm["sub_"+(depth)].offsetWidth))>=((a.ie?document.body.clientWidth:window.innerWidth)-50)?($-parseInt(elm["sub_"+depth].offsetWidth)) : ($ + parseInt(elm["sub_"+depth].offsetWidth));
						elm["sub_"+(depth+1)].style.marginTop = pdTop+"px";
    				}
					else 
					{
						pdTop = 0;
						for(x in a.data)
						{
							if(a.data[x]==data)
								break;
						
							$ += a.data[x].a_.elm.offsetWidth;
						}
					}
					try { 
						elm["sub_"+(depth+1)].style.height = "auto";
						elm["sub_"+(depth+1)].style.marginLeft = ($-(navigator.appVersion.search("MSIE 7.0")>(-1)?1:0))+"px";
						elm["sub_"+(depth+1)].style.display = "block";
					}catch (e){}
					
					if(fx && a.fx.set>0)
					{
						elm["sub_"+(depth+1)].style.opacity = "0";
						elm["sub_"+(depth+1)].style.filter = "Alpha(Opacity=0)";
						du.fx(elm["sub_"+(depth+1)],pdTop);
					} 
                    /*
					if(typeof (elm["sub_"+(depth)])!="undefined" && elm["sub_"+(depth+1)].offsetHeight<elm["sub_"+(depth)].offsetHeight)
						elm["sub_"+(depth+1)].style.height = elm["sub_"+(depth)].offsetHeight+"px"
                    */						
					if(typeof (elm["sub_"+(depth)])!="undefined" && elm["sub_"+(depth+1)].offsetHeight<elm["sub_"+(depth)].offsetHeight)
						elm["sub_"+(depth+1)].style.paddingBottom = 3+"px"; 
					
					if(data_string.split("_i/menu/insan_kaynaklari_on.gif").length>1){
						elm["sub_"+(depth+1)].style.marginLeft = navigator.appVersion.search("MSIE 7.0")>(-1)?"405px":"405px";
						try { 
							elm["sub_"+(depth)].style.marginLeft = (405)+"px";
							elm["sub_"+(depth)].style.display = "block";
							elm["sub_"+(depth+1)].style.marginLeft = (637)+"px";

						}catch (e){}
					} else if (data_string.split("_i/menu/musteri_iliskileri_on.gif").length>1) {
						elm["sub_"+(depth+1)].style.marginLeft = navigator.appVersion.search("MSIE 7.0")>(-1)?"277px":"277px";
						try { 
							elm["sub_"+(depth)].style.marginLeft = (277)+"px";
							elm["sub_"+(depth)].style.display = "block";
							elm["sub_"+(depth+1)].style.marginLeft = (509)+"px";
						}catch (e){}
					} 
					
				} else
					du.hide();
			}
		},
		hide: function(block)
		{
			block = typeof block=="number"?block:0;
			with(menu_engine)
			{
				for(i=block+1; i<a.l; i++)
					elm["sub_"+i].style.display = "none";
				
			}
		},
		fmouse: function(event)
		{
			with(menu_engine)
			{
				a.mouse.x = a.ie?window.event.clientX:event.clientX;
				a.mouse.y = a.ie?window.event.clientY:event.clientY;
				a.mouse.t = a.ie?window.event.srcElement:event.target;

				if(a.mouse.t.getAttribute("menu_run"))
				{
					var fx = 0;
					if(a.cursor[0]!=a.mouse.t)
					{
						a.cursor[0] = a.mouse.t;
						fx+=1;
					}
					
					du.show(a.mouse.t.getAttribute("menu_run"),parseInt(a.mouse.t.getAttribute("menu_depth")),a.mouse.t.offsetTop,fx);
					
				} else if(a.mouse.t.getAttribute("menu_hide"))
				{
					a.cursor[0] = null;
					du.hide(parseInt(a.mouse.t.getAttribute("menu_hide")));
				}
				else {
					a.cursor[0] = null;
					du.hide();
					if(a.select.length>0)
					a.select[0].style.visibility = "hidden";
				}
			}
		}	
	}
	
}
