//Slider
var slider_lastslide = null;
var slider_currentslide = 1;
var slider_numof = 0;
var slider_tweener, slider_buttons, slider_timeout;
var slider_timeoutms = 15000;
var slider_handlestep = function()
{
	slider_lastslide = slider_currentslide;
	slider_currentslide++;
	if (slider_currentslide > slider_numof)
		slider_currentslide = 1;
	else if (slider_currentslide < 0)
		slider_currentslide = slider_numof;
	slider_handle();
};
var slider_handle = function()
{
	clearTimeout(slider_timeout);
	if (slider_lastslide != null)
		slider_buttons[slider_lastslide - 1].removeClass("active").addClass("inactive");
	slider_buttons[slider_currentslide - 1].removeClass("inactive").addClass("active");
	slider_tweener.start("margin-left", (-1 * ((slider_currentslide - 1) * 941)) + "px");
	slider_timeout = slider_handlestep.delay(slider_timeoutms);
};

//Shoutbox
var shoutbox;
var shoutbox_scrollbar;

//Site Data
var sitedata_scrollbar;
var sitedata_lasttab;
var sitedata_currenttab = null;
var sitedata_goto = function(tab)
{
	if ($(tab) == undefined)
		return false;
	Cookie.write("sitedata_lasttab", tab, {duration:365});
	if (sitedata_currenttab != null) {
		if ($(sitedata_currenttab) != undefined)
			$(sitedata_currenttab).removeClass("display_block");
		if ($(sitedata_currenttab + "-button") != undefined)
			$(sitedata_currenttab + "-button").removeClass("sitedata-tab-active");
	}
	$(tab).addClass("display_block");
	$(tab + "-button").addClass("sitedata-tab-active");
	sitedata_currenttab = tab;
	sitedata_scrollbar.reposition();
	sitedata_scrollbar.checkexistence();
};
var sitedata_addpresence = function(pageid, data)
{
	if ($("sitedatapresence-" + data.PresenceID + "-" + data.UserID) == undefined)
	{
		$("sitedatapresence-example-0").clone(true)
			.set("id", "sitedatapresence-" + data.PresenceID + "-" + data.UserID)
			.inject($(pageid).getElement(".sitedata-presenceholder"), "bottom");
		$("sitedatapresence-" + data.PresenceID + "-" + data.UserID).getElement(".text")
			.set("html", data.user.Username);
	}
};
var sitedata_removepresence = function(pageid, data)
{
	if ($("sitedatapresence-" + data.PresenceID + "-" + data.UserID) != undefined)
	{
		$("sitedatapresence-" + data.PresenceID + "-" + data.UserID).destroy();
	}
};

window.addEvent("load", function()
	{
		$$(".latestposts-post").each(function(e, i)
			{
				e.getElement(".latestposts-highlight").set("tween",
					{
						duration:200
					});
				e.addEvents({"mouseover":function()
					{
						this.getElement(".latestposts-highlight").tween("opacity", 1);
					},
					"mouseout":function()
					{
						this.getElement(".latestposts-highlight").tween("opacity", 0);
					}});
			});
		$$("#slider-slidee .slider-slide").each(function()
			{
				slider_numof++;
			});
		slider_buttons = $$("#slider-buttons a");
		slider_buttons.each(function(e, i)
			{
				e.indexKey = i;
				e.addEvent("click", function()
					{
						slider_lastslide = slider_currentslide;
						slider_currentslide = this.indexKey + 1;
						slider_handle();
					});
			});
		if (slider_numof > 1)
			slider_timeout = slider_handlestep.delay(slider_timeoutms);
		slider_tweener = new Fx.Tween($("slider-slidee"),
			{
				duration:"1200",
				transition:"expo:out",
				link:"cancel"
			});
		$$ (".latestvideo-item").each(function(e, i)
			{
				e.addEvents(
					{
						"mouseenter":function()
							{
								e.getElement(".popup").setStyle("display", "block");
								e.getElement(".cover-image-overlay").addClass("cover-image-overlay-hover");
							},
						"mouseleave":function()
							{
								e.getElement(".popup").setStyle("display", "none");
								e.getElement(".cover-image-overlay").removeClass("cover-image-overlay-hover");
							}
					});
			});
		/* Shoutbox Code */
		shoutbox = new Shoutbox(
			{
				shoutbox_hash:"89fr09jra9",
				"message_container":$("shoutbox1-message-container"),
				"message_limit":250
			});
		shoutbox.addEvents(
			{
				"onPostRequest":function()
				{
					$("shoutbox-inputs-submit").getElement(".button02-center span").set("html", "...");
				}, "onPostComplete":function(result)
				{
					data = JSON.decode(result);
					$("shoutbox-inputs-submit").getElement(".button02-center span").set("html", "Shout");
					if (data.error != undefined && data.error == "0") {
						$("shoutbox-inputs-message").set("value", "").focus();
					} else {
						roar_queue.alert("Could submit message to shoutbox!", (data.error != undefined) ? data.error : "Unknown error.");
					}
				}
			});
		$("shoutbox-inputs-submit").addEvent("click", function()
			{
				if ($("shoutbox-inputs-submit").getElement(".button02-center span").get("html") != "...") {
					shoutbox.post_message($("shoutbox-inputs-message").get("value"));
				}
			});
		$("shoutbox-inputs-message").addEvent("keydown", function(e)
			{
				if (e.key == "enter")
					if ($("shoutbox-inputs-submit").getElement(".button02-center span").get("html") != "...") {
						shoutbox.post_message($("shoutbox-inputs-message").get("value"));
					}
			});
		shoutbox_scrollbar = new Scrollable($("shoutbox-holder").getElement(".messages-scroll"));
		
		//Site Data
		sitedata_scrollbar = new Scrollable($("sitedata-container"), {innercontainer:$("sitedata-innercontainer")});
		$$("#sitedata-container .sitedata-page").each(function(e, i)
			{
				if ($(e.get("id") + "-button") != undefined)
				{
					$(e.get("id") + "-button").addEvent("click", function()
						{
							sitedata_goto(this.get("id"));
						}.bind(e));
				}
			});
		sitedata_lasttab = (Cookie.read("sitedata_lasttab") != null) ? Cookie.read("sitedata_lasttab") : "sitedata-mainchat";
		sitedata_goto(sitedata_lasttab);
	});
	
	//Handle sitedata presence lists.
	Beacon.handler.add([["presence_add(main)", function(e)
	{
		if (e[0].user != null) {
			sitedata_addpresence("sitedata-siteusers", e[0]);
		}
	}.bind(this)]]);
	Beacon.handler.add([["presence_remove(main)", function(e)
	{
		if (e[0].user != null) {
			sitedata_removepresence("sitedata-siteusers", e[0]);
		}
	}.bind(this)]]);
	Beacon.handler.add([["presence_add(sb-89fr09jra9)", function(e)
	{
		if (e[0].user != null) {
			sitedata_addpresence("sitedata-mainchat", e[0]);
		}
	}.bind(this)]]);
	Beacon.handler.add([["presence_remove(sb-89fr09jra9)", function(e)
	{
		if (e[0].user != null) {
			sitedata_removepresence("sitedata-mainchat", e[0]);
		}
	}.bind(this)]]);
