var ui = {

	frontpageOpen: false,

	frontpageAnimationRunning: false,
	
	currentFrontpageItem: 0,

	init: function()
	{
	
		if (IS_FRONTPAGE)
		{
			
			if (sessionStorage != null)
			{
				if (!("curtain_viewed" in sessionStorage))
				{
					$("#white-curtain-wrapper").show();
					sessionStorage["curtain_viewed"] = true;
				} else {
					sessionStorage["curtain_viewed"] = false;
				}
			} else {
				var url = window.location.toString();
				if (url.indexOf("nav=true") != -1)
				{
					$("#white-curtain-wrapper").show();
				}
			}
			
		}
	
		// Toggle frontpage quote.	
		$('#quote-more').click( function() {
			$('#quote-body').slideToggle(200);	
		});
		
		// Add clicks to header arrows.
		jQuery("#theme-prev").click(ui.previousFrontItem);
		jQuery("#theme-next").click(ui.nextFrontItem);
	
		jQuery("#content-theme-textbox").hover(
			function(){
				if (!ui.frontpageOpen)
				{
					jQuery("#content-theme-textbox .more").addClass("more-hover");
					jQuery("#content-theme-textbox").animate({ top: 205 }, 100);
				}
			},
			function(){
				if (!ui.frontpageOpen)
				{
					jQuery("#content-theme-textbox .more").removeClass("more-hover");
					jQuery("#content-theme-textbox").animate({ top: 218 }, 100);
				}
			}
		);
	
		jQuery("#content-theme-textbox").click(function(){
			ui.showFrontArea();
		});

		jQuery("#textbox-close").click(function(){
			jQuery("#content-theme-textbox").animate({ top: 218 }, 400, function(){
				ui.frontpageOpen = false;
				jQuery("#content-theme-textbox .more").show();
				jQuery("#textbox-close").hide();
			});
			jQuery("#content-mover").animate({ height: 178 }, 400);
			jQuery("#theme-prev-next").hide();
		});
		
	},
	
	showFrontArea: function()
	{
		if (!ui.frontpageOpen)
		{
			jQuery("#content-theme-textbox").animate({ top: 0 }, 400, function(){
				ui.frontpageOpen = true;
			});
			jQuery("#content-mover").animate({ height: 339 }, 400);
			jQuery("#content-theme-textbox .more").hide();
			jQuery("#textbox-close").show();
			jQuery("#theme-prev-next").show();
		}
	},
	
	nextFrontItem: function()
	{
		ui.showFrontArea();
		var item = ui.currentFrontpageItem + 1;
		if (item >= jQuery("#content-theme-textbox li").length)
		{
			item = 0;
		}
		ui.openFrontItem(item);
	},
	
	previousFrontItem: function()
	{
		ui.showFrontArea();
		var item = ui.currentFrontpageItem - 1;
		if (item < 0)
		{
			item = jQuery("#content-theme-textbox li").length - 1;
		}
		ui.openFrontItem(item);
	},
	
	openFrontItem: function(id)
	{
		
		if (id == ui.currentFrontpageItem || ui.frontpageAnimationRunning)
		{
			return;
		}
		
		// Change menu styles.
		jQuery("#content-theme-textbox li").removeClass("selected");
		jQuery("#content-theme-textbox li:nth-child("+(id+1)+")").addClass("selected");
		
		// Get items.
		var items = jQuery(".contentarea-item");
		var currentItem = items[ui.currentFrontpageItem];
		var item = items[id];

		// Hide all items.
		jQuery(".contentarea-item").hide();
		
		// Display current items.
		jQuery(currentItem).show();
		jQuery(item).show();

		// Move to right.
		if (id > ui.currentFrontpageItem)
		{
		
			// Prepare positions for animation.
			jQuery("#content-theme-scroller").css("left", 0);
			jQuery(currentItem).css("left", 0);
			jQuery(item).css("left", 940);
			
			// Animate.
			ui.frontpageAnimationRunning = true;
			jQuery("#content-theme-scroller").animate({left: -940}, 500, function() { ui.frontpageAnimationRunning = false; });

		} else {

			// Prepare positions for animation.
			jQuery("#content-theme-scroller").css("left", -940);
			jQuery(currentItem).css("left", 940);
			jQuery(item).css("left", 0);
			
			// Animate.
			ui.frontpageAnimationRunning = true;
			jQuery("#content-theme-scroller").animate({left: -0}, 500, function() { ui.frontpageAnimationRunning = false; });

		}

		ui.currentFrontpageItem = id;
		
	},
	
	openArticles: function(mode, offset, category)
	{
	
		// Add class to tab.
		$("#tab-header li").removeClass("ui-tabs-selected");
		if (mode == "default")
		{
			$("#tab-header li.mode-" + mode).addClass("ui-tabs-selected");
		} else if (mode == "popular") {
			$("#tab-header li.mode-" + mode).addClass("ui-tabs-selected");
		}
		
		// Reset, if starting from beginning.
		if (offset == 0 || offset == 1)
		{
			$("#fragment-1").html("");
		}

		jQuery(".load-more-container").parent().append("<div class=\"loading-articles\"></div>");

		// Remove more-button.
		jQuery(".load-more-container").detach();
	
		jQuery.ajax({
			url: PUBLIC_URL + "/?page_id=" + 31 + "&offset=" + offset + "&category=" + category + "&mode=" + mode,
			success: function(data) {
				jQuery(".loading-articles").detach();
				jQuery("#fragment-1").append(data);
			}
		});
	},
	
	hideCurtain: function()
	{
		
		jQuery("#white-wiki").fadeOut(200, function(){
			jQuery("#white-paperijapuu").fadeOut(200, function(){
				jQuery("#white-curtain").animate({width:0}, 350, function(){
					jQuery("#white-curtain-wrapper").fadeOut(350);
				});
			})
		});
		
	}

}

jQuery(document).ready(function(){
	ui.init();
});
