var sliders = new Array();

function sliderInit(isPriceSlider, explorerInFrame, useKFormat) {
	mySlider1 = new Bs_Slider();
	mySlider1.width         = 146;
	mySlider1.height        = 26;
	mySlider1.imgDir   = '/images/slider/';
	mySlider1.setBackgroundImage('bob/background-blue_New.gif', 'no-repeat');
	mySlider1.fieldName     = 'slider1_start';
	mySlider1.minVal        = 0;
	mySlider1.maxVal        = 0;
	mySlider1.isPreset	= false;
	mySlider1.valueInterval = 1;
	mySlider1.valueDefault  = 0;
	mySlider1.setSliderIcon('bob/slider3.gif', 17, 19);
	mySlider1.useInputField = 1;
	mySlider1.styleValueFieldClass = 'sliderInput';
	mySlider1.colorbar = new Object({ color:'#E8EFF9', height:4, widthDifference:-31, offsetLeft:7, offsetTop:10});
	mySlider1.useSecondKnob  = true;
	mySlider1.preventValueCrossing = true;
	mySlider1.wheelAmount    = 0; //disable mouse wheeling cause we have 2 knobs.
	mySlider1.fieldName2     = 'slider1_end';
	mySlider1.minVal2        = 1;
	mySlider1.maxVal2        = 1;
	mySlider1.valueInterval2 =1;
	mySlider1.valueDefault2  = 1;
	mySlider1.setSliderIcon2('bob/slider.gif', 13, 18);
	mySlider1.useInputField2 = 1;
	mySlider1.styleValueFieldClass2 = 'sliderInput';
	mySlider1.colorbar2 = new Object({ color:'#E8EFF9', height:4, widthDifference:-18, offsetLeft:20, offsetTop:10 });
	
	mySlider1.hasLowerChanged = _hasLowerChanged;
	mySlider1.hasUpperChanged = _hasUpperChanged;
	
	mySlider1.hasLowerSet = _hasLowerSet;
	mySlider1.hasUpperSet = _hasUpperSet;
	
	mySlider1.moveUpper = _moveUpper;
	mySlider1.moveLower = _moveLower;
	
	mySlider1.selectedLower = 0;
	mySlider1.selectedUpper = 50000000;
	
	mySlider1.lowerAtMin = true;
	mySlider1.upperAtMax = true;
	
	mySlider1.upperMoved = false;
	mySlider1.lowerMoved = false;
	
	mySlider1.isPriceSlider = isPriceSlider;
	mySlider1.isActive = false;
	mySlider1.attachOnSlideEnd(_activeFilter);
	mySlider1.isTimeSlider = false;
	mySlider1.explorerInFrame = explorerInFrame;
	if (useKFormat) {
		mySlider1.attachOnChange(updateLabelsK);
		mySlider1.kSlider=true;
	}
	return mySlider1;
}

function _activeFilter() {
	this.lowerMoved = false;
	this.upperMoved = false;
	var doIt = true;
	if (this.explorerInFrame) doIt = window.parent.filterResults;
	else doIt = filterResults;

	if (doIt) {
	   var winLastSelLower = this.selectedLower;
  	   var winLastSelUpper = this.selectedUpper;
  	   
	   this.isActive = true;
	   //if (this.explorerInFrame) {
	   //	window.parent.lastSelectedLower = this.selectedLower;
	   //	window.parent.lastSelectedUpper = this.selectedUpper;
	   //}
	   //else {
	   //	lastSelectedLower = this.selectedLower;
	   //	lastSelectedUpper = this.selectedUpper;
	   //}
	   if (this.hasLowerChanged()) {
		if (this._valueInternal == this.valueDefault) {
			this.lowerAtMin = true;
		} else {
			this.lowerAtMin = false;
		}
		if (!this.isTimeSlider) {
			this.selectedLower = this._valueInternal;
		}
		else {
			this.selectedLower = convertDecimalToTime(parseFloat(this._valueInternal));
		}
	   }
	   if (this.hasUpperChanged()) {
		if (this._valueInternal2 == this.valueDefault2) {
			this.upperAtMax = true;
		} else {
			this.upperAtMax = false;
		}
		if (!this.isTimeSlider) {
			this.selectedUpper = this._valueInternal2;
		}
		else {
			this.selectedUpper = convertDecimalToTime(parseFloat(this._valueInternal2));
		}
	   }
	   
	   if ((winLastSelLower != this.selectedLower) || (winLastSelUpper != this.selectedUpper)) {
	   	if (this.explorerInFrame) this.activeTimeout = setTimeout("window.parent.filterResults()", 100);
	   	else this.activeTimeout = setTimeout("filterResults()", 100);
	   }
	   if (this.isPriceSlider) {
	   	if (this.explorerInFrame) window.parent.priceSliderUsed = true;
	   	else priceSliderUsed = true;
	   }
	}
}

function _hasLowerSet() {
	return (!this.lowerAtMin);
}
function _hasUpperSet() {
	return (!this.upperAtMax);
}

function _moveUpper(value, active) {
	this.setValue(value,2);

	this.selectedUpper = value;
	this.isActive = true;
	this.upperMoved = true;
}
function _moveLower(value, active) {
	this.setValue(value,1);
	this.selectedLower = value;
	this.isActive = true;
	this.lowerMoved = true;
}

function _hasLowerChanged() {
	return (this.lowerMoved || (this._valueInternal != this.selectedLower));
}
function _hasUpperChanged() {
	return (this.lowerMoved || (this._valueInternal2 != this.selectedUpper));
}

function timeSliderInit(sliderName, explorerInFrame) {
	var timeSlider = sliderInit(false, explorerInFrame);
	timeSlider.filterName = sliderName;
	timeSlider.valueInterval =0.25;
	timeSlider.valueInterval2 =0.25;
	timeSlider.setMinVal = _setMinVal;
	timeSlider.setMaxVal = _setMaxVal;
	timeSlider.setValueDefault = _setValueDefault;
	timeSlider.setMinVal2 = _setMinVal2;
	timeSlider.setMaxVal2 = _setMaxVal2;
	timeSlider.setValueDefault2 = _setValueDefault2;
	timeSlider.isTimeSlider = true;
	
	timeSlider.attachOnChange(updateLabels);
	return timeSlider;
}

function convertTimeToDecimal (time) {
	return parseInt(time.substring(0,2),10);
}

function convertDecimalToTime (decimal) {
	var hours = Math.floor(decimal);
	if (hours<10) hours = "0"+hours;
	var minutes = ((decimal-Math.floor(decimal))*60);
	if (minutes<10) minutes = "0"+minutes;
	return hours+":"+minutes;
}


function _setMinVal(val) {
	this.minVal = convertTimeToDecimal(val);
	this.setValueDefault(this.minVal);
}
function _setMaxVal(val) {
	this.maxVal = convertTimeToDecimal(val);
	this.maxVal = this.maxVal+1;
}
function _setValueDefault(val) {
	this.valueDefault = val;
	updateLabels(this,val,0,1);
}


function _setMinVal2(val) {
	this.minVal2 = convertTimeToDecimal(val);
}
function _setMaxVal2(val) {
	this.maxVal2 = convertTimeToDecimal(val);
	this.maxVal2 = this.maxVal2+1;
	this.setValueDefault2(this.maxVal2);
}
function _setValueDefault2(val) {
	this.valueDefault2 = val;
	updateLabels(this, val, 0, 2);
}

function updateLabels(sliderObj, val, newPos, knobId) {
	if (knobId == 1) {
		label = filterDocument.getElementById("vtslider_"+sliderObj.filterName);
	}
	else {
		label = filterDocument.getElementById("vtslider_"+sliderObj.filterName+"2");
	}
	if(label) label.innerHTML = convertDecimalToTime(val);
}

function updateLabelsNC(sliderObj, val, newPos, knobId) {
	if (knobId == 1) {
		label = filterDocument.getElementById("vtslider_"+sliderObj.filterName);
	}
	else {
		label = filterDocument.getElementById("vtslider_"+sliderObj.filterName+"2");
	}
	if(label) label.innerHTML = val;
}

function updateLabelsK(sliderObj, val, newPos, knobId) {
	if (knobId == 1) {
		label = filterDocument.getElementById("vtslider_price");
	}
	else {
		label = filterDocument.getElementById("vtslider_price2");
	}
	if(label) {
		var valStr = ""+val;
		var end = valStr.length;
		var kStr = "";
		if (end >3) {
		 end = end-3;
		 kStr = "k";
		}
		label.innerHTML = valStr.substring(0,end)+kStr;
	}
}

