var t; // report
var f; // form
var attacker = new Array(); // array
var defender; 
var attackerA; // array
var defenderA; 
var rp; // rapor parcalari
var time = "----";
var firstA;
var firstD;
var ganimet = new Array(0, 0, 0);
var garbage = new Array(0, 0);
var lost = new Array(0, 0);
var moonChance = 0;
var moonCreated = false;
var ver = " v1.612 beta ";

var text = new Array(
	new Array('Attacker', 'Aanvaller', 'Angreifer'),  // 0
	new Array('Defender', 'Verdediger', 'Verteidiger'), // 1
	new Array('The following fleets are facing each other at ', 
	          'De volgende vloten kwamen elkaar tegen op ',
			  'Folgende Flotten stehen sich um'), // 2
	new Array('Weapons: ', 'Wapens: ', 'Waffen: '), //3
	new Array('Shields: ', 'Schilden: ', 'Schilde: '),  // 4
	new Array('Hull Plating: ', 'Romp beplating: ','Hülle: '), //5
	new Array('Type', 'Soort', 'Typ'),  // 6
	new Array('Number', 'Aantal', 'Anz.'),  // 7
	new Array('He captures', 'Hij steelt', 'Er erbeutet'), //8
	new Array('has lost a total of', 'heeft een totaal van', 'hat insgesamt'), // 9
	new Array('At these space coordinates now float', 
	          'Op deze coördinaten in de ruimte zweven nu',
			  'Auf diesen Raumkoordinaten liegen nun'), // 10
	new Array('The chance for a moon to arise from the debris is ', 
	          'De kans dat een maan ontstaat uit het puin is ',
			  'Die Chance einer Mondentstehung beträgt '), //11
	new Array('The enormous amounts of drifting metal and crystal particles attract each other and slowly form a lunar satellite in the orbit of the planet.', 
	          'De enorme hoeveelheden van rondzwevend metaal en kristal deeltjes trekken elkaar aan en vormen langzaam een maan, in een baan rond de planeet.', 
			  'Die enormen Mengen an freiem Metall und Kristall ziehen sich an und formen einen Trabanten um den Planeten.'), // 12
	new Array('Metal', 'Metaal', 'Metall'), // 13
	new Array('Crystal', 'Kristal', 'Kristall'), // 14
	new Array('Deuterium', 'Deuterium', 'Deuterium'),  // 15
	new Array('The attacker has lost a total of ', 'De aanvaller heeft een totaal van ', 'Der Angreifer hat insgesamt '), //16
	new Array('The defender has lost a total of ', 'De verdediger heeft een totaal van ', 'Der Verteidiger hat insgesamt '), //17
	new Array('Destroyed', 'Vernietigd', 'Vernichtet'), //18
	new Array('Units', 'Eenheden verloren', 'Units'), // 19
	new Array(', as it came to a battle',
	          ', toen het tot een gevecht kwam',
			  ' gegenüber'), //20
	new Array('and', 'en', 'und'), // 21
	new Array('Moon was given', 'Maan gegeven', '')//22
);

var lang = 0;

function changeLang(val) {
	lang = val;
}

function update() {
	var obj = document.getElementById("preview");
	obj.innerHTML = "<iframe width='100%' height='250' border='0' frameborder='0' src='http://193.140.236.3/~oner/ogame/update.html' style='border: none'></iframe>";
	var obj = document.getElementById("note1");
	obj.innerHTML = "Update";
	var obj = document.getElementById("note0");
	obj.innerHTML = "Update";
	document.getElementById("message").style.visibility = "visible";
}

function closeMessage() {
	document.getElementById("message").style.visibility = "hidden";
}

function preview() {
	var str = convert();
	if (!str)
		return;

	str = str.replace(/[[]/gi,"<");
	while (str.match("]")) {
		str = str.replace("]",">");
	}
	while (str.match("\n")) {
		str = str.replace("\n","<br>");
	}
	while (str.match("</color>")) {
		str = str.replace("</color>","</font>");
	}
	while (str.match("<color")) {
		str = str.replace("<color","<font color");
	}
	str +="<br>"
	var obj = document.getElementById("preview");
	obj.innerHTML = str;
	var obj = document.getElementById("note1");
	obj.innerHTML = "Preview";
	var obj = document.getElementById("note0");
	obj.innerHTML = "Preview";

	f = document.forms[0];
	var bg = bgDark;
	var b = '#1F273C';
	var c = '#B0C0DE'; 
	if (bg != 1) {
		b = '#ddddff';
		c = '#001144';
	}
	document.getElementById("message").style.visibility = "visible";
	document.getElementById("preview").style.background = b;
	document.getElementById("preview").style.color = c;
}

var cr;

function convert() {
	f = document.forms[0];

	cr = f.report.value;

	var l = -1;
	if (cr.match("Attacker"))
		l =0;
	else if (cr.match("Aanvaller"))
		l = 1;
	else if (cr.match("Napadac"))
		l = 3;
	else if (cr.match("Agresor"))
		l = 4;
	else if (cr.match("Attaquant"))
		l = 5;

	if (l<0)
	{
		alert("Bad CR!!!!!");
		return false;
	}

	changeLang(l);
	f.language.value = l;

	time = getTime();

	var done = false;
	attacker = new Array();
	while (!done)
	{
		var a = getAttacker();
		if (a != null) {
			attacker.push(a);
		} else {
			done = true;
		}
	}

	done = false;
	defender = new Array();
	while (!done)
	{
		var a = getDefender();
		if (a != null) {
			defender.push(a);
		} else {
			done = true;
		}
	}

	defenderA = new Array();
	for (var i = 0; i<defender.length; i++)
	{
		defenderA.push(getDefenderA(defender[i][0]));
	}

	attackerA = new Array();
	for (var i = 0; i<attacker.length; i++)
	{
		attackerA.push(getAttackerA(attacker[i][0]));
	} 

	if (cr.indexOf(text[8][lang]) > -1)
		getGanimet( cr.substr(cr.indexOf(text[8][lang])) );
	else 
		ganimet = new Array('-','-','-');

	getLost(cr);

	if (cr.indexOf(text[10][lang]) > -1)
		getGarbage( cr.substr(cr.indexOf(text[10][lang])) );
	else
		garbage = new Array('-','-');

	if (cr.indexOf(text[11][lang]) > -1)
		getMoonChance(cr.substr(cr.indexOf(text[11][lang])))
	else
		moonChance = 0;

	if (cr.match(text[12][lang].substring(0,10)))
		moonCreated = true;
	else
		moonCreated = false;

	str = createMessage();
	if (f.proboard.checked)
		f.formatedReport.value = proboard(str);
	else
		f.formatedReport.value = str;
	return str;
}

function proboard(str) {
	str = str.replace(/color=#/g, 'color=');
	str = str.replace(/size=10/g, 'size=1');
	str = str.replace(/size=16/g, 'size=3');
	return str;
}

function formatNumber(s, c1, c2, val) {
	var str = "";
	if (bgDark != 1 && c2 && c2.match('#FF9900'))
		c2 = '#0055aa';
		
	if (isNaN(s)) {
		str = s;
		if ( c2 ) {
			str = "[color="+c2+"]"+str+"[/color]";
		}
	}
	else {
		if (String(s).indexOf(".")>-1)
		{
			s = String(s).replace(/\./g, '');
		}
		s = parseInt(s);
		var t = String(s);
		var x  = 3;

		while (t.length-x > 0)
		{
			str = "."+t.substr(t.length-x, 3)+str;
			x += 3;
		}
		str = t.substring(0, t.length-x+3)+str;
		if ( c1 && c2 ) {
			if (s>=val)
				str = "[color="+c1+"]"+str+"[/color]";
			else 
				str = "[color="+c2+"]"+str+"[/color]";
		}
		if (val && s>=val)
		{
			str = "[size=16]"+str+"[/size]";
		}
	}
	return str;
}

function getAttackerA(name) {
	var x = cr.lastIndexOf(text[0][lang]+rtrim(name));
	if (x < 0)
	{
		return null;
	}
	cr  = cr.substring(0, x-1)+'----'+cr.substr(x+text[0][lang].length);
	var t;
	t = cr.substr(x);
	var p1 = 4;
	var p2 = t.indexOf("(");
	p2++;
	var p1 = t.indexOf(")");
	var coor = '----';
	if (p1>-1 && p2>-1)
	{
		coor = t.substring(p2,p1);
	} else {
		p2 = t.indexOf("[");
		p2++;
		p1 = t.indexOf("]");
		if (p1>-1 && p2>-1)
		{
			coor = t.substring(p2,p1);
		}
	}
	var p1 = t.indexOf(text[6][lang]);
	var p2 = t.indexOf(text[7][lang]);
	var p3 = t.indexOf(text[18][lang]);
	if ((p3 < p1 && p3 > -1) || p1 < 0 || p2 < 0)
	{
		return new Array(name, coor, null, null, null, null, null);
	}
	var types = getWordArray(t.substr(p1+text[6][lang].length));
	var numbers = getWordArray(t.substr(p2+text[7][lang].length))
	return new Array(name, coor, null, null, null, types, numbers);
}

function getDefenderA(name) {
	var x = cr.lastIndexOf(text[1][lang]+rtrim(name));
	if (x < 0)
	{
		return null;
	}
	cr  = cr.substring(0, x-1)+'----'+cr.substr(x+text[1][lang].length);
	var t;
	t = cr.substr(x);
	var p1 = 4;
	var p2 = t.indexOf("(");
	p2++;
	var p1 = t.indexOf(")");
	coor = '----';
	if (p1>-1 && p2>-1)
	{
		coor = t.substring(p2,p1);
	} else {
		p2 = t.indexOf("[");
		p2++;
		p1 = t.indexOf("]");
		if (p1>-1 && p2>-1)
		{
			coor = t.substring(p2,p1);
		}
	}
	var p1 = t.indexOf(text[6][lang]);
	var p2 = t.indexOf(text[7][lang]);
	var p3 = t.indexOf(text[18][lang]);
	if ((p3 < p1 && p3 > -1) || p1 < 0 || p2 < 0)
	{
		return new Array(name, coor, null, null, null, null, null);
	}
	var types = getWordArray(t.substr(p1+text[6][lang].length));
	var numbers = getWordArray(t.substr(p2+text[7][lang].length))
	return new Array(name, coor, null, null, null, types, numbers);
}

function getAttacker() {
	var x = cr.indexOf(text[0][lang]);
	var y = cr.indexOf(text[1][lang]);
	if (x > y)
	{
		return null;
	}
	cr = cr.replace(text[0][lang], "----");
	var t = cr.substr(x);
	var p1 = 4;
	var p2 = t.indexOf("(");
	var name = t.substring(p1,p2);
	p2++;
	var p1 = t.indexOf(")");
	var coor = '----';
	if (p1>-1 && p2>-1)
	{
		coor = t.substring(p2,p1);
	} else {
		p1 = 4;
		p2 = t.indexOf("[");
		name = t.substring(p1,p2);
		p2++;
		p1 = t.indexOf("]");
		if (p1>-1 && p2>-1)
		{
			coor = t.substring(p2,p1);
		}
		else {
			tmp = t.substr(4);
			name = getWord();
			name = ' '+rtrim(name)+' ';
		}
	}
	var t1 = getTech(t, text[3][lang]);
	var t2 = getTech(t, text[4][lang]);
	var t3 = getTech(t, text[5][lang]);
	var p1 = t.indexOf(text[6][lang]);
	var p2 = t.indexOf(text[7][lang]);
	var types = getWordArray(t.substr(p1+text[6][lang].length));
	var numbers = getWordArray(t.substr(p2+text[7][lang].length))
	return new Array(name, coor, t1, t2, t3, types, numbers);
}

function getDefender() {
	var x = cr.indexOf(text[1][lang]);
	var y = cr.indexOf(text[0][lang]);
	if (x > y)
	{
		return null;
	}
	cr = cr.replace(text[1][lang], "----");
	var t = cr.substr(x);
	var p1 = 4;
	var p2 = t.indexOf("(");
	var name = t.substring(p1,p2);
	p2++;
	var p1 = t.indexOf(")");
	var coor = '----';
	if (p1>-1 && p2>-1)
	{
		coor = t.substring(p2,p1);
	} else {
		p1 = 4;
		p2 = t.indexOf("[");
		name = t.substring(p1,p2);
		p2++;
		p1 = t.indexOf("]");
		if (p1>-1 && p2>-1)
		{
			coor = t.substring(p2,p1);
		}
		else {
			tmp = t.substr(4);
			name = getWord();
			name = ' '+rtrim(name)+' ';
		}
	}
	var t1 = getTech(t, text[3][lang]);
	var t2 = getTech(t, text[4][lang]);
	var t3 = getTech(t, text[5][lang]);
	var p1 = t.indexOf(text[6][lang]);
	var p2 = t.indexOf(text[7][lang]);
	var p3 = t.indexOf(text[18][lang]);
	if ((p3 < p1 && p3 > -1) || p1 < 0 || p2 < 0)
	{
		return new Array(name, coor, t1, t2, t3, null, null);
	}
	var types = getWordArray(t.substr(p1+text[6][lang].length));
	var numbers = getWordArray(t.substr(p2+text[7][lang].length))
	return new Array(name, coor, t1, t2, t3, types, numbers);
}


var tmp;
function getWordArray(s) {
	var arr = new Array();
	tmp = s;
	var word = getWord();
	while (word != null)
	{
		arr.push(word);
		word = getWord();
	}
	for(var i=0; i<arr.length; i++) {
		if 
		(
			((arr[i].match("Esp")) || 
			(arr[i].match("Sol")) ||
			(arr[i].match("Kol")) ||
			(arr[i].match("Col")) ||
			(arr[i].match("Spionage")) ||
			(arr[i].match("Zonneenergie"))) && 
			(lang<3)
		) {
			arr[i] += arr[i+1];
			arr.splice(i+1, 1); 
		}
		if ((arr[i].match("Ster")))
		{
			arr[i] += arr[i+1] + arr[i+2];
			arr.splice(i+1, 2); 
		}
		if 
		(
			((arr[i].match("Petit")) || 
			(arr[i].match("Grand")) ||
			(arr[i].match("Chasseur")) ||
			(arr[i].match("Sonde")) ||
			(arr[i].match("Sat.")) ||
			(arr[i].match("Can.")) ||
			(arr[i].match("Pet.")) ||
			(arr[i].match("Grd.")) ||
			(arr[i].match("Laser"))) && 
			(lang==5)
		) {
			arr[i] += arr[i+1];
			arr.splice(i+1, 1); 
		}
		if (
			((arr[i].match("Artillerie")) ||
			 (arr[i].match("Lanc.")) ||
			 (arr[i].match("Vaisseau")) 
		   ) && 
			(lang==5))
		{
			arr[i] += arr[i+1] + arr[i+2];
			arr.splice(i+1, 2); 
		}
	}

	return arr;
}

function getWord() {
	var i = 0;
    while(tmp.charAt(i) == ':' ||  tmp.charAt(i) == ' ' || tmp.charAt(i) == '\t' )
		i++;
	x = i;
    while(tmp.charAt(i) != ' ' && tmp.charAt(i) != '\t' && tmp.charAt(i) != '\n' && tmp.charAt(i) != '\r')
		i++;
	y = i;
	if (y==x) {
		return null;
	}
	var ret = tmp.substring(x, y+1);
	tmp = tmp.substr(y);
	return ret;
}

var ship = new Array(
	new Array ('S.Cargo', 'L.Cargo', 'L.Fighter', 'H.Fighter', 'Cruiser', 'B.Ship', 'Recy.', 'Col', 'Esp', 'Bomber', 'Sol', 'Dest.', 'Rip', 'Miss.', 'S.Laser', 'H.Laser', 'Ion.C', 'Gauss', 'Plasma', 'S.Dome', 'LS.Dome'),
	new Array ('K.Vrachtschip', 'G.Vrachtschip', 'L.Gevechtsschip', 'G.Gevechtsschip', 'Kruiser', 'Slagschip', 'Schoonmaker', 'Kol.', 'Spionage', 'Bommenwerper', 'Zonneenergie', 'Vernietiger', 'Ster', 'Raketten', 'K.Laser', 'G.Laser', 'Ion.K', 'Gauss', 'Plasma', 'K.Koepel', 'G.Koepel'),
	new Array ()
);

var color = new Array('#FF9900','#00FF00','#33FF99','#FF00FF','#00FFFF','#FFCC00','#0099FF', '#EEC273', '#FF0099', '#00FF99', '#00B0B0', '#B000B0', '#A099FF', '#A0FF99', '#FF99A0', '#99FFA0','#99A0FF', '#9900FF', '#CCFFCC', '#FFCC99');
var colorD = new Array('#aa3300', '#116600', '#995500', '#aa0000', '#446633', '#0000bb', '#007799', '#331100', '#000044', '#004422', '#330044', '#443300', '#aa0000', '#004477', '#004411', '#0000aa', '#002233', '#330000', '#002200', '#002255');

function getColor(t) {
	var bg = bgDark;
	var c = color;
	if (bg != 1)
		c = colorD;

	for (var i = 0; i<ship[lang].length; i++) {
		if (t.match(ship[lang][i])) 
			return c[i];
	}
	return c[Math.round(Math.random()*(c.length-1))];
}

var colorUse = new Array();

function createTechLine(p, tech) {
	if (tech) {
		return text[3][lang]+"[B]"+p[2]+"[/B]% "+text[4][lang]+"[B]"+p[3]+"[/B]% "+text[5][lang]+"[B]"+p[4]+"[/B]%\n";
	}
	else {
		return text[3][lang]+"XXX% "+text[4][lang]+"XXX% "+text[5][lang]+"XXX%\n";
	}
}

function createPlayerLine(what, p, coor) {
	f = document.forms[0];
	var name = true;
	var c = '#EEC273';
	if (bgDark != 1) {
		c = '#115511';
	}
	if (what.match(text[0][lang])) {
		name = f.attackerName.checked;
		c = '#CCFFCC';
		if (bgDark != 1) {
			c = '#551111';
		}
	}
	else {
		name = f.defenderName.checked;
	}
	if (!name) 
		p[0] = ' XXXXX ';
	if (coor) {
		return what+" [B][color="+c+"]"+p[0]+"[/color][/B]([B]"+p[1]+"[/B])\n";
	}
	else {
		return what+" [B][color="+c+"]"+p[0]+"[/color][/B](X:XXX:XX)\n";
	}
}

function createFleetMessage(type, n) {
	var str = '';
	for(var i = 0; i < type.length; i++) {
		var t = type[i];
		while ((t.charAt(t.length-1) == "\n") || (t.charAt(t.length-1) == "\r")) {
			t = t.substring(0, t.length-1);
		}
		var c = getColor(t);
		if (n) 
			str += '[color='+c+'] '+t+' '+formatNumber(n[i])+'[/color]\n';
		else
			str += "[B][color=#CC99FF]"+text[18][lang]+"![/color][/B]\n";
	}
	str += '\n';
	return str;
}

function ltrim(str) {
	if (!str)
		return "";
	var i;
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) != ' ' && str.charAt(i) != '\t' && str.charAt(i) != '\n' && str.charAt(i) != '\r')  
			break;
	}
	return str.substr(i);
}

function rtrim(str) {
	if (!str)
		return "";
	var i;
	for (i=str.length-1; i>=0  ; i--)
	{
		if (str.charAt(i) != ' ' && str.charAt(i) != '\t' && str.charAt(i) != '\n' && str.charAt(i) != '\r')  
			break;
	}
	return str.substring(0,i+1);
}

function createPlayerMessage(what, p, tech, coor, first) {
	var str = "";
	f = document.forms[0];
	str += createPlayerLine(what, p, coor);
	if (first) {
		str += createTechLine(p, tech);
	}
	if (!f.column.checked) {
		if (p[5] && p[5][0]) {
			p[5][0] = ltrim(p[5][0]);
		}
		if (p[5] && p[5][0]) {
			str += text[6][lang]+": "+birlestir(p[5], colorUse)+"\n";
			str += text[7][lang]+": "+birlestir(p[6], colorUse)+"\n";
		}
		else {
			if (bgDark != 1)
				str += "[B][color=#550099]"+text[18][lang]+"![/color][/B]\n";
			else
				str += "[B][color=#CC99FF]"+text[18][lang]+"![/color][/B]\n";
		}
	}
	else {
		if (p[5] && p[5][0]) {
			str += createFleetMessage(p[5],p[6]);
		}
		else {
			if (bgDark != 1)
				str += "[B][color=#550099]"+text[18][lang]+"![/color][/B]\n";
			else
				str += "[B][color=#CC99FF]"+text[18][lang]+"![/color][/B]\n";
		}
	}
	str += "\n";
	return str;
}

function createMessage() {
	f = document.forms[0];
	tech = f.tech.checked;
	coor = f.coor.checked;

	var str = 
	    text[2][lang]+" [B]"+
		time +
	    "[/B]"+text[20][lang]+":\n\n";
	
	if (attacker) {
		for (var i = 0; attacker[i]; i++) {
			str += createPlayerMessage(text[0][lang], attacker[i], tech, coor, true);
		}
	}

	if (defender){
		for (var i = 0; defender[i]; i++) {
			str += createPlayerMessage(text[1][lang], defender[i], tech, coor, true);
		}
	}

	str += f.message.value+"\n\n";

	if (!attackerA) {
		attackerA = new Array();
	}

	for (var i = 0; attackerA[i]; i++) {
		str += createPlayerMessage(text[0][lang], attackerA[i], tech, coor, false);
	}

	if (!defenderA) {
		defenderA = new Array();
	}

	for (var i = 0; defenderA[i]; i++) {
		str += createPlayerMessage(text[1][lang], defenderA[i], tech, coor, false);
	}

	str += text[8][lang]+" [B]"+formatNumber(ganimet[0], "#FF0000","#FF9900",5000000)+"[/B] "+
		text[13][lang]+", [B]"+formatNumber(ganimet[1], "#FF0000","#FF9900",5000000)+
	   "[/B] "+text[14][lang]+" "+text[21][lang]+" [B]"+formatNumber(ganimet[2], "#FF0000","#FF9900",5000000)+
	   "[/B] "+text[15][lang]+".\n\n";
	
	str += text[16][lang]+"[B]"+formatNumber(lost[0], "#FF0000","#FF9900",10000000)+"[/B] "+text[19][lang]+".\n"+
		   text[17][lang]+"[B]"+formatNumber(lost[1], "#FF0000","#FF9900",10000000)+"[/B] "+text[19][lang]+".\n"+
		   text[10][lang]+" [B]"+formatNumber(garbage[0], "#FF0000","#FF9900",10000000)+"[/B] "+text[13][lang]+" "+
		    text[21][lang]+" [B]"+formatNumber(garbage[1], "#FF0000","#FF9900",10000000)+"[/B] "+text[14][lang]+".\n"+
		   text[11][lang]+"[B]"+formatNumber(moonChance, "#FF0000","#FF9900",20)+"[/B] %.\n"

	
	if (moonCreated) {
		str += text[12][lang]+" [B][color=#FF9900]"+text[22][lang]+".[/color][/B]";
	}

	c = '#66FFCC';
	if (bgDark != 1)
		c = '#550055';
	str += "\n\n[color="+c+"][size=10][url=http://takana.4t.com]"+" -- Created by Takana's CR Converter "+ver+"- Dragon Takana at Uni. 5 OGAME.ORG --"+"[/url][/size][/color]";

	if (f.center.checked)
		str = '[CENTER]\n'+str+'\n[/CENTER]';

	str = str.replace(/  /g, " ");
	
	str = str.replace(/\r/g, "");
	str = str.replace(/\t/g, " ");
	str = str.replace(/ \n/g, "\n");
	str = str.replace(/\n /g, "\n");
	str = str.replace(/ \n/g, "\n");
	str = str.replace(/\n /g, "\n");

	str = str.replace(/\n\n\n/g, "\n\n");
	str = str.replace(/\n\n\n/g, "\n\n");
	str = str.replace(/\n\n\n/g, "\n\n");
	str = str.replace(/\n\n\n/g, "\n\n");
	str = str.replace(/\n\n\n/g, "\n\n");
	str = str.replace(/\n\n\n/g, "\n\n");
	
	return str;
}

function birlestir(dizi, clr) {
	var str = "";

	if (dizi == undefined) {
		clr.splice(0, clr.length);
		dizi = new Array();
	}

	if (!parseInt(dizi[0])) {
		clr.splice(0, clr.length);
	}


	for (var i=0; i<dizi.length; i++) {
		var t = dizi[i];
		while ((t.charAt(t.length-1) == "\n") || (t.charAt(t.length-1) == "\r")) {
			t = t.substring(0, t.length-1);
		}
		var c;
		if (parseInt(t)) {
			c = clr[i];
		}
		else {
			c = getColor(t);
			clr.push(c);
		}
		str += " [color="+c+"]"+formatNumber(t)+"[/color] ";
	}
	return str;
}

function getMoonChance(p) {
	var str = text[11][lang];
	var x = p.search(str);
	if (x < 0)
		moonChance = '0';
	else
		moonChance = parseInt(p.substr(x+str.length));
}

function getGarbage(p) {
	var y = p.search(' '+text[13][lang]);
	if (y < 0 )
	{
		garbage[0] = '-';
		garbage[1] = '-';
		return;
	}
	var i = 1;
	while ((!isNaN(parseInt(p.charAt(y-i)))) || (p.charAt(y-i)=='.')) {
		i++;
	}
	garbage[0] = p.substring(y-i, y);
	garbage[0] = garbage[0].replace(/\./g, '');
	
	var y = p.search(' '+text[14][lang]);
	i = 1;
	while ((!isNaN(parseInt(p.charAt(y-i)))) || (p.charAt(y-i)=='.')) {
		i++;
	}
	garbage[1] = p.substring(y-i, y);
	garbage[1] = garbage[1].replace(/\./g, '');
}

function getLost(p) {
	var str = text[16][lang];
	if (p.search(str) > 0)
	{
		var x = p.search(str) + str.length;
		lost[0] = "";
		var y = 0;
		while ((!isNaN(parseInt(p.charAt(x+y)))) || (p.charAt(x+y)=='.')) {
			lost[0] += p.charAt(x+y);
			y++;
		}
	} else { lost[0] = "-"; } 

	str = text[17][lang];
	if (p.search(str) > 0)
	{
		x = p.search(str) + str.length;
		lost[1] = "";
		y = 0;
		while ((!isNaN(parseInt(p.charAt(x+y)))) || (p.charAt(x+y)=='.')) {
			lost[1] += p.charAt(x+y);
			y++;
		}
	} else { lost[1] = "-"; } 
	lost[0] = lost[0].replace(/\./g, '');
	lost[1] = lost[1].replace(/\./g, '');
	
}

function getGanimet(p) {
	var y = p.search(' '+text[13][lang]);
	if (y < 0)
	{
		ganimet[0] = '-';
		ganimet[1] = '-';
		ganimet[2] = '-';		
		return;
	}
	var i = 1;
	while ((!isNaN(parseInt(p.charAt(y-i)))) || (p.charAt(y-i)=='.')) {
		i++;
	}
	ganimet[0] = p.substring(y-i, y);
	
	var y = p.search(' '+text[14][lang]);
	i = 1;
	while ((!isNaN(parseInt(p.charAt(y-i)))) || (p.charAt(y-i)=='.')) {
		i++;
	}
	ganimet[1] = p.substring(y-i, y);

	var y = p.search(' '+text[15][lang]);
	i = 1;
	while ((!isNaN(parseInt(p.charAt(y-i)))) || (p.charAt(y-i)=='.')) {
		i++;
	}
	ganimet[2] = p.substring(y-i, y);

	return ganimet;
} 

function afterWar (at, p) {
	var lines = p.split('\n');
	if (lines.length==1)
		lines = p.split('\n\r');

	var pos = lines[0].search(text[6][lang]);
	var n = 0;
	if (pos > 0){
		n = -1;
		lines[0] = lines[0].substr(pos);
	}
	
	if (lines.length > 1+n) {
		at[5] = lines[1+n].split('\t');
		if (at[5].length == 1) {
			at[5] = lines[1+n].split(' ');
			for(var i=0; i<at[5].length; i++) {
				if ((at[5][i].match("Esp")) || 
					(at[5][i].match("Sol")) ||
 					(at[5][i].match("Kol")) ||
					(at[5][i].match("Col")) ||
					(at[5][i].match("Spionage")) ||
					(at[5][i].match("Zonneenergie"))
				) {
					at[5][i] += at[5][i+1];
					at[5].splice(i+1, 1); 
				}
				if ((at[5][i].match("Ster")))
				{
					at[5][i] += at[5][i+1] + at[5][i+2];
					at[5].splice(i+1, 2); 
				}
			}
		}
		at[5].shift();
	}

	if (lines.length > 2+n) {
		at[6] = lines[2+n].split('\t');
		if (at[6].length == 1)
			at[6] = lines[2+n].split(' ');
		at[6].shift();
	}	
}

function addPlayer(at, p) {
	var lines = p.split('\n');
	var pos = lines[0].search(text[6][lang]);
	var n = 0;
	if (pos > 0){
		n = -1;
	}
	at[2] = getTech(lines[1], text[3][lang]);
	at[3] = getTech(lines[1], text[4][lang]);
	at[4] = getTech(lines[1], text[5][lang]);

	pos = lines[1].search(text[6][lang]);
	if (pos > 0){
		n = -1;
		lines[1] = lines[1].substr(pos);
	}

	if (lines.length > 2+n) {
		at[5] = lines[2+n].split('\t');
		if (at[5].length == 1) {
			at[5] = lines[2+n].split(' ');
			for(var i=0; i<at[5].length; i++) {
				if ((at[5][i].match("Esp")) || 
					(at[5][i].match("Sol")) ||
 					(at[5][i].match("Kol")) ||
					(at[5][i].match("Col")) ||
					(at[5][i].match("Spionage")) ||
					(at[5][i].match("Zonneenergie"))
				) {
					at[5][i] += at[5][i+1];
					at[5].splice(i+1, 1); 
				}
				if ((at[5][i].match("Ster")))
				{
					at[5][i] += at[5][i+1] + at[5][i+2];
					at[5].splice(i+1, 2); 
				}
			}
		}
		
		at[5].shift();
	}

	if (lines.length > 3+n) {
		at[6] = lines[3+n].split('\t');
		if (at[6].length == 1)
			at[6] = lines[3+n].split(' ');
		at[6].shift();
	}

	return true;
}

function getTech(line, what) {
	var x = line.indexOf(what);
	x = x + what.length;

	var i = 0;
	var str = "";
	while (line.charAt(x+i) != '%') {
		str += line.charAt(x+i);
		i++;
	}

	return str;
}

function getTime() {
	var p = cr;
	var str = text[2][lang];
	var x = p.search(str);
	if (x < 0 )
	{
		return "----";
	}
	var l = x+str.length;

	str = "";
	var i = 0;
	while (p.charAt(l+i) != " ") {
		str += p.charAt(l+i);
		i++;
	}
	i++;
	str += " ";
	while (p.charAt(l+i) != " ") {
		str += p.charAt(l+i);
		i++;
	}

	return str;

}

function getPlayer(par,what,n) {
	var str = par;
	var x = str.search(what);

	if (x==-1)
		return -1;

	x = x + 1 + what.length;
	
	var name = "";
	while (str.charAt(x) != "(") {
		name += str.charAt(x);
		x++;
	}
	x++;

	var coordinat = "";
	while (str.charAt(x) != ")") {
		coordinat += str.charAt(x);
		x++;
	}

	return new Array(name, coordinat, null, null, null);

}

function addBosnianLang()
{
	//#CR WORDS
	text[0][3]='Napadac';		 // Attacker
	text[1][3]='Odbranioc';		 // Defender
	text[2][3]='Slijedece flote su prisutne '; // The following fleets are facing each other at
	text[3][3]='Oruzje: ';		 // Weapons
	text[4][3]='Stitovi: ';		 // Shields
	text[5][3]='Omot: ';		 // Hull Plating
	text[6][3]='Tip';		 // Type
	text[7][3]='Broj';		 // Number
	text[8][3]='On pljacka';		 // He captures
	text[9][3]='je izgubio ukupno';	 // has lost a total of
	text[10][3]='Na ovim koordinatima sada leze'; // At these space coordinates now float
	text[11][3]='Sansa stvaranja mjeseca iznosi '; // The chance for a moon to arise from the debris is 
	text[12][3]='Ogromne kolicine slobodnog metala i kristala se privlace i stvaraju trabanta oko planete.'; // The enormous amounts of drifting metal and crystal particles attract each other and slowly form a lunar satellite in the orbit of the planet.
	text[13][3]='Metal';		 // Metal
	text[14][3]='Kristal';		 // Crystal
	text[15][3]='Deuterium';		 // Deuterium
	text[16][3]='Napadac je izgubio ukupno '; // The attacker has lost a total of 
	text[17][3]='Odbranioc je izgubio ukupno '; // The defender has lost a total of 
	text[18][3]='Unisten';		 // Destroyed
	text[19][3]='jedinica';		 // Units
	text[21][3]='i';			 // and
	text[22][3]='Moon was given.';			 // moon was given.
	text[20][3]='suprostavile';	 // as it came to a battle
	// SHIPS

	ship[3] = new Array('Krstarica', 'B.brodovi.', 'Reci.', 'Kolon.', 'Sonde.spio', 'Bombarder', 'Sol.S', 'Razar.', 'Fatal', 'Rak.', 'L.laser', 'T.laser', 'Bac.ion', 'Gaus', 'Plazma', 'M.kupo', 'V.kupo');
}

function addPolishLang() {

	// CR WORDS
	text[0][4]='Agresor'; // Attacker
	text[1][4]='Obrońca'; // Defender
	text[2][4]='Następujące floty są przeciw sobie '; // The following fleets are facing each other at
	text[3][4]='Broń: '; // Weapons
	text[4][4]='Tarcza: '; // Shields
	text[5][4]='Osłona: '; // Hull Plating
	text[6][4]='Typ'; // Type
	text[7][4]='Il.'; // Number
	text[8][4]='Przejął'; // He captures
	text[9][4]='stracił łącznie'; // has lost a total of
	text[10][4]='Na tych współrzędnych leża teraz'; // At these space coordinates now float
	text[11][4]='Szanse powstania księżyca wynoszą '; // The chance for a moon to arise from the debris is 
	text[12][4]='Olbrzymie ilości wolnych metali i kryształów przyciągają się do siebie i formują satelity wokół planety.'; // The enormous amounts of drifting metal and crystal particles attract each other and slowly form a lunar satellite in the orbit of the planet.
	text[13][4]='metalu'; // Metal
	text[14][4]='kryształu'; // Crystal
	text[15][4]='deuteru'; // Deuterium
	text[16][4]='Agresor stracił łącznie '; // The attacker has lost a total of 
	text[17][4]='Obrońca stracił łącznie '; // The defender has lost a total of 
	text[18][4]='Zniszcz'; // Destroyed
	text[19][4]='jednostek'; // Units
	text[20][4]=' były przeciw sobie'; // as it came to a battle
	text[21][4]='i'; // and
	text[22][4]='Księżyc zostal dany.'; // Moon was given

	//SHIPS

	ship[4] = new Array('M.transp', 'D.transp', 'M.mysliw.', 'D.mysliw.', 'Krazownik', 'St.wojen.', 'Recykler.', 'St.kolon.', 'So.szpieg', 'Bombowiec', 'Sat.slon.', 'Niszcz.', 'G.Smierci', 'Wyrz.rak', 'L.laser', 'C.laser', 'Jon', 'Gauss', 'Plazma', 'M.powloka', 'D.powloka');

}

function addFrenchLang() {
	// CR WORDS

	text[0][5]='Attaquant'; // Attacker
	text[1][5]='Défenseur'; // Defender
	text[2][5]='Les flottes suivantes se trouvent ŕ '; // The following fleets are facing each other at
	text[3][5]='Armes: '; // Weapons
	text[4][5]='Bouclier: '; // Shields
	text[5][5]='Coque: '; // Hull Plating
	text[6][5]='Type'; // Type
	text[7][5]='Nombre'; // Number
	text[8][5]='Il gagne'; // He captures
	text[9][5]='a perdu au total '; // has lost a total of
	text[10][5]='A ces coordonnées se trouve maintenant'; // At these space coordinates now float
	text[11][5]='La probabilité de création de lune est de '; // The chance for a moon to arise from the debris is 
	text[12][5]="Les quantités énormes de métal et de cristal forment une nouvelle lune dans l'orbite de cette plančte. "; // The enormous amounts of drifting metal and crystal particles attract each other and slowly form a lunar satellite in the orbit of the planet.
	text[13][5]='Métal'; // Metal
	text[14][5]='Cristal'; // Crystal
	text[15][5]='Deutérium'; // Deuterium
	text[16][5]="L'attaquant a perdu au total "; // The attacker has lost a total of 
	text[17][5]='Le défenseur a perdu au total '; // The defender has lost a total of 
	text[18][5]='Détruit'; // Destroyed
	text[19][5]='unités'; // Units
	text[20][5]=' '; // as it came to a battle
	text[21][5]='et'; // and
	text[22][5]='une lune a été créer'; // Moon was given

	// SHIPS
	ship[5] = new Array('Petit transporteur', 'Grand transporteur', 'Chasseur léger', 'Chasseur lourd', 'Croiseur', 'Vaisseau de combat', 'Recycleur', 'Vaisseau de colonisation', 'Sonde espionnage', 'Bombardier', 'Sat. sol.', 'Destrct..', 'E.Mort', 'Missile.', 'Laser léger.', 'Laser lourd', 'Artillerie ŕ ions', 'Can. élec.', 'Lanc. de plas.', 'Pet. bouc.', 'Grd. bouc.');
}

addBosnianLang();
addPolishLang();
addFrenchLang();

var bgDark = 1;
function setBG(val) {
	bgDark = val;
}