/*globals alert, $, window, navigationManager, galleriesManager*/
/*jslint white: true, onevar: true, undef: true, nomen: true, regexp: true, plusplus: true, bitwise: true, newcap: true, maxerr: 50, indent: 4 */

/* Manager della rassegna stampa. */
var initRassegnaManager = function () {
	// JSLint strict
	'use strict';

	// That and mine.
	var that = {},
		my = {};

	// Apertura di un articolo.
	my.openItem = function (event) {
		var doOpen, element, data;
		element = $(this);
		data = element.data('rassegnaData');
		event.stopPropagation();
		doOpen = function () {
			var contentDiv = navigationManager.createContentDiv();
			contentDiv.append($('<nav>')
					.attr('class','indice_interno')
					.append($('<a>')
					.attr('title', 'Back')
					.attr('href', '/rassegna')
					.append('Back')))
				.fadeIn('fast');
			contentDiv.append(my.getIndexLiForDetail(data))
				.fadeIn('fast');
			$.ajax({url: element.attr('href'), success:
				function(data, textStatus, jqXHR) {
					contentDiv.append(data);
				}
			});
			contentDiv.fadeIn('fast');
		}
		navigationManager.fadeOut(doOpen);
		return false;
	};

	// Load JSON
	my.loadJSON = function (callback) {
		$.getJSON('ajax/rassegna-stampa.json', function (data) {
			my.initialized = true;
			my.data = data;
			if (callback) {
				callback();
			}
		});
	};

	my.getIndexLiFor = function (data) {
		var title = "";
		if (data.title) {
			title += "<h3>" + data.title + "</h3>";
		}
		if (data.club) {
			title += "<h4>" + data.club + "</h4>";
		}
		if (data.data) {
			title += "<h5 class='evento_data'>" + data.data + "</h5>";
		}
		if (data.riassunto){
			title += "<p class='evento_riassunto'>" + data.riassunto + "</p>";
		}
		return title;
	};
	
	my.getIndexLiForDetail = function (data) {
		var title = "";
		if (data.title) {
			title += "<h1>" + data.title + "</h1>";
		}
		if (data.club) {
			title += "<h2>" + data.club + "</h2>";
		}
		if (data.data) {
			title += "<h3 class='evento_data'>" + data.data + "</h3>";
		}
		return title;
	};

	// Apertura rassegna stampa.
	my.writeIndex = function() {
		var ul, div, contentDiv;
		contentDiv = navigationManager.createContentDiv('Rassegna eventi','../');
		$.each(my.data, function (index, item) {
            if (item.shown !== undefined && !item.shown) {
                return;
            }
			contentDiv.append($('<h2>').append(item.title));			
			$.each(item.items, function (index1, item1) {
				div = $('<div>').attr('class','evento_blocco').appendTo(contentDiv);
				div.append($("<img>").attr('src', '/img/rassegna_eventi/' + item1.image).attr('title', item.title).attr('alt', item.title));
				var a = $('<a>')
					.append(my.getIndexLiFor(item1));
				if (item1.href) {
					a.click(my.openItem)
						.attr('href', '/ajax/rassegna-stampa/' + item1.href)
				}
				$('<div>').attr('class','evento_info').append(a).appendTo(div);				
				a.data('rassegnaData', item1);
			});
		});
		contentDiv.fadeIn('fast');
	};

	// Apertura rassegna stampa.
	that.openIndex = function() {
		if (!my.initialized) {
			my.loadJSON(that.openIndex);
		} else {
			navigationManager.fadeOut(function () {
				my.writeIndex();
			});
		}
	};

	my.initialized = false;

	return that;
};

