Вход Регистрация
Файл: scripts/flotten.js
Строк: 864
<?php
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 
setACS(id) {
    
document.getElementsByName('fleet_group')[0].value = id;
    return;
}

function 
setACS_target(tacs) {
    
document.getElementsByName('acs_target_mr')[0].value = tacs;
    return;
} 

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 
maxspeed() {
    var 
msp = 1000000000;
    for (
i = 200; i < 220; 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 
dist;

    
thisGalaxy = document.getElementsByName("thisgalaxy")[0].value;
    
thisSystem = document.getElementsByName("thissystem")[0].value;
    
thisPlanet = document.getElementsByName("thisplanet")[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;
    } else if ((
targetSystem - thisSystem) != 0) {
        
dist = 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 < 220; 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 < 220; 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 
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 + " h";
    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 = parseInt(document.getElementsByName("thisresource" + id)[0].value);
    var 
thisresourcechosen = parseInt(document.getElementsByName("resource" + id)[0].value);

    if (
isNaN(thisresourcechosen)){
        
thisresourcechosen=0;
    }
    if (
isNaN(thisresource)){
        
thisresource=0;
    }

var 
storCap = storage();
    if (
id==3){        
        if ((
thisresource - consumption()) < 0)
            
thisresource = 0;
        else
            
thisresource -= consumption();
    }

    var 
metalToTransport = document.getElementsByName("resource1")[0].value;
    var 
crystalToTransport = document.getElementsByName("resource2")[0].value;
    var 
deuteriumToTransport = document.getElementsByName("resource3")[0].value;

    if (
isNaN(metalToTransport)){
        
metalToTransport=0;
    }
    if (
isNaN(crystalToTransport)){
        
crystalToTransport=0;
    }
    if (
isNaN(deuteriumToTransport)){
        
deuteriumToTransport=0;
    }

    var 
freeCapacity = Math.max(storCap - metalToTransport - crystalToTransport - deuteriumToTransport, 0);
    var 
cargo = Math.min (freeCapacity + thisresourcechosen, thisresource);

    if (
document.getElementsByName("resource" + id)[0]) {
        
document.getElementsByName("resource" + id)[0].value = cargo;
    }
    
calculateTransportCapacity();
}

function 
maxResources() {
    var 
id;
    var 
storCap = storage();
    var 
metalToTransport = Math.round(document.getElementsByName("thisresource1")[0].value);
    var 
crystalToTransport = Math.round(document.getElementsByName("thisresource2")[0].value);
    var 
deuteriumToTransport = Math.round(document.getElementsByName("thisresource3")[0].value - consumption());


    var 
freeCapacity = storCap - metalToTransport - crystalToTransport - deuteriumToTransport;
    if (
freeCapacity < 0) {
        
metalToTransport = Math.min(metalToTransport, storCap);
        
crystalToTransport = Math.min(crystalToTransport, storCap - metalToTransport);
        
deuteriumToTransport = Math.min(deuteriumToTransport, storCap - metalToTransport - crystalToTransport);
    }
    
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);
    
calculateTransportCapacity();
}

function 
maxShip(id) {
    if (
document.getElementsByName(id)[0]) {
        
document.getElementsByName(id)[0].value = document.getElementsByName("max" + id)[0].value;
    }
}

function 
maxShips() {
    var 
id;
    for (
i = 200; i < 220; 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 < 220; i++) {
        
id = "ship"+i;
        
noShip(id);
    }
}

function 
calculateTransportCapacity() {
    var 
metal = Math.round(Math.abs(document.getElementsByName("resource1")[0].value));
    var 
crystal = Math.round(Math.abs(document.getElementsByName("resource2")[0].value));
    var 
deuterium = Math.round(Math.abs(document.getElementsByName("resource3")[0].value));

    
transportCapacity =  storage() - metal - crystal - deuterium;

    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,s32,s33){

    
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('217',s31);
    
setNumber('218',s32);
    
setNumber('219',s33);

}

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;
}
?>
Онлайн: 0
Реклама