﻿function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
    }

function enableSlider() {

    var rgb_slider = $('rgb_slider'),
        min = $('ctl00_lblMinPrice'),
        max = $('ctl00_lblMaxPrice'),
        sliderMin = $('ctl00_hdSliderMin'),
        sliderMax = $('ctl00_hdSliderMax'),
        sliderBaseMin = $('ctl00_hdSliderBaseMin'),
        sliderBaseMax = $('ctl00_hdSliderBaseMax'),
        sliderState = $('ctl00_hdSliderChangeState'),
        currencySymbol = $('ctl00_hdSliderCurrencySymbol');
        
 
    var minDefault, maxDefault;
    var val1, val2, val3, val3, val4, val5, diff;
    // get base min & max prices
    val1 = roundNumber(sliderBaseMin.value, 2);
    val5 = roundNumber(sliderBaseMax.value, 2);
    
    // split min & max prices into 5 points for the slider
    diff = (val5 - val1) / 4;
    
    val2 = val1 + (diff * 1);
    val3 = val1 + (diff * 2);
    val4 = val1 + (diff * 3);
    
    val1 = roundNumber(val1, 0);
    val2 = roundNumber(val2, 0);
    val3 = roundNumber(val3, 0);
    val4 = roundNumber(val4, 0);
    val5 = roundNumber(val5, 0);
    
    if (val1 == val5) {
        val1 = 0;
        sliderMin.value = 0;
    }
    
    if (val1 > 1) { val1 = val1 - 1;}
    
    // set min & max slider values
    if (sliderMin.value == '') { minDefault = val1; } else { minDefault = roundNumber(sliderMin.value, 0); }
    if (sliderMax.value == '') { maxDefault = val5; } else { maxDefault = roundNumber(sliderMax.value, 0); }
    
    
    // Start: min & max display prices at each end of slider
    var minDefaultD = "";
    var maxDefaultD = "";
    
    minDefaultD = minDefault.toString();
    maxDefaultD = maxDefault.toString();

    if (minDefaultD.indexOf(".") > 0) {
        var a = "";
        a = minDefaultD.substring( minDefaultD.indexOf(".") + 1, minDefaultD.length);
        if (a.length == 1) {
            a = a + "0";
        }
        a = minDefaultD.substring(0, minDefaultD.indexOf(".") + 1) + a;
    }
    
    if (maxDefaultD.indexOf(".") > 0) {
        var a = "";
        a = maxDefaultD.substring( maxDefaultD.indexOf(".") + 1, maxDefaultD.length);
        if (a.length == 1) {
            a = a + "0";
        }
        a = maxDefaultD.substring(0, maxDefaultD.indexOf(".") + 1) + a;
    }
 
    if (min) { min.innerHTML = currencySymbol.value + minDefaultD; }
    if (max) { max.innerHTML = currencySymbol.value + maxDefaultD; } 
    // end
    
    // debug only
//    console.log('val1 =' + val1);
//    console.log('val2 =' + val2);
//    console.log('val3 =' + val3);
//    console.log('val4 =' + val4);
//    console.log('val5 =' + val5);
//    console.log('min default =' + minDefault);
//    console.log('max default =' + maxDefault); 

    if (rgb_slider) {
    
        new Control.Slider(rgb_slider.select('.handle'), rgb_slider, {
            
          range: $R(val1, val5),
          sliderValue: [minDefault, maxDefault],
          values: [val1, val2, val3, val4, val5],

          onSlide: function(values) {      
            min.innerHTML = "£" + values[0];
            max.innerHTML = "£" + values[1];
          },
          onChange: function(values) { 
            sliderMin.value = values[0];
            sliderMax.value = values[1];
            sliderState.value = 1;
            
            __doPostBack('ctl00$lbUpdateSlider','');
          }
        });
    
    }
  
  
}
