/************************************************************************
 * QuoteRequestManager written by Cary Buchmann
 * July 14, 2011
 ***********************************************************************
 *
 *
 ***********************************************************************/

function GlobalQuoteSlider()
{
	this.quoteContainer = '#global_quote_container';
	this.quoteContent = '#global_content_outer_right_border';
	this.quoteActivator = '#global_quote_side_tab';
	
	this.slideAmount;
	this.slideSpeed = 800;
	this.intervalCheckTime = 500;
	
	this.mouseX = 0;
	this.mouseY = 0;
	
	this.isOpen = false;
	
	var _this = this;
	
	this.init = function()
	{
		_this.trackCoordinates();
		_this.loadListeners();
		
		_this.smartActive();
	}
	
	this.getCalculations = function()
	{
		_this.sideAmount = $(_this.quoteContent).outerWidth();
	}
	
	this.loadListeners = function()
	{
		$(_this.quoteActivator)
		.mouseover(function(){
			$(this).css('cursor', 'pointer');
		});
	}
	
	this.smartActive = function()
	{		   
		setInterval(function(){
		
			if(_this.insideElement(null, _this.quoteContent) || _this.insideElement(null, _this.quoteActivator))
			{
				_this.slideOpen();
			}
			else
			{
				_this.slideClosed();
			}

		}, _this.intervalCheckTime);
	}
	
	this.insideElement = function(e, element)
	{
		pos = $(element).offset();
		height = $(element).outerHeight();
		width = $(element).outerWidth();
		
		if(!e)
		{
			mouseX = _this.mouseX;
			mouseY = _this.mouseY;
		}
		else
		{
			mouseX = e.pageX;
			mouseY = e.pageY;
		}
		
		if(mouseX < pos.left || mouseX > pos.left+width)
			return false;
		if(mouseY < pos.top || mouseY > pos.top+height)
			return false;
			
		return true;
	}
	
	this.trackCoordinates = function()
	{
		$(document).mousemove(function(e){
			_this.mouseX = e.pageX;
			_this.mouseY = e.pageY;
		});
	}
	
	this.slideOpen = function()
	{
		if(!_this.isOpen)
		{	_this.isOpen = true;
			$(_this.quoteContainer).not(":animated").animate({ left : '0'}, _this.slideSpeed);
		}
	}
	
	this.slideClosed = function()
	{
		if(_this.isOpen)
		{
			_this.isOpen = false;
			$(_this.quoteContainer).not(":animated").animate({ left : '-300'}, _this.slideSpeed);
		}
	}
	
}
