function addcompare(link, count) {
	player = document.getElementById("compare"+count).value;
	eval("location='/"+link+"&compare"+count+"="+player+"'");
}

function submitcompare(e, link, count) {
	var charCode;
    
    if(e && e.which){
        charCode = e.which;
    }else if(window.event){
        e = window.event;
        charCode = e.keyCode;
    }

    if(charCode == 13) {
		player = document.getElementById("compare"+count).value;
		eval("location='/"+link+"&compare"+count+"="+player+"'");
	}
}

function search(lang, uni) {
	type = document.getElementById('type').value;
	name = document.getElementById('name').value;
	eval("location='/"+lang+"/"+uni+"/search/"+type+"/"+name+"'");
}

function select(x) {
  eval("location='"+x.options[x.selectedIndex].value+"'");
}

function savetechs() {
	var expDays = 90;
	var exp = new Date(); 
	exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
	if ( (document.getElementById('115').value != 0) && (document.getElementById('117').value != 0) && (document.getElementById('118').value != 0) ) { 
		SetCookie('antriebe', document.getElementById('115').value+"-"+document.getElementById('117').value+"-"+document.getElementById('118').value, exp); 
	}
}

function resetfleet() {
	for (i = 202; i <= 215; i++) {
  	document.getElementById(i).value = 0;
  }
}

function costcalc() {
	var total_met = 0;
	var total_kris = 0;
	var total_deut = 0;
	var total_pts = 0;
	var cookietext = "";
	for (i = 202; i <= 215; i++) {
  	var content = document.getElementById("info"+i).innerHTML;
	 	var regex = /Metall: (\d+) Kristall: (\d+) Deuterium: (\d+)/;
	 	regex.exec(content);
	 	var met = parseInt(RegExp.$1);
	 	var kris = parseInt(RegExp.$2);
	 	var deut = parseInt(RegExp.$3);
	 	var pts = (met + kris + deut) / 1000;
	 	var cnt = document.getElementById(i).value;
	 	total_met = total_met + met * cnt;
	 	total_kris = total_kris + kris * cnt;
	 	total_deut = total_deut + deut * cnt;
	 	total_pts = total_pts + pts * cnt;
	 	cookietext += i+"-"+cnt+",";
  }
  document.getElementById("met").innerHTML = nice(total_met);
  document.getElementById("kris").innerHTML = nice(total_kris);
  document.getElementById("deut").innerHTML = nice(total_deut);
  document.getElementById("pts").innerHTML = nice(total_pts);
  var expDays = 90;
	var exp = new Date(); 
	exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
  SetCookie('fleet', cookietext, exp); 
}

function expocalc() {
	var total_capacity = 0;
	var total_structure = 0;
	var total_pts = 0;
	var total_expocapacity = 0;
	
	for (i = 202; i <= 215; i++) {
		if (i != 212) {
	  	var content = document.getElementById("info"+i).innerHTML;
		 	var regex = /Metall: (\d+) Kristall: (\d+) Deuterium: (\d+) Kapazitaet: (\d+) Strukturpunkte: (\d+)/;
		 	regex.exec(content);
		 	var met = parseInt(RegExp.$1);
		 	var kris = parseInt(RegExp.$2);
		 	var deut = parseInt(RegExp.$3);
		 	var capacity = parseInt(RegExp.$4);
		 	var structure = parseInt(RegExp.$5);
		 	var pts = (met + kris + deut) / 1000;
		 	var cnt = document.getElementById(i).value;
		 	total_capacity = total_capacity + capacity * cnt;		 	
		 	total_structure = total_structure + structure * cnt;
		 	total_pts = total_pts + pts * cnt;
		}
  }
  total_expocapacity = total_structure / 5;
  if (total_expocapacity > 2000000 && total_capacity > 2000000) {
  	total_expocapacity = 2000000;
  } else if (total_capacity < total_expocapacity) {
		total_expocapacity = total_capacity;
  } else {
  	total_expocapacity = total_structure / 5;
  }
  document.getElementById("capacity").innerHTML = nice(total_capacity);
  document.getElementById("structure").innerHTML = nice(total_structure);
  document.getElementById("expocapacity").innerHTML = nice(total_expocapacity);
  document.getElementById("pts").innerHTML = nice(total_pts);
}

function nice (value) {
	var unit = "";
	if (value >= 1000000000) {
		value = value / 1000000000;
		unit = "G";
	} else if (value >= 1000000) {
		value = value / 1000000;
		unit = "M";
	} else if (value >= 1000) {
		value = value / 1000;
		unit = "k";
	}
	return Math.round(value * 100) / 100 +" "+unit;
}

function SetCookie (name, value) { 
	var argv = SetCookie.arguments; 
	var argc = SetCookie.arguments.length; 
	var expires = (argc > 2) ? argv[2] : null; 
	var path = (argc > 3) ? argv[3] : null; 
	var domain = (argc > 4) ? argv[4] : null; 
	var secure = (argc > 5) ? argv[5] : false; 
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) + 
	((domain == null) ? "" : ("; domain=" + domain)) + 
	((secure == true) ? "; secure" : "");
}

function fleetcalc() {
	document.getElementById("duration").innerHTML = duration_time();
	document.getElementById("consumption").innerHTML = consumption();
	document.getElementById("capacity").innerHTML = capacity();
	
	var fixarrival = document.getElementById("fixarrival").checked;
	var fixreturn = document.getElementById("fixreturn").checked;
	var isreturn = document.getElementById("isreturn").checked;
	if (isreturn == true) {
		document.getElementById("return").value = returnedflight();
	} else {
		if ( (fixarrival == false) && (fixreturn == false) ||  (fixarrival == true) && (fixreturn == true) ) {
			document.getElementById("arrival").value = arrival();
			document.getElementById("return").value = returntime();
		} else if (fixarrival == true) {
			document.getElementById("starttime").value = fix_arrival();
		} else if (fixreturn == true) {
			document.getElementById("starttime").value = fix_return();
		}
	}
}

function returnedflight() {
	var starttime = document.getElementById("starttime").value
	var isreturntime = document.getElementById("isreturntime").value
	
	var regex = /(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
	regex.exec(starttime);
	
	var returntime = new Date();
	var temptime = new Date();
	var startdate = new Date(RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6);
	
	regex.exec(isreturntime);
	var isreturndate = new Date(RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6);
	
	temptime.setTime(isreturndate.getTime() - startdate.getTime());
	
	returntime.setTime(isreturndate.getTime() + temptime.getTime());
    return (returntime.getFullYear()+"-"+returntime.getMonth()+"-"+returntime.getDate()+" "+returntime.getHours()+":"+returntime.getMinutes()+":"+returntime.getSeconds());
}

function getspeed(i) {
	var content = document.getElementById("info"+i).innerHTML;
	var regex = /Antrieb: (\d+) \((\d+)%\) Geschwindigkeit: (\d+) \((\d+)\)/;
	regex.exec(content);
	var antrieb = parseInt(RegExp.$1);
	var multi = parseInt(RegExp.$2);
	var speed = parseInt(RegExp.$3);
	var speed2 = parseInt(RegExp.$4);
	var stufe = document.getElementById(antrieb).value;
	if ( (i == 202) && (stufe >= 4) ) {
	 	multi = 20;
	 	stufe = document.getElementById(117).value;
	 	speed = speed2;
	}
	if ( (i == 211) && (stufe >= 7) ) {
		multi = 30;
		stufe = document.getElementById(118).value;
		speed = speed2;
	}
	speed = speed + speed * stufe * multi / 100;
	return speed;
	alert(speed);
}

function maxspeed() {
	var msp = 1000000000;
	for (i = 202; i <= 215; i++) {
  	if (i != 212) {
	  	if (document.getElementById(i).value > 0) {
	  		var speed = getspeed(i)
	  		msp = min(msp, speed);
	  	}
	  }
	}
	return(msp);
}

function min(a, b) {
	a = a * 1;
	b = b * 1;
	if (a > b) {
		return b;
	} else {
		return a;
	}
}


function distance() {
	var startGalaxy;
	var startSystem;
	var startPlanet;

	var targetGalaxy;
	var targetSystem;
	var targetPlanet;

	var dist;
	
	var startGalaxy = document.getElementById('s_g').value
	var startSystem = document.getElementById('s_s').value
	var startPlanet = document.getElementById('s_p').value

  targetGalaxy = document.getElementById('t_g').value
  targetSystem = document.getElementById('t_s').value
  targetPlanet = document.getElementById('t_p').value;

	dist = 0;
	if ((targetGalaxy - startGalaxy) != 0) {
		dist = Math.abs(targetGalaxy - startGalaxy) * 20000;
	} else if ((targetSystem - startSystem) != 0) {
		dist = Math.abs(targetSystem - startSystem) * 5 * 19 + 2700;
	} else if ((targetPlanet - startPlanet) != 0) {
		dist = Math.abs(targetPlanet - startPlanet) * 5 + 1000;
	} else {
		dist = 5;
	}

	return(dist);
}

function duration() {
	var speedfactor;

	speedfactor = 1;
	if (document.getElementById("doublespeed").checked == true) {
		speedfactor = 2;
	}

	msp = maxspeed();
	sp = speed();
	dist = distance();

	ret = Math.round(((35000 / sp * Math.sqrt(dist * 10 / msp) + 10) / speedfactor));
	return ret;
}

function consumption() {
	var consumption = 0;
	var basicConsumption = 0;
	var values;
	var i;

	msp = maxspeed();
	sp = speed();
	dist = distance();
	dur = duration();
	var speedfactor;

	speedfactor = 1;
	if (document.getElementById("doublespeed").checked == true) {
		speedfactor = 2;
	}

	for (i = 202; i <= 215; i++) {
  	if (i != 212) {
	  	if (document.getElementById(i).value > 0) {
				var shipspeed = getspeed(i);
				spd = 35000 / (dur * speedfactor - 10) * Math.sqrt(dist * 10 / shipspeed);
	
				var content = document.getElementById("info"+i).innerHTML;
				regex = /Verbrauch: (\d+)/;
	  		regex.exec(content);
	  		shipconsumption = RegExp.$1;
				basicConsumption = shipconsumption * document.getElementById(i).value;
				consumption += basicConsumption * dist / 35000 * ((spd / 10) + 1) * ((spd / 10) + 1);
			}
		}
	}
	consumption = Math.round(consumption) + 1;

	return(consumption);
}

function speed() {
	var sp;
	sp = document.getElementById("speed").value;
	return(sp);
}

function capacity() {
	var capacity = 0;
	
	for (i = 202; i <= 215; i++) {
  	if (i != 212) {
	  	if (document.getElementById(i).value > 0) {
	  		var content = document.getElementById("info"+i).innerHTML;
	  		var regex = /Ladekapazitaet: (\d+)/;
	  		regex.exec(content);
	  		shipcapacity = RegExp.$1;
				capacity	+= document.getElementById(i).value * shipcapacity;
			}
		}
	}
	capacity -= consumption() - 1;
	return(capacity);
}

function duration_time() {
	var seconds = duration();
	var hours = Math.floor(seconds / 3600);
	seconds -= hours * 3600;

	var minutes = Math.floor(seconds / 60);
	seconds -= minutes * 60;

	if (minutes < 10) minutes = "0" + minutes;
	if (seconds < 10) seconds = "0" + seconds;

	return (hours + ":" + minutes + ":" + seconds + " h");
}

function arrival() {
	var durationtime = duration_time();
	var starttime = document.getElementById("starttime").value
	
	var regex = /(\d+):(\d+):(\d+) h/;
	regex.exec(durationtime);
	var duration_h = parseInt(RegExp.$1);
	var duration_m = parseInt(RegExp.$2);
	var duration_s = parseInt(RegExp.$3);
	
	var durationdate = (duration_h*3600 + duration_m*60 + duration_s) * 1000;
	
	var regex2 = /(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
	regex2.exec(starttime);
	
	var arrival = new Date();
	var startdate = new Date(RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6);
	arrival.setTime(startdate.getTime() + durationdate);
	
	return (arrival.getFullYear()+"-"+arrival.getMonth()+"-"+arrival.getDate()+" "+arrival.getHours()+":"+arrival.getMinutes()+":"+arrival.getSeconds());
}

function returntime() { 
  var durationtime = duration_time();
	var starttime = document.getElementById("starttime").value
	
	var regex = /(\d+):(\d+):(\d+) h/;
	regex.exec(durationtime);
	var duration_h = parseInt(RegExp.$1);
	var duration_m = parseInt(RegExp.$2);
	var duration_s = parseInt(RegExp.$3);
	
	var durationdate = (duration_h*3600 + duration_m*60 + duration_s) * 1000;
	
	var regex2 = /(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
	regex2.exec(starttime);
	
	var returntime = new Date();
	var startdate = new Date(RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6);
  returntime.setTime(startdate.getTime() + durationdate*2);
  
  return (returntime.getFullYear()+"-"+returntime.getMonth()+"-"+returntime.getDate()+" "+returntime.getHours()+":"+returntime.getMinutes()+":"+returntime.getSeconds());
}

function fix_arrival() {
	var durationtime = duration_time();
	var arrivaltime = document.getElementById("arrival").value;
	
	var regex = /(\d+):(\d+):(\d+) h/;
	regex.exec(durationtime);
	var duration_h = parseInt(RegExp.$1);
	var duration_m = parseInt(RegExp.$2);
	var duration_s = parseInt(RegExp.$3);
	
	var durationdate = (duration_h*3600 + duration_m*60 + duration_s) * 1000;
	
	var regex2 = /(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
	regex2.exec(arrivaltime);
	
	var arrival = new Date();
	var arrivaldate = new Date(RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6);
	
	arrival.setTime(arrivaldate.getTime() - durationdate);
	return (arrival.getFullYear()+"-"+arrival.getMonth()+"-"+arrival.getDate()+" "+arrival.getHours()+":"+arrival.getMinutes()+":"+arrival.getSeconds());
}

function fix_return() {
	var durationtime = duration_time();
	var return_time = document.getElementById("return").value;
	
	var regex = /(\d+):(\d+):(\d+) h/;
	regex.exec(durationtime);
	var duration_h = parseInt(RegExp.$1);
	var duration_m = parseInt(RegExp.$2);
	var duration_s = parseInt(RegExp.$3);
	
	var durationdate = (duration_h*3600 + duration_m*60 + duration_s) * 1000;
	
	var regex2 = /(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
	regex2.exec(return_time);
	
	var returntime = new Date();
	var returndate = new Date(RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6);
	
	returntime.setTime(returndate.getTime() - durationdate*2);
	
	return (returntime.getFullYear()+"-"+returntime.getMonth()+"-"+returntime.getDate()+" "+returntime.getHours()+":"+returntime.getMinutes()+":"+returntime.getSeconds());
}