function objabudget_slider(o) {
	var x = 0,y = 0;
	while (o) {
		x += o.offsetLeft;
		y += o.offsetTop;
		o = o.offsetParent;
	}
	return [x,y];
}

function objsize(o) {
	var w = 0, h = 0;
	w = parseInt(o.style.width.replace(/[^0-9\.]+/, ''));
	h = parseInt(o.style.height.replace(/[^0-9\.]+/, ''));
	return [w,h];
}

function objoffset(o) {
	var l = 0, t = 0;
	l = parseInt(o.style.left.replace(/[^0-9\.]+/, ''));
	t = parseInt(o.style.top.replace(/[^0-9\.]+/, ''));
	return [l,t];
}

function mouseabudget_slider(e) {
	var x = 0,y = 0;
	if(document.all) {
		x = event.clientX + document.body.scrollLeft
		y = event.clientY + document.body.scrollTop
	} else {
		x = e.pageX
		y = e.pageY
	}  
	if (x < 0){ x = 0; }
	if (y < 0){ y = 0; }  
	return [x,y];
}

function departs_date(offset) {
	var d = new Date();
		d.setUTCDate(d.getUTCDate() + offset);
	s = month_names[d.getUTCMonth()];
		if(d.getUTCDate() < 10) {
			s += " 0" + d.getUTCDate();
		} else {
			s += " " + d.getUTCDate();
		}
		s += " " + d.getUTCFullYear();
	return s;
}

function departure_zindex(e) {
	// Get the Mouse Position
	o = $('departure-holder');
	c = objabudget_slider(o);
	s = objsize(o);
	m = mouseabudget_slider(e);
	
	// Get Position of departs_1 and departs_2
	departs_1 = $("departure-slider1").getElementsByTagName('div').item(2);
	departs_position_1 = objoffset(departs_1);
	departs_2 = $("departure-slider2").getElementsByTagName('div').item(2);
	departs_position_2 = objoffset(departs_2);
	
	if(departs_position_1[0] > departs_position_2[0]) {
		lower_slider = departs_2;
		higher_slider = departs_1;
		lowest_value = departs_position_2[0];
	} else {
		lower_slider = departs_1;
		higher_slider = departs_2;
		lowest_value = departs_position_1[0];
	}
	
	// get the halfway point
	dif = (departs_position_2[0] - departs_position_1[0]) / 2;
	if(dif < 0) {
		dif = 0 - dif;
	}
	dif += lowest_value;
	
	// Just check horizontal
	m_offset = m[0] - c[0];
	if(m_offset > dif) {
		lower_slider.parentNode.style.zIndex = 10;
		higher_slider.parentNode.style.zIndex = 20;
	} else {
		lower_slider.parentNode.style.zIndex = 20;
		higher_slider.parentNode.style.zIndex = 10;
	}
}

var month_names = Array(
	'Jan',
	'Feb',
	'Mar',
	'Apr',
	'May',
	'Jun',
	'Jul',
	'Aug',
	'Sep',
	'Oct',
	'Nov',
	'Dec'
);

function departure_onchange() {
	budget_value1 =  $('depart_1').value;
	budget_value2 =  $('depart_2').value;
	
	departure_pointer1 = $('departure-slider1').getElementsByTagName('div').item(2);
	departure_pointer2 = $('departure-slider2').getElementsByTagName('div').item(2);
	departure_position1 = (parseInt(departure_pointer1.style.left.replace(/[^0-9\.]+/gi, '')))
	departure_position2 = (parseInt(departure_pointer2.style.left.replace(/[^0-9\.]+/gi, '')))
	
	if(departure_position1 > departure_position2) {
		$('departure-line').style.width = (departure_position1 - departure_position2) + "px";
		$('departure-line').style.left = departure_position2 + "px";
		lowest_date = parseInt($('depart_2').value);
		highest_date = parseInt($('depart_1').value);
	} else {
		$('departure-line').style.width = (departure_position2 - departure_position1) + "px";
		$('departure-line').style.left = departure_position1 + "px";
		lowest_date = parseInt($('depart_1').value);
		highest_date = parseInt($('depart_2').value);
	}
	
	$('departure-display').innerHTML = departs_date(lowest_date) + ' - ' + departs_date(highest_date);
}

function tour_search(config) {
	d1 = new Slider(document.getElementById("departure-slider1"), document.getElementById("depart_1"));
	d1.setMinimum(0);
	d1.setMaximum(365);
	d1.setBlockIncrement(30);
	d1.setUnitIncrement(7);
	d1.setValue(config['depart_date1']);

	d1.onchange = function() {
		departure_onchange();
	}
	
	d2 = new Slider(document.getElementById("departure-slider2"), document.getElementById("depart_2"));
	d2.setMinimum(0);
	d2.setMaximum(365);
	d2.setBlockIncrement(30);
	d2.setUnitIncrement(7);
	d2.setValue(config['depart_date2']);

	d2.onchange = function() {
		departure_onchange();
	}
	window.setTimeout('d1.recalculate(); d1.onchange();', 750);
	window.setTimeout('d2.recalculate(); d2.onchange();', 750);
	
	$('departure-holder').onmouseover = departure_zindex;
	$('departure-holder').onmousemove = departure_zindex;
}


function set_trip_style(destination) {
	trip_style = $('trip_style');
	current_trip_style = trip_style.value;
	trip_style_options = trip_style.getElementsByTagName('*');
	while(trip_style.firstChild) {
		trip_style.removeChild(trip_style.firstChild);
	}
	blank_opt = document.createElement('option');
		blank_opt.value = '';
		blank_opt.innerHTML = '-----';
	trip_style.appendChild(blank_opt);
	
	for(l in trip_styles) {
		optgroup = document.createElement('optgroup');
			optgroup.label = l.toUpperCase();
			for(k in trip_styles[l]) {
				opt = document.createElement('option');
					opt.value = k;
					opt.innerHTML = trip_styles[l][k];
					if(opt.value == current_trip_style) {
						opt.selected = 'selected';
					}
				optgroup.appendChild(opt);
			}
		trip_style.appendChild(optgroup);
	}
	
	if(destination.value) {
		destination_value = '';
		destinations = destination.options;
		for(d=0; d<destinations.length; d++) {
			if(destinations[d].value == destination.value) {
				destination_value = destinations[d].innerHTML.toLowerCase();
				break;
			}
		}
		trip_style_options = trip_style.getElementsByTagName('*');
		valid_optgroup = false;
		has_options = 0;
		for(i=0; i<trip_style_options.length; i++) {
			if(trip_style_options[i].nodeName.toLowerCase() == 'optgroup') {
				if(trip_style_options[i].label.toLowerCase() == destination_value) {
					valid_optgroup = true;
				} else {
					valid_optgroup = false;
				}
			}
			if(!valid_optgroup) {
				trip_style.removeChild(trip_style_options[i]);
				i--;
			} else {
				has_options++;
			}
		}
		if(has_options == 0) {
			blank_opt = document.createElement('option');
				blank_opt.value = '';
				blank_opt.innerHTML = '-----';
			trip_style.appendChild(blank_opt);
		}
	}
}

function set_destination(trip_style) {
	if(trip_style.value) {
		trip_style_options = trip_style.getElementsByTagName('*');
		destination_value = '';
		for(i=0; i<trip_style_options.length; i++) {
			if(trip_style_options[i].nodeName.toLowerCase() == 'optgroup') {
				destination_value = trip_style_options[i].label.toLowerCase();
			} else if(trip_style_options[i].selected == true) {
				destinations = $('destination').options;
				for(d=0; d<destinations.length; d++) {
					if(destinations[d].innerHTML.toLowerCase() == destination_value) {
						$('destination').value = destinations[d].value;
						break;
					}
				}
				return;
			}
		}
	}
}
