/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

$(document).ready(function() {
    try {
        $('#vlLitroAlcool').priceFormat({
            prefix: '',
            limit: 5,
            centsLimit: 2,
            centsSeparator: ',',
            thousandsSeparator: '.'
        });
        $('#vlLitroGasolina').priceFormat({
            prefix: '',
            limit: 5,
            centsLimit: 2,
            centsSeparator: ',',
            thousandsSeparator: '.'
        });
        $('#vlMetroGNV').priceFormat({
            prefix: '',
            limit: 5,
            centsLimit: 2,
            centsSeparator: ',',
            thousandsSeparator: '.'
        });
        $('#vlInstalacao').priceFormat({
            prefix: '',
            limit: 6,
            centsSeparator: ',',
            thousandsSeparator: '.'
        });


        $('#KMRodados').setMask("99999");
        $('#KMLitroAlcool').setMask("99");
        $('#KMLitroGasolina').setMask("99");
        $('#KMMetroGNV').setMask("99");

        //carrega os valores sugeridos
        loadDefaults();

    } catch (e) {
        alert(e.message);
    }
});


$(function(){

    $('#btnSimular').click(function(){
        if(validate()){
            simulate();
        }
    });

});


function loadDefaults(){
    $("#KMRodados").val("2000");
    $("#vlLitroAlcool").val("1,60");
    $("#vlLitroGasolina").val("2,52");
    $("#vlMetroGNV").val("1,47");
    $("#KMLitroAlcool").val("7");
    $("#KMLitroGasolina").val("10");
    $("#KMMetroGNV").val("13");
    $("#vlInstalacao").val("2.179,00");

    simulate();
}

function validate(){
    try{
        $("#alertErro").hide();
        if($("#KMRodados").val() == "" || parseInt($("#KMRodados").val()) == 0){
            $("#alertErro").html("Informe os KM rodados por mês.");
            $("#alertErro").show();
            $("#KMRodados").focus();
            return false;
        }else if($("#vlLitroAlcool").val() == "" || moeda2float($("#vlLitroAlcool").val()) == 0){
            $("#alertErro").html("O valor do litro do álcool deve ser maior que zero");
            $("#alertErro").show();
            $("#vlLitroAlcool").focus();
            return false;
        }else if($("#vlLitroGasolina").val() == "" || moeda2float($("#vlLitroGasolina").val()) == 0){
            $("#alertErro").html("O valor do litro da gasolina deve ser maior que zero");
            $("#alertErro").show();
            $("#vlLitroGasolina").focus();
            return false;
        }else if($("#vlMetroGNV").val() == "" || moeda2float($("#vlMetroGNV").val()) == 0){
            $("#alertErro").html("O valor do metro cúbico de GNV deve ser maior que zero");
            $("#alertErro").show();
            $("#vlMetroGNV").focus();
            return false;
        }else if($("#KMLitroAlcool").val() == "" || $("#KMLitroAlcool").val() == 0){
            $("#alertErro").html("O valor do rendimento com álcool deve ser maior que zero");
            $("#alertErro").show();
            $("#KMLitroAlcool").focus();
            return false;
        }else if($("#KMLitroGasolina").val() == "" || $("#KMLitroGasolina").val() == 0){
            $("#alertErro").html("O valor do rendimento com gasolina deve ser maior que zero");
            $("#alertErro").show();
            $("#KMLitroGasolina").focus();
            return false;
        }else if($("#KMMetroGNV").val() == "" || $("#KMMetroGNV").val() == 0){
            $("#alertErro").html("O valor do rendimento com GNV deve ser maior que zero");
            $("#alertErro").show();
            $("#KMMetroGNV").focus();
            return false;
        }else if($("#vlInstalacao").val() == "" || moeda2float($("#vlInstalacao").val()) == 0){
            $("#alertErro").html("O valor da instalação do KIT GNV deve ser maior que zero");
            $("#alertErro").show();
            $("#vlInstalacao").focus();
            return false;
        }else{
            return true;
        }
    }catch(err){
        alert(err.description);
        return false;
    }
}

function simulate() {

    var arrData2Graph = new Array();
    var consumoMesAlcool = parseInt($("#KMRodados").val())/parseInt($("#KMLitroAlcool").val());
    var consumoMesGasolina = parseInt($("#KMRodados").val())/parseInt($("#KMLitroGasolina").val());
    var consumoMesGNV = parseInt($("#KMRodados").val())/parseInt($("#KMMetroGNV").val());

    arrData2Graph["consumoMes"] = new Array(3);
    arrData2Graph["consumoMes"]["alcool"] = consumoMesAlcool;
    arrData2Graph["consumoMes"]["gasolina"] = consumoMesGasolina;
    arrData2Graph["consumoMes"]["GNV"] = consumoMesGNV;

    var valorGastoMesAlcool = consumoMesAlcool * moeda2float($("#vlLitroAlcool").val());
    var valorGastoMesGasolina = consumoMesGasolina * moeda2float($("#vlLitroGasolina").val());
    var valorGastoMesGNV = consumoMesGNV * moeda2float($("#vlMetroGNV").val());
    arrData2Graph["valorGastoMes"] = new Array(3);
    arrData2Graph["valorGastoMes"]["alcool"] = valorGastoMesAlcool;
    arrData2Graph["valorGastoMes"]["gasolina"] = valorGastoMesGasolina;
    arrData2Graph["valorGastoMes"]["GNV"] = valorGastoMesGNV;

    var valorEcoGasolinaGNV = valorGastoMesGasolina-valorGastoMesGNV;
    var valorEcoAlcoolGNV = valorGastoMesAlcool-valorGastoMesGNV;
    
    var percGasolinaGNV = ((valorEcoGasolinaGNV/valorGastoMesGasolina)*100).toFixed(1);
    var percAlcoolGNV = ((valorEcoAlcoolGNV/valorGastoMesAlcool)*100).toFixed(1);

    var retornoGasolinaKIT = (moeda2float($("#vlInstalacao").val())/valorEcoGasolinaGNV).toFixed(1);
    var retornoAlcoolKIT = (moeda2float($("#vlInstalacao").val())/valorEcoAlcoolGNV).toFixed(1);
    if(retornoGasolinaKIT == "Infinity"){
        retornoGasolinaKIT = "--";
    }else{
        retornoGasolinaKIT = retornoGasolinaKIT.replace(".", ",")+" meses"
    }
    if(retornoAlcoolKIT == "Infinity"){
        retornoAlcoolKIT = "--";
    }else{
        retornoAlcoolKIT = retornoAlcoolKIT.replace(".", ",")+" meses"
    }

    //output
    $("#percGasolinaGNV").val(percGasolinaGNV.replace(".", ",")+"%");
    $("#percAlcoolGNV").val(percAlcoolGNV.replace(".", ",")+"%");
    $("#retornoGasolinaKIT").val(retornoGasolinaKIT);
    $("#retornoAlcoolKIT").val(retornoAlcoolKIT);

    graphsRender(arrData2Graph);
}

function graphsRender(arrData) {

   var chartRendimento = new FusionCharts("FusionCharts/Charts/FCF_Bar2D.swf", "chartRendimento", "394", "105");
   var XMLRendimento = "<graph yAxisName='Km/L ou Km/m³' ";
   XMLRendimento += "decimalPrecision='0' formatNumberScale='0' chartTopMargin='8' chartBottomMargin='10' bgcolor='156377' canvasBorderColor='EDF2F5' canvasBgColor='e6fbff' baseFontColor='666666' hoverCapBorderColor='156377' hoverCapBgColor='FFFFFF' outCnvBaseFontColor='e6fbff'>";
   XMLRendimento += "<set name='Álcool' value='"+$("#KMLitroAlcool").val()+"' color='F4F52B' />";
   XMLRendimento += "<set name='Gasolina' value='"+$("#KMLitroGasolina").val()+"' color='8C4720' />";
   XMLRendimento += "<set name='GNV' value='"+$("#KMMetroGNV").val()+"' color='0A717C' />";
   XMLRendimento += "</graph>";
   chartRendimento.setDataXML(XMLRendimento);
   chartRendimento.render("graphRendimento");

   var chartConsumo = new FusionCharts("FusionCharts/Charts/FCF_Bar2D.swf", "chartConsumo", "394", "105");
   var XMLConsumo = "<graph yAxisName='L ou m³' decimalPrecision='0' formatNumberScale='0' chartTopMargin='8' chartBottomMargin='10' bgcolor='156377' canvasBorderColor='EDF2F5' canvasBgColor='e6fbff' baseFontColor='666666' hoverCapBorderColor='156377' hoverCapBgColor='FFFFFF' outCnvBaseFontColor='e6fbff'>";
   XMLConsumo += "<set name='Álcool' value='"+arrData["consumoMes"]["alcool"]+"' color='F4F52B' />";
   XMLConsumo += "<set name='Gasolina' value='"+arrData["consumoMes"]["gasolina"]+"' color='8C4720' />";
   XMLConsumo += "<set name='GNV' value='"+arrData["consumoMes"]["GNV"]+"' color='0A717C' />";
   XMLConsumo += "</graph>";
   chartConsumo.setDataXML(XMLConsumo);
   chartConsumo.render("graphConsumo");

   var chartGastoEmReais = new FusionCharts("FusionCharts/Charts/FCF_Bar2D.swf", "chartGastoEmReais", "394", "105");
   var XMLGastoEmReais = "<graph yAxisName='R$' decimalSeparator=',' decimalPrecision='2' formatNumberScale='0' chartTopMargin='8' chartBottomMargin='10' bgcolor='156377' canvasBorderColor='EDF2F5' canvasBgColor='e6fbff' baseFontColor='666666' hoverCapBorderColor='156377' hoverCapBgColor='FFFFFF' outCnvBaseFontColor='e6fbff'>";
   XMLGastoEmReais += "<set name='Álcool' value='"+arrData["valorGastoMes"]["alcool"]+"' color='F4F52B' />";
   XMLGastoEmReais += "<set name='Gasolina' value='"+arrData["valorGastoMes"]["gasolina"]+"' color='8C4720' />";
   XMLGastoEmReais += "<set name='GNV' value='"+arrData["valorGastoMes"]["GNV"]+"' color='0A717C' />";
   XMLGastoEmReais += "</graph>";
   chartGastoEmReais.setDataXML(XMLGastoEmReais);
   chartGastoEmReais.render("graphGastoEmReais");

   
}

function atualizaGnv()
{
	
	$("#KMMetroGNV").val(parseInt($("#KMLitroGasolina").val())+parseInt((($("#KMLitroGasolina").val()*30)/100)));

}