var showingLinkDiv = null;

function pauseme(millis)
{
	var date = new Date();
	var curDate = null;

	do 
	{ 
		curDate = new Date(); 
	}
	while(curDate - date < millis);
}

function writeToStatus(message)
{
	$('message-area').innerHTML =  message;
}

function TypeTextEffect(el)
{	
	this.counter = 0;
	this.message = "";
	// in milliseconds
	this.typeSpeed = 30; 
	this.effectedDiv = el;
	this.addMessage = AddMessage;
	this.next = Next;
	this.setTypeSpeed = SetTypeSpeed;
	this.write = Write;
	this.interval = null;

	function AddMessage(mes)
	{	
		this.message = mes
	}

	function Next()
	{	
		this.effectedDiv.innerHTML = this.message.substr(0, this.counter++);
		if (this.counter > this.message.length + 1)
		{ 
			clearInterval(this.interval);
			pauseme(2000);
			Effect.Fade(this.effectedDiv);
		}
	}

	function SetTypeSpeed(speed)
	{	
		this.typeSpeed = speed;
	}

	function Write()
	{					
		this.interval = setInterval(this.next.bind(this), this.typeSpeed);
	}
}

function speak(el)
{
	if(el != null && el != "")
	{
		var ttf = new TypeTextEffect(el);
		ttf.addMessage("Go ahead .. feel me with your mouse ... I promise I won't bite!");			
		ttf.write();
	}
}

function hideMe(el)
{
	el.style.position='relative';
	el.style.zIndex=1;

	var dv = jQuery(el).children(".links")[0];
	dv.style.zIndex=1;

	var img = jQuery(el).children('img')[0];
	img.src = img.src.replace(/on/, "off");

	jQuery(dv).hide();
	return;
}

function isMouseInsideDiv(div1, eventObject)
{
	os = jQuery(div1).offset();
	posX = eventObject.pageX;
	posY = eventObject.pageY;
	if (os.left < posX && (os.left + jQuery(div1).width() > posX) 
		&& os.top < posY && (os.top + jQuery(div1).height() > posY))
	{
		return true;
	}
	return false;
}

function showMe(event, el, tbflag, ms1, lrflag, ms2, width, imgsrc, 
	imgDivWidth, imgDivMarginTop, imgDivMarginRight, imgDivMarginBottom, imgDivMarginLeft,
 	pdTop, pdRight, pdBottom, pdLeft, debug)
{
	if(showingLinkDiv != null && isMouseInsideDiv(showingLinkDiv, event))
	{
		return;
	}

	if(showingLinkDiv != null)
	{
		hideMe(showingLinkDiv.parentNode);
		showingLinkDiv = null;
	}

	el.style.position='relative';

	if(debug)
	{
		el.style.border='1px solid green';
	}

	el.style.width=imgDivWidth;
	el.style.marginTop=imgDivMarginTop;
	el.style.marginRight=imgDivMarginRight;
	el.style.marginBottom=imgDivMarginBottom;
	el.style.marginLeft=imgDivMarginLeft;
	el.style.zIndex=4;
	if(debug)
	{
		el.style.border='1px solid pink';
	}

	var dv = jQuery(el).children(".links")[0];

	showingLinkDiv = dv;

	dv.style.position='absolute';

	if(tbflag == true)
	{
		dv.style.top=ms1;
	}
	else
	{
		dv.style.bottom=ms1;
	}

	if(lrflag == true)
	{
		dv.style.left=ms2;
	}
	else
	{
		dv.style.right=ms2;
	}

	dv.style.width=width;

	if(debug)
	{
		dv.style.border='1px solid orange';
	}
	dv.style.paddingTop=pdTop;
	dv.style.paddingRight=pdRight;
	dv.style.paddingBottom=pdBottom;
	dv.style.paddingLeft=pdLeft;
	dv.style.zIndex=5;

	var img = jQuery(el).children('img')[0];
	img.src = imgsrc;
	jQuery(dv).show();
}

function preloadImages(imgurl)
{
	var image1 = new Image();
	image1.src = imgurl;
}

//Event.observe(window, 'load', function(){ speak($('sounds')); } );

