function expvalid(obj)
{
	if (s) return false;
	var r =true;
	if ($("#mission").attr('value')==15 && $("#mission").attr('checked')==true)                                                                                                                                                 
    { 
    	var top = $(obj).position().top;
		var left = ($(document).width() - loading_window_width)/2;
		loading_window(left, top);
    	$.ajax({
			url: 'http://' + document.domain + '/check_expedi.ajax.php',
			dataType: 'json',
			type: 'POST',
			async: false,
			success: function(json) {
				if (json.validate==1)
				{
					loading_window(left, top);
					param = {};
					param.service = 710;
					ajax_request(param);
					r = false;
				}
				else
				{
					r = true;
				}
			}
		});
	}
	s= true;
	return r;
}
function speed() {
	var sp;
	sp = document.getElementsByName("speed")[0].value;

	return(sp);
}

function target() {
	var galaxy;
	var system;
	var planet;

	galaxy = document.getElementsByName("galaxy")[0].value;
	system = document.getElementsByName("system")[0].value;
	planet = document.getElementsByName("planet")[0].value;

	return("["+galaxy+":"+system+":"+planet+"]");
}

function setTarget(galaxy, solarsystem, planet, planettype) {
	document.getElementsByName('galaxy')[0].value = galaxy;
	document.getElementsByName('system')[0].value = solarsystem;
	document.getElementsByName('planet')[0].value = planet;
	document.getElementsByName('planettype')[0].value = planettype;
}

function setMission(mission) {
	document.getElementsByName('order')[0].selectedIndex = mission;
	return;
}

function setUnion(unionid) {
	document.getElementsByName('union2')[0].selectedIndex = unionid;
}

function setTargetLong(galaxy, solarsystem, planet, planettype, mission, cnt) {
	setTarget(galaxy, solarsystem, planet, planettype);
	setMission(mission);
	setUnions(cnt);
}

function min(a, b) {
	a = a * 1;
	b = b * 1;
	if (a > b) {
		return b;
	} else {
		return a;
	}
}

function setACS(fleet_group) {
   document.getElementsByName('fleet_group')[0].value = fleet_group;
   return;
}

function setACS_target(acs_target_mr) {
   document.getElementsByName('acs_target_mr')[0].value = acs_target_mr;
   return;
}

function maxspeed() {
	var msp = 1000000000;
	for (i = 200; i < 250; i++) {
		if (document.getElementsByName("ship" + i)[0]) {
			if ((document.getElementsByName("speed" + i)[0].value * 1) >= 1
			&& (document.getElementsByName("ship" + i)[0].value * 1) >= 1) {
				msp = min(msp, document.getElementsByName("speed" + i)[0].value);
			}
		}
	}

	return(msp);
}

function distance() {
	var thisGalaxy;
	var thisSystem;
	var thisPlanet;

	var targetGalaxy;
	var targetSystem;
	var targetPlanet;

	var maxGalaxy;
	var maxSystem;

	var dist;

	if (document.getElementsByName("dist")[0]) return (document.getElementsByName("dist")[0].value);

	thisGalaxy = document.getElementsByName("thisgalaxy")[0].value;
	thisSystem = document.getElementsByName("thissystem")[0].value;
	thisPlanet = document.getElementsByName("thisplanet")[0].value;

	maxGalaxy = document.getElementsByName("maxgalaxy")[0].value;
	maxSystem = document.getElementsByName("maxsystem")[0].value;

	targetGalaxy = document.getElementsByName("galaxy")[0].value;
	targetSystem = document.getElementsByName("system")[0].value;
	targetPlanet = document.getElementsByName("planet")[0].value;

	dist = 0;
	if ((targetGalaxy - thisGalaxy) != 0) {
	//	dist = Math.abs(targetGalaxy - thisGalaxy) * 20000;
		dist = Math.min(Math.abs(targetGalaxy - thisGalaxy),(maxGalaxy-Math.abs(targetGalaxy - thisGalaxy))) * 20000;
	} else if ((targetSystem - thisSystem) != 0) {
		dist = Math.min(Math.abs(targetSystem - thisSystem),(maxSystem-Math.abs(targetSystem - thisSystem))) * 5 * 19 + 2700;
	} else if ((targetPlanet - thisPlanet) != 0) {
		dist = Math.abs(targetPlanet - thisPlanet) * 5 + 1000;
	} else {
		dist = 5;
	}

	return(dist);
}

function duration() {
	var speedfactor;

	speedfactor = document.getElementsByName("speedfactor")[0].value;
	msp = maxspeed();
	sp = speed();
	dist = distance();

	ret = Math.round(((35000 / sp * Math.sqrt(dist * 10 / msp) + 10) / speedfactor ));
	return ret;
}

function consumption2() {
	var consumption;
	var basicConsumption = 0;

	for (i = 200; i < 250; i++) {
		if (document.getElementsByName("ship" + i)[0]) {
			basicConsumption = basicConsumption +
			document.getElementsByName("consumption" + i)[0].value
			* document.getElementsByName("ship" + i)[0].value;
		}
	}

	speedfactor = document.getElementsByName("speedfactor")[0].value;
	msp = maxspeed();
	sp = speed();
	dist = distance();

	consumption = Math.round(basicConsumption * dist / 35000 * ((sp / 10) + 1) * ((sp / 10) + 1)) + 1;

	return(consumption);
}

function consumption() {
	var consumption = 0;
	var basicConsumption = 0;
	var values;
	var i;

	msp = maxspeed();
	sp = speed();
	dist = distance();
	dur = duration();
	speedfactor = document.getElementsByName("speedfactor")[0].value;

	for (i = 200; i < 250; i++) {
		if (document.getElementsByName("ship" + i)[0]) {
			shipspeed = document.getElementsByName("speed" + i)[0].value;
			spd = 35000 / (dur * speedfactor - 10) * Math.sqrt(dist * 10 / shipspeed);

			//spd = Math.max(msp / document.getElementsByName("speed" + i)[0].value, 0.1);
			//spd = Math.min(spd, 1.0);
			//spd = spd * sp;
			//spd = 10;
			basicConsumption = document.getElementsByName("consumption" + i)[0].value
			* document.getElementsByName("ship" + i)[0].value;
			consumption += basicConsumption * dist / 35000 * ((spd / 10) + 1) * ((spd / 10) + 1);
			//      values = values + " " + spd;
		}
	}

	consumption = Math.round(consumption) + 1;
	//  document.write(values);

	return(consumption);
}

function ShowHold() {
	var holdresources = 0;
	var basicConsumption = 0;
	var n = document.getElementById('holdingtime').value?document.getElementById('holdingtime').value:0;

	for (i = 200; i < 250; i++) {
		if (document.getElementsByName("ship" + i)[0]) {
			basicConsumption = document.getElementsByName("consumption" + i)[0].value;
		  // hold += (basicConsumption/* Math.pow(2,document.getElementsByName('holdingtime').value))/10;
			holdresources += Math.ceil(basicConsumption/20)* Math.pow(2,n)
			* document.getElementsByName("ship" + i)[0].value;
		}
	}
	document.getElementById("inpuT_5").checked = true;
	document.getElementById("holdresources").value = holdresources;
	document.getElementById("holdresources").innerHTML = document.getElementById("holdresources").value;
	calculateTransportCapacity();
}

function probeConsumption() {
	var consumption = 0;
	var basicConsumption = 0;
	var values;
	var i;

	msp = maxspeed();
	sp = speed();
	dist = distance();
	dur = duration();
	speedfactor = document.getElementsByName("speedfactor")[0].value;


	if (document.getElementsByName("ship210")[0]) {
		shipspeed = document.getElementsByName("speed210")[0].value;
		spd = 35000 / (dur * speedfactor - 10) * Math.sqrt(dist * 10 / shipspeed);

		basicConsumption = document.getElementsByName("consumption210")[0].value
		* document.getElementsByName("ship210")[0].value;
		consumption += basicConsumption * dist / 35000 * ((spd / 10) + 1) * ((spd / 10) + 1);
	}


	consumption = Math.round(consumption) + 1;

	//  document.write(values);

	return(consumption);
}

function unusedProbeStorage() {

	var storage = document.getElementsByName('capacity210')[0].value * document.getElementsByName('ship210')[0].value;
	var stor =  storage - probeConsumption();
	return (stor>0)?stor:0;

}

function storage() {
	var storage = 0;

	for (i = 200; i < 300; i++) {

		if (document.getElementsByName("ship" + i)[0]) {
			if ((document.getElementsByName("ship" + i)[0].value * 1) >= 1) {
				storage
				+= document.getElementsByName("ship" + i)[0].value
				*  document.getElementsByName("capacity" + i)[0].value
			}
		}
	}
	//storage  = storage * getStorageFaktor();
	storage -= consumption();
	if (document.getElementsByName("ship210")[0]) {
		storage -= unusedProbeStorage();
	}

	return(storage);
}


function fleetInfo() {
	document.getElementById("speed").innerHTML = speed() * 10 + "%";
	document.getElementById("target").innerHTML = target();
	document.getElementById("distance").innerHTML = distance();

	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;

	document.getElementById("duration").innerHTML = hours + ":" + minutes + ":" + seconds + " h";

	var stor = storage();
	var cons = consumption();
	document.getElementById("maxspeed").innerHTML = tsdpkt(maxspeed());
	if (stor >= 0) {
		document.getElementById("consumption").innerHTML = '<font color="lime">'+cons+'</font>';
		document.getElementById("storage").innerHTML = '<font color="lime">'+stor+'</font>';
	} else {
		document.getElementById("consumption").innerHTML = '<font color="red">'+cons+'</font>';
		document.getElementById("storage").innerHTML = '<font color="red">'+stor+'</font>';
	}
	//calculateTransportCapacity();
}

function shortInfo() {

	document.getElementById("distance").innerHTML = tsdpkt(distance());
	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;

	document.getElementById("duration").innerHTML = hours + ":" + minutes + ":" + seconds;
	var stor = storage();
	var cons = consumption();


	document.getElementById("maxspeed").innerHTML = tsdpkt(maxspeed());
	if (stor >= 0) {
		document.getElementById("consumption").innerHTML = '<font color="lime">'+tsdpkt(cons)+'</font>';
		document.getElementById("storage").innerHTML = '<font color="lime">'+tsdpkt(stor)+'</font>';
	} else {
		document.getElementById("consumption").innerHTML = '<font color="red">'+tsdpkt(cons)+'</font>';
		document.getElementById("storage").innerHTML = '<font color="red">'+tsdpkt(stor)+'</font>';
	}

}


function setResource(id, val) {
	if (document.getElementsByName(id)[0]) {
		document.getElementsByName("resource" + id)[0].value = val;
	}
}

function maxResource(id) {
	var thisresource =0;
	if(document.getElementsByName("thisresource" + id)[0]!=undefined)
		thisresource = parseInt(document.getElementsByName("thisresource" + id)[0].value);
	var thisresourcechosen = 0;
	if(document.getElementsByName("resource" + id)[0]!=undefined)
		thisresourcechosen = parseInt(document.getElementsByName("resource" + id)[0].value);

	if (isNaN(thisresourcechosen)){
		thisresourcechosen=0;
	}
	if (isNaN(thisresource)){
		thisresource=0;
	}

	var storCap = storage();
	if (id==3){
		thisresource -= consumption();
	}

	var metalToTransport = parseInt(document.getElementsByName("resource1")[0].value);
	var crystalToTransport = parseInt(document.getElementsByName("resource2")[0].value);
	var deuteriumToTransport = parseInt(document.getElementsByName("resource3")[0].value);

	if (isNaN(metalToTransport)){
		metalToTransport=0;
	}
	if (isNaN(crystalToTransport)){
		crystalToTransport=0;
	}
	if (isNaN(deuteriumToTransport)){
		deuteriumToTransport=0;
	}
	var bankmetalToTransport=0;
	var bankcrystalToTransport=0;
	var bankdeuteriumToTransport=0;
	if(document.getElementsByName("resource4")[0]!=undefined)
		bankmetalToTransport = parseInt(document.getElementsByName("resource4")[0].value);
	if(document.getElementsByName("resource5")[0]!=undefined)
		bankcrystalToTransport = parseInt(document.getElementsByName("resource5")[0].value);
	if(document.getElementsByName("resource6")[0]!=undefined)
		bankdeuteriumToTransport = parseInt(document.getElementsByName("resource6")[0].value);
	if (isNaN(bankmetalToTransport)){
		bankmetalToTransport=0;
	}
	if (isNaN(bankcrystalToTransport)){
		bankcrystalToTransport=0;
	}
	if (isNaN(bankdeuteriumToTransport)){
		bankdeuteriumToTransport=0;
	}
	
	var freeCapacity = Math.max(storCap - metalToTransport - crystalToTransport - deuteriumToTransport - bankmetalToTransport - bankcrystalToTransport - bankdeuteriumToTransport, 0);
	var cargo = Math.min (freeCapacity + thisresourcechosen, thisresource);

	if (document.getElementsByName("resource" + id)[0]!=undefined) {
		document.getElementsByName("resource" + id)[0].value = cargo;
	}
	calculateTransportCapacity();
}

function maxResources() {
	var id;
	var storCap = storage();
	var metalToTransport = document.getElementsByName("thisresource1")[0].value;
	var crystalToTransport = document.getElementsByName("thisresource2")[0].value;
	var deuteriumToTransport = document.getElementsByName("thisresource3")[0].value - consumption();
//	var bankmetalToTransport = document.getElementsByName("thisresource4")[0].value;
//	var bankcrystalToTransport = document.getElementsByName("thisresource5")[0].value;
//	var bankdeuteriumToTransport = document.getElementsByName("thisresource6")[0].value;
	var freeCapacity = storCap - metalToTransport - crystalToTransport - deuteriumToTransport;// - bankmetalToTransport - bankcrystalToTransport - bankdeuteriumToTransport;
	if (freeCapacity < 0) {
		metalToTransport = Math.min(metalToTransport, storCap);
		crystalToTransport = Math.min(crystalToTransport, storCap - metalToTransport);
		deuteriumToTransport = Math.min(deuteriumToTransport, storCap - metalToTransport - crystalToTransport);
//		bankmetalToTransport = Math.min(bankmetalToTransport, storCap - metalToTransport - crystalToTransport - deuteriumToTransport);
//		bankcrystalToTransport = Math.min(bankcrystalToTransport, storCap - metalToTransport - crystalToTransport - deuteriumToTransport - bankmetalToTransport);
//		bankdeuteriumToTransport = Math.min(bankdeuteriumToTransport, storCap - metalToTransport - crystalToTransport - deuteriumToTransport - bankmetalToTransport - bankcrystalToTransport);
	}
	document.getElementsByName("resource1")[0].value = Math.max(metalToTransport, 0);
	document.getElementsByName("resource2")[0].value = Math.max(crystalToTransport, 0);
	document.getElementsByName("resource3")[0].value = Math.max(deuteriumToTransport, 0);
//	document.getElementsByName("resource4")[0].value = Math.max(bankmetalToTransport, 0);
//	document.getElementsByName("resource5")[0].value = Math.max(bankcrystalToTransport, 0);
//	document.getElementsByName("resource6")[0].value = Math.max(bankdeuteriumToTransport, 0);
	calculateTransportCapacity();
}

function maxShip(id) {
	if (document.getElementsByName(id)[0]) {
		document.getElementsByName(id)[0].value = document.getElementsByName("max" + id)[0].value;
	}
}

function plus(id) {
	if (document.getElementsByName(id)[0] && (parseInt(document.getElementsByName(id)[0].value) < parseInt(document.getElementsByName("max" + id)[0].value))) {
		r = parseInt(document.getElementsByName(id)[0].value);
		r += 1;
		document.getElementsByName(id)[0].value = r;
	}
}

function checkNumber(id) {
	if (parseInt(document.getElementsByName(id)[0].value) > parseInt(document.getElementsByName("max" + id)[0].value)) {
		document.getElementsByName(id)[0].value = document.getElementsByName("max" + id)[0].value;
	}
}


function minus(id) {
	if (document.getElementsByName(id)[0] && (parseInt(document.getElementsByName(id)[0].value) > 0)) {
		r = parseInt(document.getElementsByName(id)[0].value);
		r -= 1;
		document.getElementsByName(id)[0].value = r;
	}
}

function resetNumber(id) {
		document.getElementsByName(id)[0].value = 0;
}

function maxShips() {
	var id;
	for (i = 200; i < 250; i++) {
		id = "ship"+i;
		maxShip(id);
	}
}


function noShip(id) {
	if (document.getElementsByName(id)[0]) {
		document.getElementsByName(id)[0].value = 0;
	}
}


function noShips (){
	var id;
	for (i = 200; i < 250; i++) {
		id = "ship"+i;
		noShip(id);
	}
}

function noAtt (){
	var id;
	for (i = 200; i < 250; i++) {
		id = "fleet_us[1]["+i+"]";
		noShip(id);
	}
	for (i = 400; i < 450; i++) {
		id = "fleet_us_def[1]["+i+"]";
		noShip(id);
	}
}

function noDef (){
	var id;
	for (i = 200; i < 250; i++) {
		id = "fleet_them[0]["+i+"]";
		noShip(id);
	}
	for (i = 400; i < 450; i++) {
		id = "fleet_them[0]["+i+"]";
		noShip(id);
	}
}

function change(){
	var id;
	var id2;
	chang('military_tech_us[1]','military_tech_them[0]');
	chang('defence_tech_us[1]','defence_tech_them[0]');
	chang('shield_tech_us[1]','shield_tech_them[0]');
	chang('rpg_amiral_us[1]','rpg_amiral_them[0]');
	for (i = 200; i < 250; i++) {
		id = "fleet_them[0]["+i+"]";
		id2 = "fleet_us[1]["+i+"]";
		chang(id,id2);
	}
	for (i = 400; i < 450; i++) {
		id = "fleet_them[0]["+i+"]";
		id2 = "fleet_us_def[1]["+i+"]";
		chang(id,id2);
	}
}

function chang(id,id2)
{
	var temp;
	if (document.getElementsByName(id)[0] && document.getElementsByName(id2)[0]) {
			temp = document.getElementsByName(id)[0].value;
			document.getElementsByName(id)[0].value = document.getElementsByName(id2)[0].value;
			document.getElementsByName(id2)[0].value = temp;
		}
}

function calculateTransportCapacity() {
	var metal = Math.abs(document.getElementsByName("resource1")[0].value.replace('.',''));
	var crystal = Math.abs(document.getElementsByName("resource2")[0].value.replace('.',''));
	var deuterium = Math.abs(document.getElementsByName("resource3")[0].value.replace('.',''));
	var bankmetal = 0;
	var bankcrystal = 0;
	var bankdeuterium = 0;
	if(document.getElementsByName("resource4")[0]!=undefined)
		bankmetal = Math.abs(document.getElementsByName("resource4")[0].value.replace('.',''));
	if(document.getElementsByName("resource5")[0]!=undefined)	
		bankcrystal = Math.abs(document.getElementsByName("resource5")[0].value.replace('.',''));
	if(document.getElementsByName("resource6")[0]!=undefined)	
		bankdeuterium = Math.abs(document.getElementsByName("resource6")[0].value.replace('.',''));

	
	transportCapacity =  storage() - metal - crystal - deuterium - bankmetal - bankcrystal - bankdeuterium - (document.getElementById("inpuT_5")?(document.getElementById("inpuT_5").checked?document.getElementById("holdresources").value:0):0);

	if (transportCapacity < 0) {
		document.getElementById("remainingresources").innerHTML="<font color=red>"+transportCapacity+"</font>";
	} else {
		document.getElementById("remainingresources").innerHTML="<font color=lime>"+transportCapacity+"</font>";
	}
	return transportCapacity;
}

function getLayerRef(id, document) {
	if (!document)
	document = window.document;

	if (document.layers) {
		for (var l = 0; l < document.layers.length; l++)
		if (document.layers[l].id == id)
		return document.layers[l];
		for (var l = 0; l < document.layers.length; l++) {
			var result = getLayerRef(id, document.layers[l].document);
			if (result)
			return result;
		}
		return null;
	}
	else if (document.all) {
		return document.all[id];
	}
	else if (document.getElementById) {
		return document.getElementById(id);
	}
}

function setVisibility(objLayer, visible) {
	if (document.layers) {
		objLayer.visibility =
		(visible == true) ? 'show' : 'hide';
	} else {
		objLayer.style.visibility =
		(visible == true) ? 'visible' : 'hidden';
	}
}

function setVisibilityForDivByPrefix(prefix, visible, d) {
	if (!d)
	d = window.document;

	if (document.layers) {
		for (var i = 0; i < d.layers.length; i++) {
			if (d.layers[i].id.substr(0, prefix.length) == prefix)
			setVisibility(d.layers[l], visible);
			setVisibilityForDivByPrefix(prefix, visible, d.layers[i].document);
		}
	} else if (document.all) {
		var layers = document.all.tags("div");
		for (i = 0; i < layers.length; i++) {
			if (layers[i].id.substr(0, prefix.length) == prefix)
			setVisibility(document.all.tags("div")[i].visible);
		}
	} else if (document.getElementsByTagName) {
		var layers = document.getElementsByTagName("div");
		for (i = 0; i < layers.length; i++) {
			if (layers[i].id.substr(0, prefix.length) == prefix)
			setVisibility(layers[i].visible);
		}
	}
}


/*
function disableSome() {
document.forms[0].mission[6].disabled = true;
document.forms[0].mission[7].disabled = true;
document.forms[0].mission[8].disabled = true;
}
*/
function setPlanet(string) {
	var splitstring = string.split(":");
	document.getElementsByName('galaxy')[0].value = splitstring[0];
	document.getElementsByName('system')[0].value = splitstring[1];
	document.getElementsByName('planet')[0].value = splitstring[2];
	document.getElementsByName('planettype')[0].value = splitstring[3];
	setMission(splitstring[4]);
}

function setUnions(cnt) {
	galaxy = document.getElementsByName('galaxy')[0].value;
	system = document.getElementsByName('system')[0].value;
	planet =   document.getElementsByName('planet')[0].value;
	planettype = document.getElementsByName('planettype')[0].value;

	thisgalaxy = document.getElementsByName("thisgalaxy")[0].value;
	thissystem = document.getElementsByName("thissystem")[0].value;
	thisplanet = document.getElementsByName("thisplanet")[0].value;
	thisplanettype = document.getElementsByName("thisplanettype")[0].value;

	spd = document.getElementsByName("speed")[0].value;
	speedfactor = document.getElementsByName("speedfactor")[0].value;

	for (i = 0; i < cnt; i++) {
		//    alert ("set unions called "+ cnt);
		var string = document.getElementById("union"+i).innerHTML;
		time = document.getElementsByName('union'+i+'time')[0].value;
		/* alert ("set unions called "+ time);*/
		targetgalaxy = document.getElementsByName('union'+i+'galaxy')[0].value;
		targetsystem = document.getElementsByName('union'+i+'system')[0].value;
		targetplanet = document.getElementsByName('union'+i+'planet')[0].value;
		targetplanettype = document.getElementsByName('union'+i+'planettype')[0].value;

		if (targetgalaxy == galaxy && targetsystem == system
		&& targetplanet == planet && targetplanettype == planettype){


			inSpeedLimit = isInSpeedLimit(flightTime(thisgalaxy, thissystem, thisplanet,
			targetgalaxy, targetsystem, targetplanet,
			spd, speedfactor), time);
			//      alert ("in here" + inSpeedLimit);
			if (inSpeedLimit == 2) {
				document.getElementById("union"+i).innerHTML =
				'<font color="lime">'+string+'</font>';
			} else if (inSpeedLimit == 1) {
				document.getElementById("union"+i).innerHTML =
				'<font color="orange">'+string+'</font>';
			} else {
				document.getElementById("union"+i).innerHTML =
				'<font color="red">'+string+'</font>';
			}
		} else {
			document.getElementById("union"+i).innerHTML =
			'<font color="#00a0ff">'+string+'</font>';
			//      alert("red"+i);
		}
	}
}

function isInSpeedLimit(flightlength, eventtime) {
	var time = new Date();
	time = Math.round(time / 1000);
	if (flightlength < ((eventtime - time) * (1 + 0.5))) {
		return 2;
	} else if (flightlength < ((eventtime - time) * 1)) {
		return 1;
	} else {
		return 0;
	}
}

function flightTime(galaxy, system, planet,
targetgalaxy, targetsystem, targetplanet,
spd, maxspeed, speedfactor) {
	//    alert ("flighttime called 1"+galaxy+" "+system+" "+planet+" "+targetgalaxy+" "+targetsystem+" "+targetplanet);

	if ((galaxy - targetgalaxy) != 0) {
		dist = Math.abs(galaxy - targetgalaxy) * 20000;
	} else if ((system - targetsystem) != 0) {
		dist = Math.abs(system - targetsystem) * 5 * 19 + 2700;
	} else if ((planet - targetplanet) != 0) {
		dist = Math.abs(planet - targetplanet) * 5 + 1000;
	} else {
		dist = 5;
	}
	return Math.round(((35000 / spd * Math.sqrt(dist * 10 / maxspeed) + 10) / speedfactor));
}

function showCoords() {
	document.getElementsByName('speed')[0].disabled = false;
	document.getElementsByName('galaxy')[0].disabled = false;
	document.getElementsByName('system')[0].disabled = false;
	document.getElementsByName('planet')[0].disabled = false;
	document.getElementsByName('planettype')[0].disabled = false;
	document.getElementsByName('shortlinks')[0].disabled = false;
}

function hideCoords() {
	document.getElementsByName('speed')[0].disabled = true;
	document.getElementsByName('galaxy')[0].disabled = true;
	document.getElementsByName('system')[0].disabled = true;
	document.getElementsByName('planet')[0].disabled = true;
	document.getElementsByName('planettype')[0].disabled = true;
	document.getElementsByName('shortlinks')[0].disabled = true;
}

function showOrders() {
	document.getElementsByName('order')[0].disabled = false;
	return;
}

function hideOrders() {
	document.getElementsByName('order')[0].disabled = true;
}

function showResources() {
	document.getElementsByName('resource1')[0].disabled = false;
	document.getElementsByName('resource2')[0].disabled = false;
	document.getElementsByName('resource3')[0].disabled = false;
	document.getElementsByName('holdingtime')[0].disabled = false;
}

function hideResources() {
	document.getElementsByName('resource1')[0].disabled = true;
	document.getElementsByName('resource2')[0].disabled = true;
	document.getElementsByName('resource3')[0].disabled = true;
	document.getElementsByName('holdingtime')[0].disabled = true;
}

function setShips(s16,s17,s18,s19,s20,s21,s22,s23,s24,s25,s27,s28,s29,s30,s31){

	setNumber('202',s16);
	setNumber('203',s17);
	setNumber('204',s18);
	setNumber('205',s19);
	setNumber('206',s20);
	setNumber('207',s21);
	setNumber('208',s22);
	setNumber('209',s23);
	setNumber('210',s24);
	setNumber('211',s25);
	setNumber('213',s27);
	setNumber('214',s28);
	setNumber('215',s29);
	setNumber('216',s30);
	setNumber('221',s31);

}

function setNumber(name,number){
	if (typeof document.getElementsByName('ship'+name)[0] != 'undefined'){
		document.getElementsByName('ship'+name)[0].value=number;
	}
}

function tsdpkt(f) {
  r = "";
  vz = "";
  if (f < 0) { vz = "-"; }
  f = abs(f);
  r = f % 1000;
  while (f >= 1000){
    k1 = "";
    if ((f % 1000) < 100) { k1 = "0"; }
    if ((f % 1000) < 10) { k1 = "00"; }
    if ((f % 1000) == 0) { k1 = "00"; }
    f = abs((f-(f % 1000)) / 1000);
    r = f % 1000 + "." + k1 + r;
  }
  r = vz + r;
  return r;
}

function abs(a) {
	if(a < 0) return -a;
	return a;
}

//Подсчет колличества символов
var x = "";
var e = null;

function cntchar(m) {
    if(document.mess.text.value.length > m) {
        document.mess.text.value = x;
    } else {
        x = document.mess.text.value;
    }
    if(e == null)
    e = document.getElementById('cntChars');
    else
    e.childNodes[0].data = document.mess.text.value.length;
}

/* Simple AJAX Code-Kit (SACK) */
/* �2005 Gregory Wild-Smith */
/* www.twilightuniverse.com */
/* Software licenced under a modified X11 licence, see documentation or authors website for more details */

function sack(file){
	this.AjaxFailedAlert = "Your browser does not support the enhanced functionality of this website, and therefore you will have an experience that differs from the intended one.\n";
	this.requestFile = file;
	this.method = "POST";
	this.URLString = "";
	this.encodeURIString = true;
	this.execute = false;

	this.onLoading = function() { };
	this.onLoaded = function() { };
	this.onInteractive = function() { };
	this.onCompletion = function() { };

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err) {
				this.xmlhttp = null;
			}
		}
		if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
			this.xmlhttp = new XMLHttpRequest();
		if (!this.xmlhttp){
			this.failed = true;
		}
	};

	this.setVar = function(name, value){
		if (this.URLString.length < 3){
			this.URLString = name + "=" + value;
		} else {
			this.URLString += "&" + name + "=" + value;
		}
	}

	this.encVar = function(name, value){
		var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
	return varString;
	}

	this.encodeURLString = function(string){
		varArray = string.split('&');
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split('=');
			if (urlVars[0].indexOf('amp;') != -1){
				urlVars[0] = urlVars[0].substring(4);
			}
			varArray[i] = this.encVar(urlVars[0],urlVars[1]);
		}
	return varArray.join('&');
	}

	this.runResponse = function(){
		eval(this.response);
	}

	this.runAJAX = function(urlstring){
		this.responseStatus = new Array(2);
		if(this.failed && this.AjaxFailedAlert){
			alert(this.AjaxFailedAlert);
		} else {
			if (urlstring){
				if (this.URLString.length){
					this.URLString = this.URLString + "&" + urlstring;
				} else {
					this.URLString = urlstring;
				}
			}
			if (this.encodeURIString){
				var timeval = new Date().getTime();
				this.URLString = this.encodeURLString(this.URLString);
				this.setVar("rndval", timeval);
			}
			if (this.element) { this.elementObj = document.getElementById(this.element); }
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					var totalurlstring = this.requestFile + "?" + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
				}
				if (this.method == "POST"){
  					try {
						this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
					} catch (e) {}
				}

				this.xmlhttp.send(this.URLString);
				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState){
						case 1:
							self.onLoading();
						break;
						case 2:
							self.onLoaded();
						break;
						case 3:
							self.onInteractive();
						break;
						case 4:
							self.response = self.xmlhttp.responseText;
							self.responseXML = self.xmlhttp.responseXML;
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;
							self.onCompletion();
							if(self.execute){ self.runResponse(); }
							if (self.elementObj) {
								var elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							self.URLString = "";
						break;
					}
				};
			}
		}
	};
this.createAJAX();
}

function t() {
	v = new Date();
	n = new Date();
	o = new Date();
	for (cn = 1; cn <= anz; cn++) {
		bxx = document.getElementById('bxx' + cn);
		ss  = bxx.title;
		s   = ss - Math.round((n.getTime() - v.getTime()) / 1000.);
		m   = 0;
		h   = 0;
		if (s < 0) {
			bxx.innerHTML = "-";
		} else {
			if (s > 59) {
				m = Math.floor(s/60);
				s = s - m * 60;
			}
			if (m > 59) {
				h = Math.floor(m / 60);
				m = m - h * 60;
			}
			if (s < 10) {
				s = "0" + s;
			}
			if (m < 10) {
				m = "0" + m;
			}
		bxx.innerHTML = h + ":" + m + ":" + s + "";
		}
		bxx.title = bxx.title - 1;
	}
	window.setTimeout("t();", 999);
}

