function showHelp() {
    openTemplate('http://help.fineco.it/interna.asp?sez=128&info=1123');
    return false;
}

function showNav(index) {
    var click = ' <a style="color:#999999" href="https://tradexweb.fineco.it/TMW/pct/CSpctHome.do">SuperSave</a> > <b>';
    if (index == 0)
        document.getElementById("nav").innerHTML = "<b>SuperSave</b>";
    else if (index == 1)
        document.getElementById("nav").innerHTML = click + "SuperSave trasferimento titoli</b>";
    else if (index == 2) {
        if (currency == 'EUR')
            document.getElementById("nav").innerHTML = click + "SuperSave Euro</b>";
        else if (currency == 'USD')
            document.getElementById("nav").innerHTML = click + "SuperSave Dollari</b>";
    } 
}

function getThreshold() {
   return 50000;
}

function init() {
   var maxScad = getMaxScad() + "M";
   initScad();
   updateSaldo();
  
   updateTassi(maxScad);
   
   document.getElementById("orderSize").value = "1.000";
   document.getElementById("tifDate").value = maxScad;
   if (hasPct == 'true')
      document.getElementById("ptf1").style.display = "block";
   showNav(0);
}

function updateScaglione() {

   var amount = document.getElementById("orderSize").value.split(".").join("");
   amount = round(amount, 0);

   if (isNaN(amount)) {
      document.getElementById("orderSize").value = "";
      document.getElementById("guadagno").innerHTML = "n.d.";
      scaglione = 1;
   } else {
   
      if (amount > 1000000)
         amount = 1000000;
   
      if (amount >= getThreshold())
         scaglione = 2;
      else
         scaglione = 1;
         
      document.getElementById("orderSize").value = formatThousandsNumber(amount);
      updateTassi(document.getElementById("tifDate").value);
   }
}

function getCurrencySymbol() {
   if (currency == "EUR")
      str = " &euro;";
   else if (currency == "USD")
      str = " $";
   else
      str = " ?";
   return str;
}

function updateScaglioni(tifDate) {
   var t1 = "";
   var t2 = "";
   var t3 = "";
   if (dip) {
      t1 = formatCurrency(round(pcts["3MD"]["tasso_lordo"], 2));
      t2 = formatCurrency(round(pcts["6MD"]["tasso_lordo"], 2));
      t3 = formatCurrency(round(pcts["12MD"]["tasso_lordo"], 2));
   } else {
      t1 = formatCurrency(round(pcts["3M1"]["tasso_lordo"], 2));
      t2 = formatCurrency(round(pcts["6M1"]["tasso_lordo"], 2));
      t3 = formatCurrency(round(pcts["12M1"]["tasso_lordo"], 2));
   }
   
   var t1s = t1.split(",");
   var t2s = t2.split(",");
   var t3s = t3.split(",");
   document.getElementById("tax1").innerHTML = '<font style="font-size:40px">' + t1s[0] + ',</font>' + '<font style="font-size:30px">' + t1s[1] + '%</font>';
   document.getElementById("tax2").innerHTML = '<font style="font-size:40px">' + t2s[0] + ',</font>' + '<font style="font-size:30px">' + t2s[1] + '%</font>';
   document.getElementById("tax3").innerHTML = '<font style="font-size:40px">' + t3s[0] + ',</font>' + '<font style="font-size:30px">' + t3s[1] + '%</font>';

   
}

function updateTassi(tifDate) {
   updateScaglioni(tifDate);

   var id = dip ? tifDate + "D" : tifDate + scaglione;

   // update tasso lordo
   var s = document.getElementById("tasso_lordo");
   var str = formatCurrency(round(pcts[id]["tasso_lordo"], 2));
   s.innerHTML = str + "%";
   
   // update tasso netto
   s = document.getElementById("tasso_netto");
   str = formatCurrency(round(pcts[id]["tasso_netto"], 2));
   s.innerHTML = str + "%";
   
   // update delta rendimento netto
   s = document.getElementById("delta_rendimento");
   if (s) {
      var delta  = pcts[id]["tasso_netto"] * 100 / tasso_netto_cc - 100;
      str = formatCurrency(round(delta, 2));
      if (delta > 0)
         str = "+" + str;
      s.innerHTML = str + "%";
   }

   updateGuadagnoEuro(tifDate);
}

function updateGuadagnoEuro(tifDate) {
   var id = dip ? tifDate + "D" : tifDate + scaglione;
   var orderSize = document.getElementById("orderSize").value.split(".").join("");
   
   if (tifDate=='12M') {
       var tassoLordo = pcts[id]["tasso_lordo"];
       var controvaloreLordoTermine = Math.round((100+tassoLordo) * orderSize) / 100;
       
       var ritenuteInteressi = 0;
       if (accountMisc2 == 'S')
           ritenuteInteressi = Math.round(Math.round((controvaloreLordoTermine - orderSize) * 100.00) / 100.00 * 12.50) / 100.00;
       var controvaloreTermine = controvaloreLordoTermine - ritenuteInteressi;       
   } else {
	  
       var controvaloreLordoTermine = Math.round(pcts[id]["valore_lordo_termine"] * orderSize) / 100;
       var controvaloreRitenuteTermine =  Math.round(pcts[id]["ritenute_termine"] * orderSize) / 100;
       var controvaloreNettoTermine = controvaloreLordoTermine - controvaloreRitenuteTermine;
       var ritenuteInteressi = 0;
       if (accountMisc2 == 'S')
           ritenuteInteressi = Math.round(Math.round((controvaloreNettoTermine - orderSize) * 100.00) / 100.00 * 12.50) / 100.00;
        
       var controvaloreTermine = controvaloreNettoTermine - ritenuteInteressi;
       var prezzoTelquelTermine = controvaloreTermine / (orderSize * 100);
   }
   var bolliTermine = 0;
   var importoEff = orderSize * pcts[id]["telquel_pronti"] / 100.00;
   var bolli_pronti = 0;
   var guadagno = round(controvaloreTermine, 2) - round(bolliTermine, 2) - round(importoEff, 2) - round(bolli_pronti, 2);   
   
   document.getElementById("guadagno").innerHTML =  formatCurrency(guadagno) + " " + getCurrencySymbol();
}

function updateSaldo() {
   if (document.getElementById("saldo_conto"))
      document.getElementById("saldo_conto").innerHTML = formatCurrency(saldo) + " " + getCurrencySymbol()
}

function round(number, precision) {
   number = (""+number).replace(",", ".");
   var value = Math.round(parseFloat(number) * Math.pow(10, precision)) / Math.pow(10, precision);
   return "" + value;
}

function formatThousandsNumber(number) {
   var string = "" + number;
   parts = string.replace('.' ,',').split(',');
   var integers = parts[0];

   iStart = integers.length;
   iStart -= 3;
   while (iStart >= 1) {
      integers = integers.substring(0,iStart) + "." + integers.substring(iStart,integers.length)
      iStart -= 3;
   }

	return parts[1] ? integers + "," + parts[1] : integers;
}
   
function formatCurrency(num) {
   if (isNaN(num))
      return "n.d.";
   sign = (num == (num = Math.abs(num)));
   num = Math.floor(num*100+0.50000000001);
   cents = num%100;
   num = Math.floor(num/100).toString();
   if(cents<10)
      cents = "0" + cents;
   for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
      num = num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));
   return (((sign)?'':'-') + num + ',' + cents);
}

function doOrder(misc3default) {
   var form = document.getElementById("order");
   
   var orderSize = parseInt(document.getElementById("orderSize").value.split(".").join("").replace(",", "."));
   if (orderSize < 1000) {
      alert("Attenzione l'importo minimo inseribile è 1.000");
      return;
   } else if (orderSize > 1000000) {
      alert("Attenzione l'importo massimo inseribile è 1.000.000");
      return;
   } else if (orderSize % 1000 > 0) {
      alert("Attenzione puoi attivare SuperSave per importi multipli di 1.000");
      return;
   } else if (isNaN(orderSize)) {
      alert("Attenzione devi compilare l'importo correttamente");
      return;
   }
   
   var tifDate = document.getElementById("tifDate").value;
   if (dip) {
      scaglione = '';
      if (tifDate == '12M') {
          form.servizio.value = 'DIPENDENTI_ANNO';
          tifDate = '3M';
      } else {
          form.servizio.value = 'DIPENDENTI';
      }
   } else {
      if (tifDate == '12M') {
          form.servizio.value = "RETAIL_FASCIA_" + scaglione + "_ANNO";
          tifDate = '3M';
      } else { 
          form.servizio.value = "RETAIL_FASCIA_" + scaglione;
      }         
   }
   
   
   form.scadenza.value = tifDate;   
   form.currencyCd.value = currency;
   form.orderSize.value = document.getElementById("orderSize").value.split(".").join("").replace(",", ".");

    if (document.getElementById("misc3Tmp") == null)
        form.misc3.value = misc3default;
    else
        form.misc3.value = document.getElementById("misc3Tmp").value;
        
   form.submit();
}


function openTemplate(url){

	var leftPos, screeHeight;
	leftPos = 0;
	if(screen) {
		leftPos = screen.width-475;
		screeHeight = screen.height-60;
	}

	SmallWin=window.open(url, 'Template','scrollbars=yes,resizable=yes,toolbar=no,height='+screeHeight+',width=465,left='+leftPos+',top=0');
	if(window.focus)
		SmallWin.focus();

	if(SmallWin.opener == null) {
		SmallWin.opener = window;
		SmallWin.opener = this.window;
	}
}

function getKey(id) {
   var where = id.indexOf('M');
   return id.substring(3,where+2);
}

function getMaxScad() {
    var max = 0;
    for (var id in pcts) {           
            var where=id.indexOf('M');
          	var scad = parseInt(id.substring(0, where));
          	if (max < scad)
          	   max = scad;
    }  
    return max;
}

function getArrayScad() {
    var b = new Array();
    for (var id in pcts) {
        if (id.indexOf('S') == -1) {
          var where=id.indexOf('M');
        	var scad = id.substring(0, where);
        	b.push(scad);      	
      	}
    }

    var o = new Object();
    var i, e;
    for (i = 0; e = b[i]; i++) {o[e] = 1};
    
    var a = new Array();
    for (e in o) {a.push (parseInt(e))};
    a.sort(function(a,b){return a - b});
    return a;
}

function initScad() {
    var a = getArrayScad();
 
    for (i = 0; s = a[i]; i++) {
      if (s==1)
        document.getElementById("tifDate").options[i] = new Option(s + " mese" , s + "M", false, false);
      else
        document.getElementById("tifDate").options[i] = new Option(s + " mesi" , s + "M", false, false);
    };
}


function showEntry1() {
    document.getElementById("entry1").style.display = "block";
    document.getElementById("adv1").style.display = "none";
    entry=1;    
	updateScaglione();
}
