﻿// ============================================================================================================
// global.js: RUTINAS DE INTERACTIVIDAD CLIENTE DE LA PLANTILLA GENERAL DEL SITIO
//            Requiere '/js/common.js'
// ============================================================================================================
// ------------------------------------------------------------------------------------------------------------
// El objeto pageSettingsHandler envuelve propiedades de la página, que configuran su 'look&feel'
// ------------------------------------------------------------------------------------------------------------
var pageSettings,pageSettingsHandler = {
    init: function(pageSettings) {
        // Inicialización de la visualización/ocultación del formulario de reservas
        if (pageSettings.hideBookingForm) $('#bookingForm h4').click();
        // Incorporación de oficina de recogida predeterminada
        if (pageSettings.defaultPickUp != undefined) $('.office-pickup').val(pageSettings.defaultPickUp);
        // Incorporación de oficina de devolución predeterminada
        if (pageSettings.defaultReturn != undefined) $('.office-return').val(pageSettings.defaultReturn);
        // Incorporación de modelo de coche predeterminado
        if (pageSettings.defaultCar != undefined) $('.car-model').val(pageSettings.defaultCar);
        // Incorporación de fecha de recogida predeterminada
        if (pageSettings.defaultPickDate != undefined) $('.date-pickup').val(pageSettings.defaultPickDate);
        // Incorporación de fecha de devolución predeterminada
        if (pageSettings.defaultReturnDate != undefined) $('.date-return').val(pageSettings.defaultReturnDate);
    }
}
// ------------------------------------------------------------------------------------------------------------
// La rutina de inicio de JQUERY contiene los inicializadores de las rutinas y elementos dinámicos de la
// página: El manejador para mostrar/ocultar el formulario lateral de reservas y la instancia de 'pageSettings'
// que configura el manejador de propiedades de la plantilla (pageSettingsHandler).
// ------------------------------------------------------------------------------------------------------------
$(function() {
    // Manejador de eventos para persianas de login de clientes y usuarios y formulario de reservas lateral (master)
    $("#bookingForm h4").slideHiddenContent('div#bookingForm fieldset.fieldset-bookings', 'mask');

    // Representación del icono adecuado para el widget Addthis
    $(".bookmark img").attr('src', 'http://s7.addthis.com/static/btn/lg-share-' + addthis_language + '.gif');

    // Asignación de Calendario utilizando class="datapicker" en todos los input de calendarios con el idioma correspondiente
    $.datepicker.setDefaults($.extend({ showButtonPanel: true }, $.datepicker.regional[addthis_language]));
    $('.datepicker').datepicker({ numberOfMonths: 2, showButtonPanel: true, isRTL: false,
        onClose: function(date, sender) 
	    {
	    if (date=="")
            { //Si no ha seleccionado nada, no hace nada.
                return;
            }
            if (addthis_language=="sv")
            {
                var newDate = new Date($.datepicker.parseDate('yy-mm-dd', date));
                
            }
            if (addthis_language=="de")
            {
                var newDate = new Date($.datepicker.parseDate('dd.mm.yy', date));
            }
            if ((addthis_language!="sv") && (addthis_language!="de"))
            {
                var newDate = new Date($.datepicker.parseDate('dd/mm/yy', date));
            }
            if ($('.datepicker').index(this) == 0) {
                $('.datepicker:last').datepicker('option', 'minDate', newDate);
            }
            else {
                $('.datepicker:first').datepicker('option', 'maxDate', newDate);
            }
        }
    });
    
    // Gestión de propiedades de página
    if (pageSettings) pageSettingsHandler.init(pageSettings);

    // Preseleccionamos el enlace lateral que se corresponda con la página cargada actualmente
    $('.left-content li a').each(function(index, obj) { if (document.location.href.match($(obj).attr('href'))) $(obj).parent('li').addClass('selected');});

    // Gestión de persianas desplegables
    slideBlinds.init();
});
// ------------------------------------------------------------------------------------------------------------
// El manejador slideBlinds gestiona los dos desplegables de enlaces, para mostrar u ocultar de acuerdo al mouseover
// ------------------------------------------------------------------------------------------------------------
var slideInterval,slideBlinds = {
    init: function() {
        $('#navBar .nav-cars a').mouseover(function() { $('#navCarRange').slideDown(); $(this).addClass('hover'); });
        $('#navBar .nav-rental a').mouseover(function() { $('#navServicePoints').slideDown(); $(this).addClass('hover'); });

        $('#navCarRange a, #navServicePoints h4, #navServicePoints a').mouseover(function() { $(this).addClass('hover'); });
        //$('#navCarRange a, #navServicePoints h4, #navServicePoints a').mouseout(function() { $(this).removeClass('hover'); });

        $('#navBar .nav-cars a, #navCarRange a').mouseout(function() {
            $(this).removeClass('hover');
            slideInterval = setTimeout(function() {
                if ($('#navCarRange .hover, #navBar .nav-cars a.hover').length <= 0) $('#navCarRange').slideUp();
                clearTimeout(slideInterval);
            }, 500);
        });

        $('#navBar .nav-rental a, #navServicePoints h4, #navServicePoints a').mouseout(function() {
            $(this).removeClass('hover');
            slideInterval = setTimeout(function() {
                if ($('#navServicePoints .hover, .nav-rental a.hover').length <= 0) $('#navServicePoints').slideUp(function() { $(this).find('ul.inner-service-points').hide(); });
                clearTimeout(slideInterval);
            }, 500);
        });

        $('#navServicePoints ul.inner-service-points').hide();
        $('#navServicePoints h4').click(function() { $(this).next('ul.inner-service-points').slideToggle(); });
    }
}