//------------------------- Begin Img rollover---------------------
village_down = new Image(); village_down.src="/images/gamenav/village_down_nav.png";
city_down = new Image(); city_down.src="/images/gamenav/city_down_nav.png";
map_down = new Image(); map_down.src="/images/gamenav/map_down_nav.png";
ranking_down = new Image(); ranking_down.src="/images/gamenav/ranking_down_nav.png";
message_down = new Image(); message_down.src="/images/gamenav/message_down_nav.png";

function rollThis(whichImage,whichPic){
document.images[whichImage].src = "/images/gamenav/"+whichPic;
}

function changeBack(whichImage){
	if(whichImage == "animessage")
		document.images[whichImage].src = "/images/gamenav/"+whichImage+".gif";
	else
		document.images[whichImage].src = "/images/gamenav/"+whichImage+"_nav.png";
}
//-------------------------End Img rollover---------------------

// ------------------------ Begin Changelog scripts -----------------------

function toggleDiv(ID) {
	if (document.getElementById(ID).style.display == "") {
		document.getElementById(ID).style.display = "none";
		document.images['plus' + ID].src = document.images['plus' + ID].src.replace("minus","plus");
		} else {
		document.getElementById(ID).style.display = "";
		document.images['plus' + ID].src = document.images['plus' + ID].src.replace("plus","minus");
		}
}

// ------------------------ Einde Changelog scripts -----------------------

// ------------------------ Begin BBcode scripts -----------------------
	var clientPC = navigator.userAgent.toLowerCase();
	is_opera = (clientPC.indexOf("opera") != -1)

	function mozWrap(txtarea, lft, rgt) {
		txtarea = document.getElementById(txtarea);
		var selLength = txtarea.textLength;
		var selStart = txtarea.selectionStart;
		var selEnd = txtarea.selectionEnd;
		if (selEnd==1 || selEnd==2) selEnd=selLength;
		var s1 = (txtarea.value).substring(0,selStart);
		var s2 = (txtarea.value).substring(selStart, selEnd)
		var s3 = (txtarea.value).substring(selEnd, selLength);
		txtarea.value = s1 + lft + s2 + rgt + s3;
	}
	
	function IEWrap(lft, rgt) {
		strSelection = document.selection.createRange().text;
		if (strSelection!="") {
			document.selection.createRange().text = lft + strSelection + rgt;
		}
	}
	
	function wrapSelection(txtarea, lft, rgt) {
		if (document.all) {
			if(is_opera) {
				alert("Sorry, not implemented yet for Opera");
				return false;
			} else {
				IEWrap(lft, rgt);
			}
		} else if (document.getElementById) {
			mozWrap(txtarea, lft, rgt);
		}
	}
	function wrapSelectionWithLink(txtarea) {
		var my_link = prompt("Enter URL:","http://");
		if (my_link != null) {
			lft="[url=" + my_link + "]";
			rgt="[/url]";
			wrapSelection(txtarea, lft, rgt);
		}
		return;
	}	
	
	function toggleList() {
		if (document.getElementById("ubbtags").style.display == "none") {
			document.getElementById("ubbtags").style.display = "block";
			document.getElementById("togglebutton").innerHTML="Info UBB tags";
		} else {
			document.getElementById("ubbtags").style.display = "none";
			document.getElementById("togglebutton").innerHTML="Info UBB tags";
		}
	}
// ------------------------ Einde BBcode scripts -----------------------

// ------------------------ Show / Hide div scripts -----------------------
function ShowInfoBox() {
	if(document.getElementById("InfoBox").style.display=="block"){
		HideInfoBox();
	}else{
		document.getElementById("InfoBox").style.display="block";
	}
}

function HideInfoBox() {
	document.getElementById("InfoBox").style.display="none";
}

function ShowBuildLocations() {
	if(document.getElementById("BuildLocations").style.display=="block"){
		HideBuildLocations();
	}else{
		document.getElementById("BuildLocations").style.display="block";
	}
}

function HideBuildLocations() {
	document.getElementById("BuildLocations").style.display="none";
}
function ShowTimers() {
	if(document.getElementById("Timers").style.display=="block"){
		HideTimers();
	}else{
		document.getElementById("Timers").style.display="block";
	}
}

function HideTimers() {
	document.getElementById("Timers").style.display="none";
}

function ShowUnitBox() {
	if(document.getElementById("UnitBox").style.display=="block"){
		HideUnitBox();
	}else{
		document.getElementById("UnitBox").style.display="block";
	}
}

function HideUnitBox() {
	document.getElementById("UnitBox").style.display="none";
}

function ShowDefRange() {
	if(document.getElementById("DefRange").style.display=="block"){
		HideDefRange();
	}else{
		document.getElementById("DefRange").style.display="block";
	}
}

function HideDefRange() {
	document.getElementById("DefRange").style.display="none";
}

function toggle_visibility(){
  for(var i = 0, len = arguments.length;i < len;i++){
    var e = document.getElementById(arguments[i]).style;
    e.display = (e.display == "none") ? "block" : "none";
  }
}
// ------------------------ Show / Hide div scripts -----------------------

//------------------- Drag windows ----------
function closeFunction(DivName) {
	document.getElementById("Content" + DivName).innerHTML = '';
	dd.elements[DivName].hide();
	dd.elements[DivName].del();
	document.getElementById(DivName).style.height = '';
}
//------------------- Drag windows close & FWD ----------

//-----timer---
var timeDiff = null;
var timeStart = null;

var resis = new Object();
var timers = new Array();

function addTimer(element, endTime, reload) {
	var timer = new Object();
	timer['element'] = element;
	timer['endTime'] = endTime;
	timer['reload'] = reload;
	timers.push(timer);
}

function startTimer() {
	var serverTime = getTime(document.getElementById("serverTime"));
	timeDiff = serverTime-getLocalTime();
	timeStart = serverTime;

	var spans = document.getElementsByTagName("span");
	for(var i=0; i<spans.length; i++) {
		var span = spans[i];
		if(span.className == "timer" || span.className == "timer_replace") {
			startTime = getTime(span);
			if(startTime != -1)
				addTimer(span, serverTime+startTime, (span.className == "timer"));
		}
	}

	window.setInterval("tick()", 1000);
}

function tick() {
	tickTime();
	for(var res in resis) {
		tickRes(resis[res]);
	}
	for(timer=0;timer<timers.length;timer++){
		remove = tickTimer(timers[timer]);
		if(remove) {
			timers.splice(timer, 1);
		}
	}
}

function tickTime() {
	var serverTime = document.getElementById("serverTime");
	if(serverTime != null) {
		time = getLocalTime()+timeDiff;
		formatTime(serverTime, time, true);
	}
}

function tickTimer(timer) {
	var time = timer['endTime']-(getLocalTime()+timeDiff);

	if(timer['reload'] && time < 0) {
		document.location.href = document.location.href;
		formatTime(timer['element'], 0, false);
		return true;
	}
	
	if (!timer['reload'] && time <= 0)
	{
		var parent = timer['element'].parentNode;
		parent.nextSibling.style.display = 'inline';
		parent.parentNode.removeChild(parent); 
		
		return true;
	}
	
	formatTime(timer['element'], time, false);
	return false;
}

function getLocalTime() {
	var now = new Date();
	return Math.floor(now.getTime()/1000)
}

function getTime(element) {

	if(element.firstChild.nodeValue == null) return -1;
	part = element.firstChild.nodeValue.split(":");


	for(j=1; j<3; j++) {
		if(part[j].charAt(0) == "0")
			part[j] = part[j].substring(1, part[j].length);
	}
		
	hours = parseInt(part[0]);
	minutes = parseInt(part[1]);
	seconds = parseInt(part[2]);
	time = hours*60*60+minutes*60+seconds;
	return time;
}

function formatTime(element, time, clamp) {

	hours = Math.floor(time/3600);
	if(clamp) hours = hours%24;
	minutes = Math.floor(time/60) % 60;
	seconds = time % 60;

	timeString = hours + ":";
	if(minutes < 10)
		timeString += "0";
	timeString += minutes + ":";
	if(seconds < 10)
		timeString += "0";
	timeString += seconds;

	element.firstChild.nodeValue = timeString;
}
//----------- timer --------------

//----------- map --------------
function setXY(x,y)
{
	document.getElementById('XYdiv').innerHTML = ""+ x +","+ y;
}

function setInformation(userId, tileName, pop)
{
	document.getElementById("infoTable").style.display = "";
	document.getElementById("ownerCell").innerHTML = ""+userId;
	document.getElementById("nameCell").innerHTML = ""+tileName;
	document.getElementById("popCell").innerHTML = ""+pop;
}
//----------- map --------------

//----------- Attack --------------
function getElementsByName (tag, elemName)
{
	var elems = document.getElementsByTagName(tag);
	var returnElems = new Array();
	var b = 0;
	
	for (var i = 0; i < elems.length; i++)
	{
		if (elems[i].getAttribute("name") == elemName || elems[i].name == elemName)
		{
			returnElems[b] = elems[i];
			b++;
		}
	}
	
	return returnElems;
}

function setValue (elemName,elemValue)
{
	var elem = getElementsByName("input",elemName)[0];
	elem.value = elemValue;
	elem.setAttribute('value',elemValue);
}
//----------- Attack --------------

//----------- IFrame resizing --------------
function resizeCaller(iframeids) {
	var dyniframe=new Array()
	for (i=0; i<iframeids.length; i++){
		if (document.getElementById)
			resizeIframe(iframeids[i])
		//reveal iframe for lower end browsers? (see var above):
		if (document.all || document.getElementById){
			var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
			tempobj.style.display="block"
		}
	}
}

function resizeIframe(frameid){
	var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
	var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers
	var currentfr=document.getElementById(frameid)
	if (currentfr && !window.opera)
	{
		currentfr.style.display="block"
		if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
			currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight; 
		else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
			currentfr.height = currentfr.Document.body.scrollHeight;
		if (currentfr.addEventListener)
			currentfr.addEventListener("load", readjustIframe, false)
		else if (currentfr.attachEvent){
			currentfr.detachEvent("onload", readjustIframe) // Bug fix line
			currentfr.attachEvent("onload", readjustIframe)
		}
	}
}

function readjustIframe(loadevt) 
{
	var crossevt=(window.event)? event : loadevt
	var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
	if (iframeroot)
		resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url)
{
	if (document.getElementById)
		document.getElementById(iframeid).src=url
}
//----------- IFrame resizing --------------

//----------- Chat --------------
function MoveChatbox()
{
	var chatbox = dd.elements.chatbox;
	var chatclose = dd.elements.chatclose;
	var chatmaxmin = dd.elements.chatmaxmin;
	var chathide = dd.elements.chathide;

	if(chatbox.w == 630)
	{
		chatbox.resizeBy(-400,-150);
		chatbox.moveBy(+525,+200);
		
		chatclose.moveBy(+125,+200);
		chatmaxmin.moveBy(+125,+200);
		chathide.moveBy(+125,+200);
		
		document.getElementById("chatoutput").style.width = "200px";
		document.getElementById("chatoutput").style.height = "140px";
		document.getElementById("msg").style.width = "150px";
	}
	else
	{
		chatbox.moveBy(-525,-200);
		chatbox.resizeBy(+400,+150);
		
		chatclose.moveBy(-125,-200);
		chatmaxmin.moveBy(-125,-200);
		chathide.moveBy(-125,-200);
		
		document.getElementById("chatoutput").style.width = "600px";
		document.getElementById("chatoutput").style.height = "290px";
		document.getElementById("msg").style.width = "550px";
	}
}

function minChat() {
	if(document.getElementById("chat").style.visibility==""){
		sendRequest('interface_controls.php?option=chat&action=hide');
		HideChat();
	}else{
		sendRequest('interface_controls.php?option=chat&action=show');
		document.getElementById("chat").style.visibility="";
		document.getElementById("chatbutton").style.visibility="hidden";
	}
}
function HideChat() {
	document.getElementById("chat").style.visibility="hidden";
	document.getElementById("chatbutton").style.visibility="";
}
//----------- Chat --------------