var slideBarTimer;
//var mouseenter = 'mouseover';
//var mouseleave = 'mouseout';
var mouseenter = (Prototype.Browser.IE)? 'mouseenter': 'mouseover';
var mouseleave = (Prototype.Browser.IE)? 'mouseleave': 'mouseout';

Object.extend(Event, {
	wheel:function (event){
		var delta = 0;
		if (!event) event = window.event;
		if (event.wheelDelta) {
				delta = event.wheelDelta/120;
				if (window.opera) delta = -delta;
		} else if (event.detail) { delta = -event.detail/3;     }
		return Math.round(delta); //Safari Round
	}
});

var counterSite=0;
var origMarginTop=0;
ignoreEvent = function(event) {
	counterSite +=	Event.wheel(e);
	$('delta').update(counterSite +'#'+ Event.wheel(e) + ": " + (Event.wheel(e) < 0 ? 'down' : 'up' ));
	return false;
}
startIgnoringWheel = function() {
	origMarginTop = $(document.body).getStyle('marginTop');
	$(document.body).setStyle({ marginTop: '-'+document.viewport.getScrollOffsets()[1]+'px', overflow: 'hidden' });
	/*
	Event.observe(document, "mousewheel", ignoreEvent, false);
	Event.observe(document, "DOMMouseScroll", ignoreEvent, false); // Firefox
	*/
}
stopIgnoringWheel = function() {
	$(document.body).setStyle({ marginTop: origMarginTop, overflow: '' });
	/*
	Event.stopObserving(document, "mousewheel", ignoreEvent);
	Event.stopObserving(document, "DOMMouseScroll", ignoreEvent);
	*/
}

callCompare = function(mls, button) {
	$(button).addClassName('working');
	queue_add(mls, button);
	$('queueCompareButton').addClassName('primaryAction');
	//$('queueEmailButton').removeClassName('primaryAction');
}
callEmail = function(mls, button) {
	/*
	queue_add(mls);
	$('queueCompareButton').removeClassName('primaryAction');
	$('queueEmailButton').addClassName('primaryAction');
	*/
	
	//startIgnoringWheel();
	
	emailWin = new Window('email', {
		className: "deh2o",
		title: 'Email Listings to a Friend',
		resizable: false,
		draggable: false,
		minimizable: false,
		maximizable: false,
		recenterAuto: true,
		width: 550,
		height: 400,
		url: site_url+'/?passive&opt=email&add='+mls+'&sess='+session_id,
		destroyOnClose: true
	});
	
	emailWin.setDestroyOnClose();
	//emailWin.setCloseCallback(function(){ stopIgnoringWheel(); return true; });
	emailWin.showCenter(true);
}
callSave = function(mls, button) {
	alert('The save feature is not available yet.');
}
callOffer = function(mls, button) {
	alert('The make an offer feature is not available yet.');
}

queue_add = function(mls, button) {
	clearTimeout(slideBarTimer);
	new Ajax.Updater(
		'slideBarContentsQueueInner',
		site_url+'/?passive&opt=queue&add='+mls+'&sess='+session_id,
		{
			parameters: 'passive&opt=queue&add='+mls+'&sess='+session_id,
			method: 'post',
			evalScripts: true,
			onComplete: function(){
				$(button).removeClassName('working');
			}
		}
	);
}
queue_remove = function(mls, fade_element) {
	clearTimeout(slideBarTimer);
	if (fade_element) {
		new Effect.Opacity(fade_element, { from: 1.0, to: 0.5 });
	}
	new Ajax.Updater(
		'slideBarContentsQueueInner',
		site_url+'/?passive&opt=queue&remove='+mls+'&sess='+session_id,
		{
			parameters: 'passive&opt=queue&remove='+mls+'&sess='+session_id,
			method: 'post',
			evalScripts: true
		}
	);
}
queue_remove_all = function() {
	clearTimeout(slideBarTimer);
	new Effect.Opacity('slideBar', { from: 1.0, to: 0.75 });
	new Ajax.Updater(
		'slideBarContentsQueueInner',
		site_url+'/?passive&opt=queue&remove=all&sess='+session_id,
		{
			parameters: 'passive&opt=queue&remove=all&sess='+session_id,
			method: 'post',
			evalScripts: true
		}
	);
}

slideBarStartCloseTimer = function() {
	slideBarTimer = setTimeout(slideBarClose, 5000);
}

slideBarOpen = function(enableTimout) {
	new Effect.Opacity('slideBar', { from: 0.75, to: 1.0, duration: 0 });
	if (!$('slideBarContents').visible()) {
		//$('slideBarContents').show();
		new Effect.BlindDown('slideBarContents', {duration: 0.3, fps: 40});
	}
	$('slideBar').stopObserving(mouseenter, slideBarOpen);
	Event.observe('slideBar', mouseenter, slideBarOver, false);
	Event.observe('slideBar', mouseleave, slideBarOut, false);
}

slideBarOver = function(event) {
	//if (!event.relatedTarget || (event.relatedTarget==event.currentTarget || event.relatedTarget.childOf(event.currentTarget))) return;
	clearTimeout(slideBarTimer);
	$('slideBar').stopObserving(mouseenter, slideBarOver);
	Event.observe('slideBar', mouseleave, slideBarOut, false);
}

slideBarClose = function() {
	if ($('slideBarContents').visible()) {
		//$('slideBarContents').hide();
		new Effect.BlindUp('slideBarContents', {duration: 0.3, fps: 40});
	}
	$('slideBar').stopObserving(mouseenter, slideBarOver);
	$('slideBar').stopObserving(mouseleave, slideBarClose);
	Event.observe('slideBar', mouseenter, slideBarOpen, false);
}

slideBarOut = function(event) {
	if (!Prototype.Browser.IE) {
		if (!event.relatedTarget || (event.relatedTarget==event.currentTarget || event.relatedTarget.childOf(event.currentTarget))) return;
	}
	//if ($(Event.element(event)).id != 'slideBar') return;
	clearTimeout(slideBarTimer);
	$('slideBar').stopObserving(mouseleave, slideBarOut);
	slideBarTimer = setTimeout(slideBarClose, 400);
}

slideBarInit = function(){
	//alert('mouseenter='+mouseenter+', mouseleave='+mouseleave);
	//Nifty('div#slideBarTab','normal top');
	slideBarClose();
	$$('.queueActionButton').each(function(el){
		Event.observe(el, mouseenter, function(){
			this.removeClassName('queueActionButton');
			this.addClassName('queueActionButtonHover');
		}.bind(el), false);
		
		Event.observe(el, mouseleave, function(){
			this.removeClassName('queueActionButtonHover');
			this.addClassName('queueActionButton');
		}.bind(el), false);
	});
}

Event.observe(window, 'load', slideBarInit, true);