/* ------------------------------------------------------- Config des données ----------------------------------------------------- */
config = new Array();
config.frais_gestion = 4;
config.frais_envoi   = 2.5;
config.co2 = {160:200,165:750,200:1600,250:2600};
/* ------------------------------------------------------- / Config des données ----------------------------------------------------- */

$(document).ready(function() {
  var upd;
  
  $("#dept").keyup( 
   function()
   { 
     clearTimeout( upd );
	 upd = setTimeout( 
	   function() 
	   {
          var dept = $("#dept").val().toUpperCase();
		  
		  if(dept.length == 1)
		  {
		     dept = '0' + dept;
		  }
		  
		  if(dept.length > 2)
		  {
		     var start = dept.length - 2;
			 dept = dept.substring(start);
		  }
		  $("#dept").val(dept);
		  calculePrix();
       },700);
   }
   );
   
   $("#cv").change(calculePrix);
   $("#co2").keyup(
		function()
		{ 
			clearTimeout( upd );
			upd = setTimeout( 
			function() 
			{
			calculePrix();
			},700);
		}
	);
   
   function calculePrix()
   {
		var dept     = $("#dept").val();
		var prix_cv  = $("#dept-" + dept + " td:eq(2)").html();
		var nom_dept = $("#dept-" + dept + " td:eq(0)").html();

		var reg = /([0-9]{1,3}),?([0-9]{1,2})/;
		reg.exec(prix_cv);	  
		prix_cv = RegExp.$1 + '.' + RegExp.$2;
		
		var malus = donneMalus($("#co2").val());
		var nb_cv = $("#cv").val();
		var prix_cv_tot = prix_cv * nb_cv;
		var total = prix_cv_tot + config.frais_gestion + config.frais_envoi + malus;
		
		var html  = "<h3>Estimation du coût de votre carte grise</h3>";
			html += "<table class=\"tab-prix\">";
		    html += "<tr><td>"+nom_dept+"</td><td>" + number_format(prix_cv, 2, ',', ' ') + "€ x " + nb_cv + "</td><td>" + number_format(prix_cv_tot, 2, ',', ' ') + "€</td></tr>";
		    html += "<tr><td>Frais de gestion</td><td></td><td>" + number_format(config.frais_gestion, 2, ',', ' ') + "€</td></tr>";
		    html += "<tr><td>Frais d'acheminement</td><td></td><td>" + number_format(config.frais_envoi, 2, ',', ' ') + "€</td></tr>";
			
			if(malus > 0)
			{
		        html += "<tr class=\"malus\"><td>Malus</td><td></td><td>" + number_format(malus, 2, ',', ' ') + "€</td></tr>";
			}
			
		    html += "<tr class=\"total\"><td>TOTAL</td><td></td><td>"+number_format( total, 2, ',', ' ')+"€</td></tr>";
			html += "</table>";
		
		$("#prix-cg").html(html);
   }
   
   function donneMalus(co2)
   {
		var malus = 0;
		
		for( var tx in config.co2 )
		{
			if(co2 > tx)
			{
				malus = config.co2[tx];
			}
		}
		return malus;
   }
});

function number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, prec = decimals;
 
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
 
    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}
