/* 
 * @repository-version 1.0.0
 */
var chartData;
var chartLoaded=false;


/* Open flash charts handlers */
function open_flash_chart_data() {
    return JSON.stringify(chartData);
}
function ofc_ready() {
    // alert('ofc_ready');
}

jQuery.fn.ForceNumericOnly =
function()
{
    return this.each(function()
    {
        $(this).keydown(function(e)
        {
            var key = e.charCode || e.keyCode || 0;
            
            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 8 ||
                key == 9 ||
                key == 46 ||
                key == 190 ||
                key == 110 ||
                key == 188 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};
function findSWF(movieName) {
  if (navigator.appName.indexOf("Microsoft")!= -1) {
    return window[movieName];
  } else {
    return document[movieName];
  }
}
var timer;
$(document).ready( function() {
   if($("#chart").length!=0){
       countStep1(undefined);
       $("#energyCalculator input").ForceNumericOnly();

       $("#cal_pow,#cal_moc1m2,#cal_ile_osob").keyup(function (e){
            clearTimeout(timer)
            timer=setTimeout(function() {
                countStep1(this);
            },500);
       });
   }

   
   function countStep1(sender){
       //console.log("ok");
       if(sender!=undefined) toInegar(sender);
       var cal_pow=$("#cal_pow").val();
       var cal_moc1m2=$("#cal_moc1m2").val();
       var cal_zuzycie_woda=$("#cal_zuzycie_woda").val();
       var cal_ile_osob=$("#cal_ile_osob").val();
       
       $("#cal_moc_budynek").val((cal_pow*cal_moc1m2)/1000);
       $("#cal_zapotrzebowanie").val(cal_moc1m2*2.4);
       $("#cal_roczne_zuzycie").val(cal_moc1m2*2.4*cal_pow);
       $("#cal_roczne_zuzycie_woda").val((cal_zuzycie_woda*cal_ile_osob *365)/1000);
       $("#cal_energia_woda").val($("#cal_roczne_zuzycie_woda").val()*60);
       var razem=parseFloat($("#cal_energia_woda").val())+parseFloat($("#cal_roczne_zuzycie").val());
       $("#cal_calkowite_zuzycie").val(strFormat(razem,' '));
       $("#cal_calkowite_zuzycie").attr('v',razem);

       
       countStep2(undefined);
   }
   
   $("#wo_pompa,#cena_energi_elektrycznej,#wo_gaz_plynny,#cena_gazu_plynnego,#wo_gaz_ziemny,#cena_gazu_ziemnego,#wo_olej,#cena_oleju,#wo_koks,#cena_koksu,#wo_wegiel,#cena_wegla,#wo_biomasa,#cena_biomasy").keyup(function (){
       clearTimeout(timer)
       	timer=setTimeout(function() {
            countStep2(this)
        },500);          
   });
   
   function countStep2(sender){   
       if(sender!=undefined) toInegar(sender);
       var razem=parseInt($("#cal_calkowite_zuzycie").attr('v'));
       var kwota_pompa=parseInt(razem/($("#cop_pompa").val()*$("#wo_pompa").val())*$("#cena_energi_elektrycznej").val());
       var kwota_gaz_plynny=parseInt(razem/($("#cop_gaz_plynny").val()*$("#wo_gaz_plynny").val())*$("#cena_gazu_plynnego").val());
       var kwota_gaz_ziemny=parseInt(razem/($("#cop_gaz_ziemny").val()*$("#wo_gaz_ziemny").val())*$("#cena_gazu_ziemnego").val());
       var kwota_olej=parseInt(razem/($("#cop_olej").val()*$("#wo_olej").val())*$("#cena_oleju").val());
       var kwota_koks=parseInt(razem/($("#cop_koks").val()*$("#wo_koks").val())*$("#cena_koksu").val());
       var kwota_wegiel=parseInt(razem/($("#cop_wegiel").val()*$("#wo_wegiel").val())*$("#cena_wegla").val());
       var kwota_biomasa=parseInt(razem/($("#cop_biomasa").val()*$("#wo_biomasa").val())*$("#cena_biomasy").val());
       
       $("#kwota_pompa").val(strFormat(kwota_pompa," "));
       $("#kwota_gaz_plynny").val(strFormat(kwota_gaz_plynny," "));
       $("#kwota_gaz_ziemny").val(strFormat(kwota_gaz_ziemny," "));
       $("#kwota_olej").val(strFormat(kwota_olej," "));
       $("#kwota_koks").val(strFormat(kwota_koks," "));
       $("#kwota_wegiel").val(strFormat(kwota_wegiel," "));
       $("#kwota_biomasa").val(strFormat(kwota_biomasa," "));
       
       var max=Math.max(kwota_pompa,kwota_gaz_plynny,kwota_gaz_ziemny,kwota_olej,kwota_koks,kwota_wegiel,kwota_biomasa);
       var step=Math.round(max/10);
       step=parseInt(step/1000);
       step=step*1000;
       if(step==0) step=1000;
       //console.log(step);
       max=max+step;
       
       
       chartData={
          "elements": [
            {
              "type": "bar_glass",
              "values": [
                kwota_pompa,
                kwota_gaz_plynny,
                kwota_gaz_ziemny,
                kwota_olej,
                kwota_koks,
                kwota_wegiel,
                kwota_biomasa
              ],
              "colour": "#599637"
            }
          ],
          "title": {
            "text": "Porównanie kosztów"
          },
          "x_axis": {
              "labels": {
                  "rotate": 325, 
                  "labels": [
                      t("Pompa ciepła"),
                      t("Gaz płynny"),
                      t("Gaz ziemny"),
                      t("Olej"),
                      t("Koks"),
                      t("Węgiel"),
                      t("Biomasa")
                  ]},
              "offset": true
          }, 
          "y_axis": { "min": 0, "max": max, "steps": step } ,
          "bg_colour": "#f1f8e6"
        };
       
       if(!chartLoaded){
           var so = new SWFObject('js/ofc/open-flash-chart.swf', 'wykres', "400", "300", "9.0.0");
           so.useExpressInstall('expressinstall.swf');
           //so.addVariable("data-file",url);
           so.addParam('wmode', 'transparent');
           so.write('chart');
           chartLoaded=true;
       }else{
           tmp = findSWF("wykres");
           tmp.load( JSON.stringify(chartData) );
       }
   }
  
   
   function toInegar(sender){
       var val=$(sender).val();
       $(sender).val(val.replace(",","."));
   }
   
   function strFormat(nStr,str){
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + str + '$2');
	}
	return x1 + x2;
    }
   
});
