﻿var slider;
var offsetLeft = 8;    //offset del background a sinistra
var yearSpan = 0; //lunghezza in anni del perdiodo temporale della barra
var  bkgndStep = 15;
var effectiveLenght = 300;


//iStartYear = anno minimo della barra
//iEndYear = anno massimo della barra
//iInitYear1 = anno iniziale dello slider minimo
//iInitYear2 = anno iniziale dello slider massimo
function sliderInit(iStartYear, iEndYear, iInitYear1, iInitYear2)
{ 
    var Dom = YAHOO.util.Dom;
    var divPeriodoDal = Dom.get("divPeriodoDal");
    var divPeriodoAl = Dom.get("divPeriodoAl");

    
    var initPos = new Array();
    yearSpan = iEndYear - iStartYear;
    var cf = yearSpan / effectiveLenght;   /*fattore di conversione*/
    initPos[0] = Math.round((iInitYear1 - iStartYear) / cf);
    initPos[1] = Math.round((iInitYear2 - iStartYear) / cf);
    
    //set position to zero to fix bug  with back browser
    var minthumb = Dom.get("minthumb");
    Dom.setStyle(minthumb,'left', '0px');
    var maxthumb = Dom.get("maxthumb");
    Dom.setStyle(maxthumb,'left', '0px');
    
    slider = YAHOO.widget.Slider.getHorizDualSlider("sliderbg", "minthumb", "maxthumb", effectiveLenght, 0, initPos);
    slider.minRange = -11;    /*minima distanza tra i due thumb, messa un pò a occhio*/
    
    var _span_highlight = Dom.get("span_highlight");
    Dom.setStyle(_span_highlight,'left', initPos[0] + offsetLeft + 'px');
    Dom.setStyle(_span_highlight,'background-position', (-(initPos[0]) % bkgndStep) + 'px 0');
    Dom.setStyle(_span_highlight,'width', Math.max(initPos[1] - initPos[0], 0) + 'px');
    
    
    divPeriodoDal.innerHTML = iInitYear1;
    var hdnMinYear = Dom.get("ctl00_PlaceHolderMain_hdnMinYear");
    if (hdnMinYear)
        hdnMinYear.value = iInitYear1;
        
  
    divPeriodoAl.innerHTML = iInitYear2;
    var hdnMaxYear = Dom.get("ctl00_PlaceHolderMain_hdnMaxYear");
    if (hdnMaxYear)
        hdnMaxYear.value = iInitYear2;
                    
    
    // Decorate the DualSlider instance with some new properties and
    // methods to maintain the highlight element
    YAHOO.lang.augmentObject(slider, {
        _highlight : Dom.get("span_highlight"),

        updateHighlight : function () {
            var delta = this.maxVal - this.minVal;            
            var width = Math.max(delta, 0);
            var divPeriodoDal = Dom.get("divPeriodoDal");
            var divPeriodoAl = Dom.get("divPeriodoAl");
            var hdnMaxYear = Dom.get("ctl00_PlaceHolderMain_hdnMaxYear");
            var hdnMinYear = Dom.get("ctl00_PlaceHolderMain_hdnMinYear");
                
            if (this.activeSlider == this.minSlider)
            {
                // If the min thumb moved, move the highlight's left edge
                Dom.setStyle(this._highlight,'left', (this.minVal + offsetLeft) + 'px');
                Dom.setStyle(this._highlight,'background-position', (-this.minVal % bkgndStep) + 'px 0');
                
                var MinYear = Math.round(this.minVal * cf) + iStartYear ;
                if (MinYear < iStartYear)
                    MinYear = iStartYear;
                divPeriodoDal.innerHTML = MinYear;
                if (hdnMinYear)
                    hdnMinYear.value = MinYear;
            }
            else
            {
                var MaxYear = Math.round(this.maxVal * cf) + iStartYear;
                if (MaxYear > iEndYear)
                    MaxYear = iEndYear;
                divPeriodoAl.innerHTML = MaxYear;
                if (hdnMaxYear)
                    hdnMaxYear.value = MaxYear;
            }
            
            // Adjust the width of the highlight to match inner boundary
            Dom.setStyle(this._highlight,'width', Math.max(delta, 0) + 'px');
            
            
            /*******************Agnese 3 settembre 2009******************************/
            /*se i due thumb sono attaccati i due valori minyear e maxyera devono essere uguali            
            N.B: si basa sul presupposto che la distanza minima tra i due thumb sia di 3px*/
            if(width == '3')
            {  
                //nel caso in cui maxyear sia iEndYear(la data massima)
                //o nel caso in cui muovo il thumn min 
                // minyear è uguale a maxyear.
                if(divPeriodoAl.innerHTML ==   iEndYear
                || this.activeSlider == this.minSlider)
                {           
                    divPeriodoDal.innerHTML = divPeriodoAl.innerHTML;
                    if (hdnMaxYear && hdnMinYear)
                        hdnMinYear.value = hdnMaxYear.value;
                }
                 //nel caso in cui minyear sia iStartYear(la data minima)
                 // o nel caso in cui muovo il thumn max 
                // maxyear è uguale a minyear.
                else if(divPeriodoDal.innerHTML ==   iStartYear
                || this.activeSlider == this.maxSlider)
                {
                    divPeriodoAl.innerHTML = divPeriodoDal.innerHTML;
                    if (hdnMaxYear && hdnMinYear)
                        hdnMaxYear.value = hdnMinYear.value;
                
                }
            }
            /************************************************************************/
        }
    },true);
    
    // Decorate the DualSlider instance with a method to call a postback function to update the related content
    YAHOO.lang.augmentObject(slider, {

        updateRelatedContent : function () {
            var button = document.getElementById("ctl00_PlaceHolderMain_buttonForSlider");
            if (button)
            {
                __doPostBack(button.name,"OnClick");
            }
        }
    },true);
    
    // Attach the highlight method to the slider's change event
    slider.subscribe('change', slider.updateHighlight, slider, true);
    slider.subscribe('slideEnd', slider.updateRelatedContent, slider, true);
    
    
}

