﻿function informe(defensa, recursos, msg) {
    txt=MM_findObj('txtInforme').value.replace(/\./g, "");
    var opciones = defensa.split('@');
    var opcRec = recursos.split('@');
    
    if (txt.indexOf(opcRec[1]) != -1)
    {
        Rec1 = txt.indexOf(opcRec[1]);
        Rec2 = txt.indexOf(opcRec[2]);
        Rec3 = txt.indexOf(opcRec[3]);
        
        lenRec1 = opcRec[1].length;
        lenRec2 = opcRec[2].length;
        lenRec3 = opcRec[3].length;
        
        valMet = parseInt(txt.substr(Rec1+lenRec1+2,10));
        valCri = parseInt(txt.substr(Rec2+lenRec2+2,10));
        valDeu = parseInt(txt.substr(Rec3+lenRec3+2,10));
        
        MM_findObj('txtMetal').value = Rec1==-1 ? "":valMet;
        MM_findObj('txtCristal').value = Rec2==-1 ? "":valCri;
        MM_findObj('txtDeuterio').value = Rec3==-1 ? "":valDeu;
        
    }
    
    if(txt.indexOf(opciones[11]) != -1 || txt.indexOf(opciones[11].toLowerCase()) != -1) {
        Pos0 = txt.indexOf(opciones[0]);
        Pos1 = txt.indexOf(opciones[1]);
        Pos2 = txt.indexOf(opciones[2]);
        Pos3 = txt.indexOf(opciones[3]);
        Pos4 = txt.indexOf(opciones[4]);
        Pos5 = txt.indexOf(opciones[5]);
        Pos6 = txt.indexOf(opciones[6]);
        Pos7 = txt.indexOf(opciones[7]);
        Pos8 = txt.indexOf(opciones[8]);
        Pos9 = txt.indexOf(opciones[9]);
        if (Pos9 == -1 && opciones[9] == "Misil de intercepción") {
            opciones[9] = "Misiles antibalísticos";
            Pos9 = txt.indexOf(opciones[9]);
        }
        Pos10 = txt.indexOf(opciones[10]);
        if (Pos10==-1 && opciones[10] == "Armour Technology") {
            opciones[10] = "Armor Technology";
            Pos10 = txt.indexOf(opciones[10]);
        }

        a=opciones[0].length;
        b=opciones[1].length;
        c=opciones[2].length;
        d=opciones[3].length;
        e=opciones[4].length;
        f=opciones[5].length;
        g=opciones[6].length;
        h=opciones[7].length;
        i=opciones[8].length;
        j=opciones[9].length;
        k=opciones[10].length;
        
        Def0 = parseInt(txt.substr(Pos0 + a+1,10));
        Def1 = parseInt(txt.substr(Pos1 + b+1,10));
        Def2 = parseInt(txt.substr(Pos2 + c+1,10));
        Def3 = parseInt(txt.substr(Pos3 + d+1,10));
        Def4 = parseInt(txt.substr(Pos4 + e+1,10));
        Def5 = parseInt(txt.substr(Pos5 + f+1,10));
        Def8 = parseInt(txt.substr(Pos8 + i+1,10));
        Def9 = parseInt(txt.substr(Pos9 + j+1,10));
        Def10 = parseInt(txt.substr(Pos10 + k+1,10));
        
        MM_findObj('txtLanzamisiles').value=Pos0==-1 ? "":Def0;
        MM_findObj('txtLaserPeq').value=Pos1==-1 ? "":Def1;
        MM_findObj('txtLaserGrande').value=Pos2==-1 ? "":Def2;
        MM_findObj('txtGauss').value=Pos3==-1 ? "":Def3;
        MM_findObj('txtIonico').value=Pos4==-1 ? "":Def4;
        MM_findObj('txtPlasma').value=Pos5==-1 ? "":Def5;
        MM_findObj('txtCupulaPeq').value=Pos6==-1 ? "":1;
        MM_findObj('txtCupulaGrande').value=Pos7==-1 ? "":1;
        MM_findObj('txtInterplanetario').value=Pos8==-1 ? "":Def8;
        MM_findObj('txtIntercepcion').value=Pos9==-1 ? "":Def9;
        MM_findObj('txtBlindaje').value=Pos10==-1 ? "":Def10;
    }
    else
    {
        alert(msg);
    }
}

var t_metal;
var t_cristal;
var t_deuterio;
var t_destruidos;
var t_final;

function calcularAtaque(ataque, defensa, integridad, i)
{
    var temp;
    var metal = new Array(2,1.5,6,20,2,50,10,50,12.5);
    var cristal = new Array(0,0.5,2,15,6,50,10,50,2.5);
    var deuterio = new Array(0,0,0,2,0,30,0,0,10);
    
    if (defensa>0){
        temp = Math.floor((ataque / integridad));
        if (defensa<temp){
            temp -= (temp - parseInt(defensa));
        }
        MM_findObj('d'+i).innerHTML=temp;
        MM_findObj('f'+i).innerHTML=parseInt(defensa)-temp;
        MM_findObj('m'+i).innerHTML=metal[i]*temp+" k";
        MM_findObj('c'+i).innerHTML=cristal[i]*temp+" k";
        MM_findObj('de'+i).innerHTML=deuterio[i]*temp+" k";
        t_destruidos+=temp;
        t_final+=parseInt(defensa)-temp;
        t_metal+=metal[i]*temp;
        t_cristal+=cristal[i]*temp;
        t_deuterio+=deuterio[i]*temp;
        ataque -= temp * integridad;
    }
    else
    {
        MM_findObj('d'+i).innerHTML="-";
        MM_findObj('f'+i).innerHTML="-";
        MM_findObj('m'+i).innerHTML="-";
        MM_findObj('c'+i).innerHTML="-";
        MM_findObj('de'+i).innerHTML="-";

    }
    return ataque;
}

function simular(msg) {
        var Def = new Array(10);
        t_metal=0;
        t_cristal=0;
        t_deuterio=0;
        t_destruidos=0;
        t_final=0;

        Def[0]=MM_findObj('txtLanzamisiles').value=MM_findObj('txtLanzamisiles').value=="" ? "0":MM_findObj('txtLanzamisiles').value;
        Def[1]=MM_findObj('txtLaserPeq').value=MM_findObj('txtLaserPeq').value=="" ? "0":MM_findObj('txtLaserPeq').value;
        Def[2]=MM_findObj('txtLaserGrande').value=MM_findObj('txtLaserGrande').value=="" ? "0":MM_findObj('txtLaserGrande').value;
        Def[3]=MM_findObj('txtGauss').value=MM_findObj('txtGauss').value=="" ? "0":MM_findObj('txtGauss').value;
        Def[4]=MM_findObj('txtIonico').value=MM_findObj('txtIonico').value=="" ? "0":MM_findObj('txtIonico').value;
        Def[5]=MM_findObj('txtPlasma').value=MM_findObj('txtPlasma').value=="" ? "0":MM_findObj('txtPlasma').value;
        Def[6]=MM_findObj('txtCupulaPeq').value=MM_findObj('txtCupulaPeq').value=="" ? "0":MM_findObj('txtCupulaPeq').value;
        Def[7]=MM_findObj('txtCupulaGrande').value=MM_findObj('txtCupulaGrande').value=="" ? "0":MM_findObj('txtCupulaGrande').value;
        Def[8]=MM_findObj('txtInterplanetario').value=MM_findObj('txtInterplanetario').value=="" ? "0":MM_findObj('txtInterplanetario').value;
        Def[9]=MM_findObj('txtIntercepcion').value=MM_findObj('txtIntercepcion').value=="" ? "0":MM_findObj('txtIntercepcion').value;
        blindaje=MM_findObj('txtBlindaje').value=MM_findObj('txtBlindaje').value=="" ? "0":MM_findObj('txtBlindaje').value;
        misiles=MM_findObj('txtAtaqueInterplanetarios').value=MM_findObj('txtAtaqueInterplanetarios').value=="" ? "0":MM_findObj('txtAtaqueInterplanetarios').value;
        militar=MM_findObj('txtMilitar').value=MM_findObj('txtMilitar').value=="" ? "0":MM_findObj('txtMilitar').value;
        misInicial=misiles;
        
        if (Def[9]>0)
        {
            misiles=misiles-Def[9];
            def=(Def[9]-misInicial)<0 ? 0 : Def[9]-misInicial;
            MM_findObj('d9').innerHTML=Def[9]-def;
            MM_findObj('f9').innerHTML=def;
            MM_findObj('m9').innerHTML=8*(Def[9]-def)+" k";
            MM_findObj('c9').innerHTML=0*(Def[9]-def)+" k";
            MM_findObj('de9').innerHTML=2*(Def[9]-def)+" k";
            t_destruidos+=Def[9]-def;
            t_final+=def;
            t_metal+=8*(Def[9]-def);
            t_cristal+=0*(Def[9]-def);
            t_deuterio+=2*(Def[9]-def);
        }else
        {
            MM_findObj('d9').innerHTML="-";
            MM_findObj('f9').innerHTML="-";
            MM_findObj('m9').innerHTML="-";
            MM_findObj('c9').innerHTML="-";
            MM_findObj('de9').innerHTML="-";

        }
        
        primario=MM_findObj('ddlObjetivo').value;
        var todos=false;
        var intEst = new Array(9);

        if (misiles>0)
        {
             intEst[0] = intEst[1] = 200*(1+(blindaje/10));
             intEst[2] = intEst[4] = 800*(1+(blindaje/10));
             intEst[3] = 3500*(1+(blindaje/10));
             intEst[5] = intEst[7] = 10000*(1+(blindaje/10));
             intEst[6] = 2000*(1+(blindaje/10));
             intEst[8] = 1500*(1+(blindaje/10));

            var ataque = misiles*(12000*(1+(militar/10)));
            
            if (primario==-1){
                primario=0;
            }
            
            ataque = calcularAtaque(ataque, Def[primario], intEst[primario], primario.toString());
            
            for (i=0; i<9; i++)
            {
                if (i!=primario){
                    ataque = calcularAtaque(ataque, Def[i], intEst[i], i.toString());
                }
            }
            MM_findObj('d10').innerHTML=t_destruidos;
            MM_findObj('f10').innerHTML=t_final;
            MM_findObj('m10').innerHTML=t_metal+" k";
            MM_findObj('c10').innerHTML=t_cristal+" k";
            MM_findObj('de10').innerHTML=t_deuterio+" k";

            MM_findObj('m11').innerHTML=12.5*misInicial+" k";
            MM_findObj('c11').innerHTML=2.5*misInicial+" k";
            MM_findObj('de11').innerHTML=10*misInicial+" k";
        }
        else
        {
            if (misInicial==0)
            {
                MM_findObj('d10').innerHTML="-";
                MM_findObj('f10').innerHTML="-";
                MM_findObj('m10').innerHTML="-";
                MM_findObj('c10').innerHTML="-";
                MM_findObj('de10').innerHTML="-";
            
                MM_findObj('m11').innerHTML="-";
                MM_findObj('c11').innerHTML="-";
                MM_findObj('de11').innerHTML="-";
                
            }else
            {
                MM_findObj('d10').innerHTML=t_destruidos;
                MM_findObj('f10').innerHTML=t_final;
                MM_findObj('m10').innerHTML=t_metal+" k";
                MM_findObj('c10').innerHTML=t_cristal+" k";
                MM_findObj('de10').innerHTML=t_deuterio+" k";
                MM_findObj('m11').innerHTML=12.5*misInicial+" k";
                MM_findObj('c11').innerHTML=2.5*misInicial+" k";
                MM_findObj('de11').innerHTML=10*misInicial+" k";
            }
                alert(msg);
        }
}

function calcular(msg, defensa)
{
        var Def = new Array(10);
        Def[0]=MM_findObj('txtLanzamisiles').value=MM_findObj('txtLanzamisiles').value=="" ? "0":MM_findObj('txtLanzamisiles').value;
        Def[1]=MM_findObj('txtLaserPeq').value=MM_findObj('txtLaserPeq').value=="" ? "0":MM_findObj('txtLaserPeq').value;
        Def[2]=MM_findObj('txtLaserGrande').value=MM_findObj('txtLaserGrande').value=="" ? "0":MM_findObj('txtLaserGrande').value;
        Def[3]=MM_findObj('txtGauss').value=MM_findObj('txtGauss').value=="" ? "0":MM_findObj('txtGauss').value;
        Def[4]=MM_findObj('txtIonico').value=MM_findObj('txtIonico').value=="" ? "0":MM_findObj('txtIonico').value;
        Def[5]=MM_findObj('txtPlasma').value=MM_findObj('txtPlasma').value=="" ? "0":MM_findObj('txtPlasma').value;
        Def[6]=MM_findObj('txtCupulaPeq').value=MM_findObj('txtCupulaPeq').value=="" ? "0":MM_findObj('txtCupulaPeq').value;
        Def[7]=MM_findObj('txtCupulaGrande').value=MM_findObj('txtCupulaGrande').value=="" ? "0":MM_findObj('txtCupulaGrande').value;
        Def[8]=MM_findObj('txtInterplanetario').value=MM_findObj('txtInterplanetario').value=="" ? "0":MM_findObj('txtInterplanetario').value;
        Def[9]=MM_findObj('txtIntercepcion').value=MM_findObj('txtIntercepcion').value=="" ? "0":MM_findObj('txtIntercepcion').value;
        blindaje=MM_findObj('txtBlindaje').value=MM_findObj('txtBlindaje').value=="" ? "0":MM_findObj('txtBlindaje').value;
        militar=MM_findObj('txtMilitar').value=MM_findObj('txtMilitar').value=="" ? "0":MM_findObj('txtMilitar').value;

        var intEst = new Array(9);
        intEst[0] = intEst[1] = 200*(1+(blindaje/10));
        intEst[2] = intEst[4] = 800*(1+(blindaje/10));
        intEst[3] = 3500*(1+(blindaje/10));
        intEst[5] = intEst[7] = 10000*(1+(blindaje/10));
        intEst[6] = 2000*(1+(blindaje/10));
        intEst[8] = 1500*(1+(blindaje/10));
        
        var totalDestruir = 0;
        
        primario=MM_findObj('ddlObjetivo').value;
        var opciones = defensa.split('@');
        var objetivo;
        if (primario>=0)
        {
            totalDestruir+=Def[primario]*intEst[primario];
            objetivo = opciones[parseInt(primario)+1];
        }else
        {
            objetivo = opciones[0];
            for (i=0; i<9; i++)
            {
                totalDestruir+=Def[i]*intEst[i];
            }        
        }

        total = Math.floor(totalDestruir / (12000*(1+(parseInt(militar)/10))) + 0.9999999999999 ) + parseInt(Def[9]);

        

        msg=msg.replace('#TOTAL#', total);
        msg=msg.replace('#OBJETIVO#', objetivo);
        if (total>0){
            MM_findObj('txtAtaqueInterplanetarios').value = total;       
            simular("");
        }
        
        
        alert(msg);
}

function borrar(msg)
{
    if(!confirm(msg))
    {
        if(document.all)
          event.returnValue = false;
        else
          return false;
    }
    else
    {
        for(i=0; i<=10; i++)
        {
            MM_findObj('d'+i).innerHTML="-";
            MM_findObj('f'+i).innerHTML="-";
            MM_findObj('m'+i).innerHTML="-";
            MM_findObj('c'+i).innerHTML="-";
            MM_findObj('de'+i).innerHTML="-";
        }
        MM_findObj('m11').innerHTML="-";
        MM_findObj('c11').innerHTML="-";
        MM_findObj('de11').innerHTML="-";   
        t_metal=0;
        t_cristal=0;
        t_deuterio=0;
        t_destruidos=0;
        t_final=0;  
    }
}

function borrarInforme()
{
    MM_findObj('txtInforme').value="";

}

function mostrarTotal()
{
    if (Page_ClientValidate("1"))
    {
       elemento = MM_findObj('ddlElemento');
       metal=MM_findObj('total1').innerHTML;
       cristal=MM_findObj('total2').innerHTML;
       deuterio=MM_findObj('total3').innerHTML;
       
       metal = metal.replace(/\./g, "");
       cristal = cristal.replace(/\./g, "");
       deuterio = deuterio.replace(/\./g, "");
       calcularTotal(elemento.value, MM_findObj('txtPropMetal').value, MM_findObj('txtPropCristal').value, MM_findObj('txtPropDeuterio').value, metal, cristal, deuterio, 'trTotal');
    }
}

function mostrarTotal2()
{
    if (Page_ClientValidate("3"))
    {
       elemento = MM_findObj('ddlElemento2');
       metal=MM_findObj('total12').innerHTML;
       cristal=MM_findObj('total22').innerHTML;
       deuterio=MM_findObj('total32').innerHTML;
       metal = metal.replace(/\./g, "");
       cristal = cristal.replace(/\./g, "");
       deuterio = deuterio.replace(/\./g, "");
       calcularTotal(elemento.value, MM_findObj('txtPropMetal2').value, MM_findObj('txtPropCristal2').value, MM_findObj('txtPropDeuterio2').value, metal, cristal, deuterio, 'trTotal2');
    }
}

function validarProporciones(source, arguments){
    arguments.IsValid=true;
    if((MM_findObj('txtPropMetal').value=="") || (MM_findObj('txtPropCristal').value=="") || (MM_findObj('txtPropDeuterio').value=="")){
        arguments.IsValid=false;
    }
}

function calcularTotal(item, p_metal, p_cristal, p_deuterio, c_metal, c_cristal, c_deuterio, campoTotal)
{    
    var met,cri,deu;
       switch (item)
       {    
            case "0":
                met=c_metal;
                cri=Math.floor((parseInt(c_cristal)*p_metal)/p_cristal);
                deu=Math.floor((parseInt(c_deuterio)*p_metal)/p_deuterio);
            break;
            case "1":
                met=Math.floor((parseInt(c_metal)*p_cristal)/p_metal);
                cri=c_cristal;
                deu=Math.floor((parseInt(c_deuterio)*p_cristal)/p_deuterio);
            break;
            case "2":
                met=Math.floor((parseInt(c_metal)*p_deuterio)/p_metal);
                cri=Math.floor((parseInt(c_cristal)*p_deuterio)/p_cristal);
                deu=c_deuterio;
            break;
       }
       MM_findObj(campoTotal).innerHTML = colocarPuntos(parseInt(met)+parseInt(cri)+parseInt(deu));
}

function validarRecursos(source, arguments){
    arguments.IsValid=true;
    if((MM_findObj('txtMetal').value=="") || (MM_findObj('txtCristal').value=="") || (MM_findObj('txtDeuterio').value=="")){
        arguments.IsValid=false;
    }
}

function mostrarBalance(x)
{
    if (Page_ClientValidate("2"))
    {
        MM_findObj(x).style.display='';
        MM_findObj('trTotal').innerHTML="-";
        
        metal = MM_findObj('txtMetal').value;
        cristal = MM_findObj('txtCristal').value;
        deuterio = MM_findObj('txtDeuterio').value;
        
        mmetal = 12500*MM_findObj('txtAtaqueInterplanetarios').value;
        mcristal = 2500*MM_findObj('txtAtaqueInterplanetarios').value;
        mdeuterio = 10000*MM_findObj('txtAtaqueInterplanetarios').value;
        
        MM_findObj('enemigo1').innerHTML=colocarPuntos(metal);
        MM_findObj('enemigo2').innerHTML=colocarPuntos(cristal);
        MM_findObj('enemigo3').innerHTML=colocarPuntos(deuterio);
        
        MM_findObj('usted1').innerHTML=colocarPuntos(mmetal);
        MM_findObj('usted2').innerHTML=colocarPuntos(mcristal);
        MM_findObj('usted3').innerHTML=colocarPuntos(mdeuterio);
        
        MM_findObj('total1').innerHTML=colocarPuntos(metal-mmetal);
        MM_findObj('total2').innerHTML=colocarPuntos(cristal-mcristal);
        MM_findObj('total3').innerHTML=colocarPuntos(deuterio-mdeuterio);
    }
}

function mostrarComparacion(x)
{
    if (Page_ClientValidate("5"))
    {
        MM_findObj(x).style.display='';
        MM_findObj('trTotal2').innerHTML="-";
        
        metal = t_metal*1000;
        cristal = t_cristal*1000;
        deuterio = t_deuterio*1000;
        
        mmetal = 12500*MM_findObj('txtAtaqueInterplanetarios').value;
        mcristal = 2500*MM_findObj('txtAtaqueInterplanetarios').value;
        mdeuterio = 10000*MM_findObj('txtAtaqueInterplanetarios').value;
        
        MM_findObj('enemigo12').innerHTML=colocarPuntos(metal);
        MM_findObj('enemigo22').innerHTML=colocarPuntos(cristal);
        MM_findObj('enemigo32').innerHTML=colocarPuntos(deuterio);
        
        MM_findObj('usted12').innerHTML=colocarPuntos(mmetal);
        MM_findObj('usted22').innerHTML=colocarPuntos(mcristal);
        MM_findObj('usted32').innerHTML=colocarPuntos(mdeuterio);
        
        MM_findObj('total12').innerHTML=colocarPuntos(metal-mmetal);
        MM_findObj('total22').innerHTML=colocarPuntos(cristal-mcristal);
        MM_findObj('total32').innerHTML=colocarPuntos(deuterio-mdeuterio);
    }
}

function validarSimulacionPrevia(source, arguments){
    arguments.IsValid=false;
    if((t_metal>0) || (t_cristal>0) || (t_deuterio>0)){
        arguments.IsValid=true;
    }
}

function calcularAlcance(sistema)
{
    ori =parseInt(MM_findObj('txtOrigen').value);
    mot_imp =parseInt(MM_findObj('txtMotorImpulso').value);
    var alcance;
    var ini, fin;
    if (mot_imp>0)
    {
        if(ori>499) {
            MM_findObj('txtOrigen').value="499";
            ori=499;
        }
        alcance = mot_imp*5-1;
        
        MM_findObj('td_alcance').innerHTML = alcance.toString() + " " + sistema;
        if(ori>0){
            ini = ori - alcance; if (ini < 1) ini = 1;
            fin = ori + alcance; if (fin > 499) fin = 499;
            MM_findObj('td_rango').innerHTML = ini.toString() + "-" + fin.toString();
        }else{
            MM_findObj('td_rango').innerHTML ="";
        }
    }else
    {
        MM_findObj('td_alcance').innerHTML="";
        MM_findObj('td_rango').innerHTML ="";
    }
}

function calcularNivel()
{
    ori =parseInt(MM_findObj('txtSOrigen').value);
    des =parseInt(MM_findObj('txtSDestino').value);
    if (ori>0 && des>0)
    {
        var dif = ori>des?ori-des:des-ori;
        MM_findObj('td_nivelNecesario').innerHTML=Math.ceil((dif+1)/5);
        MM_findObj('td_tiempo').innerHTML = formatoTiempo(30+60*dif);
    }
    else
    {
        MM_findObj('td_nivelNecesario').innerHTML="";
        MM_findObj('td_tiempo').innerHTML ="";
    }
   
}

function formatoTiempo(i)
{
    var sec = mod(i, 60);
    i = div(i, 60);
    var min = mod(i, 60);
    i = div(i, 60);
    var h = mod(i, 24);
    var d = div(i, 24);
    if(sec < 10) {
        sec = '0' + sec;
    }
    if(min < 10) {
	    min = '0' + min;
    }
    if(h < 10) {
	    h = '0' + h;
    }
    if(d == 0) {
	    return h + ':' + min + ':' + sec;
    }else{
	    return d+"d "+h+":"+min+":"+sec;
    }
}

function mod(a, b)
{
  return a - Math.floor(a / b) * b;
}

function div(a, b)
{
  return Math.floor(a / b);
}