/*global jQuery*/
var initPortaleClienti = function ($) {
        'use strict';
        var that = {},
            my = {};

        my.mesi = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];

        my.arrayEvents = Array();

        my.loadEvents = function () {
            $.getJSON('/docs/portale_clienti/events.json', function (data) {
                my.events = data.events;
                $.each(my.events, my.addEvents);
                my.events.sort(function (a, b) {
                    var compA = a.data;
                    var compB = b.data;
                    return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
                });
                my.month.sort(function (a, b) {
                    var a1 = a.replace(/_.*/, '');
                    var b2 = b.replace(/_.*/, '');
                    return a1 - b2;
                });
                my.costruisciTable();
            });
        };

        my.costruisciTable = function () {
            var t, r, c, table, tr;

            for (t = 0; t < Math.ceil(my.month.length / 3); t++) {
                table = $('<table>').css({
                    width: '100%',
                    marginBottom: '20px'
                }).prependTo($('#corsi_eventi_portale'));

                tr = $('<tr>').appendTo(table);
                $('<th>').css({
                    fontSize: '25px',
                    textAlign: 'center'
                }).append("Set.").appendTo(tr);
                for (c = 0; c < 3; c++) {
                    if (!my.month[t * 3 + c]) {
                        continue;
                    }
                    var mese = my.mesi[my.month[t * 3 + c].replace(/_.*/, '') - 1];
                    $('<th>').css({
                        fontSize: '25px',
                        textAlign: 'center'
                    }).append(mese).appendTo(tr);
                }

                for (r = 0; r < 5; r++) {
                    tr = $('<tr>').addClass('week_' + r).appendTo(table);
                    $('<th>').css({
                        width: '50px',
                        border: '1px solid #cdc3bd',
                        textAlign: 'center'
                    }).append(r + 1).appendTo(tr);
                    for (c = 0; c < 3; c++) {
                        $('<td>').css({
                            width: '250px',
                            border: '1px solid #cdc3bd',
                            background: '#f3f3f3',
                            verticalAlign: 'top'
                        }).addClass('month_' + my.month[t * 3 + c]).appendTo(tr);
                    }
                }
            }
            $.each(my.events, my.riempiTable);
        }

        my.month = Array();

        my.addEvents = function (index, value) {
            var monthYear;

            value.data = new Date(value.data[2], value.data[1], value.data[0]);
            monthYear = value.data.getMonth() + '_' + value.data.getFullYear();

            if ($.inArray(monthYear, my.month) == -1) {
                my.month[my.month.length] = monthYear;
            }
        }

        my.divEvents = function (value) {
            var div;

			
            div = $('<div>').addClass(value.tipo).append($('<p>').addClass("luogo_corso_evento").css({
                textTransform: 'uppercase'
            }).append(value.luogo + ', ').append($('<span>').addClass("data_corso_evento").append((value.fewdays != null ? value.fewdays : value.data.getDate()) + " " + my.mesi[value.data.getMonth() - 1])));

            div.append($('<p>').addClass('ora_corso_evento').append(value.orario));
            if (value.link != null) {
                div.append($('<a>').attr('href', value.link).append($('<p>').addClass('desc_corso_evento').append(value.descrizione)));
            } else {
                div.append($('<p>').addClass('desc_corso_evento').append(value.descrizione));
            }

            return div.css({
                padding: '3px',
                margin: '2px',
                border: '1px solid #dedede',
				lineHeight: 0
            });
        };

        my.riempiTable = function (index, value) {
            var monthYear, weekOfMonth;

            monthYear = value.data.getMonth() + '_' + value.data.getFullYear();
            weekOfMonth = Math.round(value.data.getDate() / 7);

            if (!value.hidden) {
                $('.week_' + weekOfMonth + ' .month_' + monthYear).append(my.divEvents(value));
            }
        }


        my.loadEvents();
        return that;
    };




jQuery(function () {
    'use strict';
    initPortaleClienti(jQuery);
});
