var XmlHttp;
var httpObject;
var objNode;

function MagicMenu(){				
	this.loadFile;
	this.sendmethod="GET";
	this.cacheClear;
	this.loaderDiv;
	this.ContentArea;
	this.fillType;
	this.root = "http://" + window.location.hostname;
	this.defaultRootPage = "default.asp";
	MA=this;
	this.myOrientArr = myOrientArr;
	this.myLanguage;
	this.CustomPageSelector="";
}
	

						
MagicMenu.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);		
	}
				
}
			
MagicMenu.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();
	}
}

MagicMenu.prototype.linkkCleaner = function(_link){
	if (_link.split("?") != "undefined"){
		if (_link.split("?")[0].split(this.root) != "undefined"){
			_link = _link.split("?")[0]+"?"+_link.split("?")[1]//.split(this.root)[1];
			//alert(_link);
			_link = _link.toLowerCase();
		}
	}
	if (_link.split("#") != "undefined"){
		_link = _link.split("#")[0];
	}
	
	if (_link.substr(_link.length-1,1)=="/"){
		_link += this.defaultRootPage;
	}
	return _link;
}

MagicMenu.prototype.checkLink = function(_link){
	var r;
	var t;
	
	if (_link.substring(0,7) == "http://" || _link.substring(0,8) == "https://") {
		r = _link;
		t = "_self";
	}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];
}

MagicMenu.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;	
}

MagicMenu.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);
	}
}

			
MagicMenu.prototype.HandleResponse = function(){				
	if(XmlHttp.readyState == 4){
		if(XmlHttp.status == 200){
			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." );
		}
	}
}

MagicMenu.prototype.buidMenu = function(){	
var subMenuStatu = false; 
var subSubMenuStatu = false; 
var openSubMenu = false;

var currentPage;

if (this.CustomPageSelector == ""){
	currentPage = window.location.href;
}
else{
	currentPage = this.root + this.CustomPageSelector;
}

currentPage = this.linkkCleaner(currentPage)


var myList = document.createElement("ul");
var myMenuItem = objNode.getElementsByTagName("menu");


/*Create first level menu*/
for (i=0;i<myMenuItem.length;i++){

	var menuNode = document.createElement("li");
	myText = myMenuItem[i].getElementsByTagName("text")[0].childNodes[0].nodeValue;
	var menuNodeText = document.createTextNode(myText);
	
	//myLink = myMenuItem[i].getElementsByTagName("link")[0].childNodes[0].nodeValue;
	var menuNodeLink = document.createElement("a");
	menuNodeLink.title =  this.writeTitle(myText);

	myTitle=""
	if (myMenuItem[i].getElementsByTagName("title").length>0){
		myTitle = myMenuItem[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
	}

	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])){
				openSubMenu = true;
				menuNode.className="selected"
				var x = new Array();
				x[0]=t[l];
				if (myTitle != ""){
					x[1]=myTitle;
				} else{
					x[1]=menuNodeLink.title;
				}
				this.myOrientArr.push(x);
				//openSubMenu = true;
			}
			
			myLink = t;
			
		}
	}	
	
			menuNodeLink.href = myLink[0];
			if(myLink.length>1 && myLink[1] != null)
				menuNodeLink.target = myLink[1];
			
			this.writeNodeText(menuNodeLink, myText)
			menuNode.appendChild(menuNodeLink);



	/*xml den gelecek attributeleri kontrol ediyorum*/
	if (myMenuItem[i].getAttribute("opensubmenu")){
		openSubMenu = true;
		if (myMenuItem[i].getAttribute("thispage")){
			if (currentPage != myLink.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");
			myText = mySubNode[j].getElementsByTagName("text")[0].childNodes[0].nodeValue;
			var subMenuNodeText = document.createTextNode(myText);
			
			mySubTitle=""
			if (mySubNode[j].getElementsByTagName("subtitle").length>0){
				mySubTitle = mySubNode[j].getElementsByTagName("subtitle")[0].childNodes[0].nodeValue;
			}
			
			
			//myLink = this.root + mySubNode[j].getElementsByTagName("link")[0].childNodes[0].nodeValue;				
			
			var subMenuNodeLink = document.createElement("a");
			subMenuNodeLink.href = myLink;
			subMenuNodeLink.title = this.writeTitle(myText);
			//subMenuNodeLink.appendChild(subMenuNodeText);
		
			for (h=0;h<mySubNode[j].getElementsByTagName("link").length;h++) {
			if (mySubNode[j].getElementsByTagName("link")[h].parentNode == mySubNode[j]) {
				var p = this.checkLink(mySubNode[j].getElementsByTagName("link")[h].childNodes[0].nodeValue);
				if (currentPage == this.linkkCleaner(p[0])){
					if (currentPage != this.linkkCleaner(menuNodeLink.href)){
					//menuNode.className="selected"
					//bir ustteki levelin title ini aliyorum
					var x = new Array();
					x[h]=menuNodeLink.href;
					if (myTitle != ""){
						x[1]=myTitle;
					}
					else{
						x[1]=menuNodeLink.title;
					}	
					//x[1]=menuNodeLink.title;
					this.myOrientArr.push(x);
				}
					menuNode.className=""
					subMenuStatu=true;
					subMenuNode.className = "selected"
					var y = new Array();
					y[h]=subMenuNodeLink.href;
					if (mySubTitle != ""){
						y[1]=mySubTitle;
					}
					else{
						y[1]=subMenuNodeLink.title;
					}
					this.myOrientArr.push(y);
				}
				myLink = p;	
			}
		}
			
			subMenuNodeLink.href = myLink[0];
			if(myLink.length>1 && myLink[1] != null)
				subMenuNodeLink.target = myLink[1];
			this.writeNodeText(subMenuNodeLink, myText)
						
			
			subMenuNode.appendChild(subMenuNodeLink);
			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(this.myLanguage);
}
			
