﻿//<![CDATA[
crearSlider = function (idSlider, idSelectorMin, idSelectorMax, idSliderInfo, valorMin, valorMax, callback, anchoSlider, anchoSelector) {
    YAHOO.namespace('mundial');
    YAHOO.mundial.valorMin = valorMin;
    YAHOO.mundial.valorMax = valorMax;
    YAHOO.mundial.actualizarSlider = true;
    // Parametros
    // Tamano del paso
    var paso = 1;
    // Distancia minima entre selectores (px)
    var distanciaMinima = 1;
    var timer = null;
    var primeraEjecucion = true;
    var Dom = YAHOO.util.Dom;
    // El rango en pixeles es el ancho de la imagen de fondo (195px) menos el ancho del selector derecho (15px)
    var limiteInferior = 0;
    var limiteSuperior = anchoSlider - anchoSelector;
    // Valores iniciales
    var rangoInicial = [limiteInferior, limiteSuperior];
    // Slider set up is done when the DOM is ready
    YAHOO.util.Event.onDOMReady(function () {
        // Crear el DualSlider
        var sliderPrecios = Dom.get(idSlider), sliderPreciosInfo = Dom.get(idSliderInfo);
        var slider = YAHOO.widget.Slider.getHorizDualSlider(sliderPrecios, idSelectorMin, idSelectorMax, limiteSuperior, paso, rangoInicial);
        slider.minRange = distanciaMinima;
        // Funcion para converir el valor seleccionado del slider a la escala determinadas por valorMin y valorMax
        var convertir = function(valor) {
            return YAHOO.mundial.valorMin + ( (YAHOO.mundial.valorMax-YAHOO.mundial.valorMin) / (limiteSuperior-limiteInferior) ) * valor;
        };
        // Evento invocado al producirse un cambio en algun selector
        var actualizar = function () {

            var min = parseInt(convertir(slider.minVal)), max = parseInt(convertir(slider.maxVal));
            Catalogo.PrecioMin = min;
            Catalogo.PrecioMax = max;
            sliderPrecios.title  = currency(min) + " - " + currency(max);
            sliderPreciosInfo.innerHTML = currency(min) + " - " + currency(max);
            if(min != max)
            {
                // Disparar postback
                if(timer != null)
                    clearTimeout(timer);
                if(!primeraEjecucion)
                    timer = setTimeout(callback, 1000);
                primeraEjecucion = false;
            }
        };
        // Registrar eventos
        slider.subscribe('ready', actualizar);
        slider.subscribe('change', actualizar);
        YAHOO.mundial.slider = slider;
    });
};

function actualizarSliderPrecios(valorMin, valorMax, seleccionadoMin, seleccionadoMax)
{
    // Reposiciona los limites y valores seleccionados del slider de precios
    var minValue = Math.round((180*(seleccionadoMin-valorMin)) / (valorMax-valorMin));
    var maxValue = Math.round((180*(seleccionadoMax-valorMin)) / (valorMax-valorMin));
    minValue = (minValue < 0) ? 0 : minValue;
    maxValue = (maxValue > 180) ? 180 : maxValue;
    var actualizar = (YAHOO.mundial.slider.minVal == minValue && YAHOO.mundial.slider.maxVal == maxValue);
    YAHOO.mundial.slider.setMinValue(minValue);
    YAHOO.mundial.slider.setMaxValue(maxValue);
    YAHOO.mundial.valorMin=valorMin;
    YAHOO.mundial.valorMax=valorMax;
    if(actualizar)
        YAHOO.mundial.slider.fireEvent('change');
}
//]]>