

var months = new Array ("January","February","March","April","May","June","July","August","September","October","November","December");

var daysFull = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var days = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");

function formatTime(dateObj) {
	timeString = days[dateObj.getDay()] + " " + formatTimeOfDay(dateObj);
	return timeString;
}

function formatFullDate(dateObj) {
	year =  (dateObj.getYear() % 1900) + 1900; // IE returns full year, FF # years after 1900
	timeString = daysFull[dateObj.getDay()] + ", " + months[dateObj.getMonth()] + " " + dateObj.getDate() + " " +  year;
	return timeString;
}

function getEasternTimeOffset(timeString) {
	var easternDate = new Date("Wed Jul 25 13:49:42 EDT 2007");
	var localDate = new Date("Wed Jul 25 13:49:42 2007");
	var offset = easternDate.getTime() - localDate.getTime();
	return offset;
}

function formatTimeOfDay(origDateObj) {
	var dateObj = new Date(origDateObj.getTime());
	
	dateObj.setTime( dateObj.getTime()  );
	
	ampm = "am";
	hours = dateObj.getHours();
	
	if ( hours > 12 ) {
		hours -= 12;
		ampm = "pm";
	}
	else if ( hours == 12 ) ampm = "pm";
	
	if ( hours == 0 ) hours = 12;
	
	minutes = dateObj.getMinutes();
	if ( minutes < 10 ) {
		minutes = "0" + minutes;
	}
	timeString = hours + ":" + minutes + ampm;
	return timeString;
}

function roundToNearestMinutes(date,minuteInterval,roundUp) {
	numBlocks = date.getMinutes() / minuteInterval;
	if ( roundUp ) {
		numBlocks = Math.ceil(numBlocks);
	}
	else {
		numBlocks = Math.floor(numBlocks);
	}
	date.setMinutes( numBlocks * minuteInterval );
	return date;
}

function roundToNearestNumber(number,blockSize,roundUp) {
	numBlocks = number / blockSize;
	if ( roundUp ) {
		numBlocks = Math.ceil(numBlocks);
	}
	else {
		numBlocks = Math.floor(numBlocks);
	}
	return numBlocks * blockSize;
}

function displayMoney(number,roundCents) { return '$' + ( roundCents ? roundMoney_old(number) : roundMoney(number));}
function displayMoneyNoCurrency(number,reround) { return (reround=='no'? number : roundMoney(number));}

function roundMoney_old(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + '.' + cents);
}

function roundMoney(num) {
return Math.round(num);
}

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}

function sort(sortField) {
	submitAjaxFromQuery("sortResults",updateResults,"GET","sortField="+sortField,"Sorting");
}

function filterResults(filterField,value,type) {
	var query = "filterField=" + filterField;
	
	if ( filterField.indexOf("Time") >= 0 ) {
		value = new Date(value).getTime();
	}
	
	query += "&filterValue=" + value;
	query += "&filterType=" + type;
	submitAjaxFromQuery("filterResults",updateResults,"GET",query,"Updating");
	setTimeout("pointOutFilteredSize()",500);
}

function removeFilter(filterField,type) {
	var query = "filterField=" + filterField;
	query += "&filterType=" + type;
	submitAjaxFromQuery("filterResults",updateResults,"GET",query,"Updating");
	setTimeout("pointOutFilteredSize()",500);
}

function updateResults(returnMsg) {
	var json = eval("new Object(" + returnMsg + ")");
	var returnObj = eval("new Object(" + json.returnMsg + ")");
	var startIndex = parseInt(returnObj.startIndex,10) + 1;
	var endIndex = parseInt(returnObj.endIndex,10) + 1;
	//get("navLinksBottom").innerHTML = ""; // this is so the lines below don't have interference from this duplicate div
	get("firstItin").innerHTML = startIndex;
	get("lastItin").innerHTML = endIndex;
	get("listSize").innerHTML = returnObj.totalResults;
	get("filteredSize").innerHTML = returnObj.visibleResults;
	get("numInList").innerHTML = returnObj.visibleResults;
	get("prevPageLink").className = ( startIndex == 1 ) ? "grayed-out":"";
	get("nextPageLink").className = ( returnObj.hasNextPage ) ? "":"grayed-out";
	get("firstPageLink").className = ( startIndex == 1 ) ? "grayed-out":"";
	get("lastPageLink").className = ( returnObj.hasNextPage ) ? "":"grayed-out";

	if ( returnObj.visibleResults > 0 ) {
		//get("navLinksBottom").innerHTML = ""; // this is so the lines below don't have interference from this duplicate div
		//get("navLinksBottom").innerHTML = get("navLinks").innerHTML + "";
		showElement("navLinks");
		//showElement("navLinksBottom");
		showElement("perPageChoice");
		showElement("addlTerms");
	}
	else {
	
		hideElement("navLinks");
		//hideElement("navLinksBottom");
		hideElement("perPageChoice");
		hideElement("addlTerms");
	}
	setTimeout("redisplay()",0);
}

function toggleItinDetails(thisIndex) {
	var itinInfo = get("itin"+thisIndex)
	var itinDetailInfo = get("itinDetailRow"+thisIndex);
	var detailsLink = get("detailsLink"+thisIndex);
	var updateDisplay = function(returnMsg) {
		 itinDetailInfo.innerHTML = returnMsg;
		 itinInfo.className = "itinRow-expanded";
		 detailsLink.className = "detailsLink-expanded";
	}
	if ( itinDetailInfo.innerHTML.length == 0 ) {
		xmlBasicRequest("/fly/airsearchResultsItinDetail.jsp?index="+thisIndex,updateDisplay,"GET");
	} else {
		itinDetailInfo.innerHTML = "";
		itinInfo.className = "itinRow";
		detailsLink.className = "detailsLink";
	}
}

function redisplay() {
	var updateDisplay = function(returnMsg) {
		if ( get("filteredSize").innerHTML != "0" ) get("outputArea").innerHTML = returnMsg;
		else get("outputArea").innerHTML = get("noMatchesMsg").innerHTML + "";
		
	}
	xmlBasicRequest("/fly/airsearchResultsDetail.jsp",updateDisplay,"GET");
}

function firstPage() {
	submitAjaxFromQuery("firstPage",updateResults,"GET","");//scroll(0,0);
}
	
function prevPage() {
	submitAjaxFromQuery("prevPage",updateResults,"GET","");//scroll(0,0);
}
	
function nextPage() {
	submitAjaxFromQuery("nextPage",updateResults,"GET","");//scroll(0,0);
}

function lastPage() {
	submitAjaxFromQuery("lastPage",updateResults,"GET","");//scroll(0,0);
}

function initializeResults() {
	initSliderValues();
}

function setSelectBoxValue(selectBoxObj,value) {
	for ( var i = 0 ; i < selectBoxObj.options.length ; i++ ) {
		if ( selectBoxObj.options[i].value == value ) {
			selectBoxObj.selectedIndex = i;
		}
	}
}

function hideItinDetails(itinNumber) {
	thisItin = itinList.get(itinNumber);
	thisItinRow = get("itinDetailRow"+itinNumber);
	//thisItinRow.style.display = "none";
	
	thisItinRow = get("itinDetail"+itinNumber);
	thisItinRow.innerHTML = "";
	
	thisItin.expanded = false;
	itinList.set(itinNumber,thisItin);
	
	thisItinRow = get("itin"+itinNumber);
	thisItinRow.className = "itinRow";
	
	detailsLink = get("detailsLink"+itinNumber);
	detailsLink.className = "detailsLink";
}

function changeFilter(radioObj,doNotReset) {
	radioObj.checked = true;
	thisID = radioObj.id;
	if ( thisID == "obDepartTime" ) { 
		showElement("obDepartTimeFilter",true);
		hideElement("obArriveTimeFilter",true);
		if ( !defined(doNotReset) ) setTimeout('resetSliders("obArriveTime")',0);
	}
	else if ( thisID == "obArriveTime" ) {
		showElement("obArriveTimeFilter",true);
		hideElement("obDepartTimeFilter",true);
		if ( !defined(doNotReset) ) setTimeout('resetSliders("obDepartTime")',0);
	}
	else if ( thisID == "ibDepartTime" ) { 
		showElement("ibDepartTimeFilter",true);
		hideElement("ibArriveTimeFilter",true);
		if ( !defined(doNotReset) ) setTimeout('resetSliders("ibArriveTime")',0);
	}
	else if ( thisID == "ibArriveTime" ) {
		showElement("ibArriveTimeFilter",true);
		hideElement("ibDepartTimeFilter",true);
		if ( !defined(doNotReset) ) setTimeout('resetSliders("ibDepartTime")',0);
	}
}

function resetSliders(sliderFieldName) {
	var sliders;
	if ( isIE() ) {
		sliders = getElementsByClassName(document, '*', getSliderClassName());
	}
	else {
		sliders = getElementsByClassName(get(sliderFieldName+"Filter"), 'div', getSliderClassName());
	}
	for ( var i = 0 ; i < sliders.length ; i++ ) {
		thisSlider = sliders[i];
		sliderObj = thisSlider.sliderObj;
		if ( sliderObj.filterField() == sliderFieldName && (sliderObj.type == 0 && sliderObj.getValue() != 0 || sliderObj.type == 1 && sliderObj.getValue() != 1) ) {
			if ( sliderObj.type == 0 ) sliderObj.setValue(0);
			else if ( sliderObj.type == 1 ) sliderObj.setValue(100);
			targetClass = sliderObj.parent.target;
			displayDiv = get(sliderObj.parent.display + sliderObj.type);
			displayDiv.innerHTML = targetClass.getSliderValueTranslation( sliderObj.filterField(),sliderObj.getValue(),sliderObj.type );
			targetClass.handleSliderUpdate(sliderObj.filterField(),sliderObj.getValue(),sliderObj.type);
			removeFilter(sliderFieldName,sliderObj.type)
		}
	}
	setTimeout("redisplay()",0);
}

var pointOutTimer;

function pointOutFilteredSize() {
	if ( defined(pointOutTimer) ) clearTimeout(pointOutTimer);
	get("filteredSize").className = "updated";
	pointOutTimer = setTimeout("stopPointingOut()",3250);
}

function stopPointingOut() {
	get("filteredSize").className = "";
	clearTimeout(pointOutTimer);
}

function updateSliders() {
	var sliderHash = itinList.sliderHash;
	for ( var sliderID in sliderHash ) {
		var sliderHashValue = sliderHash[sliderID];
		var displayValue = sliderHashValue.split(":::")[0];
		var displayMarginLeft = sliderHashValue.split(":::")[1];
		var sliderDiv = document.getElementById(sliderID);
		var sliderObj = document.getElementById(sliderID).sliderObj;
		
		for ( var i = 0 ; i < itinList.selectedTimeFilters.length ; i++ ) {
			var radioObj = get(itinList.selectedTimeFilters[i]);
			changeFilter(radioObj,true);
		}
		
		var displayDiv = get(sliderObj.parent.display + sliderObj.type);
		displayDiv.innerHTML = displayValue;
		sliderDiv.style.left = displayMarginLeft;
	}
}

function showAllResults() {

	clearFilters();
	get("obDepartTime").checked = true;
	if ( defined(get("ibDepartTime")) ) {
		get("ibDepartTime").checked = true;
	}
	
	get("stops").checked = false;
	
	if ( itinList.tripType > 1 ) get("ibDepartTime").checked = true;
	selectThis("airlineMatrix-1A");
	var sliderBars = getElementsByClassName(document,'div',"sliderbar");
	for ( var i = 0 ; i < sliderBars.length ; i++ ) {
		var sliderBarObj = sliderBars[i].sliderBarObj;
		sliderBarObj.leftSlider.setValue(0);
		sliderBarObj.rightSlider.setValue(100);
	}
	setTimeout("pointOutFilteredSize()",500);
}

function clearFilters() {
	submitAjaxFromQuery("showAllResults",updateResults,"GET","","Updating");
}

function selectThis(airlineDivID) {
	var divs = getElementsByClassName(document,"div","airlineMatrix-selected");
	for ( i = 0 ; i < divs.length ; i++ ) divs[i].className = "airlineMatrix";
	
	if (get(airlineDivID)){  // check to see if doing "classic search" with airline matrix
		get(airlineDivID).className = "airlineMatrix-selected";
	}
}

function toggleStops(){
	if (get("stops").checked){
		filterResults('stops','0',1);
	}
	else {
		removeFilter('stops',1);
	}

}


Itinerary = function() { 
	
}

Itinerary = function(itinIndex,legs,parentList) { 
	this.itinIndex = itinIndex;
	this.legs = legs;
	this.parentList = parentList;
}

Itinerary.prototype = {
    itinIndex: null,
	uuid: null,
	price: null,
	tax: null,
	usTax: null,
	serviceFee: null,
	airline: null,
	tripType: null,
	btic: null,
	showAvailability: null,
	marketingMsg: null,
	
	legs:null, 
	numStops: null,
	visible: true,
	parentList: null,
	rank: null,
	expanded: false,
	seatCount: null,

	uuid: function() { return this.uuid; },
	tax: function() { return this.tax; },
	serviceFee: function() { return this.serviceFee; },
	total: function() { return ( this.price + this.usTax + this.tax + this.serviceFee); },
	numSeats: function() { return this.seatCount },
	obDepartAP: function() { return this.legs[0].segments[0].departAP ; },
	
	obArriveAP: function() {
        lastSegment = this.legs[0].segments.length - 1;
		return this.legs[0].segments[lastSegment].arriveAP ;
	},
		
	obDepartTime: function() { return new Date( this.legs[0].segments[0].departTime); },
	
	obArriveTime: function() {
        lastSegment = this.legs[0].segments.length - 1;
		return new Date( this.legs[0].segments[lastSegment].arriveTime);
	},
		
	ibDepartAP: function() { return this.legs[1].segments[0].departAP ; },
	
	ibArriveAP: function() {
        lastSegment = this.legs[1].segments.length - 1;
		return this.legs[1].segments[lastSegment].arriveAP ;
	},
	
	returnAirportChange: function() {
		if ( this.tripType > 1 && this.obDepartAP() != this.ibArriveAP() ) return true;
		else return false;
	},
	
	destinationAirportChange: function() {
		if ( this.tripType == 2 && this.obArriveAP() != this.ibDepartAP() ) return true;
		else return false;
	},
	
	ibDepartTime: function() { 
		if ( !this.isOneWay() ) return new Date( this.legs[1].segments[0].departTime);
	},
	
	ibArriveTime: function() {
        lastSegment = this.legs[1].segments.length - 1;
		return new Date( this.legs[1].segments[lastSegment].arriveTime);
	},
	
	stopsOB: function() { return this.legs[0].segments.length - 1; },
	
	stopsIB: function() { 
		if ( !this.isOneWay() ) return this.legs[1].segments.length - 1;
		else return 0;
	},
	
	stops: function() { return this.stopsOB() + this.stopsIB(); },

	rank: function() { return this.rank; },
	
	getOutboundSegments: function() { 
		return this.legs[0].segments;
	},
	
	getInboundSegments: function() { 
		return this.legs[1].segments;
	},
	
	getMarketingMessage: function() {
		return this.marketingMsg;
	},
	
	hideAvailability: function() {
		return ( this.showAvailability != "true" );
	},
	
	isOneWay: function() {
		if ( this.legs.length == 1 ) return true;
		else return false;
	},
	
	getValueByName: function(name) {
		if ( name == "total") return this.total();
		else if ( name == "airline") return this.airline;
		else if ( name == "obDepartTime") return this.obDepartTime();
		else if ( name == "obArriveTime") return this.obArriveTime();
		else if ( name == "ibDepartTime") return this.ibDepartTime();
		else if ( name == "ibArriveTime") return this.ibArriveTime();
		else if ( name == "type") return this.type;
		else alert(name + " not defined in getValueByName function!");
	}
}

ItinList = function(lowestTotal,highestTotal,obDepartTimeEarliest,obDepartTimeLatest,obArriveTimeEarliest,obArriveTimeLatest,ibDepartTimeEarliest,ibDepartTimeLatest,ibArriveTimeEarliest,ibArriveTimeLatest) {
	this.totalLowest = lowestTotal;
	this.totalHighest = highestTotal;
	this.obDepartTimeEarliest = new Date(obDepartTimeEarliest);
	this.obDepartTimeLatest = new Date(obDepartTimeLatest);
	this.obArriveTimeEarliest = new Date(obArriveTimeEarliest);
	this.obArriveTimeLatest = new Date(obArriveTimeLatest);
	this.ibDepartTimeEarliest = new Date(ibDepartTimeEarliest);
	this.ibDepartTimeLatest = new Date(ibDepartTimeLatest);
	this.ibArriveTimeEarliest = new Date(ibArriveTimeEarliest);
	this.ibArriveTimeLatest = new Date(ibArriveTimeLatest);
},

ItinList.prototype = {
    itinArray: null,
	visibleItinArray: null,
	sortFieldArray: null,
	currentPrimarySortField: null,
	filterArray: null,
	numVisible: null,
	perPage: null,
	selectedAirline: null,
	airlineInfoList: null,
	
	handleSliderUpdate: function(targetField,value,type,showWaitMessage) {
		if ( targetField == "total" ) {
			number = this.getNumberFromSliderValue(value,targetField);
			filterResults(targetField,number,type)
		}
		else {
			dateToShow = this.getTimeFromSliderValue(value,targetField);
			filterResults(targetField,dateToShow,type)
		}
	},
	
	getSliderValueTranslation: function(targetField,value,type) {
		if ( targetField == "total" ) {
			totalToShow = this.getNumberFromSliderValue(value,targetField);
			return displayMoney(totalToShow);
		}
		else {
			dateToShow = this.getTimeFromSliderValue(value,targetField);
			return formatTime(dateToShow,true);
		}
	},
	
	getNumberFromSliderValue: function(percentage,fieldToCheck) {
		lowestTotal = eval("this." + fieldToCheck + "Lowest");
		highestTotal = eval("this." + fieldToCheck + "Highest");
		priceSpread = highestTotal - lowestTotal;
		priceOffset = percentage * priceSpread;
		return Math.round(lowestTotal + priceOffset);
	},
	
	getTimeFromSliderValue: function(percentage,fieldToCheck) {
		earliestTime = eval("this." + fieldToCheck + "Earliest");
		latestTime = eval("this." + fieldToCheck + "Latest");
		timeSpread = latestTime.getTime() - earliestTime.getTime();
		timeOffset = percentage * timeSpread;
		numFifteenMinBlocks = Math.round(timeOffset / 900000);
		newTime = numFifteenMinBlocks * 900000;
		dateObj = new Date( earliestTime.getTime() + newTime );
	return dateObj;
	}
	
}


var sliderTarget;
var sliderWidth = 16;
var sliderBarWidth = 167;
var endOffset = 10;

function initSliderBars() {
	var sliderBars = getElementsByClassName(document,'div',"sliderbar");
	for ( var i = 0 ; i < sliderBars.length ; i++ ) {
		var thisSliderBar = sliderBars[i];
		var thisSlider = new SliderBar(thisSliderBar);
	}
}

function initSliderValues() {
	var sliders = getElementsByClassName(document, '*', getSliderClassName());
	for ( var i = 0 ; i < sliders.length ; i++ ) {
		thisSlider = sliders[i];
		sliderObj = thisSlider.sliderObj;
		targetClass = sliderObj.parent.target;
		displayDiv = get(sliderObj.parent.display + sliderObj.type);
		displayDiv.innerHTML = targetClass.getSliderValueTranslation( sliderObj.filterField(),sliderObj.getValue(),sliderObj.type );
	}
}

SliderBar = function(sliderDiv) {
	var sliderDivID = sliderDiv.id.split("-")[0];
	this.target = itinList;
	this.display = sliderDivID + "Value";
	this.filterField = sliderDivID;
	this.width = sliderBarWidth;
	sliderDiv.style.width = sliderBarWidth + "px";
	
	this.sliderBarDiv = sliderDiv;
	sliderDiv.sliderBarObj = this;
	
	this.leftSlider = new Slider(this);
	this.rightSlider = new Slider(this);
	
	this.leftSlider.setType(0);
	this.rightSlider.setType(1);

	// this logic fixes whether to update results when switching radio buttons 
	var filterArrayLabel = this.filterField + "-0";
	//if ( itinList.filterArray[filterArrayLabel] ) this.leftSlider.setValue(0.000001);
	//else this.leftSlider.setValue(0);
	this.leftSlider.setValue(0);
	
	// this logic fixes whether to update results when switching radio buttons 
	filterArrayLabel = this.filterField + "-1";
	//if ( itinList.filterArray[filterArrayLabel] ) this.rightSlider.setValue(99.999999);
	//else this.rightSlider.setValue(100);
	this.rightSlider.setValue(100);
	
	//if ( this.filterField == "total" ) this.leftSlider.disable();
}

SliderBar.prototype = {
	target: null,
	display: null,
	filterField: null,
	width: null,
	leftSlider: null,
	rightSlider: null,
	sliderBarDiv: null
}

function showMovingAltTag_(parentObj,msg,minX,maxX) {
	var altTag = get("movingAltTag");
		if ( !defined(altTag) ) {
			altTag = document.createElement("div");
			altTag.id = "movingAltTag";
			document.body.appendChild(altTag);
		}
		altTag.style.top = getTopPos(parentObj) + 30 + "px";
		var posX = xMousePos;
		if ( posX < minX ) posX = minX;
		else if ( posX > maxX ) posX = maxX;
		altTag.style.left = posX + "px";
		altTag.style.display = "block";
		altTag.innerHTML = msg;	
}

Slider = function(sliderBar) {
	if ( isIE() ) {
		this.sliderDiv = document.createElement("img");
		this.sliderDiv.src = "http://images.studentuniverse.com/images/icons/slider.gif";
	}
	else {
		this.sliderDiv = document.createElement("div");
	}
	this.sliderDiv.className = getSliderClassName();
	this.sliderDiv.sliderObj = this;
	this.parent = sliderBar;
	this.parent.sliderBarDiv.appendChild(this.sliderDiv);
}

Slider.prototype = {
	sliderDiv: null,
	parent: null,
	value: null,
	active: false,
	sliderLocation: null,
	type: null,
	currentMargin: null,
	enabled: true,
	
	setValue: function(value) {
		this.value = value;
		this.setMargin();
		this.setDisplayValue();
	},
	
	setValueByData: function(value) {
		var fieldToCheck = this.sliderDiv.id.substring(0,this.sliderDiv.id.length - 1);
		var percentage;
		if ( fieldToCheck.indexOf("Time") > 0 ) {
			var earliestTime = eval("itinList." + fieldToCheck + "Earliest");
			var latestTime = eval("itinList." + fieldToCheck + "Latest");
			percentage = (value.getTime() - earliestTime.getTime()) / (latestTime.getTime()-earliestTime.getTime())*100;
		}
		else {
			var lowestTotal = eval("itinList." + fieldToCheck + "Lowest");
			var highestTotal = eval("itinList." + fieldToCheck + "Highest");
			percentage = ((value - lowestTotal) / (highestTotal-lowestTotal)) *100;
		}
		this.setValue(percentage);
		this.setDisplayValue();
	},
	
	setMargin: function() {
		var marginLeft = this.parent.width * this.value * .01;
		marginLeft = marginLeft - (sliderWidth/2);
		this.currentMargin = marginLeft;
		this.sliderDiv.style.left = marginLeft + "px";
	},
	
	setType: function(type) {
		this.type = type;
		this.sliderDiv.id = this.parent.filterField + this.type;
	},
	
	getValue: function() {
		return (this.currentMargin+sliderWidth/2) / this.parent.width;
	},
	
	filterField: function() {
		return this.parent.filterField;
	},
	
	disable: function() {
		this.sliderDiv.style.display = "none";
		this.enabled = false;
	},
	
	setDisplayValue: function() {
		var targetClass = this.parent.target;
		var sliderValue = targetClass.getSliderValueTranslation( this.filterField(),this.getValue(),this.type );
		var displayDiv = get(this.parent.display + this.type);
		displayDiv.innerHTML = sliderValue;
	}
	
}




