//	Funciones generales
//
glow.ready(function()
	{
	var ARCOOKIE = "AlfaRadioHome";
	var LIFETIME =  30;		// cookie lives for a month
	var gTabs = {};

	function Carouselify()
		{
		this.style.overflow = "hidden";
//		return new glow.widgets.Carousel("#" + this.children[0].id.toString(), {
		return new glow.widgets.Carousel("#" + glow.dom.get(this).children()[0].id.toString(), {
			vertical: true, 
			slideOnScroll: true,
			animDuration: .25,
			animTween: glow.tweens.easeIn(),
			size: 3,
			step: 3
			});
		}

	function Hoverify()
		{
		glow.events.addListener(this, "mouseover", function () {
			glow.dom.get(this).get("img").addClass("showhover");
			});
		glow.events.addListener(this, "mouseout", function () {
			glow.dom.get(this).get("img").removeClass("showhover");
			});
		}

	function RememberTab(thePanel, theTab)
		{
		gTabs[thePanel] = theTab;
		var value = "";
		for (var panel in gTabs)
			{
			var name = (gTabs[panel].split("#")[1]).split("-");
			value += name[0] + "-" + name[1] + "|";
			}
		var date = new Date();
		date.setTime(date.getTime() + (LIFETIME * 24 * 60 * 60 * 1000));
		document.cookie = ARCOOKIE + "=" + value + "; expires=" + date.toGMTString() + ";";
		}

	// check whether a tabbedpanel's DOM is well formed (used for debugging new tabbedpanels)
	//
	function Sane(id)
		{
		// return true;
		var errors = "";
		var nmrTabs = 0;
		var tabbedPanel = glow.dom.get(id);
		
		if (tabbedPanel.hasClass("two-tab"))
			nmrTabs = 2;
		else if (tabbedPanel.hasClass("three-tab"))
			nmrTabs = 3;
		else
			errors += "Tabbedpanel " + id + " is not class 'two-tab' or 'three-tab'; ";

		if (glow.dom.get(id + "-container").length != 1)
			errors += "Tabbedpanel " + id + " has no matching container div (" + id + "-container); ";

		for (var i = 1; i <= nmrTabs; ++i)
			{
			if (tabbedPanel.get(id + "-" + i + "-button").length != 1)
				errors += "Div " + id + "-" + i + "-button not found; ";
			if (tabbedPanel.get(id + "-" + i + "-button a").length != 1)
				errors += "Anchor for " + id + "-" + i + "-button not found; ";
			else if ("#" + tabbedPanel.get(id + "-" + i + "-button a")[0].href.split("#").pop() != (id + "-" + i + "-content"))
				errors += "Href for anchor " + id + "-" + i + "-button is #" + tabbedPanel.get(id + "-" + i + "-button a")[0].href.split("#").pop() + "(Should be " + (id + "-" + i + "-content") + "); ";
			if (glow.dom.get(id + "-container " + id + "-" + i + "-content").length != 1)
				errors += "Div " + id + "-" + i + "-content not found in " + id + "-container; ";
			}

		if (errors == "")
			return true;
		else
			{
			alert(errors.substr(0, errors.lastIndexOf(";")) + ".");
			return false;
			}
		}

	function SetDefaultTabs()
		{
		try
			{
			// pre-set event button selection based on SSSI-based value (cookie will override)
			gTabs["#event"] = (eventItemToShow == "pastevents") ? "#event-2-button" : "#event-1-button";

			var haveCookie = document.cookie.match('(^|;) ?' + ARCOOKIE + '=([^;]*)(;|$)');
			if (haveCookie)
				{
				var presets = unescape(haveCookie[2]).split("|");
				for (var i in presets)
					{
					var nameValue = presets[i].split("-");
					if (nameValue != "")
						gTabs["#" + nameValue[0]] = "#" + presets[i] + "-button";
					}
				}

			for (var panel in gTabs)
				{
				if (glow.dom.get(gTabs[panel]).length > 0)
					{
					glow.dom.get(panel + " div.default").removeClass("default");
					glow.dom.get(gTabs[panel]).addClass("default");
					}
				}
			}
		catch (e)
			{
			// delete the cookie if it might be corrupt
			var thePast = new Date();
			thePast.setTime(thePast.getTime() - 1);
			document.cookie = ARCOOKIE + "=; expires=" + thePast.toGMTString();
			}
		}

	function Tabify()
		{
		if (Sane("#" + this.id))
			{
			for (var i = 1; ; ++i)
				{
				var a = glow.dom.get("#" + this.id + "-" + i + "-button a");
				if (a.length < 1)
					break;
				glow.events.addListener(a, "click", function () {
					var name = this.href.toString().split("#").pop().split("-");
					var n = name[1];
					var myPanel = "#" + name[0];
					var myButton = myPanel + "-" + n + "-button";
					var myContent = myPanel + "-" + n + "-content";
					var thePanel = glow.dom.get(myPanel);
	
					// deselect the current button
					//
					var myType = (thePanel.hasClass("two-tab")) ? "two-tab" : "three-tab";
					thePanel.removeClass(myType + "-1").removeClass(myType + "-2").removeClass(myType + "-3");
					glow.dom.get("div" + myPanel + " div.tab-selected").removeClass("tab-selected");
	
					// select the correct button and fade-in its panel
					//
					thePanel.addClass(myType + "-" + n);
					glow.dom.get(myButton).addClass("tab-selected");
					glow.dom.get(myPanel + "-container > div").addClass("ar-hide").css("opacity", "0.5");
					glow.dom.get(myContent).removeClass("ar-hide");				
					glow.anim.fadeTo(myContent, 1, 0.25);

					RememberTab(myPanel, myButton);
					return false;
					});
				}

			// select the default tab
			glow.events.fire(glow.dom.get("#" + this.id + " div.default a"), "click");
			}
		}

	// main
	//

	// make carousels
	//
	glow.dom.get(".roller").each(Carouselify);

	// fix hovers
	//
	glow.dom.get("a.watch", "a.listen").each(Hoverify);

	// set default buttons on the tabbed panels
	//
	SetDefaultTabs();

	// make tabs
	//
	glow.dom.get("div.tabbedpanel").each(Tabify);

	});

