var yd = YAHOO.util.Dom;
var ye = YAHOO.util.Event;
var yc = YAHOO.util.Connect;

var Tabs = function()
{
	var tabsNode = yd.get("tabs");
	var tabItems = tabsNode.firstChild.childNodes;
	var tooltip = yd.get("tooltip");
	var selectedTab = null;
	
	for(var i = 0; i < tabItems.length; i++)
	{
		if(tabItems[i].className == "on")
		{
			selectedTab = tabItems[i];
		}
		ye.addListener(tabItems[i].firstChild, "mouseover", showToolTip, tabItems[i].firstChild.title);
		ye.addListener(tabItems[i].firstChild, "mouseout", hideToolTip, tabItems[i].firstChild.title);
		ye.addListener(tabItems[i].firstChild, "mousedown", selectTab, tabItems[i]);
		ye.addListener(tabItems[i].firstChild, "click", function(e) {
			e = ye.getEvent(e); ye.stopEvent(e);
		}, tabItems[i]);
		
		tabItems[i].firstChild.title = "";
	}
	
	function hideToolTip(e)
	{
		tooltip.style.visibility = "hidden";
	}
	
	function showToolTip(e, title)
	{
		e = ye.getEvent(e);
		var t = ye.getTarget(e);
		
		if(t.nodeName.toLowerCase() == "a")
		{
			t = t.firstChild;
		}
		else if(t.nodeName.toLowerCase() == "em")
		{
			t = t.previousSibling;
		}
		
		if(t.parentNode.parentNode.className == "on")
		{
			return false;
		}
		
		tooltip.firstChild.innerHTML = title;
		tooltip.style.visibility = "visible";
		var xy = yd.getXY(t);
		xy[1] -= 30;
		yd.setXY(tooltip, xy);
		
	}
	
	function selectTab(e, liObj)
	{
		e = ye.getEvent(e);
		ye.stopEvent(e);
		
		var oldLang = selectedTab.getAttribute("name").replace("tab-", "");
		var oldTabContent = yd.get("tab-content-" + oldLang);
		
		var newLang = liObj.getAttribute("name").replace("tab-", "");
		var newTabContent = yd.get("tab-content-" + newLang);
		
		if(newTabContent)
		{
			// Deselecting old one
			selectedTab.className = "";
		
			// Selecting new
			selectedTab = liObj;
			selectedTab.className = "on";
			
			oldTabContent.style.display = "none";
			newTabContent.style.display = "block";
		}
		else
		{
			alert("This language has no downloads.");
		}
		
		
		
		
		
		
		
	}
}();


var Page = function()
{
	var newsletterValidator = new FormCheck.ToolTipValidator({
		config  		: newsletterCfg,
		form    		: "newsletter-form",
		submit  		: "newsletter-form-submit",
		tooltip 		: "form-tooltip",
		tooltipContent  : "form-tooltip-cont",
		tooltipClose	: "form-tooltip-close",
		onSuccess 		: subscribe
	});
	
	var recommendValidator = new FormCheck.ToolTipValidator({
		config  		: recommendCfg,
		form    		: "recommend-form",
		submit  		: "recommend-form-submit",
		tooltip 		: "form-tooltip",
		tooltipContent  : "form-tooltip-cont",
		tooltipClose	: "form-tooltip-close",
		onSuccess 		: recommend
	});
	
	function recommend()
	{
		yc.setForm("recommend-form");
		yc.asyncRequest("post", "request.php?action=recommend");
		yc.resetFormState();
		that.hide("send-a-friend");
		that.messagebox("Recommendation", textRecommended);
	}
	
	function subscribe()
	{
		yc.setForm("newsletter-form");
		yc.asyncRequest("post", "request.php?action=newsletter");
		yc.resetFormState();
		that.hide("newsletter");
		that.messagebox("Newsletter", textSubscribed);
	}
	
	var that = {
		hide : function(id)
		{
			try
			{
				e = ye.getEvent();
				ye.stopEvent(e);
			}
			catch(e)
			{
				
			}
			
			yd.get(id).style.visibility = "hidden";
			
			newsletterValidator.Hide();
			recommendValidator.Hide();
		},
		messagebox : function(caption, text)
		{
			var el = yd.get("mbox");
			el.firstChild.innerHTML = caption;
			el.firstChild.nextSibling.firstChild.innerHTML = "<p>" + text + "</p>";
			
			
			this.show("mbox");
		},
		/*recommend : function(e)
		{
			e = ye.getEvent();
			ye.stopEvent(e);
			
			var formCheck = new FormCheck(recommendCfg);
			var formVars  = formCheck.GetFormVars("recommend-form");
			
			formCheck.Check(formVars);
			
			if(!formCheck.HasErrors())
			{
				yc.setForm("recommend-form");
				yc.asyncRequest("post", "request.php?action=recommend");
				yc.resetFormState();
				this.hide("send-a-friend");
				this.messagebox("Weiterempfehlen", textRecommended);
			}
			else
			{
				alert(formCheck.GetErrorTexts().join("\n"));
			}
		},*/
		show : function(id)
		{
			this.hide("newsletter");
			this.hide("send-a-friend");
			this.hide("imprint");
			
			try
			{
				e = ye.getEvent();
				ye.stopEvent(e);
			}
			catch(e)
			{
				
			}
			
			var y = yd.getDocumentScrollTop() + yd.getViewportHeight() / 2 - yd.get(id).offsetHeight / 2;
			yd.setY(id, y);
			
			yd.get(id).style.visibility = "visible";			
		}/*,
		subscribe : function(e)
		{
			e = ye.getEvent();
			ye.stopEvent(e);
			
			var formCheck = new FormCheck(newsletterCfg);
			var formVars  = formCheck.GetFormVars("newsletter-form");
			
			formCheck.Check(formVars);
			
			if(!formCheck.HasErrors())
			{
				
			}
			else
			{
				alert(formCheck.GetErrorTexts().join("\n"));
			}
		}*/
	}
	
	return that;
	
}();
