var XmlHttp;
var httpObject;
var objNode;

function MagicAjax(){				
	this.loadFile;
	this.sendmethod="GET";
	this.cacheClear;
	this.loaderDiv;
	this.ContentArea;
	this.fillType;
	
	this.root = "http://" + window.location.hostname + "";
	this.myOrientArr = myOrientArr;
	MA=this;
	

}
	

						
MagicAjax.prototype.build = function(){
	
	document.getElementById(this.loaderDiv).style.display="block";
	document.getElementById(this.ContentArea).style.display="none";


	this.CreateXmlHttp();
	if(XmlHttp){
		XmlHttp.onreadystatechange = MA.HandleResponse;
		var clearCache="";					
		if (MA.cacheClear){clearCache="?" + Math.random()* 1000;}
		XmlHttp.open(MA.sendmethod, MA.loadFile + clearCache,  true);
		XmlHttp.send(null);		
	}
				
}
			
MagicAjax.prototype.CreateXmlHttp = function(){
	try{
		XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e){
		try{
			XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc){
			XmlHttp = null;
		}
	}
	if(!XmlHttp && typeof XMLHttpRequest != "undefined"){
		XmlHttp = new XMLHttpRequest();
	}
}
MagicAjax.prototype.linkkCleaner = function(_link){
	if (_link.split("?") != "undefined"){
		if (_link.split("?")[0].split(this.root) != "undefined"){
			_link = _link.split("?")[0]//.split(this.root)[1];
			_link = _link.toLowerCase();
		}
	}
	if (_link.split("#") != "undefined"){
		_link = _link.split("#")[0];
	}
	return _link;
}	


MagicAjax.prototype.checkLink = function(_link){
	var r;
	var t;
	
	if (_link.substring(0,7) == "http://") {
		r = _link;
		t = "_blank";
	}else if(_link.substring(0,4) == "java") {
		r = _link;
	}else if (_link.substring(_link.length-3,_link.length) == "pdf"){
		r = this.root + _link;
		t = "_blank";
	}else {
		r = this.root + _link;
		t = "_self";
	}
	
	return [r,t];
}

MagicAjax.prototype.writeTitle = function(__text){
	var _myTitle = "";
	var _myTextArr = [];

	_myTextArr = __text.split("|BR|");
	if (_myTextArr.length>0){
	//BR varsa kaldirip title olarak kullaniyorum
		for(z=0;z<_myTextArr.length;z++){
			_myTitle += _myTextArr[z];
		}
	}
	else{
		_myTitle = __text;		
	}
	return _myTitle;	
}

MagicAjax.prototype.writeNodeText = function(__myNode, __myNodeText){
	var _myTextArr = [];
	
	_myTextArr = __myNodeText.split("|BR|");
	if (_myTextArr.length>1){
	//BR varmi kontrol ediyorum varsa olan br kadar donuyorum 
		for (l=0;l<_myTextArr.length-1;l++){
			__textNode = document.createTextNode(_myTextArr[l]);
			__myNode.appendChild(__textNode);
			__Breake =  document.createElement("br");
			__myNode.appendChild(__Breake);
		}
		__textNode = document.createTextNode(_myTextArr[_myTextArr.length-1]);
		__myNode.appendChild(__textNode);
	}
	else{
		var __textNode = document.createTextNode(__myNodeText);
		__myNode.appendChild(__textNode);
	}
}
			
MagicAjax.prototype.HandleResponse = function(){				
	if(XmlHttp.readyState == 4){
		if(XmlHttp.status == 200 || XmlHttp.status == 304){
			objNode = XmlHttp.responseXML.documentElement
			document.getElementById(MA.loaderDiv).style.display="none";
			document.getElementById(MA.ContentArea).style.display="";
			MA.buidMenu();
		}
		else{
			alert("There was a problem retrieving data from the server." );
		}
	}
}

MagicAjax.prototype.buidMenu = function(){	
var subMenuStatu = false; 
var subSubMenuStatu = false; 
var openSubMenu = false;
var openSubSubMenu = false;


var currentPage = window.location.href;
currentPage = this.linkkCleaner(currentPage)


var myList = document.createElement("ul");

var myMenuItem = objNode.getElementsByTagName("menu");
if(myMenuItem[0].getAttribute("id") != null && myMenuItem[0].getAttribute("id") != undefined){
	var myMenuItemID = myMenuItem[0].getAttribute("id");
	var myMenuItemHref = myMenuItem[0].getAttribute("href");
}

for (i=0; i<myMenuItem.length; i++){

		/*Create first level menu*/
		var menuNode = document.createElement("li");
		myText = myMenuItem[i].getElementsByTagName("text")[0].childNodes[0].nodeValue;
		var menuNodeText = document.createTextNode(myText);
		
		var menuNodeLink = document.createElement("a");
		menuNodeLink.title =  this.writeTitle(myText);
		
		for (l=0;l<myMenuItem[i].getElementsByTagName("link").length;l++) {
			if (myMenuItem[i].getElementsByTagName("link")[l].parentNode == myMenuItem[i]) {
				var t = this.checkLink(myMenuItem[i].getElementsByTagName("link")[l].childNodes[0].nodeValue);
				if (currentPage == this.linkkCleaner(t[0])){
					if (myMenuItem[i].getElementsByTagName("submenu").length > 0) {
						openSubMenu = true;
					}
					//openSubMenu = true;
					menuNode.className="selected"
					
					var x = new Array();
					x[0]=t[l];
					x[1]=menuNodeLink.title;
					
					this.myOrientArr.push(x);
				}
				if (myMenuItem[i].getElementsByTagName("link")[l].getAttribute("add") != 1) {
					myLink = t;
				}
			}
		}
		//myLink = this.checkLink(myMenuItem[i].getElementsByTagName("link")[0].childNodes[0].nodeValue);
		if (myLink[0].substring(0,4) == "java"){
				menuNodeLink.href = myLink[0];
				//subMenuNodeLink.href = "#";
				
			}else{
				menuNodeLink.href = myLink[0];
				menuNodeLink.target = myLink[1];
			
			}
		
		this.writeNodeText(menuNodeLink, myText);
		menuNode.appendChild(menuNodeLink);

		/*1. adimdaki link sayfanin linki ile ayniysa isaretletiyorum*/
		
		
		/*xml den gelecek attributeleri kontrol ediyorum*/
		if (myMenuItem[i].getAttribute("opensubmenu")){
			openSubMenu = true;
			if (myMenuItem[i].getAttribute("thispage")){
				if (currentPage != myLink[0].toLowerCase()){
					openSubMenu = false;
				}
			}
		}
	
	/*Create second level menu*/
	if (myMenuItem[i].getElementsByTagName("submenu").length > 0){

		var mySubList = document.createElement("ul");
		
		var mySubNode = myMenuItem[i].getElementsByTagName("submenu")
		for (j=0;j<mySubNode.length;j++){
		
			

			var subMenuNode = document.createElement("li");
			var subMenuNodeDiv = document.createElement("div");
			subMenuNodeDiv.className +="level_2"; 
			
			if (j%2==0){
				subMenuNode.className +="";
			}

			
			
			
			myText = mySubNode[j].getElementsByTagName("text")[0].childNodes[0].nodeValue;
			var subMenuNodeText = document.createTextNode(myText);
			
			myLink = this.checkLink(mySubNode[j].getElementsByTagName("link")[0].childNodes[0].nodeValue);				
			var subMenuNodeLink = document.createElement("a");
			
			if(mySubNode[j].getAttribute("color") != null && mySubNode[j].getAttribute("color") != undefined){
				var colorName = mySubNode[j].getAttribute("color");
				subMenuNodeLink.className +=colorName;
			}
			
				
			
			
			subMenuNodeLink.href = myLink;
			subMenuNodeLink.title = this.writeTitle(myText);
			
			if (myLink[0].substring(0,4) == "java"){
				subMenuNodeLink.href = myLink[0];
				//subMenuNodeLink.href = "#";
				
			}else{
				subMenuNodeLink.href = myLink[0];
				subMenuNodeLink.target = myLink[1];
			
			}
			
			if (currentPage == this.linkkCleaner(myLink[0])){
				if (mySubNode[j].getElementsByTagName("subsubmenu").length > 0) {
					openSubSubMenu = true;
				}
					
				if (currentPage != this.linkkCleaner(menuNodeLink.href)){
					
					menuNode.className += " selected"
					var x = new Array();
					x[0]=menuNodeLink;
					x[1]=menuNodeLink.title;
					this.myOrientArr.push(x);
					
				}
				
				subMenuNode.className += " selected"
				subMenuStatu=true;
				//menuNode.className="selected"
				
				var y = new Array();
				y[0]=myLink;
				y[1]=subMenuNodeLink.title;
				this.myOrientArr.push(y);
				
			}
			
			this.writeNodeText(subMenuNodeLink, myText)
			subMenuNodeDiv.appendChild(subMenuNodeLink);
			subMenuNode.appendChild(subMenuNodeDiv);
			//mySubList.appendChild(subMenuNode);		
		
		/*Create third level menu*/
			if (myMenuItem[i].getElementsByTagName("subsubmenu").length>0){
				
				var mySubSubList = document.createElement("ul");
				var mySubSubNode = mySubNode[j].getElementsByTagName("subsubmenu")
				for (k=0;k<mySubSubNode.length;k++){
				
					var subSubMenuNode = document.createElement("li");
					myText = mySubSubNode[k].getElementsByTagName("text")[0].childNodes[0].nodeValue;
					var subSubMenuNodeText = document.createTextNode(myText);
					//alert(subSubMenuNodeText)
					
					myLink = this.checkLink(mySubSubNode[k].getElementsByTagName("link")[0].childNodes[0].nodeValue);				
					var subSubMenuNodeLink = document.createElement("a");
					
					subSubMenuNodeLink.href = myLink;
					subSubMenuNodeLink.title = this.writeTitle(myText);

					if (myLink[0].substring(0,4) == "java"){
						subSubMenuNodeLink.href = myLink[0];
						//subMenuNodeLink.href = "#";
						
					}else{
						subSubMenuNodeLink.href = myLink[0];
						subSubMenuNodeLink.target = myLink[1];
					
					}

					if (currentPage == this.linkkCleaner(myLink[0])){
						if (currentPage != this.linkkCleaner(menuNodeLink.href)){
							menuNode.className += " selected"
							var x = new Array();
							x[0]=menuNodeLink;
							x[1]=menuNodeLink.title;
							this.myOrientArr.push(x);
						}
						if (currentPage != this.linkkCleaner(subMenuNodeLink.href)){
							
							subMenuNode.className="selected"
							
							var y = new Array();
							y[0]=subMenuNodeLink;
							y[1]=subMenuNodeLink.title;
							this.myOrientArr.push(y);
						}
							subSubMenuNode.className += " selected"
							subSubMenuStatu=true;
							subMenuStatu=true;
							var z = new Array();
							z[0]=myLink;
							z[1]=subSubMenuNodeLink.title;
							this.myOrientArr.push(z);
					}

					

/*
					if (currentPage == myLink[0].toLowerCase()){
						subSubMenuStatu=true;
						subSubMenuNode.className="selected"
					}
*/					this.writeNodeText(subSubMenuNodeLink, myText)
					subSubMenuNode.appendChild(subSubMenuNodeLink);
					
					mySubSubList.appendChild(subSubMenuNode);
				}
				
				if (subSubMenuStatu || openSubSubMenu){
					
					subMenuNodeDiv.appendChild(mySubSubList);
					subSubMenuStatu = false;
					openSubSubMenu = false;
					openSubSubMenu = false;
				}
				/*added parent node*/
			}else {
				openSubSubMenu=false;
			}
			/*Created third level menu*/
			subMenuNode.appendChild(subMenuNodeDiv);
			mySubList.appendChild(subMenuNode);
			
		}
		
		/*Created second level menu*/

		if (subMenuStatu || openSubMenu){
			menuNode.appendChild(mySubList);
			subMenuStatu = false;
			openSubMenu = false;
		}
		/*added parent node*/
	}else{
		openSubMenu=false;
	}
	
	
	/*Created first level menu*/
	myList.appendChild(menuNode);
	
}


document.getElementById(MA.ContentArea).appendChild(myList);

orientation(myMenuItemID,myMenuItemHref);

}
