// ==UserScript==
// @name 	Ikariam: End Time
// @version	0.7
// @author 	Phate
// @description    	A script for Ikariam that puts the end time in the countdown. 
// @include       	http://s*.ikariam.*/*
// @exclude        	http://board.ikariam.*/*
// @require        	http://digilander.libero.it/phate72/End_Time_07/building.js
// @require        	http://digilander.libero.it/phate72/End_Time_07/army.js
// @require        	http://digilander.libero.it/phate72/End_Time_07/transport.js
// @require        	http://digilander.libero.it/phate72/End_Time_07/miscellaneous.js
// @require			http://userscripts.org/scripts/source/57756.user.js
//
// @history        0.7 Changed the calculation of warehouse.
// @history        0.7 Changed the storege levels of the port and warehouse.
// @history        0.7 The page of the Trade fleet is now possible to cancel the loading goods.

// ==/UserScript==
// Changelog:
//	v0.7	Modificato calcolo costruzione magazzini
//			Modificato salvataggio livelli porto e magazzino
//			Adesso è possibile annullare il caricamento merci nella pagina della flotta mercantile.
//
//	v0.6.2	Aggiunta lingua greca.
//			Aggiunta lingua portoghese.
//			BugFix; Nel mercato lo script restituisce un errore se mancano le materie prime.
//			Features: Inserita la possibilità di selezionare nelle Opzioni il formato dell'ora (12h o 24h).
//
//	v0.6.1	BugFix: errore di cella2 inesistente nei movimenti flotta.
//			BugFix: errore funzione cityIdButtonTroops. Modificato codice ed eliminato funzione.
//			BugFix: lo script restituisce un errore se la pagina schiera truppe/flotte restiruisce un errore. Intercettato l'errore.
//			Completata la traduzione in polacco (era parziale).
//
//	v0.6	Completamente rivisitato il codice di tutto lo script, adesso i timer cercano i tempi nei countdown del gioco (conteggi piu' precisi).
//			Features: Pagina nuove costruzione non mette più l'ora di fine costruzione se non si hanno le risorse.
//			BugFix: corretto l'errato calcolo dell'occupazione stiva nella pagina delle movimentazione truppe.
//			Inserito abbreviazioni mesi per ogni lingua.
//			Features: Calcolo rientro mercantili per interruzione missione di tipo scambio merci e attacco citta' nella pagina Flotta mercantili.
//			Features: Inserito calcolo del tempo in cui il porto e' occupato a caricare altre navi. Attualmente il calcolo e' giusto solo se le missioni di
//						caricamento vengono annullate nel porto. Non si possono considerare gli eventuali caricamenti di navi per acquisto merci.
//			Features: Inserito data di fime ampliamento cava/miniera/vigna.
//			Features: Inserito nella previsione del riempimento città la scritta 'pieno' quando si raggiunge la capienza massima della città.
//			Features: Inserito nella pagina Flotta mercantili il countdown e la data di arrivo a destinazione quando la missione e in fase di caricamento merci 
//						o truppe nel porto.
//			Request: Inserito i secondi nel calcolo della data nelle movimentazioni truppe.
//			Request: Possibilita' di escludere la previsione di citta' piena nella pagina delle opzioni.
//			Adeguato lo script alla versione 0.3.2 di ikariam.
//			Features: Nella pagina dell'Advisor ricerche viene inserita la data in cui si avranno abbastanza punti per acquistare la ricerca.
//			Features: Inserito il tempo di caricamento merci, quando si compra merce nel mercato, con la ver0.3.2 di ikariam e' noto il livello del porto del venditore.
//			Features: Nelle pagine della baracca e del Cantiere navale viene calcolato il tempo necessario e la data di fine reclutamento o costruzione.
//			Aggiornato l'occupazione stiva delle truppe alla versione 0.3.2 di Ikariam (cambiano gli spazi occupati dalle varie truppe, aggiunta nuova unita').
//			Aggiunto lingua lettone.
//			Request: Possibilita' di selezionare come orario di riferimento l'ora locale o quella del server di ikariam.
//			Features: Nel mercato quando si spedisce della merce di una richiesta viene calcolato il tempo di carico e data di andata e ritorno dei mercantili.
//			Inserito data nel conto all'arrovescia per la fine del miracolo.
//
//	v0.5.1	Aggiunta lingua Polacca, Israeliana e Ungherese.
//
//	v0.5	Feature: Nel tempo di caricamento vengono conteggiati anche i secondi.
//			BugFix: nei trasporti non calcolava il tempo di carico se uno dei valori risorse non era un numero.
//			BugFix: errato calcolo dei tempi di costruzione se si visualizza una citta differente da quella selezionata nella sezione NavCity.
//			Feature: Nel riepilogo mercantile inserita la percentuale di stiva piena.
//			Feature: Inserito nelle opzioni la possibilità di cambiare lingua e di togliere il controllo degli errori.
//			Feature: Una volta al giorno c'e il controllo di nuove versioni.
//			Feature: Aggiunto file Army.js, che contiene tutte le funzioni dell'esercito e della flotta.
//			Feature: Nella spedizione blocca porto inserita la data di inizio e fine blocco e l'ora di rientro della flotta nel proprio porto.
//			Feature: Aggiunto file trasport.js, che contiene tutte le funzioni inerenti al trasporto merci.
//			Feature: Nella pagina dell'invio mercantili per comprare merce adesso è possibile sapere l'ora di arrivo e l'ora dopo la quale può arrivare la merce.
//			Feature: Nella pagina del trasporto merci addesso riconosce se è un trasporto interno oppure uno scambio, in quest'ultimo caso calcola anche l'ora di rientro dei mercantili.
//			BugFix: Migliorato il conteggio del rientro mercantili dalle missioni di compra merce.
//			Feature: Nel riepilogo dei movimenti flotta nella prima colonna è presente l'ora d'arrivo e nella tabella di carico sotto il numero dei mercantili c'è la percentuale di stiva piena.
//			BugFix: Migliorata la conversione dei countdown, adesso per comparare i dati si usano le variabili di tempo usate dagli script GameForge.
//			Feature: Nel calcolo della mancanza risorse delle costruzioni adesso controlla che ci sia un livello adeguato del magazzino ed informa sulla capienza del magazzino attuale.
//			Feature: Nel porto durante il caricamento merci c'è l'orario in cui termina.
//			Feature: Quando si inviano o rientrano spie viene notificata l'ora di fine operazione.
//			Aggiunta traduzione in spagnolo. Grazie a Rohcodom
//			Feature: Aggiunto data di fine costruzione nell'elenco dei nuovi edifici, quando si vuol creare una nuova costruzione in uno spazio edificabile.
//
// 	v0.4	BugFix: corretto l'inversione delle date di fine costruzione e fine ricerca nell'accademia.
//			Nella pagina trasporto inserito come tooltip del tempo di caricamento, il livello del porto su cui è stato fatto il calcolo.
//			Nella pagina del trasporto viene calcolata quanta merce è possibile stivare ancora senza dover aggiungere navi.
//			BugFix: script genera errore se una costruzione arriva al suo massimo livello.
//
//	v0.3	Negli edifici controllo delle risorse necessarie a costruirlo, se ci sono tutte le risorse, mette la data e l'ora di fine costruzione, 
//				altrimenti visualizza le risorse mancanti.
//
//	v0.2	Previsione di Data fine costruzione, quando si entra in qualsiasi edificio. Nel caso in cui nella citta
//				si stia gia costruendo un edificio, verra visualizzato anche la data di inizio costruzione.
//			Nella pagina di un edificio in costruzione visualizza la ora e data di fine upgrade.
//			Nella pagina della Flotta mercantile vengono inseriti l'ora di arrivo e di rientro.
//			Nella pagina di Trasporto viene inserito il tempo di caricamento e l'ora di arrivo del carico.
//			Nella pagina del mercato viene inserito il totale del guadagno ottenuto dalle possibili vendite.
//			Avvertimento se esiste una versione nuova.
//
//	v0.1	Data fine costruzione della pagina della citta
//			Data fine ricerca nella pagina dell'accademia e in quella dele ricercatore
//			Integrato script Ikariam predict

// ******************************************************************** 
// PROBLEMI che si possono riscontrare nell'eseguzione dello script:
//	Nel trasporto merci il calcolo del porto occupato per il caricamento di altri mercantili funziona solo se la 
//		cancellazzione del caricamento viene effettuata nella pagina del porto
// ********************************************************************
// Featurs:
// 	Inserire la cancellazione del tempo di caricamento dalla pagina Flotta Mercantile
// 	Inserire setInteval anche per le date di arrivo per l'aggiornamento continuo

ScriptUpdater.check(52268, '0.7');

var lversion = "0.6.2";
var lang = getLanguage();
var page = document.getElementsByTagName('body')[0].id;
var curdate = getDate()

window.addEventListener('load',  function() 
{ 
try
{	
	var scriptCnt = document.getElementsByTagName('script');
	for(var j=0 ; j< scriptCnt.length; j++)
	{
		if (scriptCnt[j].innerHTML.indexOf('getCountdown') >= 0)	// search script with countdown
		{
			var cntdw = scriptCnt[j].innerHTML.split('getCountdown');
			for (var jj = 1; jj < cntdw.length; jj++)
			{
				var name = cntdw[jj].split('"')[1];	// check ID of countdown
				var timediff = (parseInt(cntdw[jj].split("enddate: ")[1]) - parseInt(cntdw[jj].split("currentdate: ")[1]))*1000;	// time of countdow
				
				// countdown bulding
				if (name == 'cityCountdown') {cityCountdown(name,curdate + timediff)}
				else if (name == 'upgradeCountDown') {upgradeCountDown(name,curdate + timediff)}	// countdown building
				else if (name == 'cooldown') {coolDown(name,curdate + timediff)}	// countdown miracle
				
					
				// countdown transport
				else if (name == 'outgoingOwnCountDown' || name == 'outgoingAlienCountDown') {outgoingOwnCountDown(name,curdate + timediff)}	// loding time in the port
				else if (name.indexOf('eta') == 0) {etaMerchantNavy(name,curdate + timediff)}
				else if (name.indexOf('ret') == 0) {retMerchantNavy(name,curdate + timediff)}
					
				// countdown troops and fleets
				else if (name.indexOf('fleetRow') == 0) {fleetRowMilitaryMovements(name,curdate + timediff)}
				else if (name.indexOf('SpyCountDown') == 0) {spyCountDownHideOut(name,curdate + timediff)}
				else if (name.indexOf('buildCountDown') == 0) {buildCountDownBarracks(name,curdate + timediff)}
					
				//not countdown included
				//else{confirm(name +' | '+ timediff);}
			}
		}
	}
		
	// page Building
	if (page == 'city')	{pageCity()}	// if you view town
	if (document.getElementById('buildingUpgrade') != null && document.getElementById('upgradeCountDown') == null)	// if you view building and the building not upgraded
			{predictEndDateBuilding()}
	if (page =='buildingGround') {pageBuildingGround()} 	// new building
	if (page =='townHall') {pageTownHall()} 				// townHall
	if (page =='researchAdvisor') {pageResearchAdvisor()} 	// researchAdvisor
		
	// page Transport
	if (page =='merchantNavy') 	{pageMerchantNavy()}	// How hold are full and number of the cargo required the load
	if (page =='branchOffice') 	{pageBranchOffice()}	// How much money you get from the market
	if (page =='transport') 	{pageTransport()}		// How much time for load cargo
	if (page =='takeOffer') 	{pageTakeOffer()}		// Buy Goods
	if (page =='port') 			{pagePort()}			// abort loading cargo
		
	// page Troops and Fleets
	if (page =='militaryAdvisorMilitaryMovements') {pageMilitaryAdvisorMilitaryMovements()} // fleets movements
	if (page =='blockade')		{pageBlockade()} 					// Block port
	if (page =='deployment')	{pageDeployment()}					// transport troops
	if (page =='plunder')		{pagePlunder()} 					// pillage
	if (page =='barracks' || page =='shipyard')	{pageBarracks()} 	// Building troops and fleets
		
	// other page
	if (page == 'options')
	{
		
		var newElement = document.createElement("form");
		newElement.setAttribute('id','optionEndTime');
		newElement.innerHTML = 
			"<div class='contentBox01h'>" +
				"<h3 class='header'><span class='textLabel'>End_Time v"+ lversion +" <a href='http://userscripts.org/scripts/show/52268' target='_blank'>(by Phate)</a></span> "+
				"<span id=EndTimeupdateVersion></span></h3>"+
				"<div class='content'>" +
					"<table cellpadding='0' cellspacing='0'>"+
						"<tbody>"+
							"<tr>" +
								"<th id='ET_headtime'>"+ lang.headTime +"</th>" +
								"<td><input type='radio' id='radio0' name='CurrentDate'><span id='ET_localtime'>"+ lang.localTime +"</span></td>"+
								"<td><input type='radio' id='radio1' name='CurrentDate'><span id='ET_servertime'>"+ lang.serverTime +"</span></td>"+
							"</tr>" +
							"<tr>" +
								"<th id='ET_headhour'>"+ lang.formatTime +"</th>" +
								"<td><input type='radio' id='ET_hour0' name='ET_typeHour'><span>24h</span></td>"+
								"<td><input type='radio' id='ET_hour1' name='ET_typeHour'><span>12h</span></td>"+
							"</tr>" +
							"<tr>" +
								"<th id='End_Time_head_predict'>"+ lang.predict +"</th>" +
								"<td><input type='checkbox' id='End_Time_predict'></td>"+
							"</tr>" +
							"<tr>" +
								"<th>Debug</th>" +
								"<td><input type='checkbox' id='End_Time_debug'></td>"+
							"</tr>" +
						"</tbody>"+
					"</table>" +
				"</div>" +
				"<div class='centerButton'>"+	
					"<span class='button'id='Endlanguage'>"+ lang.optiontxt +"</span>"+	
				"</div>"+
                "<div class='footer'></div>" +
			"</div>";
		document.getElementById("mainview").insertBefore(newElement, document.getElementById("vacationMode"));
		// add event
		document.getElementById('radio0').addEventListener('click',function(){GM_setValue('ET_enblLocTime',0);},true);
		document.getElementById('radio1').addEventListener('click',function(){GM_setValue('ET_enblLocTime',1);},true);
		document.getElementById('ET_hour0').addEventListener('click',function(){GM_setValue('ET_typeHour',0);},true);
		document.getElementById('ET_hour1').addEventListener('click',function(){GM_setValue('ET_typeHour',1);},true);
		document.getElementById('End_Time_predict').addEventListener('change',function(){GM_setValue('ET_predict', document.getElementById('End_Time_predict').checked);},true);
		document.getElementById('End_Time_debug').addEventListener('change',function(){GM_setValue('ET_debug', document.getElementById('End_Time_debug').checked);},true);
		document.getElementById('Endlanguage').addEventListener('click',function(){changeLanguage();},true);
		
		// controll state of chekbox
		setChekbox('ET_debug','End_Time_debug');
		setChekbox('ET_predict','End_Time_predict');
		// controll state of radio
		savevalue = GM_getValue('ET_enblLocTime',0);
		document.getElementsByName('CurrentDate')[savevalue].checked = true;
		savevalue = GM_getValue('ET_typeHour',0);
		document.getElementsByName('ET_typeHour')[savevalue].checked = true;
	}
}
catch(er)
				{infoError("function main",er)}
},true);

function setChekbox(idsave,id)	// control state of the checkbox
{
		var savevalue = GM_getValue(idsave,true);
		if (savevalue == false) document.getElementById(id).checked = false;
		else document.getElementById(id).checked = true;
}

function infoError(name,er)	//with error open forum page
{ 
try
{
	var debug = GM_getValue('end_time_debug',true);
	var lang = getLanguage();
	
	if (debug != true ) return; // exit if you don't want debug script
	
	if(confirm(lang.errortxt + name + " " +  er + lang.errortxt1))
	{
		window.open("http://userscripts.org/scripts/show/52268");
	}
}
catch(er1) 				
	{confirm(er1);}
}

function changeLanguage()
{	
	var savelang = GM_getValue('End_TimeLang')
	var inputLang = prompt(lang.optiontxt +"?   en, es, gr, hu, il, it, lv, pl, pt",savelang);
	if (inputLang == null){return;}
	
	inputLang = inputLang.toLowerCase();

	if (inputLang !="it" && inputLang !="es" && inputLang !="pl" && inputLang !="il" && inputLang !="hu" && inputLang !="lv" && inputLang !="gr" && inputLang !="pt" && inputLang !="en") 
	{
		alert("The Language "+ inputLang +" is not supported")
		inputLang = "en";
	}
	GM_setValue('End_TimeLang',inputLang);
	lang = getLanguage();
	document.getElementById('End_Time_head_predict').textContent = lang.predict;
	document.getElementById('ET_headtime').textContent = lang.headTime;
	document.getElementById('ET_localtime').textContent = lang.localTime;
	document.getElementById('ET_servertime').textContent = lang.serverTime;
	document.getElementById('ET_headhour').textContent = lang.formatTime;
	document.getElementById('Endlanguage').textContent = lang.optiontxt;
}


function getLanguage()
{
	var lang = GM_getValue('End_TimeLang')	// check storage language
	if (lang == null)		// check browser language
	{
		lang = navigator.language;
		GM_setValue('End_TimeLang',lang);
	}
	lang = lang.toLowerCase()
	if (lang!= "it" && lang!="es" && lang!="pl" && lang!="hu" && lang!="il" && lang!="lv" && lang!="gr" && lang!="pt") {lang = "en";}

	var langs = 
	{ 
		it:
		{ // Italian texts by myself:
			text_Upgrade: 	"Fine costruzione ",
			msg_Never: 		"mai",
			msg_TimeLeft: 	"Pieno in : ",
			msg_Titile1: 	"Data di Fine costruzione",
			msg_Titile2: 	"(Data di Inizio) Data di Fine costruzione",
			totalprice: 	"Possibile reddito totale: ",
			resource: 		"Mancano per il livello ",
			errortxt: 		"End_Time ha generato un errore.\n\n",
			errortxt1: 		" \n\n Vuoi segnalare l'errore all'autore?",
			update: 		"Nuova versione ",
			port: 			"Tempo di Carico - Livello del porto = ",
			port2: 			"Velocità di caricamento: ",
			wait: 			"Il porto è impegnato a caricare altri mercantili",
			hold: 			"La stiva sarà piena con ",
			hold2: 			" merci",
			loadcargo: 		" mercantili a stiva piena",
			optiontxt: 		"Seleziona la lingua",
			block1:			"Inizio del blocco al porto",
			block2:			"Fine del blocco al porto",
			block3:			"Rientro della flotta",
			blockico:		"Blocco porto",
			transport1:		"Arrivo a destinazione",
			transport2:		"Ritorno nel tuo porto",
			WhTitle: 		"Magazzino",
			txtWh1: 		"Dovresti costruire altri ",
			txtWh2: 		" livelli",
			loadport: 		"Fine caricamento ",
			emptyWh: 		"Spazio nel magazzino",
			month: 			"Gen,Feb,Mar,Apr,Mag,Giu,Lug,Ago,Set,Ott,Nov,Dic",
			abortmission: 	"Ritiro flotta - ",
			predictfull: 	"pieno",
			titletravel: 	"Tempo di Viaggio",
			predict: 		"Calcola il tempo di riempimento Città",
			headTime:		"Seleziona l'orario di riferimento:",
			localTime: 		"Orario locale",
			serverTime: 	"Ora del server",
			formatTime:		"Formato Ora",
		},
		es:
		{ // Spanish traslate by Rohcodom
			text_Upgrade: 	"Fin de la construcción ",
			msg_Never: 		"nunca",
			msg_TimeLeft: 	"Lleno en: ",
			msg_Titile1: 	"Hora de finalización",
			msg_Titile2: 	"(hora de inicio) hora del fin de la construcción",
			totalprice: 	"Posible total de ingresos: ",
			resource: 		"Faltantes para el nivel ",
			errortxt: 		"End_Time ha generado un error.\n\n",
			errortxt1: 		" \n\n ¿Quieres informar del error al autor?",
			update: 		"Nueva versión disponible ",
			port: 			"Tiempo de carga - Nivel del puerto comercial = ",
			port2: 			"Velocidad de carga: ",
			wait: 			"El puerto está ocupado cargando otras mercancías",
			hold: 			"El barco mercante estará lleno con ",
			hold2: 			" bienes",
			loadcargo: 		" barcos mercantes están llenos",
			optiontxt: 		"Seleccionar el idioma",
			block1:			"Inicio del bloqueo de puerto",
			block2:			"Fin del bloqueo de puerto",
			block3:			"Regreso de la flota",
			blockico:		"Bloquear puerto",
			transport1:		"Lugar de llegada", 
			transport2:		"Regreso a tu puerto",
			WhTitle: 		"Depósito",
			txtWhtitle1: 	"Necesitas un depósito nivel ",
			txtWh1: 		"Deberás contruir ",
			txtWh2: 		" niveles",
			loadport: 		"Fin de la carga en ",
			emptyWh: 		"Espacio en el depósito",
			month:			"Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sept,Oct,Nov,Dic",  
			abortmission:	"Retirar flota - ",  
			predictfull: 	"lleno",  
			titletravel: 	"Duración del viaje",
			predict: 		"Calcular el tiempo en que se llenará el pueblo", 
			headTime: 		"Selecciona la hora de referencia: ",
			localTime: 		"Hora local",
			serverTime: 	"Hora del servidor",
			formatTime:		"Time format",
		},
		en:
		{ // English traslate by Paul93
			text_Upgrade: 	"End of the upgrading ",
			msg_Never: 		"never",
			msg_TimeLeft: 	"Full in: ",
			msg_Titile1: 	"date of the end of the upgrading",
			msg_Titile2: 	"(date of the beginning) date of the end of the upgrading",
			totalprice: 	"Possible total income: ",	//change
			resource: 		"Missing for the level ",
			errortxt: 		"End_Time has generated an error.\n\n",
			errortxt1: 		" \n\n You want to signal the error to the author?",
			update: 		"New version available ",
			port: 			"Loading time - Trading port level = ",
			port2: 			"Loading speed: ",
			wait: 			"The port is engaged to load other cargo",
			hold: 			"The hold will be full with other ",
			hold2: 			" goods",
			loadcargo: 		" cargos are full",
			optiontxt: 		"Select language",
			block1:			"Start block port",
			block2:			"End block port",
			block3:			"Return of the fleet",
			blockico:		"Block port",
			transport1:		"Destination arrival",
			transport2:		"Return to your port",
			WhTitle: 		"Warehouse",
			txtWh1: 		"You should build other ",
			txtWh2: 		" levels",
			loadport: 		"Loading end at ",
			emptyWh: 		"Space in the warehouse",
			// New text for version 0.6
			month:			"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sept,Oct,Nov,Dec",
			abortmission:	"Withdraw fleets - ",
			predictfull: 	"full",
			titletravel: 	"Duration of journey",
			predict: 		"Calculate the time to fill the town",
			headTime: 		"Select the reference time:",
			localTime: 		"Local time",
			serverTime: 	"Server time",
			formatTime:		"Time format",
		},
			
		pl:
		{ // Tłumaczenie na polski przez Qasq
			text_Upgrade: "Koniec rozbudowy ",
			msg_Never: "nigdy",
			msg_TimeLeft: "Pełne o: ",
			msg_Titile1: "Czas ukończenia rozbudowy",
			msg_Titile2: "(Data rozpoczęcia) data końca rozbudowy",
			totalprice: "Złoto możliwe do zarobienia na tych transakcjach: ",
			resource: "Brakuje do tego poziomu ",
			errortxt: "Skrypt napotkał błąd.\n\n",
			errortxt1: " \n\n Chcesz zgłosić problem do autora?",
			update: "Dostępna jest nowsza wersja skryptu ",
			port: "Poziom twojego portu = ",
			port2: "Prędkość załadunku: ",
			wait: "W porcie ładowane jest inne zamówienie",
			hold: "Ten transport ma jeszcze tyle wolnej przestrzeni ",
			hold2: " dobra",
			loadcargo: " statki są pełne",
			optiontxt: "Wybierz język",
			block1:"Zacznij blokować port",
			block2:"Skończ blokować port",
			block3:"Zawróć flotę",
			blockico:"Zacznij blokować port",
			transport1:"Wpływa do docelowego portu",
			transport2:"Wraca do twojego portu",
			WhTitle: "Magazyn",
			txtWh1: "Rozbuduj do ",
			txtWh2: " poziomu",
			loadport: "Ładowanie zakńczy się o ",
			emptyWh: "Miejsce w magazynie/ach",
			month:		"Sty,Lut,Mar,Kwi,Maj,Cze,Lip,Sie,Wrz,Paź,Lis,Gru",
			abortmission:	"Wycofanie floty - ",
			predictfull: 	"pełno",
			titletravel: 	"Czas trwania podróży",
			predict: 	"Obliczenie czasu zapełnienia miasta",
			headTime: 	"Wybór czasu referencyjnego:",
			localTime: 	"Czas lokalny",
			serverTime: 	"Czas serwera",
			formatTime:		"Time format",
		},
			
		pt:
		{ // Portuguese traslate by Pescossudo
			text_Upgrade: "Fim da melhoria ",
			msg_Never: "nunca",
			msg_TimeLeft: "Cheia em: ",
			msg_Titile1: "Data do fim da melhoria",
			msg_Titile2: "(data de início) data do fim da melhoria",
			totalprice: "Renda total possível: ",
			resource: "Falta para o nível ",
			errortxt: "End_Time gerou um erro.\n\n",
			errortxt1: " \n\n Você quer enviar o erro para o autor?",
			update: "Nova versão disponível ",
			port: "Tempo de carregamento - o nível do porto de troca = ",
			port2: "Velocidade carregamento: ",
			wait: "O porto é contratado para carregar outras cargas",
			hold: "Faltam ",
			hold2: " mercadorias para completar a carga.",
			loadcargo: " carga está completa",
			optiontxt: "Selecione linguagem",
			block1: "Inicia bloqueio do porto",
			block2: "Fim bloqueio do porto",
			block3: "Retorno da frota",
			blockico: "Bloquear porto",
			transport1: "Chegada ao destino",
			transport2: "Regressar ao porto",
			WhTitle: "Armazém",
			txtWh1: "Você deve melhorar ", 
			txtWh2: " níveis",
			loadport: "Carregamento termina em ",
			emptyWh: "Espaço no armazém",
			month: "Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez",
			abortmission: "Retirar frotas - ",
			predictfull: "Cheia",
			titletravel: "Duração ",
			predict: "Calcule o tempo para encher a cidade",
			headTime: "Selecione hora referência:",
			localTime: "Hora local",
			serverTime: "Hora servidor",
			formatTime:		"Time format",
		},
			
		il:
		{ // Hebrew traslate by Yaakov תורגם לעברית ע"י יעקב
			text_Upgrade: "סיום השידרוג ",
			msg_Never: "אף פעם",
			msg_TimeLeft: "מלא ב: ",
			msg_Titile1: "תאריך סיום השידרוג",
			msg_Titile2: "(תאריך ההתחלה) תאריך סיום השידרוג",
			totalprice: "הכנסות בזהב מהמכירה: ",
			resource: "חסר לשלב ",
			errortxt: "זמן הסיום הוציא שגיאה.\n\n",
			errortxt1: " \n\n האם ברצונך לדווח על השגיאה לבעלים?",
			update: "קיימת גירסה חדשה ",
			port: "נמל שלב = ",
			port2: "מהירות טעינה: ",
			wait: "הנמל עסוק בטעינה אחרת",
			hold: "המטען יהיה מלא עם ",
			hold2: " משאבים",
			loadcargo: " המטען מלא",
			optiontxt: "בחר שפה",
			block1:"התחלת חסימת הנמל",
			block2:"סיום חסימת הנמל",
			block3:"חזרה של הצי",
			blockico:"נמל חסום",
			transport1:"הגעה לנמל אחר",
			transport2:"חזרה להמל שלך",
			WhTitle: "מחסן",
			txtWh1: "אתה צריך לבנות ",
			txtWh2: " שלבים",
			loadport: "הטעינה תסתיים ב",
			emptyWh: "מקום פנוי במחסן",
			// english
			month:'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sept,Oct,Nov,Dec',
			abortmission:'Withdraw fleets - ',
			predictfull: 'full',
			titletravel: 'Duration of journey',
			predict: 'Calculates the time needed for population growth',
			headTime: "Select the reference time:",
			localTime: "Local time",
			serverTime: "Server time",
			formatTime:		"Time format",
		},
		hu:
		{ // magyar forditas Robagfalva rb6514@gmail.com
			text_Upgrade: "A fejlesztés befejezése ",
			msg_Never: "soha",
			msg_TimeLeft: "Tele: ",
			msg_Titile1: "a fejlesztés befejező dátuma",
			msg_Titile2: "(kezdés ideje) és befejezése",
			totalprice: "eladásból származó bevétel: ",
			resource: "A következő szinthez szükséges ",
			errortxt: "probléma a scripttel.\n\n",
			errortxt1: " \n\n jelented a hibát a szerzőnek",
			update: "uj verzio elérhető ",
			port: "Kikötő szint = ",
			port2: "Töltési sebesség: ",
			wait: "a kikötöben lévő egyébb rakomány",
			hold: "Hogy teli legyen, kell még ",
			hold2: " nyersanyag",
			loadcargo: " szállitok teli",
			optiontxt: "Válasz nyelvet",
			block1:"kezdés a kikötőben",
			block2:"zárás a kikötőben",
			block3:"hajok visszaérnek",
			blockico:"kikötő zárva",
			transport1:"érkezés másik kikötőbe",
			transport2:"visszatérés a kikötőbe",
			WhTitle: "raktár",
			txtWh1: "Épiteni kell még ",
			txtWh2: " szintet",
			loadport: "töltés vége ",
			emptyWh: "hely a raktárban",
			// english
			month:'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sept,Oct,Nov,Dec',
			abortmission:'Withdraw fleets - ',
			predictfull: 'full',
			titletravel: 'Duration of journey',
			predict: 'Calculates the time needed for population growth',
			headTime: "Select the reference time:",
			localTime: "Local time",
			serverTime: "Server time",
			formatTime:		"Time format",
		},
		lv:
		{ // Latvian traslate by ootoo
			text_Upgrade: "Celtniecība beigsies ",
			msg_Never: "nekad",
			msg_TimeLeft: "Pilna: ",
			msg_Titile1: "Celtniecības beigu datums",
			msg_Titile2: "Celtniecības beigu datums",
			totalprice: "Darījumā nopelnītais zelts: ",
			resource: "Pietrūkst līmenim ",
			errortxt: "End_Time ir pieļāvis kļūdu.\n\n",
			errortxt1: " \n\n Tu vēlies paziņot autoram par kļūdu??",
			update: "Pieejama jauna versija ",
			port: "Czas zaladunku - Poziom portu = ",
			port2: "Iekraušanas ātrums: ",
			wait: "Patreiz ostā tiek pildīti citi kuģi",
			hold: "Kuģis būs pilns pēc ",
			hold2: " materiāliem",
			loadcargo: " pilni tirdzniecības kuģi",
			optiontxt: "Izvēlēties valodu",
			txtlng:"lv",
			block1:"Sākt blokādi",
			block2:"Beigt blokādi",
			block3:"Atsaukt floti",
			blockico:"Osta bloķēta",
			transport1:'Pienāk galapunktā',
			transport2:"Doplynie do celu", 
			WhTitle: "Noliktava",
			txtWh1: "Tev vajadzētu uzbūvēt ",
			txtWh2: " līmeņus",
			loadport: "Iekraušana beigsies ",
			emptyWh: "Brīva vieta noliktavā",
			month:"Stycz,Lut,Mar,Kwie,Maj,Czerw,Lip,Sier,Wrzes,Pazdz,List,Grudz",
			abortmission:"odwolaj flote - ",
			predictfull: "pelne",
			titletravel: "Czas transportu", 
			predict: 'Laiks pilsētas apdzīvošanai',
			// english
			headTime: "Select the reference time:",
			localTime: "Local time",
			serverTime: "Server time",
			formatTime:		"Time format",
		},
		
		gr:
		{ // Greek traslate by Napoleon I
			text_Upgrade: 	"Ολοκλήρωση αναβάθμισης ",
			msg_Never: 		"ποτέ",
			msg_TimeLeft: 	"Πλήρες: ",
			msg_Titile1: 	"ημερομηνία λήξης αναβάθμισης",
			msg_Titile2: 	"(ημερομηνία έναρξης) ημερομηνία λήξης αναβάθμισης",
			totalprice: 	"Πιθανά συνολικά έσοδα: ",	//change
			resource: 		"Υπολείπονται για το επίπεδο ",
			errortxt: 		"Το End_Time έχει πραγματοποιήσει ένα σφάλμα.\n\n",
			errortxt1: 		" \n\n Θέλεις να αναφέρεις το σφάλμα στο συντάκτη?",
			update: 		"Υπάρχει νέα έκδοση διαθέσιμη ",
			port: 			"Χρόνος φόρτωσης - Επίπεδο Εμπορικού Λιμένα = ",
			port2: 			"Ταχύτητα φόρτωσης: ",
			wait: 			"Ο Εμπορικός Λιμένας είναι απασχολημένος με τη φόρτωση άλλου φορτίου",
			hold: 			"Το αμπάρι θα είναι πλήρες με άλλο(-α) ",
			hold2: 			" αγαθό(-ά)",
			loadcargo: 		" πλήρες φορτίο",
			optiontxt: 		"Επιλογή γλώσσας",
			block1:			"Έναρξη αποκλεισμού λιμανιού",
			block2:			"Λήξη αποκλεισμού λιμανιού",
			block3:			"Επιστροφή στόλου",
			blockico:		"Αποκλεισμός λιμανιού",
			transport1:		"Άφιξη στον προορισμό",
			transport2:		"Επιστροφή στο λιμάνι σου",
			WhTitle: 		"Αποθήκη Εμπορευμάτων",
			txtWh1: 		"Μπορείς να αναβαθμίσεις άλλο(-α) ",
			txtWh2: 		" επίπεδο(-α)",
			loadport: 		"Ολοκλήρωση φόρτωσης στις ",
			emptyWh: 		"Διαθέσιμος χώρος στην Αποθήκη Εμπορευμάτων",
			month:			"01  ,02  ,03  ,04  ,05  ,06  ,07  ,08  ,09  ,10  ,11  ,12  ",
			abortmission:	"Απόσυρση στόλων - ",
			predictfull: 	"πλήρες",
			titletravel: 	"Διάρκεια ταξιδιού",
			predict: 		"Υπολογισμός χρόνου πλήρωσης Δημαρχείου",
			headTime: 		"Επιλογή ώρας αναφοράς:",
			localTime: 		"Τοπική ώρα",
			serverTime: 	"Ώρα Server",
			formatTime:		"Time format",
		},
	}
	return langs[lang]
}


