/*
 * MisterDemenagement.com
 *
 * Calculateur de cout
 * @author 2S3i.com
 */
 
(function($) {

$.fn.generateForm = function() {

  $(this)
    .empty().append('<div id="doc" class="yui-t7"></div>');
  $('#doc')
    .append('<form id="md-form-cout" method="get" action="#"><fieldset><legend>Calculer le co&ucirc;t de votre d&eacute;m&eacute;nagement</legend>'+"\n"
         +'<p id="p-volume"></p>'+"\n"
         +'<p id="p-etage-depart"></p>'+"\n"
         +'<p id="p-ascenceur-depart"></p>'+"\n"
         +'<p id="p-distance"></p>'+"\n"
         +'<p id="p-etage-arrive"></p>'+"\n"
         +'<p id="p-ascenceur-arrive"></p></fieldset>'+"\n"
         +'<p style="text-align: right"><input type="submit" value="Valider" /></p>'+"\n"
         +'</form>'+"\n"
  );
  $('#p-volume')
    .label({ forname: 'volume-cout', textlabel: 'Volume (en m\u00B3)', classname: 'size_normal' })
    .text_field({ name: 'volume', id: 'volume-cout', defaultValue: '0', classname: 'text text_size_medium' });
  $('#p-etage-depart')
    .label({ forname: 'etage-depart-cout', textlabel: 'Etage de d\u00E9part', classname: 'size_normal' })
    .text_field({ name: 'etage-depart', id: 'etage-depart-cout', classname: 'text text_size_medium' });
  $('#p-ascenceur-depart')
    .label({ forname: 'ascenceur-depart-cout', textlabel: 'Ascenseur', classname: 'size_normal' })
    .select({ name: 'ascenceur-depart', id: 'ascenceur-depart-cout', data: { 'items': [['true', 'Oui'], ['1', 'Non']] } });
  $('#p-distance')
    .label({ forname: 'distance-cout', textlabel: 'Distance (km)', classname: 'size_normal' })
    .text_field({ name: 'distance', id: 'distance-cout', classname: 'text text_size_medium' });
  $('#p-etage-arrive')
    .label({ forname: 'etage-arrive-cout', textlabel: 'Etage d\'arriv\u00E9e', classname: 'size_normal' })
    .text_field({ name: 'etage-arrive', id: 'etage-arrive-cout', classname: 'text text_size_medium' });
  $('#p-ascenceur-arrive')
    .label({ forname: 'ascenceur-arrive-cout', textlabel: 'Ascenseur', classname: 'size_normal' })
    .select({ name: 'ascenceur-arrive', id: 'ascenceur-arrive-cout', data: { 'items': [['true', 'Oui'], ['1', 'Non']] } });
    
  $('#md-form-cout')
  .submit( function() {
    var msg = 'Attention il existe des erreurs dans le formulaire';
    var not_error = true;
    
    var num_pattern = /(\d+[^a-zA-Z]{0})/;
    
    volume_val = $.trim($('#volume-cout').val());
    if (volume_val == '')
    {
      msg += "\n"+'Le champ volume est requis';
      not_error = false;
    }
    
    if (!num_pattern.test(volume_val))
    {
      msg += "\n"+'La champ volume doit \u00EAtre un nombre';
      not_error = false;
    }
    
    etage_d_val = $.trim($('#etage-depart-cout').val());
    if (etage_d_val != '' && !num_pattern.test(etage_d_val))
    {
      msg += "\n"+'La champ \u00E9tage de d\u00E9part doit \u00EAtre un nombre';
      not_error = false;
    }
    
    etage_d_arrive = $.trim($('#etage-arrive-cout').val());
    if (etage_d_arrive != '' && !num_pattern.test(etage_d_arrive))
    {
      msg += "\n"+'La champ \u00E9tage d\'arriv\u00E9e doit \u00EAtre un nombre';
      not_error = false;
    }
    
    if (!not_error)
    {
      alert(msg);
      return false;
      
    }
    else
    {
      $('#md-wrapper').submitCout();
    }
    
  });   
  
}

$.fn.submitCout = function() {
  var etage = 0;
  if ($('#ascenceur-depart-cout').val() == '1')
  {
    etage = $('#etage-depart-cout').val();
  }
  etage = parseInt(etage);
  if ($('#ascenceur-depart-cout').val() == '1')
  {
    etage = etage + parseInt($('#etage-arrive-cout').val());
  }
  etage = parseInt(etage);

  var total_dem_un = 1.196 * (  206.8 +  0.275 * parseInt($('#distance-cout').val())   + 11 * etage  )* parseInt($('#volume-cout').val()) /7.225 ;
  var total_dem_deux = 1.196 * (  206.8 +  0.275 * parseInt($('#distance-cout').val())  + 11 * etage   ) * parseInt($('#volume-cout').val()) /5.915;
  
  var true_coef = 1;
  if (6 >= parseInt($('#volume-cout').val())) {
    true_coef = 1.30;
  }
  if (10000 >= parseInt($('#volume-cout').val())) {
    true_coef = 1.25;
  }
  total_dem_un = Math.floor((total_dem_un * true_coef)/10)*10;
  total_dem_deux = Math.ceil((total_dem_deux * true_coef)/10)*10;

  $('#md-wrapper')
  .empty()
  .append('<p class="success">Déménagement fait par un professionnel : entre '+parseFloat(total_dem_un).toFixed(2)+' et '+parseFloat(total_dem_deux).toFixed(2)+' € TTC'+"<br />"
       +'Cette estimation TTC purement indicative est fournie pour un déménagement standard effectué par un déménageur '
       + 'professionnel. L\'assurance transport de marchandise est généralement comprises. Attention, le prix final '
       + 'peut fortement varier en fonction du type de prestations demandées, du déménageur choisi, de certaines '
       + 'particularités et de la saison. Dans tous les cas un devis écrit doit vous '
       + 'être fourni par votre déménageur.<br />Pour effectuer une nouvelle estimation, <a href="#" id="md-reset">cliquer ici</a>.</p>');  
  $('#md-reset').click( function() {
    $('#md-wrapper').generateForm();
    return false;
  });
};

$(document).ready( function() {
  if ($('#md-wrapper'))
  {
    $('#md-wrapper').generateForm();
    
  }
});
})(jQuery);