var increments = 10;
var current_increment = 0;
var height = 8;
var width = 17;
var link_x = 0;
var link_y = 0;
var mouse_x = 0;
var mouse_y = 0;
var opening = false;
var closing = false;
var open = false;
var focus = false;
var processing = false;
var interval;
var timeout;

function subscribe(email,manufacturer_id)
{
	$("g_quick_subscribe_email").focus();
	
	if(email == "")
	{		
		$('g_quick_subscribe_email').addClassName('errorTextBox');
		return;
	}	

	var myAjax = new Ajax.Updater('quicksubscriberesponse', 'http://www.extrascents.com/ajax.php',
	{
		parameters: 'g_request=89744A56-6332-4516-8A2C-26AAD63FC435&g_email='+email+'&g_manufacturer='+manufacturer_id,
		evalScripts: true,		
		onSuccess: function()
		{
			processing = false;
			focus = false;			
			prepareToClose(2500);
		},
		onLoading: function()
		{
			processing = true;
			hideContentAndShowLoading();
		}
	});	
}

function hideContentAndShowLoading()
{
	changeDivDisplay('quicksubscribecontent',false);
	changeDivDisplay('quicksubscribeloading',true);
}

function hideLoadingAndShowContent()
{
	changeDivDisplay('quicksubscribeloading',false);
	changeDivDisplay('quicksubscribecontent',true);
}

function setFocus()
{
	focus = true;
}

function setBlur()
{
	focus = false;
	prepareToClose(2500);
}

function recalculateLinkPosition()
{
	var offset = Position.cumulativeOffset($("updatelink"));
	link_x = offset[0];
	link_y = offset[1];
}

function isBusy()
{
	return (opening == true || closing == true || processing == true);
}

function openDiv()
{
	if(isBusy() || open == true)
		return;
	
	opening = true;
	recalculateLinkPosition();
	changeDivDisplay("quicksubscribecontent",false);
	interval = setInterval(animateDivOpen,20);	
}

function mouseIsInside()
{
	return Position.within($('quicksubscribe'), mouse_x, mouse_y);
}

function closeDiv()
{
	if(isBusy() || focus == true || open == false || mouseIsInside())
		return;
		
	closing = true;
	changeDivDisplay("quicksubscribecontent",false);
	changeDivVisibility("quicksubscribecontent",false);
	interval = setInterval(animateDivClose,20);
}

function animateDiv()
{	
	var e = $("quicksubscribe");
	e.style.height = (height/increments)*current_increment+"em";
	e.style.width = (width/increments)*current_increment+"em";
	
	changeDivVisibility("quicksubscribe",true);
	
	e.style.top = link_y+"px";
	e.style.left = (165+link_x)+"px";
}

function animateDivOpen()
{
	current_increment++;
	animateDiv();
	
	if(current_increment >= increments)
	{
		interval = clearInterval(interval);
		changeDivDisplay("quicksubscribecontent",true);
		changeDivVisibility("quicksubscribecontent",true);
		prepareToClose(2500);
		open = true;
		opening = false;
	}	
}

function animateDivClose()
{
	current_increment--;
	animateDiv();
	
	if(current_increment <= 0)
	{
		interval = clearInterval(interval);		
		changeDivVisibility("quicksubscribe",false);
		open = false;
		closing = false;
	}
}

function changeDivVisibility(id,show)
{
	var e = $(id);
	
	if(show)
	{
		e.style.visibility = "visible";
		
		if(id == "quicksubscribe")
			e.style.border = "1px solid #000000";
	}
	else
	{
		if(id == "quicksubscribe")
			e.style.border = "none";
			
		e.style.visibility = "hidden";	
	}
}

function changeDivDisplay(id,show)
{
	if(show)
		$(id).style.display = "block";
	else
		$(id).style.display = "none";
}

function prepareToClose(t)
{
	timeout = setTimeout(closeDiv,t);
}

function cancelClose()
{
	clearTimeout(timeout);
}

function getMousePosition(e)
{ 
	mouse_x = e.pointerX();
	mouse_y = e.pointerY();
}

Event.observe(window,'load',
function()
{
	Event.observe(document.body, 'mousemove', getMousePosition);	
});