var finishRequest = false;
var ApartmentList = {
	ListObj : null,
	ListObjConcepts : null,
	CSSFile : null,
	Init : function(){
		if(document.getElementById("apartment-data") != null){
			this.ListObj = document.getElementById("apartment-data");
			var listObjAnchors = this.ListObj.getElementsByTagName("a");
			var rowObj = null;
			for(var i=0;i<listObjAnchors.length;i++){
				if(listObjAnchors[i].className == "show-apartment-data"){
					rowObj = listObjAnchors[i].parentNode.parentNode;
					listObjAnchors[i].parentNode.onclick = function(){
						this.blur();	
						ApartmentList.LoadApartment(this.childNodes[0]);
						return false;
					}
				}
				if(listObjAnchors[i].className == "show-num-rooms"){
					listObjAnchors[i].onclick = function(){
						this.blur();
						ApartmentList.ShowApartmentList(this);
						return false;
					}
				}
			}
		}
		if(document.getElementById("concept-apartment-list") != null){
			this.ListObjConcepts = document.getElementById("concept-apartment-list")
			var listObjConceptsAnchors = this.ListObjConcepts.getElementsByTagName("a");
			for(var i=0;i<listObjConceptsAnchors.length;i++){
				var aElm = listObjConceptsAnchors[i];
				if (aElm.className != "excludeAjaxCall") {
					aElm.onclick = function(){
						this.blur();
						ApartmentList.LoadConceptImage(this);
						return false;
					}
				}
			}
		}
	},
	ShowApartmentList : function(obj){
		var objId = obj.id;
		var parentTr = obj.parentNode.parentNode.parentNode;
	
		var allTbodys = this.ListObj.getElementsByTagName("tbody");
		
		for(var i=0;i<allTbodys.length;i++){
			if(allTbodys[i].nodeName == "TBODY"){
				if(allTbodys[i].id  == objId + "-section"){
				
					if(allTbodys[i].className != "show"){
						allTbodys[i].className = "show";
						parentTr.className = "apartment-size selected";
					}
					else{
						allTbodys[i].className = "hide";
					}
				}
				else if(allTbodys[i].className != "apartment-size" && allTbodys[i].className != "apartment-size selected"){
					allTbodys[i].className = "hide";
				}
				else if(allTbodys[i].className == "apartment-size selected"){
					allTbodys[i].className = "apartment-size";
				}
			}
		}
	},
	LoadApartment : function(obj){
		//remove selected class and remove all load visuals
		var allTrs = this.ListObj.getElementsByTagName("tr");
		var allTds = null;
		for(var i=0;i<allTrs.length;i++){
			if(allTrs[i].className == "selected")
				allTrs[i].className = "";
			
			//remove all load visuals
			allTds = allTrs[i].childNodes;
			for(var x=0;x<allTds.length;x++){
				if(allTds[x].className == "apartment-data-content"){
					allTrs[i].parentNode.removeChild(allTrs[i]);
				}
			}
		}
		//set selected class
		var parentTr = obj.parentNode.parentNode;
		parentTr.className = "selected";
		
		//insert load visuals
		var parentTbody = parentTr.parentNode;
		var newTr = document.createElement("tr");
		var newTd =  document.createElement("td");
		newTd.className = "apartment-data-content";
		newTd.id = "popup-content-holder";
		newTd.colSpan = 6;
		newTd.innerHTML = "Laddar...<br />";
		newTd.innerHTML += "<img src=\"" + WEBROOT + "CORE/includes/ExternalWebIncludes/images/ajax-loader.gif\" alt=\"Laddar lägenhetsinformation\" title=\"Laddar\" />";
		newTr.appendChild(newTd);
		parentTbody.insertBefore(newTr,parentTr.nextSibling);
		this.RequestApartmentData(obj.href);
	},
	RequestApartmentData : function(url){
		AjaxRequest.Init();
		AjaxRequest.callBackFunction = "ApartmentList.ShowPopup()";
		AjaxRequest.MakeAjaxRequest(url);
	},
	ShowPopup : function(){
		if(AjaxRequest.callCompleted){
			//apply new css for the popup
			this.CSSFile = document.createElement("link");
			this.CSSFile.setAttribute("rel", "stylesheet");
			this.CSSFile.setAttribute("type", "text/css");
			this.CSSFile.setAttribute("href", WEBROOT + "CORE/includes/ExternalWebIncludes/css/print.css");
			this.CSSFile.setAttribute("media", "print");
			document.getElementsByTagName("head")[0].appendChild(this.CSSFile);
			document.getElementById("popup-content-holder").innerHTML = AjaxRequest.ResponseText;
		
		}
	},
	ClosePopup : function(){
		if(document.getElementById("popup-content-holder") != null){
			//remove load visuals if any
			var loadObj = document.getElementById("popup-content-holder");
			var loadObjParent = loadObj.parentNode;
			loadObjParent.removeChild(loadObj);
		
			//document.getElementById("popup-content-holder").style.display = "none";
			if(document.getElementById("apartments-tab") != null){
				var allTrs = this.ListObj.getElementsByTagName("tr");
				var allTds = null;
				for(var i=0;i<allTrs.length;i++){
					if(allTrs[i].className == "selected")
						allTrs[i].className = "";
				}
			}
			
			//remove selected from concept images
			if(document.getElementById("concept-apartment-tab") != null){
				var ulObj = this.ListObjConcepts;
				var ulObjChildren = ulObj.childNodes;
				var selectedClass = null;
				for(var i=0;i<ulObjChildren.length;i++){
					if(ulObjChildren[i].nodeType == 1){
						selectedClass = ulObjChildren[i].className;
						if(selectedClass.indexOf("selected") != -1){
							ulObjChildren[i].className = selectedClass.substring(0,selectedClass.indexOf("selected")-1);
						}
					}
				}
			}
			
			if(this.CSSFile != null){
				document.getElementsByTagName("head")[0].removeChild(this.CSSFile);
				this.CSSFile = null;
			}
		}		
	},
	LoadConceptImage : function(obj){
		var liObj = obj.parentNode;
		//first remove any selected
		var ulObj = liObj.parentNode;
		var ulObjChildren = ulObj.childNodes;
		var selectedClass = null;
		for(var i=0;i<ulObjChildren.length;i++){
			if(ulObjChildren[i].nodeType == 1){
				 selectedClass = ulObjChildren[i].className;
				 if(selectedClass.indexOf("selected") != -1){
					ulObjChildren[i].className = selectedClass.substring(0,selectedClass.indexOf("selected")-1);
				 }
			}
		}
		
		liObj.className = liObj.className + " selected";
		var conceptLiContainer = document.createElement("li");
		
		//remove load visuals if any
		if(document.getElementById("popup-content-holder") != null){
			var loadObj = document.getElementById("popup-content-holder");
			var loadObjParent = loadObj.parentNode;
			loadObjParent.removeChild(loadObj);
		}
		
		conceptLiContainer.id = "popup-content-holder";
		conceptLiContainer.className = "apartment-data-content";
		conceptLiContainer.innerHTML = "Laddar...<br />";
		conceptLiContainer.innerHTML += "<img src=\"" + WEBROOT + "CORE/includes/ExternalWebIncludes/images/ajax-loader.gif\" alt=\"Laddar lägenhetsinformation\" title=\"Laddar\" />";
		
		var liClass = liObj.className;
		if(liClass.indexOf("left") != -1){
			
			var counter=0;
			var liConceptObj = liObj;
			
			while(liClass.indexOf("right") == -1 && counter<2){
				liObj = liObj.nextSibling;
				
				if(liObj == null)
					break;
				
				if(liObj.nodeType == 1){
					liClass = liObj.className
					if(liClass.indexOf("right") != -1)
						liConceptObj = liObj;
				}
				
				counter++;
			}
			
			this.ListObjConcepts.insertBefore(conceptLiContainer, liConceptObj.nextSibling);
		}
		else
			this.ListObjConcepts.insertBefore(conceptLiContainer, liObj.nextSibling);
		
		this.RequestApartmentData(obj.href);
	}
}