﻿var today = new Date(); 
    var newday = new Date(today.getTime() + 86400000); 
    var dayplus = 1;
    var monthLengths = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

        jQuery(function($){
        $.datepicker.regional['fr'] = {
            closeText: 'Fermer',
            prevText: '&#x3c;Préc',
            nextText: 'Suiv&#x3e;',
            currentText: 'Courant',
			numberOfMonths: 2,
			monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
            monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
            'Jul','Aoû','Sep','Oct','Nov','Déc'],
            dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
            dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
            dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
            dateFormat: 'dd/mm/yy', firstDay: 1,
            isRTL: false};
        $.datepicker.setDefaults($.datepicker.regional['fr']);
    }); 

    function SetDays(Days, Date)
    {
        date = Date.getDate();
        $(Days).children().remove();
         
        for(i = 1; i < monthLengths[Date.getMonth()] + 1; i++)
        {         
            value = ( i < 10 ) ?  '0' + i : '' + i;
            
            if(i == date) $(Days).append('<option value="' + value + '" selected ="selected">' + i + '</option>');
            else $(Days).append($('<option>').attr('value', value).html(i));
        } 
    }
    
    function SetMonths(Months, Date)
    {
        $(Months).children().remove();
        for(i = Date.getMonth() + 1; i < Date.getMonth() + 13; i++)
        {
            Year = Date.getFullYear();
            if (i > 12) { Year = Year + 1; Month = $.datepicker.regional['fr']['monthNames'][i - 13];   
            } else { Month = $.datepicker.regional['fr']['monthNames'][i - 1]; }
            
            if (i < 10) out = Year + '0' + i;
            else if (i > 12) { out = i - 12; out = Year + '0' + out; }
            else out = Year + '' + i;
            
            $(Months).append($('<option>').attr('value', out).html(Month + ' ' + Year.toString().substr(2,2))); 
        }
    }  
    
    function ChangeMonth()
    {
        newday = new Date( parseInt($("#d_month").val().slice(0,4), 10), parseInt($("#d_month").val().slice(4,6), 10) - 1, $("#d_day").val());
        SetDays('#d_day', newday);
        SetDays('#r_day', newday);
        SetMonths('#r_month', newday);
        
        dayplus = Math.round((newday.getTime() - today.getTime()) / 86400000) + 1;
        $('#r_calendar').datepicker('option', {minDate: dayplus, maxDate: 363 + dayplus});   
    }
    function ChangeRMonth () {
    	newday = new Date( parseInt($("#r_month").val().slice(0,4), 10), parseInt($("#r_month").val().slice(4,6), 10) - 1, $("#r_day").val());
        SetDays('#r_day', newday);
    }
    
  function subForm(){
  }

    $(function() {
        $(document).ready(function(){
            SetDays('#d_day', newday);
            SetDays('#r_day', newday);
            SetMonths('#d_month', newday);
            SetMonths('#r_month', newday);
		setTimeout('subForm()', 1000);
        });
        
          $.datepicker.setDefaults($.extend($.datepicker.regional["fr"]));

        $("#d_calendar").datepicker({    
            dateFormat: 'dd/mm/yy', minDate: dayplus, maxDate: 363 + dayplus, firstDay: 1,
			
            onSelect: function(datetext){
                $("#d_day option[value='"+datetext.slice(0,2)+"']").attr('selected', true);
                $("#d_month option[value='"+datetext.slice(6,10)+datetext.slice(3,5)+"']").attr('selected', true);
                ChangeMonth();
            },
            beforeShow: function() {
                $(this).val($("#d_day").val()+"/"+$("#d_month").val().slice(4,6)+"/"+$("#d_month").val().slice(0,4));
            }
        });
        
        $("#r_calendar").datepicker({
            dateFormat: 'dd/mm/yy', minDate: dayplus, maxDate: 363 + dayplus, firstDay: 1,         
            onSelect: function(datetext){
                newday = Date( datetext.slice(6,10), datetext.slice(3,5) - 1, datetext.slice(0,2) - 1);
                $("#r_day option[value='"+datetext.slice(0,2)+"']").attr('selected', true);
                $("#r_month option[value='"+datetext.slice(6,10)+datetext.slice(3,5)+"']").attr('selected', true);
            },
            beforeShow: function() {
                $(this).val($("#r_day").val()+"/"+$("#r_month").val().slice(4,6)+"/"+$("#r_month").val().slice(0,4));
            }
        });
        
        $("input[name='TripType']").change(function(){
             switch ($(this).val()) {
                case '1':
                    $('#r_day').attr('disabled', true); $('#r_month').attr('disabled', true); $('#r_calendar').attr('disabled', true);
                    break;
                default:
                    $('#r_day').removeAttr('disabled'); $('#r_month').removeAttr('disabled'); $('#r_calendar').removeAttr('disabled');
            }
        });
		
        $("#d_month").change(function(){ ChangeMonth(); }); 
        $("#d_day").change(function(){ ChangeMonth(); });
        $("#r_month").change(function(){ ChangeReturn(); ChangeRMonth(); });        
        $("#r_day").change(function(){ ChangeReturn(); });      
		
		$("#form").submit(function() { 
        if(parseInt($("#d_day").val(), 10) > parseInt($('#r_day').val(), 10)   
            && (parseInt($("#d_month").val().slice(4,6), 10) >= parseInt($("#r_month").val().slice(4,6), 10)) 
            && (parseInt($("#d_month").val().slice(0,4), 10) >= parseInt($("#r_month").val().slice(0,4), 10)))
        {
            alert('Votre date de retour est antérieure à votre date de départ.');
            $("#r_day option[value='" + $('#r_day').val() + "']").removeAttr('selected');
            $("#r_day option[value='" + $("#d_day").val() + "']").attr('selected', true);
			return false;
		}
            else return true;
		});
        
        $("#form").submit(function() {
            if ($("#de").val().indexOf("[") == -1 || $("#A").val().indexOf("[") == -1) {
                alert("Merci de préciser votre ville de départ et d'arrivée");
                return false;
            }
            else return true;
        });      
    });
	