/*global jQuery, window, configDomain, $*/
/*jslint white: true, onevar: true, browser: true, devel: true, widget: false, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: false, strict: true, newcap: true, immed: true */
"use strict";

var Rintakumpufi = {};

Rintakumpufi.articleNavigation = function () {

	//Creates the article box
	var articleNavigationEventObject = [],
	articleNavigationBindingObject = [],
	i = 0;
			
	/* Navigation events */
	function ArticleNavigationEvent() {
		
		this.loadArticle = function (article) {	
		
			//Load new article & hide old one						
				$('#rintakumpubody-article').attr("class", "nav-" + article).hide('slide', {direction: 'left'}, 1000, function () {
					$.ajax({
						url: configDomain + $(this).attr('class').substr(4) + '/' + $(this).attr('class').substr(4) + '.html',
						async: false,
						success: function (data) { 
							$("#rintakumpubody-article").html(data.replace(/\[template:serverpath\]/g, configDomain));								
						}
					});			
			
					//Show new article & section
					$("#rintakumpubody-article").show('drop', {direction: 'right'}, 1000).parents("section").animate({opacity: 0.96});
					
					//Set up & bind lightbox
					$('.images a:first-child').lightBox();
			
					//Unbind events
					articleNavigationBindingObject[0].unBindClick(article);
				});
			};
	}
		
	function BindNavigationEvents() {	
	
		this.bindClick = function () {
		
			$("section nav li[class!=selected] a, footer nav li[class!=selected] a").click(function (event) {
				event.preventDefault();
				$(this).unbind('click').bind('click', function (event) { 
					event.preventDefault(); 
				});
				articleNavigationEventObject[($(this).parents("li").prevAll().length)].loadArticle($(this).attr("class").substr(4));
			});
		};
		
		this.unBindClick = function (article) {
			
			$(".nav-" + article).parents("li").attr("class", "selected").siblings().attr("class", "unselected").find("a").unbind('click');
			articleNavigationBindingObject[0].bindClick();
			
		};
	}
	
	//Creates calendar event object for each element found
	for (i = 0; i < $("footer nav a").length; i = i + 1) {	
		
		
		articleNavigationEventObject[i] = new ArticleNavigationEvent();
		articleNavigationEventObject[i].i = i;			
		

	}
	//Initial event binding (if using AJAX)

	if (configDomain === String(window.location)) {

		articleNavigationBindingObject[0] = new BindNavigationEvents();
		articleNavigationBindingObject[0].bindClick();
	}
			
	return true;
};

Rintakumpufi.articleBox = function (articleBox) {
	
	function ArticleBoxResize(articleHeight, articleWidth) {
		
		//Let's do some math
		articleHeight = $(window).height() - 165; //Reduce header
		articleHeight = articleHeight - 133; //Reduce footer
		
		articleWidth = $(window).width();
		articleWidth = articleWidth - 78; //Reduce left + right margin
		
		$("#rintakumpubody").css({'minHeight' : articleHeight, 'width': articleWidth});
	}
	
	//Trigger initial resize
	articleBox = new ArticleBoxResize();
	
	//Add listener to window resize
	$(window).bind("resize", ArticleBoxResize);
	
	return true;
};

$(function () {
	
	/* Sets functions for sizing the article area */
	Rintakumpufi.articleBox();
		
	/* Sets up the article area content / nav  */	
	Rintakumpufi.articleNavigation();
	
});


