var action = "";
var selectedBuildingTypeID = 0;
var mouseOverImg = "";
var imgSet = "";
var showingMapInfo = "N";

function toggleMapInfo()
{
	if(showingMapInfo == "Y")
	{
		closeMapInfo();
	}
	else
	{
		openMapInfo();
	}

}

function openMapInfo()
{
		showingMapInfo = "Y";
		var mInfo = document.getElementById("mapInfo");
		mInfo.style.height="200px";
		loadDiv("mapInfoDetails","showMapInfo.php?mapID=" + getMapID());
}

function closeMapInfo()
{
	showingMapInfo = "N";
	var mInfo = document.getElementById("mapInfo");
	var mDetails = document.getElementById("mapInfoDetails");
	mInfo.style.height="10px";
	//mInfoDetails.innerHtml = "";

}

function showSubMenu(menuName)
{
	document.getElementById('statsSubMenu').style.visibility='hidden';
	document.getElementById('statsSubMenu').style.height='1px';
	document.getElementById('communitySubMenu').style.visibility='hidden';
	document.getElementById('communitySubMenu').style.height='1px';
	document.getElementById('realmSubMenu').style.visibility='hidden';
	document.getElementById('realmSubMenu').style.height='1px';
	
	
	document.getElementById(menuName).style.visibility='visible';
	document.getElementById(menuName).style.overflow='auto';
	document.getElementById(menuName).style.height='15px';
}

function closeBattleViewer()
{
	closeLargePanel();
}

function closeLargePanel()
{
	var tmp = document.getElementById("largePanel");
	tmp.style.visibility = "hidden";

}


function placeBuildingStart(bID, buildingImg)
{
	action = "placingBuilding";
	selectedBuildingTypeID = bID;
	mouseOverImg = buildingImg;
	fadeMsg("Select a place on the map");
}


function addGate()
{
	url = "help_gate.php?";
	showLoading("mainPanel","Loading Help");
	loadDiv("mainPanel",url);
	action = "placingBuilding";
	mouseOverImg = "gate";
	selectedBuildingTypeID = -1;
}

function overTile(x, y)
{
	tile = getMouseOverTile(x, y);
	tile.style.visibility = "visible";
	if(action == "placingBuilding")
	{
		var tmp = document.getElementById("mouseOverMsg");
		tmp.innerHTML = "<img src=images/buildings/" + mouseOverImg + ".gif>";
		imgSet = "placingBuilding";
		tmp.style.top = (getTop(tile)-108) + "px";
		tmp.style.left = (getLeft(tile)-12) + "px";
		tmp.style.visibility = "visible";
	}
	autoLogout = getGameVariable("autoLogout");;
}


function offTile(x, y)
{
	tile = getMouseOverTile(x, y);
	tile.style.visibility = "hidden";
	var tmp = document.getElementById("mouseOverMsg");
	//tmp.style.visibility = "hidden";
}


currentImg = "";
function clickTile(x, y)
{
	if(action == "")
	{
		buildingID = getBuildingIDAt(x, y);
		if(buildingID > 0)
		{
			displayBuildingDetails(buildingID, x, y);
		}
	}
	
	
	if(action == "placingBuilding")
	{
		if(selectedBuildingTypeID > 0)
		{
			url = "posts/addBuilding.php?x=" + x;
			url+= "&y=" + y;
			url+= "&buildingTypeID=" + selectedBuildingTypeID;
			
			sendData(url);
							
			fadeMsg("Building is being added...");
		}

		if(selectedBuildingTypeID == -1)
		{
			url = "posts/addGate.php?x=" + x;
			url+= "&y=" + y;
			sendData(url);
			
			fadeMsg("Adding the gate...");
		}
		selectedBuildingTypeID = 0;
		action = "";
		closeMouseOver();
		setTimeout("loadBuildables()", 2000);
		updateMap();
	}
	
	if(action == "placeTile" && currentImg != "")
	{
		url = "posts/editMap.php?action=placeTile&x=" + x + "&y=" + y;
		url+= "&newImg=" + currentImg;
		url+="&mapID=" + getMapID();
		sendData(url);
		var tileImg = document.getElementById("img_" + x + "_" + y);
		tileImg.src = "./imagesFloorTiles/" + currentImg + ".gif";
	}
}

function closeMouseOver()
{
	var tmp = document.getElementById("mouseOverMsg");
	imgSet = "";
	tmp.innerHTML = "";
	tmp.style.top = -100;
	tmp.style.left = -100;
	tmp.style.visibility = "hidden";
	
}



function displayBuildingDetails(buildingID, x, y)
{
	var tile = getMouseOverTile(x, y);
	var tmp = document.getElementById("clickDetails");
	tmp.innerHTML = "Loading Building Details...";
	tmp.style.top = (getTop(tile)) + "px";
	tmp.style.left = (getLeft(tile)+40) + "px";
	tmp.style.width = "150px";
	tmp.style.background = "black";
	tmp.style.visibility = "visible";
	
	url = "showBuildingDetails.php?buildingID=" + buildingID;
	loadDiv("clickDetails",url);
}


function closeBuildingDetails()
{
	var tmp = document.getElementById("clickDetails");
	tmp.innerHTML = "";
	tmp.style.top = -100;
	tmp.style.left = -100;
	tmp.style.visibility = "hidden";
	
}


function closeMainPanel()
{
	var tmp = document.getElementById("mainPanel");
	tmp.innerHTML = "";
	tmp.style.visibility = "hidden";
	
}


function changeMap(newMapID)
{	
	var tmp = document.getElementById("mainPanel");
	tmp.innerHTML = "Changing Map, if I get stuck please <a href=play.php>Refresh</a> the game.";
	
	url = "posts/userActions.php?action=changeMap&newMapID=" + newMapID;
	//alert(url);
	loadDiv("divMapName", url);

	var tmp = document.getElementById("mainPanel");
	tmp.innerHTML = "Hold on, loading map...";
	setTimeout("forceMapRefresh(" + newMapID + ")",3000);

	closeMapInfo();
	closeBuildingDetails();
}


function forceMapRefresh(newMapID)
{
	mapRefresherXmlHttp = "";
	mapRefreshTimer = null;	
	if(document.getElementById("divMapName").innerHTML != "")
	{
		document.getElementById("mapID").value = newMapID;
		clearMap();
		updateMap();
		setTimeout("readTiles()", 5000);
		closeMainPanel();
	}
	
}



function readTiles()
{
	var url = "feeds/getTilesOnMap.php?mapID=" + document.getElementById("mapID").value;
	mapXmlHttp=GetXmlHttpObject();
	mapXmlHttp.onreadystatechange=readTilesComplete;
	mapXmlHttp.open("GET",url,true)
	mapXmlHttp.send(null);
	
}




function readTilesComplete()
{
	if (mapXmlHttp.readyState==4)
	{ 
		fullText  = mapXmlHttp.responseText;
		var data1 = fullText.split("::");

		for(i=0;i<data1.length;i++)
		{
		
			tileInfo = data1[i].split(",");
			if(tileInfo.length >= 3)
			{
				newImg = tileInfo[0];
				x = tileInfo[1];
				y = tileInfo[2];
				
				var tileImg = document.getElementById("img_" + x + "_" + y);
				tileImg.src = "./imagesFloorTiles/" + newImg + ".gif";
			}
		}
	}
}




//////////////////////////////////////////////////////////////////////////////////////
//
//		AJAX Loads
//
//////////////////////////////////////////////////////////////////////////////////////

function fadeMsg(msg)
{
	if(msg == "")
	{
		msg = "Loading...";
	}
	
	var fadingDiv = document.getElementById("fadeMsg");
	fadingDiv.style.visibility = 'visible';
	fadingDiv.innerHTML = msg;
	
	setTimeout("document.getElementById('fadeMsg').style.visibility='hidden';", 3000);
}




function loading(divID) {showLoading(divID, "");}

function showLoading(divID, msg)
{
	if(msg == "")
	{
		msg = "Loading...";
	}
	
	var loadingDiv = document.getElementById(divID);
	loadingDiv.innerHTML = msg;
	loadingDiv.style.visibility="visible";
}


function loadBattle(battleID)
{
	showLoading("largePanel","Loading Battle Report");
	url = "battleLogs/log_" + battleID + ".txt?";
	loadDiv("largePanel",url);
}


function loadBuildables()
{
	showLoading("subMenu","Loading Buildings");
	url = "showBuildables.php?action=show";
	loadDiv("subMenu", url);
}


function loadUserStats()
{
	showLoading("subMenu","Loading User Stats");
	url = "showUserStats.php?action=show";
	loadDiv("subMenu", url);
}


function loadArmy()
{
	showLoading("subMenu","Loading Army");
	url = "showArmy.php?action=show";
	loadDiv("subMenu", url);
}

function loadRealms()
{
	showLoading("mainPanel","Loading Realms");
	url = "showRealms.php?";
	loadDiv("mainPanel", url);
}


function loadChat()
{
	showLoading("subMenu","Loading Chat");
	url = "showChat.php?";
	loadDiv("subMenu", url);
}

function loadOnline()
{
	showLoading("subMenu","Loading Online");
	url = "showOnline.php?";
	loadDiv("subMenu", url);
}

function loadSpells()
{
	showLoading("subMenu","Loading Spells");
	url = "showSpells.php?";
	loadDiv("subMenu", url);
}


function loadResearching()
{
	showLoading("subMenu","Loading Researching");
	url = "showResearching.php?";
	loadDiv("subMenu", url);
}


function loadAlerts()
{
	showLoading("subMenu","Loading Alerts");
	url = "showAlerts.php?";
	loadDiv("subMenu", url);
}

function loadQuests()
{
	showLoading("subMenu","Loading Quests");
	url = "showQuests.php?";
	loadDiv("subMenu", url);
}

function openGate()
{
	showLoading("largePanel","Opening Gate");
	closeBuildingDetails();
	url = "showGate.php?";
	loadDiv("largePanel", url);
}

function openRankings()
{
	showLoading("largePanel","Opening Rankings");
	closeBuildingDetails();
	url = "highscores_top.php?";
	loadDiv("largePanel", url);
}


function openProfile()
{
	showLoading("largePanel","Opening Profiles");
	url = "showProfile.php?";
	loadDiv("largePanel", url);
}


function showSetTrap()
{
	url = "showSetTrap.php?";
	loadDiv("mainPanel", url);
}

function loadSendBug()
{
	loadDiv("subMenu","sendBug.php?");
}

function sendBug()
{	
	url = "posts/chat.php?action=sendBug&msg=";
	url+=document.getElementById("adminMsg").value;
	document.getElementById("adminMsg").value = "";	
	loadDiv("subMenu", url);
}



function sayIt()
{	
	url = "posts/chat.php?action=send&msg=";
	url+=document.getElementById("chatMsg").value;
	document.getElementById("chatMsg").value = "";
	sendData(url);
	
	setTimeout("loadChat()",2000);
}


function saveMapName()
{	
	url = "posts/editMap.php?action=changeName&name=";
	url+=document.getElementById("mapName").value;
	sendData(url);
	
	fadeMsg("Name changed...");
}


function bookmarkMap(mapID)
{	
	url = "posts/userActions.php?action=bookmarkMap&mapID=" + mapID;
	sendData(url);
	
	fadeMsg("BookMark Saved...");
	
	setTimeout("openMapInfo()",2000);
}


function saveAlerts()
{	
	url = "posts/alerts.php?action=save&email=";
	url+=document.getElementById("email").value;
	url+="&attackAlert=" + document.getElementById("attackAlert").checked;
	url+="&exploreAlert=" + document.getElementById("exploreAlert").checked;
	url+="&chatAlert=" + document.getElementById("chatAlert").checked;
	url+="&updateAlert=" + document.getElementById("updateAlert").checked;
	url+="&loginAlert=" + document.getElementById("loginAlert").checked;
	sendData(url);
	fadeMsg("Alerts updated...")

}