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

$(document).ready(function() {
    try {
        $('#vlLitroAlcool').priceFormat({
            prefix: '',
            limit: 5,
            centsLimit: 3,
            centsSeparator: ',',
            thousandsSeparator: '.'
        });
        $('#vlLitroGasolina').priceFormat({
            prefix: '',
            limit: 5,
            centsLimit: 3,
            centsSeparator: ',',
            thousandsSeparator: '.'
        });
        $('#vlMetroGNV').priceFormat({
            prefix: '',
            limit: 5,
            centsLimit: 3,
            centsSeparator: ',',
            thousandsSeparator: '.'
        });
        $('#vlInstalacao').priceFormat({
            prefix: '',
            limit: 6,
            centsSeparator: ',',
            thousandsSeparator: '.'
        });
        $('#valorIPVA').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(){
    $('#sim').click(function(){
        if(this.checked){
            $("#divIPVA").show();
        }else{
            $("#divIPVA").hide();
        }
    });
    $('#nao').click(function(){
        if(this.checked){
            $("#divIPVA").hide();
        }else{
            $("#divIPVA").show();
        }
    });
    $('#btnSimular').click(function(){
        if(validate()){
            simulate();
        }
    });
    $('#btnLimpar').click(function(){
        $("#alertErro").hide();
        loadDefaults();
    });
});



function querySt(ji) {
    hu = window.location.search.substring(1);
    gy = hu.split("&");
    for (i=0;i<gy.length;i++) {
        ft = gy[i].split("=");
        if (ft[0] == ji) {
            return ft[1];
        }
    }
}



function loadDefaults(){

    var kmQS = querySt("km");

    if (kmQS == '' || kmQS==undefined)
        kmQS = '2000';

    // $("#KMRodados").val("2000");
    $("#KMRodados").val(kmQS);
    
    $("#vlLitroAlcool").val("2,206");
    $("#vlLitroGasolina").val("2,842");
    $("#vlMetroGNV").val("1,642");

    $("#KMLitroAlcool").val("7");
    $("#KMLitroGasolina").val("10");
    $("#KMMetroGNV").val("14");
    $("#vlInstalacao").val("2.179,00");
    $('#nao').attr("checked", "checked");
    $("#divIPVA").hide();
    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 if($('#sim').is(":checked")){
            if($("#uf").val() == ""){
                $("#alertErro").html("Informe o estado para o cálculo do desconto");
                $("#alertErro").show();
                $("#uf").focus();
                return false;
            }else if($("#valorIPVA").val() == "" || moeda2float($("#valorIPVA").val()) == 0){
                $("#alertErro").html("O valor do IPVA deve ser maior que zero");
                $("#alertErro").show();
                $("#valorIPVA").focus();
                return false;
            }else{
                return true;
            }
        }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());
	//var consumoMesFlex =  242.86;  ((A2*50%)/B12)
	var consumoMesFlex = ($("#KMRodados").val()/2)/parseInt($("#KMLitroGasolina").val())+($("#KMRodados").val()/2)/parseInt($("#KMLitroAlcool").val());
	

	
	// DADOS QUE IRÃO PARECER NO GRÁFICO
    arrData2Graph["consumoMes"] = new Array(4);
    arrData2Graph["consumoMes"]["alcool"] = consumoMesAlcool;
    arrData2Graph["consumoMes"]["gasolina"] = consumoMesGasolina;
    arrData2Graph["consumoMes"]["GNV"] = consumoMesGNV;
	arrData2Graph["consumoMes"]["Flex"] = consumoMesFlex;

	 
    var valorGastoMesAlcool = consumoMesAlcool * moeda2float($("#vlLitroAlcool").val());
    var valorGastoMesGasolina = consumoMesGasolina * moeda2float($("#vlLitroGasolina").val());
	var valorGastoMesFlex = consumoMesFlex *((moeda2float($("#vlLitroGasolina").val())/2)+ moeda2float($("#vlLitroAlcool").val())/2) ;

	
    var valorGastoMesGNV = consumoMesGNV * moeda2float($("#vlMetroGNV").val());
    
	// DADOS QUE IRÃO PARECER NO GRÁFICO
	arrData2Graph["valorGastoMes"] = new Array(4);
    arrData2Graph["valorGastoMes"]["alcool"] = valorGastoMesAlcool;
    arrData2Graph["valorGastoMes"]["gasolina"] = valorGastoMesGasolina;
    arrData2Graph["valorGastoMes"]["GNV"] = valorGastoMesGNV;
	arrData2Graph["valorGastoMes"]["Flex"] = valorGastoMesFlex;
	
	// DADOS QUE IRÃO PARECER NO GRÁFICO


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

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


// aqui eu coloco os campos.. de IPVA
    if($('#sim').is(":checked")){
        var descontoMensalIPVA = (moeda2float($("#valorIPVA").val())*parseFloat($("#uf").val()))/12;

        var retornoIPVAGasolinaKIT = (moeda2float($("#vlInstalacao").val())/(valorEcoGasolinaGNV+descontoMensalIPVA)).toFixed(1);
        var retornoIPVAAlcoolKIT = (moeda2float($("#vlInstalacao").val())/(valorEcoAlcoolGNV+descontoMensalIPVA)).toFixed(1);
		var retornoIPVAFlexKIT = (moeda2float($("#vlInstalacao").val())/(valorEcoFlexGNV+descontoMensalIPVA)).toFixed(1);
        
		
		if(retornoIPVAGasolinaKIT == "Infinity"){
            retornoIPVAGasolinaKIT = "--";
        }else{
            retornoIPVAGasolinaKIT = retornoIPVAGasolinaKIT.replace(".", ",")
        }
        if(retornoIPVAAlcoolKIT == "Infinity"){
            retornoIPVAAlcoolKIT = "--";
        }else{
            retornoIPVAAlcoolKIT = retornoIPVAAlcoolKIT.replace(".", ",")
        }
        if(retornoIPVAFlexKIT == "Infinity"){
            retornoIPVAFlexKIT = "--";
        }else{
            retornoIPVAFlexKIT = retornoIPVAFlexKIT.replace(".", ",")
        }
		
		
		
        $("#divOutputIPVA").show();
        $("#descGasolinaIPVA").val(float2moeda(descontoMensalIPVA));
        $("#descAlcoolIPVA").val(float2moeda(descontoMensalIPVA));
		$("#descFlexIPVA").val(float2moeda(descontoMensalIPVA));
        
		$("#retornoIPVAGasolinaKIT").val(retornoIPVAGasolinaKIT);
        $("#retornoIPVAAlcoolKIT").val(retornoIPVAAlcoolKIT);
		$("#retornoIPVAFlexKIT").val(retornoIPVAFlexKIT);
    }else{
         $("#divOutputIPVA").hide();
    }

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

    graphsRender(arrData2Graph);
}

function graphsRender(arrData) {

   var chartRendimento = new FusionCharts("FusionCharts/Charts/FCF_Bar2D.swf", "chartRendimento", "400", "105");
   var XMLRendimento = "<graph yAxisName='Km/L ou Km/m3' ";
   XMLRendimento += "decimalPrecision='0' formatNumberScale='0' chartTopMargin='8' chartBottomMargin='10' bgcolor='EDF2F5' canvasBorderColor='EDF2F5' >";
   XMLRendimento += "<set name='Alcool' value='"+$("#KMLitroAlcool").val()+"' color='8BBA00' />";
   XMLRendimento += "<set name='Gasolina' value='"+$("#KMLitroGasolina").val()+"' color='F6BD0F' />";
   XMLRendimento += "<set name='GNV' value='"+$("#KMMetroGNV").val()+"' color='AFD8F8' />";
   XMLRendimento += "</graph>";
   chartRendimento.setDataXML(XMLRendimento);
   chartRendimento.render("graphRendimento");

   var chartConsumo = new FusionCharts("FusionCharts/Charts/FCF_Bar2D.swf", "chartConsumo", "400", "105");
   var XMLConsumo = "<graph yAxisName='L ou m3' decimalPrecision='0' formatNumberScale='0' chartTopMargin='8' chartBottomMargin='10' bgcolor='EDF2F5' canvasBorderColor='EDF2F5' >";
   XMLConsumo += "<set name='Alcool' value='"+arrData["consumoMes"]["alcool"]+"' color='8BBA00' />";
   XMLConsumo += "<set name='Gasolina' value='"+arrData["consumoMes"]["gasolina"]+"' color='F6BD0F' />";
   XMLConsumo += "<set name='GNV' value='"+arrData["consumoMes"]["GNV"]+"' color='AFD8F8' />";
   XMLConsumo += "</graph>";
   chartConsumo.setDataXML(XMLConsumo);
   chartConsumo.render("graphConsumo");

   var chartGastoEmReais = new FusionCharts("FusionCharts/Charts/FCF_Bar2D.swf", "chartGastoEmReais", "400", "105");
   var XMLGastoEmReais = "<graph yAxisName='R$' decimalSeparator=',' decimalPrecision='2' formatNumberScale='0' chartTopMargin='8' chartBottomMargin='10' bgcolor='EDF2F5' canvasBorderColor='EDF2F5' >";
   XMLGastoEmReais += "<set name='Alcool' value='"+arrData["valorGastoMes"]["alcool"]+"' color='8BBA00' />";
   XMLGastoEmReais += "<set name='Gasolina' value='"+arrData["valorGastoMes"]["gasolina"]+"' color='F6BD0F' />";
   XMLGastoEmReais += "<set name='GNV' value='"+arrData["valorGastoMes"]["GNV"]+"' color='AFD8F8' />";
   XMLGastoEmReais += "</graph>";
   chartGastoEmReais.setDataXML(XMLGastoEmReais);
   chartGastoEmReais.render("graphGastoEmReais");



}



//de float( 1000.00) para moeda (1.000,00)
function float2moeda(num) {
    x = 0;
    if (num < 0) {
        num = Math.abs(num);
        x = 1;
    }
    if (isNaN(num)) num = "0";
    cents = Math.floor((num * 100 + 0.5) % 100);
    num = Math.floor((num * 100 + 0.5) / 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));
    ret = num + ',' + cents;
    if (x == 1) ret = ' - ' + ret; return ret;
}

//de moeda(1.000,00) para float (1000.00)
function moeda2float(moeda) {
    moeda = moeda.replace(/\./g, "");
    moeda = moeda.replace(/\,/g, ".");
    return parseFloat(moeda);
}
