/*
 * MisterDemenagement.com
 *
 * Calculateur de devis
 * @author 2S3i.com
 */
if (typeof Poly9 == 'undefined')
 var Poly9 = {};

Poly9.URLParser = function(url) {
 this._fields = {'Username' : 4, 'Password' : 5, 'Port' : 7, 'Protocol' : 2, 'Host' : 6, 'Pathname' : 8, 'URL' : 0, 'Querystring' : 9, 'Fragment' : 10};
 this._values = {};
 this._regex = null;
 this.version = 0.1;
 this._regex = /^((\w+):\/\/)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(\w*)/;
 for(var f in this._fields)
  this['get' + f] = this._makeGetter(f);
 if (typeof url != 'undefined')
  this._parse(url);
}

Poly9.URLParser.prototype.setURL = function(url) {
  this._parse(url);
}

Poly9.URLParser.prototype._initValues = function() {
   for(var f in this._fields)
   this._values[f] = '';
}

Poly9.URLParser.prototype._parse = function(url) {
  this._initValues();
  var r = this._regex.exec(url);
  if (!r) throw "DPURLParser::_parse -> Invalid URL"
  for(var f in this._fields) if (typeof r[this._fields[f]] != 'undefined')
   this._values[f] = r[this._fields[f]];
}

Poly9.URLParser.prototype._makeGetter = function(field) {
 return function() {
  return this._values[field];
 }
}

var url = window.location;
var p = new Poly9.URLParser(url);
var url_load = p.getProtocol()+'://'+p.getHost();
// mettre ici l'url de retour
var url_reset = window.location;

(function($) {

aCountries = [
        ['1','AFGHANISTAN'],
        ['2','AFRIQUE DU SUD'],
        ['3','ALBANIE'],
        ['4','ALGERIE'],
        ['5','ALLEMAGNE'],
        ['6','ANDORRE'],
        ['7','ANGOLA'],
        ['8','ANTIGUA-ET-BARBUDA'],
        ['9','ARABIE SAOUDITE'],
        ['10','ARGENTINE'],
        ['11','ARMENIE'],
        ['12','AUSTRALIE'],
        ['13','AUTRICHE'],
        ['14','AZERBAIDJAN'],
        ['15','BAHAMAS'],
        ['16','BAHREIN'],
        ['17','BANGLADESH'],
        ['18','BARBADE'],
        ['19','BELGIQUE'],
        ['20','BELIZE'],
        ['21','BENIN'],
        ['22','BHOUTAN'],
        ['23','BIELORUSSIE'],
        ['24','BIRMANIE'],
        ['25','BOLIVIE'],
        ['26','BOSNIE-HERZEGOVINE'],
        ['27','BOTSWANA'],
        ['28','BRESIL'],
        ['29','BRUNEI'],
        ['30','BULGARIE'],
        ['31','BURKINA'],
        ['32','BURUNDI'],
        ['33','CAMBODGE'],
        ['34','CAMEROUN'],
        ['35','CANADA'],
        ['36','CAP-VERT'],
        ['37','CENTRAFRICAINE (REPUBLIQUE)'],
        ['38','CHILI'],
        ['39','CHINE'],
        ['40','CHYPRE'],
        ['41','COLOMBIE'],
        ['42','COMORES'],
        ['43','CONGO'],
        ['44','CONGO (REPUBLIQUE DEMOCRATIQUE)'],
        ['45','COREE (REPUBLIQUE DE)'],
        ['46','COREE (REPUBLIQUE POPULAIRE DEMOCRATIQUE DE)'],
        ['47','COSTA RICA'],
        ['48','COTE D\'IVOIRE'],
        ['49','CROATIE'],
        ['50','CUBA'],
        ['51','DANEMARK'],
        ['52','DJIBOUTI'],
        ['53','DOMINICAINE (REPUBLIQUE)'],
        ['54','DOMINIQUE'],
        ['55','EGYPTE'],
        ['56','EL SALVADOR'],
        ['57','EMIRATS ARABES UNIS'],
        ['58','EQUATEUR'],
        ['59','ERYTHREE'],
        ['60','ESPAGNE'],
        ['61','ESTONIE'],
        ['62','ETATS-UNIS'],
        ['63','ETHIOPIE'],
        ['64','EX-REPUBLIQUE YOUGOSLAVE DE MACEDOINE'],
        ['65','FIDJI'],
        ['66','FINLANDE'],
        ['67','FRANCE'],
        ['68','GABON'],
        ['69','GAMBIE'],
        ['70','GEORGIE'],
        ['71','GHANA'],
        ['72','GRECE'],
        ['73','GRENADE'],
        ['74','GUATEMALA'],
        ['75','GUINEE'],
        ['76','GUINEE EQUATORIALE'],
        ['77','GUINEE-BISSAU'],
        ['78','GUYANA'],
        ['79','HAITI'],
        ['80','HONDURAS'],
        ['81','HONGRIE'],
        ['82','INDE'],
        ['83','INDONESIE'],
        ['84','IRAN'],
        ['85','IRAQ'],
        ['86','IRLANDE'],
        ['87','ISLANDE'],
        ['88','ISRAEL'],
        ['89','ITALIE'],
        ['90','JAMAIQUE'],
        ['91','JAPON'],
        ['92','JORDANIE'],
        ['93','KAZAKHSTAN'],
        ['94','KENYA'],
        ['95','KIRGHIZISTAN'],
        ['96','KIRIBATI'],
        ['97','KOWEIT'],
        ['98','LAOS'],
        ['99','LESOTHO'],
        ['100','LETTONIE'],
        ['101','LIBAN'],
        ['102','LIBERIA'],
        ['103','LIBYE'],
        ['104','LIECHTENSTEIN'],
        ['105','LITUANIE'],
        ['106','LUXEMBOURG'],
        ['107','MADAGASCAR'],
        ['108','MALAISIE'],
        ['109','MALAWI'],
        ['110','MALDIVES'],
        ['111','MALI'],
        ['112','MALTE'],
        ['113','MAROC'],
        ['114','MARSHALL (ILES)'],
        ['115','MAURICE'],
        ['116','MAURITANIE'],
        ['117','MEXIQUE'],
        ['118','MICRONESIE (ETATS FEDERES DE)'],
        ['119','MOLDAVIE'],
        ['120','MONACO'],
        ['121','MONGOLIE'],
        ['122','MONTENEGRO'],
        ['123','MOZAMBIQUE'],
        ['124','NAMIBIE'],
        ['125','NAURU'],
        ['126','NEPAL'],
        ['127','NICARAGUA'],
        ['128','NIGER'],
        ['129','NIGERIA'],
        ['130','NORVEGE'],
        ['131','NOUVELLE-ZELANDE'],
        ['132','OMAN'],
        ['133','OUGANDA'],
        ['134','OUZBEKISTAN'],
        ['135','PAKISTAN'],
        ['136','PALAOS (ILES)'],
        ['137','PANAMA'],
        ['138','PAPOUASIE-NOUVELLE-GUINEE'],
        ['139','PARAGUAY'],
        ['140','PAYS-BAS'],
        ['141','PEROU'],
        ['142','PHILIPPINES'],
        ['143','POLOGNE'],
        ['144','PORTUGAL'],
        ['145','QATAR'],
        ['146','ROUMANIE'],
        ['147','ROYAUME-UNI'],
        ['148','RUSSIE'],
        ['149','RWANDA'],
        ['150','SAINT-CHRISTOPHE-ET-NIEVES'],
        ['151','SAINTE-LUCIE'],
        ['152','SAINT-MARIN'],
        ['153','SAINT-VINCENT-ET-LES GRENADINES'],
        ['154','SALOMON (ILES)'],
        ['155','SAMOA OCCIDENTALES'],
        ['156','SAO TOME-ET-PRINCIPE'],
        ['157','SENEGAL'],
        ['158','SERBIE'],
        ['159','SEYCHELLES'],
        ['160','SIERRA LEONE'],
        ['161','SINGAPOUR'],
        ['162','SLOVAQUIE'],
        ['163','SLOVENIE'],
        ['164','SOMALIE'],
        ['165','SOUDAN'],
        ['166','SRI LANKA'],
        ['167','SUEDE'],
        ['168','SUISSE'],
        ['169','SURINAME'],
        ['170','SWAZILAND'],
        ['171','SYRIE'],
        ['172','TADJIKISTAN'],
        ['173','TANZANIE'],
        ['174','TCHAD'],
        ['175','TCHEQUE (REPUBLIQUE)'],
        ['176','THAILANDE'],
        ['177','TIMOR ORIENTAL'],
        ['178','TOGO'],
        ['179','TONGA'],
        ['180','TRINITE-ET-TOBAGO'],
        ['181','TUNISIE'],
        ['182','TURKMENISTAN'],
        ['183','TURQUIE'],
        ['184','TUVALU'],
        ['185','UKRAINE'],
        ['186','URUGUAY'],
        ['187','VANUATU'],
        ['188','VATICAN, ou SAINT-SIEGE'],
        ['189','VENEZUELA'],
        ['190','VIET NAM'],
        ['191','YEMEN'],
        ['192','ZAMBIE'],
        ['193','ZIMBABWE']
       ];

$.fn.generateFormDevis = function() {
  $(this)
    .empty().append('<div id="doc" class="yui-t7"></div>');
  $('#doc')
    .append('<form id="md-form-devis" method="post" action="http://www.misterdemenagement.com/frontend_dev.php/devis/savePartenaire">'+"\n"
         +'<div id="block_client" class="clearfix">'+"\n"
         +'<h3>Information client</h3>'+"\n"
         +'<div class="column two_columns">'+"\n"
         +'<p id="p-civilite"></p>'+"\n"
         +'<p id="p-nom"></p>'+"\n"
         +'<p id="p-prenom"></p>'+"\n"
         +'</div>'+"\n"
         +'<div id="block_client_contact" class="column two_columns">'+"\n"
         +'<p id="p-tel"></p>'+"\n"
         +'<p id="p-email"></p>'+"\n"
         +'</div>'+"\n"
         +'</div>'+"\n"
         +'<div id="block_devis" class="clearfix">'+"\n"
         +'<h3>D&#233;m&#233;nagement</h3>'+"\n"
         +'<p id="p-volume"></p>'+"\n"
         +'<p id="p-periode"></p>'+"\n"
         +'<p id="p-service"></p>'+"\n"
         +'<p>Retrouvez &#224; quoi correspondent les diff&#233;rents niveaux de prestation '
         +'<a target="_blank" style="color: #000;" href="http://www.misterdemenagement.com/service-demenagement.html">ici</a></p>'
         +'</div>'+"\n"
         +'<div class="clearfix">'+"\n"
         +'<div id="block_depart" class="column two_columns">'+"\n"
         +'<h3>Adresse de d&#233;part</h3>'+"\n"
         +'<p id="p-adresse-depart"></p>'+"\n"
         +'<p id="p-ville-depart"></p>'+"\n"
         +'<p id="p-code-postal-depart"></p>'+"\n"
         +'<p id="p-pays-depart"></p>'+"\n"
         +'<p id="p-etage-depart"></p>'+"\n"
         +'<p id="p-ascenceur-depart"></p>'+"\n"
         +'</div>'+"\n"
         +'<div id="block_arrive" class="column two_columns">'+"\n"
         +'<h3>Adresse d\'arriv&#233;e</h3>'+"\n"
         +'<p id="p-adresse-arrivee"></p>'+"\n"
         +'<p id="p-ville-arrivee"></p>'+"\n"
         +'<p id="p-code-postal-arrive"></p>'+"\n"
         +'<p id="p-pays-arrive"></p>'+"\n"
         +'<p id="p-etage-arrive"></p>'+"\n"
         +'<p id="p-ascenceur-arrive"></p>'+"\n"
         +'</div>'+"\n"
         +'</div>'+"\n"
         +'<h3>Commentaires ou informations diverses </h3>'+"\n"
         +'<p id="p-free-commentaires"></p>'+"\n"
         +'<p id="btn_submit_devis"><input type="submit" value="Envoyer ma demande" /></p>'+"\n"
         +'<p id="info_devis">(* Les informations suivies d\'une \u00E9toile sont obligatoires pour que les demenageurs puissent traiter votre demande.)</p>'+"\n"
         +'</form>'+"\n"
  );

  $('#p-civilite')
    .label({ forname: 'civilite', textlabel: 'Civilit&#233; *', classname: 'size_normal required' })
    .select({ name: 'civilite', id: 'civilite', defaultValue: '', data: { 'items': [['1', 'Monsieur'], ['2', 'Madame'], ['3', 'Mademoiselle']] } });

  $('#p-nom')
    .label({ forname: 'nom', textlabel: 'Nom *', classname: 'size_normal required' })
    .text_field({ name: 'nom', id: 'nom', defaultValue: '', classname: 'text text_size_normal' });
    
  $('#p-prenom')
    .label({ forname: 'prenom', textlabel: 'Pr&#233;nom', classname: 'size_normal' })
    .text_field({ name: 'prenom', id: 'prenom', defaultValue: '', classname: 'text text_size_normal' });

  $('#p-tel')
    .label({ forname: 'tel', textlabel: 'T&#233;l&#233;phone *', classname: 'size_normal required' })
    .text_field({ name: 'tel', id: 'tel', defaultValue: '', classname: 'text text_size_normal' });

  $('#p-email')
    .label({ forname: 'email', textlabel: 'Email *', classname: 'size_normal required' })
    .text_field({ name: 'email', id: 'email', defaultValue: '', classname: 'text text_size_normal' });
  
  $('#p-volume')
      .label({ forname: 'volume', textlabel: 'Volume (en m&#179;)*', classname:"size_normal required" })
      .text_field({ name: 'volume', id: 'volume', defaultValue: '0', classname: 'text text_size_small' });

  $('#p-periode')
    .label({ forname: 'du', textlabel: 'P&#233;riode du :', classname:"size_normal required" })
    .text_field({ name: 'du', id: 'du', defaultValue: '', classname: 'input_datepicker text text_size_small left' })
    .label({ forname: 'au', textlabel: 'Au :', classname:"size_small required" })
    .text_field({ name: 'au', id: 'au', defaultValue: '', classname: 'input_datepicker text text_size_small' });

  $('#p-service')
    .label({ forname: 'service', textlabel: 'Niveau de service', classname:"size_normal" })
    .select({ name: 'service', id: 'service', defaultValue: '2', data: { 'items': [['1', 'Economique'], ['2', 'Standard'], ['3', 'Luxe']] } });
    
  $('#p-adresse-depart')
    .label({ forname: 'adresse-depart', textlabel: 'Adresse', classname:"size_normal" })
    .text_field({ name: 'adressedepart', id: 'adresse-depart', defaultValue: '', classname: 'text text_size_normal' });

  $('#p-ville-depart')
    .label({ forname: 'ville-depart', textlabel: 'Ville *', classname:"size_normal required" })
    .text_field({ name: 'villedepart', id: 'ville-depart', defaultValue: '', classname: 'text text_size_normal' });

  $('#p-code-postal-depart')
    .label({ forname: 'code-postal-depart', textlabel: 'Code postal *', classname:"size_normal required" })
    .text_field({ name: 'codepostaldepart', id: 'code-postal-depart', defaultValue: '', classname: 'text text_size_medium' });

  $('#p-pays-depart')
    .label({ forname: 'pays-depart', textlabel: 'Pays', classname:"size_normal" })
    .select({ name: 'paysdepart', id: 'pays-depart', defaultValue: '67', data: { 'items': aCountries }, classname: 'text_size_normal' });

  $('#p-etage-depart')
    .label({ forname: 'etage-depart', textlabel: 'Etage', classname:"size_normal" })
    .text_field({ name: 'etagedepart', id: 'etage-depart', classname: 'text text_size_medium' });

  $('#p-ascenceur-depart')
    .label({ forname: 'ascenceur-depart', textlabel: 'Ascenseur', classname:"size_normal" })
    .select({ name: 'ascenceurdepart', id: 'ascenceur-depart', data: { 'items': [['true', 'Oui'], ['false', 'Non']] } });

  $('#p-adresse-arrivee')
    .label({ forname: 'adresse-arrivee', textlabel: 'Adresse', classname:"size_normal" })
    .text_field({ name: 'adressearrivee', id: 'adresse-arrivee', defaultValue: '', classname: 'text text_size_normal' });

  $('#p-ville-arrivee')
    .label({ forname: 'ville-arrivee', textlabel: 'Ville *', classname:"size_normal required" })
    .text_field({ name: 'villearrivee', id: 'ville-arrivee', defaultValue: '', classname: 'text text_size_normal' });

  $('#p-code-postal-arrive')
    .label({ forname: 'code-postal-arrive', textlabel: 'Code postal *', classname:"size_normal required" })
    .text_field({ name: 'codepostalarrive', id: 'code-postal-arrive', defaultValue: '', classname: 'text text_size_medium' });

  $('#p-pays-arrive')
    .label({ forname: 'pays-arrive', textlabel: 'Pays', classname:"size_normal" })
    .select({ name: 'paysarrive', id: 'pays-arrive', defaultValue: '67', data: { 'items': aCountries }, classname: 'text_size_normal' });

  $('#p-etage-arrive')
    .label({ forname: 'etage-arrive', textlabel: 'Etage', classname:"size_normal" })
    .text_field({ name: 'etagearrive', id: 'etage-arrive', classname: 'text text_size_medium' });

  $('#p-ascenceur-arrive')
    .label({ forname: 'ascenceur-arrive', textlabel: 'Ascenseur', classname:"size_normal" })
    .select({ name: 'ascenceurarrive', id: 'ascenceur-arrive', data: { 'items': [['true', 'Oui'], ['false', 'Non']] } });

  $('#p-ascenceur-arrive')
  .hidden_field({ name: 'partenaire', id: 'partenaire', defaultValue: url_load })
  .hidden_field({ name: 'referer', id: 'referer', defaultValue: url_reset });
  
  $('#p-free-commentaires')
    .text_area({ name: 'commentaire', id: 'commentaire', rows: '4', cols: '80' });

  $('#md-form-devis')
  .submit( function() {

    var msg = 'Attention il existe des erreurs dans le formulaire';
    var not_error = true;

    var num_pattern = /(\d+[^a-zA-Z]{0})/;
    var date_pattern = /(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/(19\d{2}|20\d{2})/;
    var email_pattern = /([^@\s]+)@(([-a-z0-9]+\.)+[a-z]{2,})/;


    volume_val = $.trim($('#volume').val());
    if (volume_val == '')
    {
      msg += "\n"+'Le champ volume est requis';
      not_error = false;
    }

    if ($('#service').val() == '')
    {
      msg += "\n"+'Le champ service est requis';
      not_error = false;
    }

    if (!num_pattern.test(volume_val))
    {
      msg += "\n"+'La champ volume doit \u00EAtre un nombre';
      not_error = false;
    }

    if ($('#du').val() == '' || $('#au').val() == '')
    {
      msg += "\n"+'Les dates de p\u00e9riode sont obligatoire';
      not_error = false;
    }

    if (!date_pattern.test($('#du').val()))
    {
      msg += "\n"+'Format de la date de d\u00e9but incorrect (jj/mm/aaaa)';
      not_error = false;
    }

    if (!date_pattern.test($('#au').val()))
    {
      msg += "\n"+'Format de la date de fin incorrect (jj/mm/aaaa)';
      not_error = false;
    }

    if ($('#civilite').val() == '')
    {
      msg += "\n"+'Le champ civilit\u00e9 est requis';
      not_error = false;
    }

    if ($('#nom').val() == '')
    {
      msg += "\n"+'Le champ nom est requis';
      not_error = false;
    }

    if ($('#tel').val() == '')
    {
      msg += "\n"+'Le num\u00e9ro de t\u00e9l\u00e9phone est requis';
      not_error = false;
    }

    if ($('#email').val() == '')
    {
      msg += "\n"+'Le champ email est requis';
      not_error = false;
    }

    if (!email_pattern.test($('#email').val()))
    {
      msg += "\n"+'Format de l\'email incorrect';
      not_error = false;
    }

    if ($('#ville-depart').val() == '')
    {
      msg += "\n"+'Le champ ville de d\u00e9part est requis';
      not_error = false;
    }

    if ($('#code-postal-depart').val() == '' && $('#pays-depart').val() == '67' )
    {
      msg += "\n"+'Le champ code postal de d\u00e9part est requis pour la France';
      not_error = false;
    }

    if ($('#ville-arrivee').val() == '')
    {
      msg += "\n"+'Le champ ville d\'arriv\u00e9e est requis';
      not_error = false;
    }

    if ($('#code-postal-arrive').val() == '' && $('#pays-arrive').val() == '67' )
    {
      msg += "\n"+'Le champ code postal d\'arriv\u00e9e est requis pour la France';
      not_error = false;
    }
    if (!not_error)
    {
      alert(msg);
      return false;

    }
    else
    {
      return true;
    }
  });
};

$(document).ready( function() {
  if ($('#md-wrapper'))
  {
    if (p.getQuerystring().indexOf('type=ok')>=0)
    {
      $('#md-wrapper')
      .empty().append('<div id="doc" class="yui-t7"></div>');
      $('#doc').prepend('<p class="success">Madame, Monsieur,<br />Votre demande \u00e0 bien \u00e9t\u00e9 prise en compte, vous allez recevoir dans les 24 hrs un ou plusieurs devis provenant de nos partenaires.<br />Pour votre information nos partenaires sont juridiquement et financi\u00e8rement ind\u00e9pendants de notre site.<br /><a href="http://www.cooldem.com/">Retour \u00e0 l\'accueil du site</a>.</p>');

    }
    else
    {
      $('#md-wrapper').generateFormDevis();
    }
  }
  if ($('.input_datepicker')) {
    $.datepicker.setDefaults({speed: 'fast'});
    $('.input_datepicker').datepicker();
  }
});
})(jQuery);