
var ajaxWaitCounter = 0;

var ajaxResponse = '';

	// -------------------------------------------------------------- //
	
	function queryInterface(ajaxAction, fieldid, additional, method, lbaction, giveBack, wait) {
	
		if (! additional) additional = '';
		if (! method) method = 'get';
		
		ajaxResponse = false;
		
		if (method == 'get') {

			var url = 'ajax_interface.php?ajax_action=' + ajaxAction + additional;
			
			new Ajax.Request(url, {
			  method: 'get',
			  onSuccess: function(transport) {
				ajaxResponse = transport.responseText;
				//alert('bla!' + ajaxResponse);
			  },
			  onFailure: function(failure) {
			  	alert("error");
			  }
			});
					
		} else if (method == 'post') {
		
			var url = 'ajax_interface.php?ajax_action=' + ajaxAction;
			
			new Ajax.Request(url, {
			  
			  method: 'post',
			  parameters: additional,
			  asynchronous: ! giveBack,

			  onSuccess: function(transport) {
					ajaxResponse = transport.responseText;
					//alert("post: " + transport.responseText + " post end");
			  },
			  onFailure: function(failure) {
			  	alert("error");
			  }
			});			
		}
		
		if (fieldid && wait) {
			waitForAjaxhandler('reload', fieldid);
		} else {
			if (fieldid && ! wait) {
				if (giveBack) return ajaxResponse;		  		
				else if (lbaction) loadLightbox(fieldid, lbaction);
			} else if (wait) {
				waitForAjaxhandler('',fieldid);
			}
		}
				
		return ajaxResponse;
	}
	
	// ---------------------------------------------------------------- //
	
	function cancelTransport(transport_id, fieldid) {
		
		queryInterface('cancelJob', fieldid, '&jobNr=' + transport_id + '&jobType=marketTransport');
		
	}
	
	// ---------------------------------------------------------------- //
	
	function cancelTroupAction(ta_id) {
		
		queryInterface('cancelJob', false, '&jobNr=' + ta_id + '&jobType=action');
		waitForAjaxhandler('');
	
	}
	
	// ---------------------------------------------------------------- //
	
	function sendStuff(fieldid) {
		
		var amountWood = parseInt($('mWood').value);
		var amountBrick = parseInt($('mBrick').value);
		var amountOre = parseInt($('mOre').value);
		var amountFood = parseInt($('mFood').value);
		
		if (isNaN(amountWood)) amountWood = 0;
		if (isNaN(amountBrick)) amountBrick = 0;
		if (isNaN(amountOre)) amountOre = 0;
		if (isNaN(amountFood)) amountFood = 0;
		
		if (amountWood + amountBrick + amountFood + amountOre == 0) {
			alert(LANG_NO_RES_INSERTED);
			return false;
		}
				
		var max = $('max').value.split("|");
		
		//alert("du hast: " + max[0] + " holz " + max[1] + " brick " + max[2] + " ore " + max[3] + " food.");
		
		if (amountWood > max[0] || amountBrick > max[1] || amountOre > max[2] || amountFood > max[3])  {
			alert(LANG_NOT_ENOUGH_RES);
			return false;
		}
		
		if (amountWood + amountBrick + amountOre + amountFood > max[4]) {
			alert(LANG_NOT_ENOUGH_MERCHANTS);
			return false;
		}

		var targetX = parseInt($('marketX').value);
		var targetY = parseInt($('marketY').value);
				
		if (isNaN(targetX) || isNaN(targetY)) {
			alert(LANG_BAD_COORDS);		
			return false;
		}
						
		var param = '&amountWood=' + amountWood + '&amountBrick=' + amountBrick + '&amountOre=' + amountOre + '&amountFood=' + amountFood + '&targetX=' + targetX + '&targetY=' + targetY;

		queryInterface('requestMarketTransport', fieldid, param, 'get', '', false, true);
	
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function paySettler(fieldid) {
		// Siedler-Anzahlungen
		//var amount = $('stockAmount').value;
		//alert(amount + " mal einlagern");		
	
		$('paySettlerButton').update("<img src='images/icons/ajax_loader2.gif' alt='loading' />");
		queryInterface('stockIn');
		waitForAjaxhandler('reload', fieldid);
	}			
		
	// ----------------------------------------------------------------------------------------------------------------- //

	function deleteAlly(fieldid) {
		if (window.confirm(LANG_REALLY_CLOSE_ALLY)) {
			queryInterface('deleteAlly', fieldid, '', 'get', 'building', false, true);
		}
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function setNewFounder(fieldid) {
		if (window.confirm(LANG_REALLY_GIVE_LEADERSHIP)) {
			var newFounder = $('newfounder').value;
			queryInterface('setNewFounder', fieldid, '&newFounder=' + newFounder);
		}
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //

	function showEmbassy() {
		$('buildcontainer_0').toggle();
		$('embassyContent').toggle();
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function leaveAlly(fieldid) {
		queryInterface('leaveAlly', fieldid, false, false, 'invitations');
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function setAllyProfile(fieldid) {
	
		var profileForm = Form.serialize($('editAllyProfile'));
		queryInterface('setAllyProfile', fieldid, profileForm, 'post', 'options&lboption=profile');
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function setEmbassyRights(fieldid) {
	
		var formdata = Form.serialize($('memberRights'));
		var responseCheck = queryInterface('setEmbassyRights', fieldid, formdata, 'post', 'options', true);

		if (responseCheck == 'right A missing') alert(LANG_YOU_CANNOT_TAKE_THIS_RIGHT);
		else loadLightbox(fieldid, 'options');
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //

//(ajaxAction, fieldid, additional, method, lbaction, giveBack, wait) {

	function acceptMarketOffer(offerid, fieldid) {
		queryInterface('acceptMarketOffer', fieldid, '&offerid=' + offerid, 'get', '', false, true);
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function createAllyTopic(fieldid) {
		var data = $('newThread').serialize(true);
		queryInterface('newThread', fieldid, data, 'post', 'forum');
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function answerToThread(fieldid) {
		var data = $('answerThread').serialize(true);
		var thread_id = $('threadId').value;
		queryInterface('answerToThread', fieldid, data, 'post', 'forum&forumaction=showThread&thread=' + thread_id);	
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function deletePosting(fieldid, postingid) {
		if (window.confirm(LANG_REALLY_DELETE_POSTING)) {
			queryInterface('deletePosting', fieldid, '&postingId=' + postingid, 'get', 'forum');
		}
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function deleteTopic(fieldid, topicid) {
		if (window.confirm(LANG_REALLY_DELETE_TOPIC)) {
			queryInterface('deleteTopic', fieldid, '&topicId=' + topicid, 'get', 'forum');
		}
	}	
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function newDiplomacy(fieldid) {
	
		var allyshort = document.getElementById('markupShort').value;
		var dipltype = document.getElementById('markupType').value;

		var check = queryInterface('newDiplomacy', fieldid, '&markupShort=' + allyshort + '&diplType=' + dipltype, 'get', 
			'options&amp;lboption=diplomacy', true);
			
		if (check == 'nnf') alert(LANG_NO_ALLY_FOUND);
		else {
			loadLightbox(fieldid, 'options&lboption=diplomacy');
		}
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function deleteNews(fieldid) {
		queryInterface('deleteNews', fieldid, '', 'get', 'news');
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function cancelDiplomacy(fieldid, diplid) {
		queryInterface('cancelDiplomacy', fieldid, '&markupId=' + diplid, 'get', 'options&lboption=diplomacy');
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function fireFromAlly(userId, fieldid, username) {
	
		if (window.confirm(sprintf(LANG_REALLY_FIRE_FROM_ALLY, username))) {
			queryInterface('fireFromAlly', fieldid, '&memberid=' + userId, 'get', 'options');
		}
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function trim(s) {
	  	while (s.substring(0,1) == ' ') {
			s = s.substring(1,s.length);
	  	}
	  	while (s.substring(s.length-1,s.length) == ' ') {
	    	s = s.substring(0,s.length-1);
	  	}
	 	return s;
	}	
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function acceptAllyInvitation(fieldid, invId) {
		queryInterface('acceptAllyInvitation', fieldid, '&invId=' + invId, 'get', '', false, true);
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function deleteInv(invId, fieldid) {
	
		queryInterface('deleteInvitation', fieldid, '&invId=' + invId, 'get', 'options&lboption=invitations');
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function allyInvite(fieldid) {

		name = $('newInvName').value;
		if (trim(name) != '') {
			test = queryInterface('inviteToAlly', fieldid, 'name=' +encodeURIComponent(name), 'post','' , true);
		}		
		
		if (test == 'n/a') alert(LANG_NO_PLAYER_FOUND);
		else if(test == 'double') alert(LANG_PLAYER_ALREADY_INVITED);
		
		loadLightbox(fieldid, 'options&lboption=invitations');
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //
	
	function createAlly(fieldid) {
	
		var name = trim($('allyName').value);
		var allyShort = trim($('allyShort').value);
		if (name.length >= 3 && name.length <= 50 && allyShort.length <= 6 && allyShort.length >= 3) {
		
			var url = 'ajax_interface.php?ajax_action=makeNewAlly&allyName=' + escape(name) + '&allyShort=' + escape(allyShort);
			
				new Ajax.Request(url, {
				  method: 'get',
				  onSuccess: function(transport) {
				  	if (transport.responseText == 'done') {
				  		loadLightbox(fieldid, 'overview');
				  	} else if (transport.responseText == 'doubleNameError') alert(LANG_ALLY_NAME_EXISTING);
				  },
				  onFailure: function(failure) {
				  	alert("error");
				  }
				});
				
		} else {
			alert(LANG_FOUND_ALLY_NAME_ERROR);
		}
	}
	
	// ----------------------------------------------------------------------------------------------------------------- //

	function placeMarketOffer(fieldid) {

		for(var i = 0; i < $('newOffer').offeringType.length; i++) {
			if ($('newOffer').offeringType[i].checked) var offeringType = $('newOffer').offeringType[i].value;
		}
		var offeringAmount = parseInt($('offeringAmount').value);
		
		for (var i = 0; i < $('newOffer').wantingType.length; i++) {
			if ($('newOffer').wantingType[i].checked) var wantingType = $('newOffer').wantingType[i].value;
		}
		var wantingAmount = parseInt($('wantingAmount').value);

		var ratio = offeringAmount / wantingAmount;
		if (ratio > 3 || ratio < 0.333) {
			alert(LANG_MARKET_RATIO_ERROR);
			return false;
		}
		
		if (! isNaN(offeringAmount) && ! isNaN(wantingAmount)) {
			if (offeringType == wantingType) {
				alert(LANG_OFFER_SEARCH_ERROR);

			} else {
			
				if (offeringType == 'wood' || offeringType == 'brick' || offeringType == 'ore' || offeringType == 'food') {
		
					var runtime = parseInt($('runtimeValue').value);
										
					if (isNaN(runtime) || runtime > 24) runtime = 12;
					
					// Check ob genügend vorhanden
					var max = $('max').value.split("|");
					
					if (offeringType == 'wood') max = max[0];
					else if (offeringType == 'brick') max = max[1];
					else if (offeringType == 'ore') max = max[2];
					else if (offeringType == 'food') max = max[3];
					
					if (offeringAmount > max) alert(LANG_NOT_ENOUGH_RES);										
					else {
						var url = 'ajax_interface.php?ajax_action=newMarketOffer&offeringType=' + offeringType + '&offeringAmount=' + offeringAmount + '&wantingType=' + wantingType + '&wantingAmount=' + wantingAmount + '&runtime=' + runtime;

						new Ajax.Request(url, {
						  method: 'get',
						  onSuccess: function(transport) {
								loadLightbox(fieldid, 'myoffers');
						  },
						  onFailure: function(failure) {
						  	alert("error");
						  }
						});			
					}
				}			
			}
		} else {
			alert(LANG_BAD_ENTRY);
		}
	}
	
	// --------------------------------------------------------- //
	
	function deleteMarketOffer(offerid, fieldid) {

		if (! isNaN(offerid)) {
		
			$('deletecell_' + offerid).update('<img src="images/icons/ajax_loader2.gif" alt="loading..." title="loading..." />');
			
			var url = 'ajax_interface.php?ajax_action=cancelJob&jobType=marketOffer&jobNr=' + offerid;

			new Ajax.Request(url, {
				  method: 'get',
				  onSuccess: function(transport) {
						loadLightbox(fieldid, 'myoffers');
				  },
				  onFailure: function(failure) {
				  	alert("error");
				  }
				});		
		} else {
			alert(LANG_BAD_ENTRY);
		}
	}
	
	// --------------------------------------------------------- //
	
	function sendBackSupport(supportId, fieldid, isGroup) {

		$('sendback_' + supportId).update('<img src="images/icons/ajax_loader2.gif" alt="loading..." title="loading..." />');
		// function queryInterface(ajaxAction, fieldid, additional, method, lbaction, giveBack, wait) {
		
		var add = '&supportId=' + supportId
		if (isGroup) add = add + '&isGroup=1';
		//queryInterface('sendBackSupport', fieldid, add, 'get', '', false, true);
	
	
		var url = 'ajax_interface.php?ajax_action=sendBackSupport' + add;

		new Ajax.Request(url, {
		  method: 'get',
		  onSuccess: function(transport) {
				loadLightbox(fieldid, false, '&placeaction=troups');
		  },
		  onFailure: function(failure) {
		  	alert("error");
		  }
		});			
	
	}
	
	// --------------------------------------------------------- //
	
	function request_research(researchunit, researchtype, fieldid) {
		$(researchtype + "_" + researchunit).update('<img src="images/icons/ajax_loader2.gif" alt="loading..." title="loading..." />');
		queryInterface('requestResearchStart', fieldid, '&researchtype=' + researchtype + '&researchunit=' + researchunit,
			'', '', '', true);
	}
	
	// --------------------------------------------------------- //
	
	function cancel_research(research_id, fieldid) {
		$('cancelResearch').update('<img src="images/icons/ajax_loader2.gif" alt="loading..." title="loading..." />');
		queryInterface('cancelJob', fieldid, '&jobType=research&jobNr=' + research_id,
			'', '', '', true);
	}
	
	// --------------------------------------------------------- //
	
	function clearTooltips() {
			// Alle tooltips entfernen
		
		var spans = document.getElementsByTagName('span');
		var buttons = document.getElementsByTagName('button');
		
		for (var i = 0; i < spans.length; i++) {
			var s = $(spans[i]);
			Tips.remove(s);
		}
	}
	
	// --------------------------------------------------------- //
	
	function requestMilitaryAction(field_id) {

		var url = 'ajax_interface.php?ajax_action=requestTroupaction';
		
		$('unitsendSubmit').innerHTML = '<img src="images/icons/ajax_loader2.gif" alt="loading..." />';
		
		new Ajax.Request(url, {
		  method: 'post',
		  parameters: 
		  	$('troupactionInfo').serialize(true),
		  	
		 onSuccess: function(transport) {
		 		//alert(transport.responseText);
		  		var actionId = parseInt(transport.responseText);
		  		if (! isNaN(actionId)) {
			  		ajaxWaitCounter = 0;
			  		waitForAjaxhandler('actionRequest');
		  		} else alert("antwort: " + transport.responseText);
		  },		
		  onFailure:
		   function(failure) {
		  
		  	alert("error");
		  }
		});		
	}

	// --------------------------------------------------------- //
	
	function updateLightbox(fieldid) {
	
		if ($('nu_remain')) $('nu_remain').innerHTML = '<img src="images/icons/ajax_loader2.gif" alt="loading..." />';
	
		resUpdateOnce();
		loadLightbox(fieldid);

	}
	// ---------------------------------------------------------------- //
	function insertFav(fieldid, input) {

		if ($('favCoords_' + input)) var input = $('favCoords_' + input).value.split('|');
		else var input = input.split('|');
		
		if (! isNaN(parseInt(input[0])) && ! isNaN(parseInt(input[1]))) {
			queryInterface("insertFavTarget", fieldid, '&x=' + input[0] + '&y=' + input[1]);
		} else {
			alert(LANG_INSERT_COORDS_LIKE_THIS);
		}
		
		if (! fieldid) {
			loadContentLightbox('lb_main.php?action=viewarea&mapX=' + input[0] + '&mapY=' + input[1], false, true);
		}
		
	}
	// ---------------------------------------------------------------- //
	function deleteFav(fieldid, favid) {
		if (favid && ! isNaN(favid)) {
			queryInterface("deleteFavTarget", fieldid, '&favid=' + favid);
		}
	}	
	// ---------------------------------------------------------------- //
	function loadContentLightbox(location,update, reload) {

		var location = 'lightbox_content/' + location;
	  	var pseudoLink = document.createElement('a');
	  	pseudoLink.href = location;
		lb = new lightbox(pseudoLink);
		if (reload) lb.loadContent(location);
		else lb.activate(update);
	}	
	// ---------------------------------------------------------------- //
	function loadLightbox(fieldid, lbaction, otherparams) {
	  	var pseudoLink = document.createElement('a');
		lb = new lightbox(pseudoLink);
		var location = 'lightbox_content/lb_main.php?action=build&field_build=' + fieldid;
		
		if (lbaction) location = location + '&lbaction=' + lbaction;
		if (otherparams) location = location + otherparams;
		
		lb.loadContent(location);
	}
	// ----------------------------------------------------------------- //
	function goHome()  {
		window.location.href = 'user.php';
	}
	// ----------------------------------------------------------------- //
	
	function requestMilitary(form, fieldid) {

		var type = parseInt($('formid_' + form).unitID.value);
		if ($('formid_' + form).unitCount) var count = parseInt($('formid_' + form).unitCount.value);
		else count = 0;
		
		if ($('formid_' + form).groupID) var group = parseInt($('formid_' + form).groupID.value);
		else group = 0;

		if (! isNaN(type) && ! isNaN(count)) {

			$('formcell_' + form).innerHTML = '<img src="images/icons/ajax_loader2.gif" alt="loading..." />';
		
			var url = 'ajax_interface.php?ajax_action=requestMilitary&count=' + count +'&type=' + type + '&group=' + group;
		
			new Ajax.Request(url, {
			  method: 'get',
			  onSuccess: function(transport) {
					loadLightbox(fieldid);
			  },
			  onFailure: function(failure) {
			  	alert("error");
			  }
			});		
		} else {
			//alert(type + " " + count + " form:" + form);
		}
	}
	
	// -------------------------------------------------------------- //

	function setVacationMode() {
	
		$('vacCell').innerHTML = '<img src="images/icons/ajax_loader2.gif" alt="loading..." />';
		
		//queryInterface('setVacMode', '','','get','','', true);
		
		var url = 'ajax_interface.php?ajax_action=setVacMode';
			
		new Ajax.Request(url, {
		  method: 'get',
		  onSuccess: function(transport) {
		  	if (transport.responseText == 'done') {
		  		window.location = 'index.php';
		  	} 
		  },
		  onFailure: function(failure) {
		  	alert("error");
		  }
		});		
		
		
	}
	
	// ----------------------------------------------------------------- //
	
	function requestBuilding(key) {

		var fieldid = parseInt($('buildform_' + key).field_construct.value);
		var buildid = parseInt($('buildform_' + key).build_construct.value);
		
		if (fieldid && buildid && ! isNaN(fieldid) && ! isNaN(buildid)) {
		
			$('buildcontainer_' + key).innerHTML = '<img src="images/icons/ajax_loader.gif" alt="loading..." />';
			var url = 'ajax_interface.php?ajax_action=requestBuilding&field=' + fieldid +'&building=' + buildid;
		
			new Ajax.Request(url, {
			  method: 'get',
			  onSuccess: function(transport) {
				waitForAjaxhandler('buildingRequest');
				//loadLightbox(fieldid);
			  },
			  onFailure: function(failure) {
			  	alert("error");
			  }
			});				
		}
	}
	
	// ---------------------------------------------------------------- //
	
	function requestPremMerch() {
		var diffWood = parseInt($('diffWood').innerHTML.split('+').join(''));
		var diffBrick = parseInt($('diffBrick').innerHTML.split('+').join(''));
		var diffOre = parseInt($('diffOre').innerHTML.split('+').join(''));
		var diffFood = parseInt($('diffFood').innerHTML.split('+').join(''));
		
		var sum = diffWood + diffBrick + diffOre + diffFood;
		
		if (sum != 0) {
			alert(LANG_PREMMERCH_NO_MATCH);
			return false;
		}
		
		if (diffWood == 0 && diffBrick == 0 && diffOre == 0 && diffFood == 0) {
			alert(LANG_PREMMERCH_NOT_SET);
			return false;
		}
		
		var url = 'ajax_interface.php?ajax_action=requestPremMerch&w=' + diffWood + '&b=' + diffBrick + '&o=' + diffOre + '&f=' + diffFood;

		$('premSubmit').update('<img src="images/icons/ajax_loader2.gif" />');

		new Ajax.Request(url, {
		  method: 'get',
		  onSuccess: function(transport) {
		  	window.location = 'user.php?action=home';
		  },
		  onFailure: function(failure) {
		  	alert("error");
		  }
		});		
		
	}
	
	// ---------------------------------------------------------------- //
	
	function waitForAjaxhandler(eventType, fieldid) {

		var url = 'ajax_interface.php?ajax_action=waitForEventhandler';

		new Ajax.Request(url, {
		  method: 'get',
		  onSuccess: function(transport) {
		  
			if (transport.responseText == 'done') {
				if (eventType == 'militaryRequest' || eventType == 'reload') {
					loadLightbox(fieldid);
				} else {
					goHome();
				}
			}
		  },
		  onFailure: function(failure) {
		  	alert("error");
		  }
		});		
	}
	
	// --------------------------------------------------------- //
	
	function cancelJob(jobNr, jobType, fieldId) {

		jobNr = parseInt(jobNr);	
		if (! isNaN(jobNr) && (jobType == 'barracks' || jobType == 'building')) {
		
			if (jobType == 'barracks') {
				$('cancelCell_' + jobNr).update("<img src='images/icons/ajax_loader2.gif' alt='loading...' />");
			}
			
			if (jobType == 'building') {
				
			}
		
			var url = 'ajax_interface.php?ajax_action=cancelJob&jobNr=' + jobNr + '&jobType=' + jobType;
			
			new Ajax.Request(url, {
			  method: 'get',
			  onSuccess: function(transport) {
					if (jobType == 'barracks') {
						loadLightbox(fieldId);
			 		} else {
			 			goHome();
			 		}
			  },
			  onFailure: function(failure) {
			  	alert("error");
			  }
			});				
		}
	}
	
	// --------------------------------------------------------- //
	
	function insertMaxUnits(field, count) {
		$('unitCount_' + field ).value = count;
	}
	
	// --------------------------------------------------------- //
	
	function decreaseCount() {
		$('unitCount').innerHTML = parseInt($('unitCount').innerHTML) - 1;	
	}

	// --------------------------------------------------------- //
		
	updateResView = function (request) {
	
		if (request.responseText.isJSON()) {
		
			var res = request.responseText.evalJSON();
			
			$('ressourceWood').update(res.res.wood);
			$('ressourceBrick').update(res.res.brick);
			$('ressourceOre').update(res.res.ore);
			$('ressourceFood').update(res.res.food);
			
			if (res.ofl.wood) $('ressourceWood').className = 'overflow';
			else $('ressourceWood').className = '';	
			if (res.ofl.brick) $('ressourceBrick').className = 'overflow';
			else $('ressourceBrick').className = '';
			if (res.ofl.ore) $('ressourceOre').className = 'overflow';
			else $('ressourceOre').className = '';
			if (res.ofl.food) $('ressourceFood').className = 'overflow';
			else $('ressourceFood').className = '';							
			
			var length = $('militaryInVillage').tBodies[0].rows.length;
			
			for (var i = 0; i < length; i++) {
				$('militaryInVillage').deleteRow(0);
			}
		
			rows = 0;
			res.mil.each(function(military, index) {
				//alert (military.name + ' ' + military.count + ' ' + military.image);
				
				var row = $('militaryInVillage').insertRow(rows);
				
				var td1 = document.createElement('td');
				td1.innerHTML = '<img src="images/units/' + military.image + '" alt="' + military.name + '" />';
				
				var td2 = document.createElement('td');
				td2.appendChild(document.createTextNode(military.count));
				
				var td3 = document.createElement('td');
				td3.appendChild(document.createTextNode(military.name));			
					
				row.appendChild(td1);
				row.appendChild(td2);
				row.appendChild(td3);
							
				//$('militaryInVillage').appendChild(row);
								
				rows ++;
			});
			
			$('militaryTable').innerHTML = table;
			
		} else {
			
			//alert(request.responseText);
		
			if (request.responseText.substring(0,14) == '<?xml version=') document.location.href= 'index.php';
		}
	}	
	
	/* -------------------------------------------------------------------- */
	
	function resUpdate() {
		var url = 'ajax_interface.php?ajax_action=recalcVillage';
		var resUpdater = new Ajax.PeriodicalUpdater('resources', url, {frequency: 30, onSuccess:updateResView});
	}
	
	/* -------------------------------------------------------------------- */

	function resUpdateOnce() {

		//alert("resup once");
		var url = 'ajax_interface.php?ajax_action=getNewResources&';
		var resUpdater = new Ajax.Updater('resources', url, {onSuccess:updateResView});
	}	

	/* -------------------------------------------------------------------- */
	
	function selectMaxUnits(unit, count) {
		$('unit_' + unit).value = count;
	}


	// -------------------------------------------------------------- //
	
	function sendUnitValues() {
		
		var sendstring = '';

		for(i = 0; i < document.sendUnits.elements.length; i++) {
			var el = document.sendUnits.elements[i];
			if (el.value != '' && (el.className == 'unitField' || el.className == 'toJs' || (el.className == 'groupField' && el.checked == true))) {
				//alert(el.value);
				sendstring = sendstring + '&' + el.name + '=' + el.value;
			}
		}

		sendstring = sendstring + '&sendUnits=1';

		//alert(sendstring);

		var pseudoLink = document.createElement('a');
		lb = new lightbox(pseudoLink);
		lb.loadContent('lightbox_content/lb_main.php?action=attack&' + sendstring.substr(1));
		
	}
	
	// -------------------------------------------------------------- //
	
	function settle(x, y) {
		//alert("siedeln auf: " + x + ", " + y);
		$('settleButton').update('<img src="images/icons/ajax_loader2.gif" alt="loading" />');
		queryInterface('settle', 0, '&x=' + x + '&y=' + y);
		waitForAjaxhandler('');
		//alert("check");
	}
	
	// -------------------------------------------------------------- //
	
	function goback(target) {
		var pseudoLink = document.createElement('a');
		lb = new lightbox(pseudoLink);
		lb.loadContent('lightbox_content/lb_main.php?action=attack&target=' + target);	
	}	
	
	// -------------------------------------------------------------- //

	// --------------------------------------------------------- //
	// 						JS - COuntdown		 				 //
	// --------------------------------------------------------- //
	
var global_seconds = new Object();
var global_ready_location = new Object();
var global_ready_functions = new Object();
var global_timeouts = new Object();

// -------------------------------------------------------------- //

function start_countdown(seconds, element_id, location, upcount) {

	// Wenn die location mit 'function::' beginnt, wird am Schluss die angegebene js - Funktion aufgerufen.
	// Wird function::hide angegeben, wird der Counddown ausgeblendet.
	// Ansonsten wird zu der angegebenen Location gewechselt. 
	
	if (location && location.slice(0,10) == 'function::') {
		global_ready_functions[element_id] = location.slice(10);
	} else {
		global_ready_location[element_id] = location;
	}

	window.clearTimeout(global_timeouts[element_id]);

	global_seconds[element_id] = seconds;
	if(upcount) {
		//alert("upcount");
		global_timeouts[element_id] = window.setTimeout("countUp('" + element_id + "')", 1000);
	} else {
		global_timeouts[element_id] = window.setTimeout("countdown('" + element_id + "')", 1000);
	}
}


// -------------------------------------------------------------- //

function countdown_clear() {

	global_seconds = new Object();
	global_ready_location = new Object();
	global_ready_functions = new Object();
	
	for (timeout in global_timeouts) {
		window.clearTimeout(global_timeouts[timeout.name]);
	}
}

// -------------------------------------------------------------- //

function countdown_info() {
	var c = 0;
	
	for (var element in global_seconds) {
		c++;
	}
	//alert("es laufen gerade " + c + " countdowns.");
}

// -------------------------------------------------------------- //

function countUp(element_id) {
	global_seconds[element_id] = parseInt(global_seconds[element_id]) +1;
	
	var target = document.getElementById(element_id);	
	if (target) {
		target.removeChild(target.childNodes[0]);
		target.appendChild(document.createTextNode(seconds_to_time(global_seconds[element_id])));
		global_timeouts[element_id] = window.setTimeout("countUp('" + element_id + "')", 1000);
	}	
	
}

// -------------------------------------------------------------- //

function countdown (element_id) {

	global_seconds[element_id] = global_seconds[element_id] -1;

	if (global_seconds[element_id] < 0 && global_ready_location[element_id]) {
		// Countdown abgelaufen, Umleitung auf die Location		
		window.location.href = global_ready_location[element_id];
	} else if (global_seconds[element_id] < 0 && global_ready_functions[element_id]) {
		if (global_ready_functions[element_id] == 'hide') {
			document.getElementById(element_id).style.display = 'none';
		}
		eval(global_ready_functions[element_id] + ";");
	} else {
		var target = document.getElementById(element_id);	
		if (target) {
			target.removeChild(target.childNodes[0]);
			target.appendChild(document.createTextNode(seconds_to_abs(global_seconds[element_id])));
			global_timeouts[element_id] = window.setTimeout("countdown('" + element_id + "')", 1000);
		}
	}
}

// -------------------------------------------------------------- //

function seconds_to_time(tseconds) {

	var dateobj = new Date(tseconds * 1000);
	var h = dateobj.getHours();
	if (h < 10) h = '0' + h;
	
	var m = dateobj.getMinutes();
	if (m < 10) m = '0' + m;
	
	var s = dateobj.getSeconds();
	if (s < 10) s = '0' + s;	
	
	return (h + ":" + m + ":" + s);
		
}

// -------------------------------------------------------------- //

function seconds_to_abs(tseconds) {

	var hour = Math.floor(tseconds / 3600);
	var minutes = Math.floor((tseconds - hour * 3600) / 60);
	var seconds = tseconds - hour * 3600 - minutes * 60;
	
	var formatted = hour + ':';
	
	if (minutes < 10) formatted = formatted + '0' + minutes.toString(); else formatted = formatted + minutes.toString();
	formatted = formatted + ":";
	if (seconds < 10) formatted = formatted + '0' + seconds.toString(); else formatted = formatted + seconds.toString();	

	return formatted;
	
}

// -------------------------------------------------------------- //

function updateLink(fieldid) {

	var ws = $('wantingSearch').value;
	var os = $('offeringSearch').value;
	var order = $('orderParam').value;
	var desc = $('descParam').value;
	
	$('searchL').href = 'lightbox_content/lb_main.php?action=build&order=' + order + '&desc=' + desc + '&field_build=' + fieldid + '&lbaction=offers&wantingSearch=' + ws + '&offeringSearch=' + os;
}

// -------------------------------------------------------------- //

function instantBuild() {
	//if (window.confirm(LANG_REALLY_DO_INSTANT_BUILD)) {
		
		if ($('buildLoop')) {
			$('buildLoop').style.textAlign = 'center';
			$('buildLoop').style.lineHeight = '230px';
			$('buildLoop').style.verticalAlign = 'middle';
			$('buildLoop').update('<img style="margin:0 auto;" src="images/icons/ajax_loader.gif" alt="loading.." />');
		}
		
		var url = 'ajax_interface.php?ajax_action=requestInstantBuild';
		
		new Ajax.Request(url, {
		  method: 'get',
		  onSuccess: function(transport) { 
		  	ajaxResponse = transport.responseText;
		  	window.location = 'user.php?action=home'
		  },
		  onFailure: function(failure) { alert("error"); }
		});	
		
	//} else {
	//	return false;
	//}
}
	
// -------------------------------------------------------------- //
	
	function sprintf() {
	 if( sprintf.arguments.length < 2 ) {
	  return;
	 }
	 
	 var data = sprintf.arguments[ 0 ];
	 
	 for( var k=1; k < sprintf.arguments.length; ++k ) {
	 
	  switch( typeof( sprintf.arguments[ k ] ) )
	  {
	   case 'string':
	    data = data.replace( /%s/, sprintf.arguments[ k ] );
	    break;
	   case 'number':
	    data = data.replace( /%d/, sprintf.arguments[ k ] );
	    break;
	   case 'boolean':
	    data = data.replace( /%b/, sprintf.arguments[ k ] ? 'true' : 'false' );
	    break;
	   default:
	    /// function | object | undefined
	    break;
	  }
	 }
	 return( data );
	}	

	/* -------------------------------- Village Select ------------------------------- */

	var oldclass =  'vselectNormal';

	function hoverVselect(element) {
		oldclass = element.className;
		element.className = 'vselectHover';
	}
	
	function hoverOutVselect(element) {
		element.className = oldclass;
	}
	
	function toggleVselect() {
		if ($('vSelect').style.display == 'none') showVselect();
		else hideVselect();
	}
	
	function showVselect() {
		Effect.BlindDown('vSelect', {duration:0.2});
	}
	
	function hideVselect() {
		Effect.BlindUp('vSelect', {duration:0.2});
	}

	/* --------------------------------- */

	function toggleGroupView() {
		var table = $('groupTable');
		if (table.style.display == 'none') {
			Effect.Appear('groupTable', {duration:0.3});
			$('showGroups').hide();
			$('hideGroups').show();
		} else {
			Effect.Fade('groupTable', {duration:0.3});
			$('showGroups').show();
			$('hideGroups').hide();
		}
	}

	function gamepay_item(url) { 
		var new_win = window.open(url,'Gamepay','resizable=yes,scrollbars=yes,menubar=no,toolbar=no,status=yes,width=820,height=800,top=0,left=0'); new_win.focus(); 
	}
	
var dom			= document.getElementById ? 1 : 0;
var ie			= document.all ? 1 : 0;
var mac			= (navigator.userAgent.indexOf("Mac") > -1) ? 1 : 0;
var ieReal		= (ie && (!mac) && ( typeof(window.offscreenBuffering) != 'undefined') ) ? 1 : 0;
var isActiveX	= ieReal;
var isSp2		= ieReal && (window.navigator.userAgent.indexOf("SV1") != -1);

function changeOpacity(obj, opacity) {
if(ieReal) {
obj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + (opacity * 100) + ')';
}
else if(dom) {
obj.style.MozOpacity = opacity;
//obj.style.opacity = opacity;
}
}

