/* VARS */

var magasin_input;
var date_input;

/* ONLOAD */

$(document).ready(function(){
    
    /* FORM */

    magasin_input = $('[name=id_magasin]');
    date_input = $('#date_debut');
    
    var proxy_url = '/proxy.php';
    var twinner_url = 'http://location-ski.twinner-sports.com';
    
    magasin_input.change(function()
    {
        dateLoading();
    	$.ajax({
        	url: proxy_url+'?url='+twinner_url+"/rent/etape1/get_dates_availables/"+$('[name=id_station]').val()+"/"+$('[name=id_magasin]').val(),
        	dataType: 'JSON',
        	success: function(data){
                initDatePicker(data.contents.globalDateMin, data.contents.globalDateMax, data.contents.DatesForbidden);
                dateEnable();
            },
        	error: function(data){
            	// If error, enable all dates
                initDatePicker("01/01/1970", "01/01/2020", []);
                dateEnable();
            }
        });
    });
    magasin_input.change();
    
    /* COLORBOX */
    
    $('[rel$=imagebox-tw]').colorbox({
    	transition: 'none',
    	initialWidth: 100,
    	initialHeight: 100,
    	returnFocus: false,
    	scrolling: false,
    	current: false
    });
    
});

/* FUNCTIONS */

function dateLoading()
{
    date_input.addClass('loading');
}

function dateEnable()
{
    date_input.attr('disabled', false);
    date_input.removeClass('loading');
}

function dateDisable()
{
    date_input.addClass('disabled', 'disabled');
}

function initDatePicker(dateDebut , dateFin, bookedDays)
{
	$.datepicker.regional['fr'] = {
		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']
	}
	
	$.datepicker.regional['nl'] = {
		monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
		monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
		dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
		dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
		dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za']
	};
	
	$.datepicker.regional['es'] = {
		monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
		monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', 'Jul','Ago','Sep','Oct','Nov','Dic'],
		dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
		dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
		dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;']
	};
	
    $('#debut .datepicker').unbind('keydown').datepicker( "destroy" );

    function isAvailable(date)
	{
		var dateAsString =   ('0'+(date.getDate())).slice(-2) + "/" + ('0'+(date.getMonth()+1)).slice(-2) + "/" + date.getFullYear().toString();
		return $.inArray( dateAsString, bookedDays ) ==-1 ? [true] : [false];
	}
	
    date_input
	.datepicker({
		numberOfMonths: 3,
        minDate: dateDebut,
        maxDate: dateFin,
        beforeShowDay: isAvailable,
        altField: '#date_debut',
        dateFormat: 'dd/mm/yy',
        altFormat: 'dd/mm/yy',
        firstDay: 1
    })
    .keydown(function (event) {
        $.datepicker.customKeyPress(event);
    });
    
	$.datepicker.setDefaults($.datepicker.regional[$('#quick-resa').attr('calandar_lang')]); 
}

// Allow use of arrow keys in Datepicker
$.extend($.datepicker,{
    customKeyPress: function (event)
    {
        var inst = $.datepicker._getInst(event.target);
        switch(event.keyCode)
        {
            // Left
            case 37:
                $.datepicker._adjustDate(event.target, -1, 'D');
                event.preventDefault();
            break;

            // Up
            case 38:
                $.datepicker._adjustDate(event.target, -7, 'D');
                event.preventDefault();
            break;

            // Right
            case 39:
                $.datepicker._adjustDate(event.target, +1, 'D');
                event.preventDefault();
            break;

            // Down
            case 40:
                $.datepicker._adjustDate(event.target, +7, 'D');
                event.preventDefault();
            break;
        }
    }
});
