var Cuddles = { mainTimeout: false, after: false };

Cuddles.onStart = function()
{
	if($('#home-content').mouseenter(Cuddles.mouse).length > 0)
	{
		$('#large-cuddles').mouseenter(Cuddles.mouse).mouseleave(Cuddles.mouse);
		$('#large-snuggles').mouseenter(Cuddles.mouse).mouseleave(Cuddles.mouse);
		Cuddles.cuddlesBubble = $('#cuddles-says');
		Cuddles.snugglesBubble = $('#snuggles-says');
		$('#menu').mouseleave(Cuddles.mouse).children().mouseenter(Cuddles.mouse);
		$('#social-icons').mouseleave(Cuddles.mouse).children().not('.clearer').mouseenter(Cuddles.mouse);
		Cuddles.actionLeaveMenu = {fn: Cuddles.noTalk, time: 2000, after: { fn: Cuddles.snugglesTalk, param: 'Ooo, games!?<br />What games?', time: 700 } };
		Cuddles.actionLeaveSocial = {fn: Cuddles.noTalk, time: 2000, after: { fn: Cuddles.snugglesTalk, param: 'They are boxes,<br />aren\'t they?', time: 700 } };
		Cuddles.actionEnterCuddles = {fn: Cuddles.cuddlesTalk, time: 250, param: 'Hi! I\'m Cuddles the Friendly Spore!<br /><br />This is Snuggles the Friendly Mold.' };
		Cuddles.actionEnterSnuggles = {fn: Cuddles.snugglesTalk, time: 250, param: 'Hi!' };
		Cuddles.actionLeaveCuddles = {fn: Cuddles.snugglesTalk, time: 1000, param: 'Neat boxes!' };
		Cuddles.actionLeaveSnuggles = {fn: Cuddles.cuddlesTalk, time: 2000, param: 'Thanks for stopping by our site! Can we offer you some three-year-old cheese?' };
		Cuddles.actionEnterSite = {fn: Cuddles.snugglesTalk, time: 2500, param: 'Neat boxes!' };
		Cuddles.timeTo(Cuddles.actionEnterSite);
	}
	$('.outbound').click(Cuddles.outbound);
}

Cuddles.game = function(id)
{
	window.open('/media/preloader-' + id + '.swf', 'aspiriumFeatureWindow', 'width=760,height=570,resizable=no,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no' );
}

Cuddles.outbound = function(evt)
{
	window.open(this.getAttribute('href'), 'aspiriumFeatureWindow', 'width=800,height=540,resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no' );
	evt.preventDefault();
	return false;
}

Cuddles.cuddlesTalk = function(text)
{
	var talk = $(document.createElement('div')).html(text);
	Cuddles.cuddlesBubble.css({display: 'block'}).empty().append(talk);
	talk.css({paddingTop: 80 - (talk.innerHeight() / 2)});
	Cuddles.snugglesBubble.css({display: 'none'});
}

Cuddles.snugglesTalk = function(text)
{
	var styles = text.length > 15 ? {height: 36, paddingTop: 9, paddingBottom: 36, fontSize: 14, lineHeight: '18px'} : {height: 22, paddingTop: 16, paddingBottom: 43, fontSize: 20, lineHeight: '22px'};
	Cuddles.snugglesBubble.css({display: 'block'}).css(styles).html(text);
	Cuddles.cuddlesBubble.css({display: 'none'});
}

Cuddles.timeTo = function(o)
{
	if(!o) o = Cuddles.after;
	if(o)
	{
		Cuddles.timeToFn = o.fn;
		Cuddles.timeToParam = o.param ? o.param : false;
		Cuddles.timeToAfter = o.after ? o.after : false;
		if(Cuddles.mainTimeout !== false) { clearTimeout(Cuddles.mainTimeout); Cuddles.mainTimeout = false; }
		Cuddles.mainTimeout = setTimeout(Cuddles.timeToReady, o.time);
	}
}

Cuddles.timeToReady = function()
{
	Cuddles.mainTimeout = false;
	Cuddles.timeToFn(Cuddles.timeToParam);
	if(Cuddles.timeToAfter !== false) Cuddles.timeTo(Cuddles.timeToAfter);
}

Cuddles.noTalk = function() { Cuddles.snugglesBubble.css({display: 'none'}); Cuddles.cuddlesBubble.css({display: 'none'}); }

Cuddles.mouse = function(evt)
{
	if(Cuddles.mainTimeout !== false) { clearTimeout(Cuddles.mainTimeout); Cuddles.mainTimeout = false; }
	if(evt.type=='mouseleave')
	{
		if(this.id == 'menu') Cuddles.timeTo(Cuddles.actionLeaveMenu);
		else if(this.id == 'social-icons') Cuddles.timeTo(Cuddles.actionLeaveSocial);
		else if(this.id == 'large-cuddles') Cuddles.timeTo(Cuddles.actionLeaveCuddles);
		else if(this.id == 'large-snuggles') Cuddles.timeTo(Cuddles.actionLeaveSnuggles);
	}
	else
	{
//		Cuddles.noTalk();
		if(this.id == 'social-facebook') Cuddles.cuddlesTalk('Connect with other fans of me on my Facebook page! <div class="bubble-smaller">(And some bots trying to sell you stuff!)</div>');
		else if(this.id == 'social-twitter') Cuddles.cuddlesTalk('See what <strike>I\'m</strike>... my authors are saying on Twitter.');
		else if(this.id == 'social-youtube') Cuddles.cuddlesTalk('Watch a music video, "The Bailout of Lyrics", starring me on YouTube!');
		else if(this.id == 'menu-characters') Cuddles.cuddlesTalk('Learn all about me, Snuggles, and the rest of the characters.');
		else if(this.id == 'menu-about') Cuddles.cuddlesTalk('For if you\'re wondering, "What exactly were they thinking?"');
		else if(this.id == 'large-cuddles') Cuddles.timeTo(Cuddles.actionEnterCuddles);
		else if(this.id == 'large-snuggles') Cuddles.timeTo(Cuddles.actionEnterSnuggles);
		else if((this.id == 'home-content') && (Cuddles.cuddlesBubble.css('display')=='block')) Cuddles.noTalk();
	}
}

$(Cuddles.onStart);
