//json danych dla tabeli
$(document).ready(
  function(){
      $.getJSON($('#request').html()+'?url=kalkulatory/json/tfi.js' , function(json){
         function buildRow(i){
             $('tr#alokacji').before("<tr class='jsTdInwest' id='jsTd'><td class='jsName alignLeft'><a href=''></a></td><td class='jsValueFirst'></td><td class='jsValueLate'></td><td class='jsRate'></td><td class='jsReturn'></td></tr>");
             $("tr#jsTd").attr("id", "jsTd" + i);
          }

          
        var inputs = 0  
        var correctTable = [ ]
        for (i = 0; i < json.parasolowy.length; i++) {
          tabela = json.parasolowy[i];
          buildRow(i);
          var targetRow = $("tr#jsTd" + i);
          $(targetRow).children('td.jsName').attr("id","tr"+tabela.id)
          $(targetRow).children('td.jsName').html(tabela.name);
//          $(targetRow).children('td.jsName').children('a').attr("href",tabela.url);
          $(targetRow).children('td.jsValueFirst').html(tabela.y3_wartosc);
          $(targetRow).children('td.jsValueLate').html(tabela.value);
          $(targetRow).children('td.jsRate').html(tabela.y3);          
          
          how = $('input#howMuch').val();

          $(targetRow).children('td.jsReturn').html(how  + " zł");
          
          valRate = $(targetRow).children('td.jsRate').html()
          valRate = valRate.split('%')
          valRate = valRate[0].replace(/,/ig,".");
          valRate = parseFloat(valRate)
          how = parseFloat(how)
          valRate = valRate * 0.01
          valRate = valRate * how

          valRate = valRate + how
          valRateNaN = isNaN(valRate);
          if (valRateNaN == false) {
          valRate = valRate.toFixed(2)
           var re1=/(\d{0,2})(\d{3})+[\.\,].*$/;
          var re2=/(\d{3})/g;
          var re3=/(\d{3}[\.\,].*$)/;
          var result = "";
          try {
              if (valRate.match(re1)[1].length) {
                  result += valRate.match(re1)[1] + " ";
                  valRate = valRate.replace(valRate.match(re1)[1], "");
              }
              var match = valRate.match(re2);
              for(j=0;j+1<valRate.match(re2).length;j++) {
                  result += match[j] + " ";
              }
              result += valRate.match(re3)[1]
          } catch(e){
              result = valRate;
          }
        valRate = result.replace(/\./ig,",");
          //valRate = valRate.replace(/\./ig,",");
          $(targetRow).children('td.jsReturn').html(valRate + " zł")
          }
          else {$(targetRow).children('td.jsReturn').html('-')}
          
          if(json.parasolowy[i].wykres === true){
            correctTable[inputs] = i
            inputs++
          }
        }
        function buildRowA(x){
             $('tr.jsFoot').before("<tr class='jsTdInwest' id='jsTdA'><td class='jsName alignLeft'><a href=''></a></td><td class='jsValueFirst'></td><td class='jsValueLate'></td><td class='jsRate'></td><td class='jsReturn'></td></tr>");
             $("tr#jsTdA").attr("id", "jsTdA" + x);
          }
          
        for (x = 0; x < json.fundusz.length; x++) {
          tabelaA = json.fundusz[x];
          buildRowA(x);
          var targetRowA = $("tr#jsTdA" + x);
          $(targetRowA).children('td.jsName').attr("id","tr"+tabelaA.id)
          $(targetRowA).children('td.jsName').html(tabelaA.name);
//          $(targetRowA).children('td.jsName').children('a').attr("href",tabelaA.url);
          $(targetRowA).children('td.jsValueFirst').html(tabelaA.y3_wartosc);
          $(targetRowA).children('td.jsValueLate').html(tabelaA.value);
          $(targetRowA).children('td.jsRate').html(tabelaA.y3);
          
          how = $('input#howMuch').val();
          $(targetRowA).children('td.jsReturn').html(how  + " zł");
          
          valRate = $(targetRow).children('td.jsRate').html()
          valRate = valRate.split('%')
          valRate = valRate[0].replace(/,/ig,".");
          valRate = parseFloat(valRate)
          how = parseFloat(how)
          valRate = valRate * 0.01
          valRate = valRate * how

          valRate = valRate + how
          valRateNaN = isNaN(valRate);
          if (valRateNaN == false) {
          valRate = valRate.toFixed(2)
          
          var re1=/(\d{0,2})(\d{3})+[\.\,].*$/;
          var re2=/(\d{3})/g;
          var re3=/(\d{3}[\.\,].*$)/;
          var result = "";
          try {
              if (valRate.match(re1)[1].length) {
                  result += valRate.match(re1)[1] + " ";
                  valRate = valRate.replace(valRate.match(re1)[1], "");
              }
              var match = valRate.match(re2);
              for(j=0;j+1<valRate.match(re2).length;j++) {
                  result += match[j] + " ";
              }
              result += valRate.match(re3)[1]
          } catch(e){
              result = valRate;
          }

          valRate = result.replace(/\./ig,",");
          $(targetRow).children('td.jsReturn').html(valRate + " zł")
          }
          else {$(targetRow).children('td.jsReturn').html('-')}
        }
        var jsTmpDate1 = new Date();
        var jsTmpDate = json.date.dateI;
        var myTmpArray = jsTmpDate.split("."); 
        jsTmpDate1.setYear(myTmpArray[2]);
        jsTmpDate1.setMonth(myTmpArray[1] -1,myTmpArray[0]);
        jsTmpDate1.addYears(- 3);
        
        function twoDigits(digit){
          if (digit < 10) {digit = "0" + digit};
          return digit;
        }
        var jsTmpDate1D = jsTmpDate1.getDate();
            jsTmpDate1D = twoDigits(jsTmpDate1D);
        var jsTmpDate1M = jsTmpDate1.getMonth() + 1;
            jsTmpDate1M = twoDigits(jsTmpDate1M);
        var jsTmpDate1Y = jsTmpDate1.getFullYear();
        var jsTmpDate2 = (jsTmpDate1D +"."+ jsTmpDate1M +"."+ jsTmpDate1Y);
        $('span.jsDate1').html(jsTmpDate2);
        $('span.jsDate2').html(json.date.dateII);
        
        how = $('input#howMuch').val();
        $('span#howMuchTarget').html(how)
          
          //aby uniknac bug'a w firefoxie, ktory nie daje 'padding' generowanym 'td'
          $('#tableInwest td').css('padding','0px;');
          setTimeout("$('#tableInwest td').css('padding','7px');", 1);
          setTimeout("$('#tableInwest td.alignLeft').css('padding','7px');", 1);
          setTimeout("$('#tableInwest').css('display','block')", 2);
       
       //checkbox aktywnej alokacji w pln - staly wpis
      function buildCheckboxAlokacji(){
          if(inputs == 4) {
          $("div#test").append("<div class='colFund3'></div>");
          }
          if(mod == 0) {
          $('div.colFund1').append("<span><input type='checkbox' id='id11' value='fund_alokacji'/><label for='id11'>FIO Aktywnej Alokacji w PLN</label><input type='hidden' name='minDate'/><input type='hidden' name='maxDate'/><div class='clear'></div></span>");
          }
          else {
             $('div.colFund3').append("<span><input type='checkbox' id='id11' value='fund_alokacji'/><label for='id11'>FIO Aktywnej Alokacji w PLN</label><input type='hidden' name='minDate'/><input type='hidden' name='maxDate'/><div class='clear'></div></span>");
          }
          $("input[name = minDate]").val(json.fundusz[0].minDate);
          $("input[name = maxDate]").val(json.fundusz[0].maxDate);          
          if ((json.fundusz[0].firstOne) === true) {
            $('input#id11').attr('checked','checked');
            var smallVal = $('input#id11').next().next('input').val();
            var bigVal = $('input#id11').next().next().next('input').val();
            //setDates()
          }
          oldid = $("#tableInwest input[value = fund_alokacji]").attr('id');
          newid = oldid.replace(/id/ig, 'calc');
          $("#tableInwest input[value = fund_alokacji]").attr("id", newid);
          
          oldfor = $("#tableInwest input[value = fund_alokacji]").next().attr('for');
          newfor = oldfor.replace(/id/ig, 'calc');
          $("#tableInwest input[value = fund_alokacji]").next().attr("for", newfor);  
       }
              
       var mod = inputs % 3
       var col = Math.ceil(inputs / 3);
       var colIndex = 0;
        
        $('div.jsCheckboxes').before('<div class="test"><!-- --></div>');
        for(var z =0; z < inputs; z++) {
        if(z % col == 0) {
          colIndex++;
          $("div.test").append("<div class='colFund"+colIndex+"'></div>");
        }
//        <label for="box1" class="checkbox"><input type="checkbox" id="box1" name="box1" />CU Depozyt Plus</label>
        function buildCheckbox(z){
             $('div.colFund'+colIndex).append("<span><input type='checkbox' value='fund'/><label></label><input type='hidden' name='minDate'/><input type='hidden' name='maxDate'/><div class='clear'></div></span>");
             $('input[value = fund]').val("fund" + z);
             $('input[name = minDate]').attr("name", "minDate" + z);
             $('input[name = maxDate]').attr("name", "maxDate" + z);
       }
          tmpDigit = correctTable[z];
          checkbox = json.parasolowy[tmpDigit];
          if(checkbox.wykres === true){
            buildCheckbox(z);
            var targetInput = $("input[value = fund" + z + "]");
            
            $(targetInput).attr('id',checkbox.id);
            oldid = $("#tableInwest input[value = fund" + z + "]").attr('id');
            newid = oldid.replace(/id/ig, 'calc');
            $("#tableInwest input[value = fund" + z + "]").attr("id", newid);
            
            $(targetInput).next().attr('for',checkbox.id).html(checkbox.name);
            oldfor = $("#tableInwest input[value = fund" + z + "]").next().attr('for');
            newfor = oldfor.replace(/id/ig, 'calc');
            $("#tableInwest input[value = fund" + z + "]").next().attr("for", newfor);
            
            $("input[name = minDate" + z + "]").val(checkbox.minDate);
            $("input[name = maxDate" + z + "]").val(checkbox.maxDate);
            if ((checkbox.firstOne) === true) {
              $(targetInput).attr('checked','checked');
              var smallVal = $(targetInput).next().next('input').val();
              var bigVal = $(targetInput).next().next().next('input').val();
              //setDates()
            }
          }
        } 
//        buildCheckboxAlokacji()
        $('#tableInwest tr.jsTdInwest').hide()
        $('#tableInwest tr#alokacji').hide()
        checkedInputs = $('#tableInwest input:checkbox:checked');
        for (i = 0; i < checkedInputs.length; i++) {
              ahtml = $('#tableInwest input:checkbox:checked')[i]
              aname = $(ahtml).next().html()
              bhtml = $('#tableInwest tr.jsTdInwest td.jsName ');
              
              $(bhtml).each(function(){
                bname = $(this).html()
                if (aname === bname){
                  $(this).parent().show();
                }
                if (aname === "FIO Aktywnej Alokacji w PLN") {
                  $('#tableInwest tr#alokacji').show();
                  $('#tableInwest tr#jsTdA0').show();
                }
              })
            }
              
          $('input#przedzial_input').click( function(){$('input.text').val('');});
          $('input.text').focus( function(){$('input#przedzial_input').val('');})
          $('input.text').next().click( function(){$('input#przedzial_input').val('');})
          
          $('input#przedzialInwest_input').click( function(){$('input#dataOdInwest').val('');});
          $('input#przedzialInwest_input').click( function(){$('input#dataDoInwest').val('');});
          $('input#dataOdInwest').focus( function(){$('input#przedzialInwest_input').val('');})
          $('input#dataOdInwest').next().click( function(){$('input#przedzialInwest_input').val('');})
          $('input#dataDoInwest').focus( function(){$('input#przedzialInwest_input').val('');})
          $('input#dataDoInwest').next().click( function(){$('input#przedzialInwest_input').val('');})
        
        /*function setVals(){
          var myMaxDates = [ ];
          var myMinDates = [ ];
          var checkedInputs = $('table#tableWykres input:checkbox:checked');
          
          for (i = 0; i < checkedInputs.length; i++) {
            var miniDate = $(checkedInputs[i]).next().next('input').val();
            var maxiDate = $(checkedInputs[i]).next().next().next('input').val();
            myMinDates[i] = miniDate;
            myMaxDates[i] = maxiDate;
          }
            //najwyższa data
          zmienneMax = myMaxDates;
          bigVal = 0;
			
          for (i = 0; i < zmienneMax.length; i++) {
          if (zmienneMax.length > 1) {
               if ((zmienneMax[i] > bigVal) || (bigVal == 0)) {
                   bigVal = zmienneMax[i];
               }
          
          } else {
               bigVal = zmienneMax[i];
          }
          }
          
          //najniższa data
          zmienneMin = myMinDates;
          smallVal = 0;

          for (i = 0; i < zmienneMin.length; i++) {
          if (zmienneMin.length > 1) {
               if ((zmienneMin[i] < smallVal) || (smallVal == 0)) {
                   smallVal = zmienneMin[i];
               }
          
          } else {
               smallVal = zmienneMin[i];
          }
          }
        }   
        
        function setDates() {
        	//przypisanie daty do datepicker'a
          if (smallVal) {
            var myTmpArray = smallVal.split(", ");
          	smallDate.setYear(myTmpArray[0]);
          	smallDate.setMonth(myTmpArray[1] -1,myTmpArray[2]);
          }
          if (bigVal) {
            var myTmpArray = bigVal.split(", ");
          	bigDate.setYear(myTmpArray[0]);
          	bigDate.setMonth(myTmpArray[1] -1,myTmpArray[2]);
          }
        }*/
        
        setVals()
        setDates()
        $('#tableWykres input:checkbox').click(
          function (){
            thisOne = $(this).not(':checked')[0];
            if(thisOne !== undefined){
            idik = $(this).attr("id");
            newidik = idik.replace(/id/ig, 'calc');
            //console.info($('input#'+newidik))
            $('input#'+newidik).attr('checked','');
            }
            else {
            idik = $(this).attr("id");
            newidik = idik.replace(/id/ig, 'calc');
            //console.info($('input#'+newidik))
            $('input#'+newidik).attr('checked','checked');
            }
            setVals()
            setDates()
           checkedInputs = $('#tableWykres input:checkbox:checked');                      
          if (checkedInputs.length < 5) {
              $('#tableWykres input:checkbox').not(':checked').removeAttr("disabled","disabled");
          }
          if (checkedInputs.length == 5) {
              $('#tableWykres input:checkbox').not(':checked').attr("disabled","disabled");
          }
        });
        
        $('#tableInwest input:checkbox').click(
          function (){
            thisOne = $(this).not(':checked')[0];
            if(thisOne !== undefined){
            idik = $(this).attr("id");
            newidik = idik.replace(/calc/ig, 'id');
            //console.info($('input#'+newidik))
            $('input#'+newidik).attr('checked','');
            }
            else {
            idik = $(this).attr("id");
            newidik = idik.replace(/calc/ig, 'id');
            //console.info($('input#'+newidik))
            $('input#'+newidik).attr('checked','checked');
            }
            setVals()
            setDates()
        });

        // klikniecie w button 'oblicz stope zwrotu'
        $('a.tableBtn').addClass('click');
        $('a.tableBtn').click(
        	function (){
        	
        	   if (
              $(this).hasClass("click") ) {makeInwest();}
             else {return false;}
        });
        
        // klikniecie w button 'pokaz na wykresie'
        $('a.tableBtnShort').addClass('click');
        $('a.tableBtnShort').click(
        	function () {
        	 if ($(this).hasClass("click") ) {}
             else {return false;}
        	 $('a.tableBtnShort').removeClass('click');
        	 $('div.errorMsg').hide();
		        var dtaVal = $('input#dataOd').val().length;
		        var datVal = $('input#dataDo').val().length;		    
		     		var valRange = $('select#przedzial').val();
		     		
		     		checkedInputs = $('#tableWykres input:checkbox:checked');

		     		how = $('input#howMuchWykres').val();
            howInt = parseInt(how)
            if(howInt > 1000000) {$('div.errorMsg').show().text("Kwota inwestycji nie może być większa niż 1000000 PLN."); $('a.tableBtnShort').addClass('click'); return false}
		     		
		     		if (checkedInputs.length == 0) {$('div.errorMsg').show().text("Proszę zaznaczyć minimum jeden fundusz."); $('a.tableBtnShort').addClass('click'); return false;}
		     		if ( dtaVal < 1 && datVal < 1 && valRange == 'blank') {$('div.errorMsg').show().text("Proszę wybrać zakres notowań."); $('a.tableBtnShort').addClass('click'); return false;}
		     		if ( dtaVal < 1 && datVal > 1) {$('div.errorMsg').show().text("Oba pola muszą zostać wypełnione"); $('a.tableBtnShort').addClass('click'); return false;}
		     		if ( dtaVal > 1 && datVal < 1) {$('div.errorMsg').show().text("Oba pola muszą zostać wypełnione"); $('a.tableBtnShort').addClass('click'); return false;}
		     		if (valRange !== "blank") {
				        var valRange = $('select#przedzial').val();
				        smallDateCal = bigDate.copy();

				         if (valRange == '1d') {
				          smallDateCal.addDays(- 1);
				        }
                if (valRange == '1m') {
				          smallDateCal.addMonths(- 1);
				        }
				        if (valRange == '1r') {
				          smallDateCal.addYears(- 1);
				        }
				        if (valRange == '3l') {
				          smallDateCal.addYears(- 3);
				        }
				        if (valRange == '5l') {
				          smallDateCal.addYears(- 5);
				        }
				        if (valRange == '10l') {
				          smallDateCal.addYears(- 10);
				        }
				        if (valRange == 'all') {
				          smallDateCal = new Date(smallVal);
				        }
				        
				          function twoDigits(digit){
				            if (digit < 10) {digit = "0" + digit};
				            return digit;
				          }
		
				          var firstD = smallDateCal.getDate();
				              firstD = twoDigits(firstD);
				          var firstM = smallDateCal.getMonth() + 1;
				              firstM = twoDigits(firstM);
				          var firstY = smallDateCal.getFullYear();
				          var firstDateVal = (firstD +"."+ firstM +"."+ firstY);
				          $('input#dataOd').val(firstDateVal);
		
				          var secondD = bigDate.getDate();
				              secondD = twoDigits(secondD);
				          var secondM = bigDate.getMonth() + 1;
				              secondM = twoDigits(secondM);
				          var secondY = bigDate.getFullYear();
				          var secondDateVal = (secondD +"."+ secondM +"."+ secondY);
				          $('input#dataDo').val(secondDateVal);
				          $('input#przedzial_input').val(" ");
				          $('select#przedzial').val("blank");
		     		}
		     		
		     			var tmpVal = $('input#dataOd').val();
						var Tmp = tmpVal.split(".");
						var firstDate = Tmp[2] + "/" + Tmp[1] + "/" + Tmp[0];
			     		
			     		var tmpVal = $('input#dataDo').val();
						var Tmp = tmpVal.split(".");
						var secondDate = Tmp[2] + "/" + Tmp[1] + "/" + Tmp[0];
		     		
		     		if (checkDates() == false) {$('a.tableBtnShort').addClass('click'); return false;}
		     		makeXmlTable();
		     		type = "returnIncome"
		     		payment = $('input#howMuchWykres').val();
		            k2Multichart_sendProperties(firstDate, secondDate, charts, type, payment);
		            //console.info("Po kliknieciu przesylam\nfirst: " + firstDate + " second: " + secondDate + "\nWykresy: " + charts + "\ntype: " + type + "\npayment: " + payment);
		            $('input#przedzial_input').val(' ');
       		}
       		);  
   });
});

