/*
 * This notice must be untouched at all times.
 * 
 * Commercio.js ver. 7.1
 * 
 * The latest version is available at
 * http://digilander.libero.it/OoohpsCode/
 * 
 * Copyright (c) 2007 Massimo De Grandis. All rights reserved.
 * Created 5/1/2007 by Massimo De Grandis (mail: ooohpscodeATyahooDOTit)
 * Last modified: 9/7/2009
 * 
 * LICENSE: GPL
 * 
 * This program is free software; you can redistribute it and/or modify it under the
 * terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * 
 * For more details on the GNU General General Public License, see http://www.gnu.org/licenses/gpl.html
 */

var gId=new Array('metalloDaInviare','cristalloDaInviare','deuterioDaInviare','metalloDaRicevere','cristalloDaRicevere',
'deuterioDaRicevere','metalloBase','cristalloBase','deuterioBase','sceltaMetallo','sceltaCristallo','sceltaDeuterio',
'metalloInviato','cristalloInviato','deuterioInviato','cargoPesantiInvia','cargoLeggeriInvia','cargoPesantiRicevi',
'cargoLeggeriRicevi','tassoM1','tassoC1','tassoD1','tassoM2','tassoC2','tassoD2');
var gElementi=new Array();
var gCampi=new Array();
var gFrasi=new Array('Non č possibile spuntare pių di due\ntipi di risorsa comtemporanetamente.',
'Non č possibile fissare pių di un\ntipo di risorsa comtemporaneamente.','Fisso troppo alto','errato');
var gTassiUfficiali=new Array(3.0,2.0,1.0);
var gTassi=new Array(0,0,0);
var gErrore=false;

function calcola()
{
 var lIndice1;
 var lQuantiFlag=new Array(0,0);
 var lFissoTroppoAlto=false;
 var lFlagRisorse=new Array(0,0,0,0,0,0);
 var lTotali=new Array(0,0);
 var lStive=new Array(25000,5000);
 var lBiscotto;
for(lIndice1=0;lIndice1<3;lIndice1++)
   lFlagRisorse[lIndice1]=gElementi[lIndice1+9].checked-0;
lQuantiFlag[0]=lFlagRisorse[0]+lFlagRisorse[1]+lFlagRisorse[2];
if(document.location=='http://digilander.libero.it/OoohpsCode/utilita/Commercio.html')
{
if(lQuantiFlag[0]>2)
 {
 alert(gFrasi[0]);
 for(lIndice1=9;lIndice1<12;lIndice1++)
    gElementi[lIndice1].checked=false;
 calcola();
 return;
 }
for(lIndice1=0;lIndice1<3;lIndice1++)
 {
 if(gElementi[lIndice1+9].checked)
   gElementi[lIndice1].value='';
 else
   gElementi[lIndice1+3].value='';
 }
verificaCarat();
for(lIndice1=0;lIndice1<3;lIndice1++)
 {
 if(gErrore)
   gElementi[lIndice1+12].innerHTML='0';
 else
   gElementi[lIndice1+12].innerHTML=mettiPunti(gCampi[lIndice1].toString());
 lFlagRisorse[lIndice1+3]=(gCampi[lIndice1+3]!=0)-0;
 }
lQuantiFlag[1]=lFlagRisorse[3]+lFlagRisorse[4]+lFlagRisorse[5];
if(lQuantiFlag[1]>1)
 {
 alert(gFrasi[1]);
 for(lIndice1=3;lIndice1<6;lIndice1++)
  {
  gElementi[lIndice1].value='';
  gCampi[lIndice1]=0;
  }
 }
if((lFlagRisorse[0])&&(!gErrore))
 {
 gElementi[6].innerHTML=Math.round(((((gCampi[1]*(gTassi[0]/gTassi[1]))-(gCampi[4]*(gTassi[0]/gTassi[1]))+
 ((gCampi[2]*gTassi[0])-(gCampi[5]*gTassi[0])))/(1+(lFlagRisorse[1]*!lFlagRisorse[4]*(gTassi[0]/gTassi[1]))+
 (lFlagRisorse[2]*!lFlagRisorse[5]*gTassi[0])))*!(lFlagRisorse[3]&&((lFlagRisorse[1]||lFlagRisorse[4])||
 (lFlagRisorse[2]||lFlagRisorse[5]))))+(gCampi[3]*(lFlagRisorse[3]&&(lQuantiFlag[0]>1))));
 if(gElementi[6].innerHTML<0)
   lFissoTroppoAlto=true;
 lTotali[1]=lTotali[1]+(gElementi[6].innerHTML-0);
 gElementi[6].innerHTML=mettiPunti(gElementi[6].innerHTML);
 }
else
  gElementi[6].innerHTML='0';
if((lFlagRisorse[1])&&(!gErrore))
 {
 gElementi[7].innerHTML=Math.round(((((gCampi[0]*(gTassi[1]/gTassi[0]))-(gCampi[3]/(gTassi[0]/gTassi[1]))+
 ((gCampi[2]*gTassi[1])-(gCampi[5]*gTassi[1])))/(1+(lFlagRisorse[0]*!lFlagRisorse[3]*(gTassi[1]/gTassi[0]))+
 (lFlagRisorse[2]*!lFlagRisorse[5]*gTassi[1])))*!(lFlagRisorse[4]&&((lFlagRisorse[0]||lFlagRisorse[3])||
 (lFlagRisorse[2]||lFlagRisorse[5]))))+(gCampi[4]*(lFlagRisorse[4]&&(lQuantiFlag[0]>1))));
 if(gElementi[7].innerHTML<0)
   lFissoTroppoAlto=true;
 lTotali[1]=lTotali[1]+(gElementi[7].innerHTML-0);
 gElementi[7].innerHTML=mettiPunti(gElementi[7].innerHTML);
 }
else
  gElementi[7].innerHTML='0';
if((lFlagRisorse[2])&&(!gErrore))
 {
 gElementi[8].innerHTML=Math.round(((((gCampi[0]/gTassi[0])-(gCampi[3]/gTassi[0])+((gCampi[1]/gTassi[1])-
 (gCampi[4]/gTassi[1])))/(1+(lFlagRisorse[0]*!lFlagRisorse[3]/gTassi[0])+(lFlagRisorse[1]*!lFlagRisorse[4]/
 gTassi[1])))*!(lFlagRisorse[5]&&((lFlagRisorse[0]||lFlagRisorse[3])||(lFlagRisorse[1]||lFlagRisorse[4]))))+
 (gCampi[5]*(lFlagRisorse[5]&&(lQuantiFlag[0]>1))));
 if(gElementi[8].innerHTML<0)
   lFissoTroppoAlto=true;
 lTotali[1]=lTotali[1]+(gElementi[8].innerHTML-0);
 gElementi[8].innerHTML=mettiPunti(gElementi[8].innerHTML);
 }
else
  gElementi[8].innerHTML='0';
if(lFissoTroppoAlto)
 {
 gElementi[6].innerHTML=gFrasi[2];
 gElementi[7].innerHTML=gFrasi[2];
 gElementi[8].innerHTML=gFrasi[2];
 }
lTotali[0]=gCampi[0]+gCampi[1]+gCampi[2];
if(gErrore)
 {
 lTotali[0]=-1;
 lTotali[1]=-1;
 }
if(lTotali[0]>0)
 {
 for(lIndice1=0;lIndice1<2;lIndice1++)
  {
  gElementi[lIndice1+15].innerHTML=(lTotali[0]-(lTotali[0]%lStive[lIndice1]))/lStive[lIndice1];
  if(lTotali[0]%lStive[lIndice1]!=0)
    gElementi[lIndice1+15].innerHTML++;
  gElementi[lIndice1+15].innerHTML=mettiPunti(gElementi[lIndice1+15].innerHTML);
  }
 }
else
 {
 gElementi[15].innerHTML='-';
 gElementi[16].innerHTML='-';
 }
if(lTotali[1]>0)
 {
 for(lIndice1=0;lIndice1<2;lIndice1++)
  {
  gElementi[lIndice1+17].innerHTML=(lTotali[1]-(lTotali[1]%lStive[lIndice1]))/lStive[lIndice1];
  if(lTotali[1]%lStive[lIndice1]!=0)
    gElementi[lIndice1+17].innerHTML++;
  gElementi[lIndice1+17].innerHTML=mettiPunti(gElementi[lIndice1+17].innerHTML);
  }
 }
else
 {
 gElementi[17].innerHTML='-';
 gElementi[18].innerHTML='-';
 }
lBiscotto=gElementi[0].value;
for(lIndice1=1;lIndice1<6;lIndice1++)
   lBiscotto=lBiscotto+';'+gElementi[lIndice1].value;
for(lIndice1=9;lIndice1<12;lIndice1++)
   lBiscotto=lBiscotto+';'+gElementi[lIndice1].checked;
for(lIndice1=22;lIndice1<25;lIndice1++)
   lBiscotto=lBiscotto+';'+gElementi[lIndice1].value;
scriviBiscotto('commercio',lBiscotto,data2);
}
}

function cancella()
{
for(lIndice1=0;lIndice1<3;lIndice1++)
 {
 gElementi[lIndice1].value='0';
 gElementi[lIndice1+9].checked=false;
 gElementi[lIndice1+3].value='0';
 }
calcola();
}

function tassiUfficiali()
{
for(lIndice1=0;lIndice1<3;lIndice1++)
   gElementi[lIndice1+22].value=gTassiUfficiali[lIndice1];
cambiaTassi();
}

function cambiaTassi()
{
 var lIndice1;
 var lStringa1;
 var lErrore;
 var lNumero;
 var lNumeri;
gErrore=false;
for(lIndice1=22;lIndice1<25;lIndice1++)
 {
 lErrore=true;
 lStringa1=gElementi[lIndice1].value;
 lNumero=0;
 lNumeri=cercaInt4(lStringa1);
 if(lNumeri!=null)
  {
  if((lNumeri[0]-0)==2)
   {
   if((((lNumeri[5]-0)-(lNumeri[3]-0))==1)&&(lStringa1.charAt(lNumeri[3]-0)==','))
    {
    lNumero=(lNumeri[1]+'.'+lNumeri[4])-0;
    lErrore=false;
    }
   }
  else
    if((lNumeri[0]-0)==1)
     {
     lNumero=lNumeri[1]-0;
     lErrore=false;
     }
  }
 if((!lErrore)&&(lNumero==0))
  {
  gElementi[lIndice1].value='zero';
  lErrore=true;
  }
 if((gElementi[lIndice1].value.length>4)&&(gElementi[lIndice1].value.substring(0,4)=='zero'))
  {
  gElementi[lIndice1].value='0'+gElementi[lIndice1].value.substring(4,gElementi[lIndice1].value.length);
  }
 if(lErrore)
  {
  gElementi[lIndice1-3].innerHTML=gFrasi[3];
  cambiaB(gId[lIndice1],'campierrore')
  gErrore=true;
  }
 else
  {
  gTassi[lIndice1-22]=lNumero;
  cambiaB(gId[lIndice1],'');
  }
 }
if(!gErrore)
 {
 for(lIndice1=0;lIndice1<3;lIndice1++)
  {
  gTassi[lIndice1]=gTassi[lIndice1]/gTassi[2];
  lStringa1=''+gTassi[lIndice1];
  lStringa1=lStringa1.replace(/\./g,',');
  gElementi[lIndice1+19].innerHTML=lStringa1;
  }
 }
calcola();
}

function ripristinaValori()
{
 var lIndice1;
 var lElemento;
 var lBiscotto;
lBiscotto=leggiBiscotto('commercio');
for(lIndice1=0;lIndice1<gId.length;lIndice1++)
 {
 lElemento=getElId(gId[lIndice1]);
 gElementi.push(lElemento);
 }
if(lBiscotto==null)
  tassiUfficiali();
else
 {
 lBiscotto=lBiscotto.split(';');
 for(lIndice1=0;lIndice1<6;lIndice1++)
    gElementi[lIndice1].value=lBiscotto[lIndice1];
 for(lIndice1=6;lIndice1<9;lIndice1++)
    gElementi[lIndice1+3].checked=(lBiscotto[lIndice1]=='true');
 for(lIndice1=22;lIndice1<25;lIndice1++)
    gElementi[lIndice1].value=lBiscotto[lIndice1-13];
 cambiaTassi();
 }
}

function verificaCarat()
{
 var lIndice1,lIndice2;
 var lStringa1;
 var lLung;
 var lErrore;
 var lNumero;
 var lNumeri;
 var lIndiciPercento=new Array();
for(lIndice1=0;lIndice1<6;lIndice1++)
 {
 lErrore=true;
 lStringa1=gElementi[lIndice1].value;
 lLung=lStringa1.length;
 lNumero=0;
 lNumeri=cercaInt4(lStringa1);
 if(lNumeri!=null)
  {
  if((lNumeri[0]-0)==2)
   {
   if((((lNumeri[5]-0)-(lNumeri[3]-0))==1)&&(lStringa1.charAt(lNumeri[3]-0)==','))
    {
    lNumero=(lNumeri[1]+'.'+lNumeri[4])-0;
    lIndice2=(lNumeri[6])-0;
    lErrore=false;
    }
   }
  else
    if((lNumeri[0]-0)==1)
     {
     lNumero=lNumeri[1]-0;
     lIndice2=lNumeri[3]-0;
     lErrore=false;
     }
    if(!lErrore)
     {
     if(lIndice2<lLung)
      {
      if((lStringa1.charAt(lIndice2)=='k')||(lStringa1.charAt(lIndice2)=='K'))
       {
       lNumero=lNumero*1000;
       lIndice2++;
       if(lIndice2<lLung)
        {
        if((lStringa1.charAt(lIndice2)=='k')||(lStringa1.charAt(lIndice2)=='K'))
          lNumero=lNumero*1000;
        }
       }
      else
        if((lStringa1.charAt(lIndice2)=='m')||(lStringa1.charAt(lIndice2)=='M'))
          lNumero=lNumero*1000000;
        else
          if(lStringa1.charAt(lIndice2)=='%')
           {
           if((lIndice1>2)&&(lIndiciPercento.length==1))
             lNumero=(gCampi[lIndiciPercento]/100.0*lNumero)/gTassi[lIndiciPercento]*gTassi[lIndice1-3];
           }
      }
     }
  }
 gCampi[lIndice1]=Math.round(lNumero);
 if((lIndice1<3)&&(gCampi[lIndice1]>0))
   lIndiciPercento.push(lIndice1);
 }
}
