/* ACL */

var RicercaMode = false;
var isRicerca = false;

function rand(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

function ChromeFix() {

	var DimensioneFinestraX = $(window).width();
	var DimensioneFinestraY = $(window).height();
		
    $("#animalcrossinglife").css({
		"width": DimensioneFinestraX,
		"height": DimensioneFinestraY
	}).scrollTop(0);
	
}

function clickAjax() {
	
	$("#risultati_lista a, #container_ajax a").click(function(event){
						
		var LinkHref = $(this).attr("href");
							
			$.get( LinkHref, { AclInAjax : 1 }, function( wrapper ){			
				
				$("#container_ajax").html( wrapper );
				
				if( $("#container_ajax").css("display") == "none" )
				{
					$("#container_ajax").fadeIn( 250 , function(){ $(this).show(); });
				}
								
				clickAjax();
							
			});
				
			return false;
							
	});
	
}

function Ricerca() {
	
	ChromeFix();

    if ($("#search").val() !== "" && $("#search").val() !== null) {
	
		RicercaSetMessaggioDefault('ricerca in corso, attendi...');

        var azione = $("#ricerca_form").attr('action');
        var data = $("#ricerca_form").serialize();

        $("#search").removeClass("ricerca").addClass("caricamento");

        $.post(azione, data, function (html) {
			
            var json = jQuery.parseJSON(html);

			if( json.risultati > 0 )
			{
								
				$("#default").fadeOut( 250 , function(){
										
					$("#risultati_comandi").html( json.comandilista );
					$("#risultati_lista").html( json.lista2 );
								
					clickAjax();

					$("#risultati").show();
					
					$(this).hide();
					
				});
								
			}
			else
			{
				
				$("#risultati").hide().html('');
				
				if( $("#default").css("display") == "none" )
				{
					$("#default").fadeIn( 250 , function(){ $(this).show(); });
				}
				
				RicercaSetMessaggioDefault('nessun risultato trovato per <b>' + $("#search").val() + '</b>');
				
			}
			
			$("#search").removeClass("caricamento").addClass("ricerca");

        });

    }

}

function RicercaChiudi() {

    $("#default").fadeOut(250, function () {

        $("#search").val('');
		$("#search").removeClass("caricamento").addClass("ricerca");
		$("#risultati").hide();
		$("#container_ajax").hide();
		$("#risultati_comandi").html( '' );
		$("#risultati_lista").html( '' );
        $('html, body').animate({
            scrollTop: 0
        }, 500);
        $("#ricerca").animate({
            "top": GetPosizioneAbsoluteRicerca(),
			"opacity": 0
        }, 500, function(){
			$("#search").removeClass("stile_chiaro").addClass("stile_default")
			$(this).animate({ "opacity": 1 },500);
		});
        $("#menu").fadeOut( 500 , function(){
			$(this).removeClass("menu_chiaro").addClass("menu_default").fadeIn(500);
		});

    });
	
	isRicerca = false;
	RicercaMode = false;

}

function RicercaIndietro() {

    var posizione_ora = parseInt($("#ricerca_posizione").val());
    var posizione_nuova = parseInt(posizione_ora - 1);
    var posizione_min = 0;

    if (posizione_min <= posizione_nuova) {

		$("#lista_" + posizione_ora).fadeOut( 500 , function(){
			$("#lista_" + posizione_nuova ).fadeIn(500);
		});

        $("#ricerca_posizione").val(posizione_nuova);

        if (posizione_nuova > 0) {
            $("#tasto_avanti").show();
        }

        if (posizione_nuova == posizione_min) {

            $("#tasto_indietro").hide();

        }

    }

}

function RicercaAvanti() {

    var posizione_ora = parseInt($("#ricerca_posizione").val());
    var posizione_nuova = parseInt(posizione_ora + 1);
    var posizione_max = parseInt($("#ricerca_max").val());

    if (posizione_max >= posizione_nuova) {

		$("#lista_" + posizione_ora).fadeOut( 500 , function(){
			$("#lista_" + posizione_nuova ).fadeIn(500);
		});
        $("#ricerca_posizione").val(posizione_nuova);

        if (posizione_nuova !== 0) {
            $("#tasto_indietro").show();
        }

        if (posizione_nuova == posizione_max) {

            $("#tasto_avanti").hide();

        }

    }

}

function RicercaSetMessaggioDefault(txt) {
    $("#default #testo").html(txt);
}

function GetPosizioneAbsoluteRicerca() {

    var PosizioneSplash = $("#splash").offset();
    var PosizioneSplashY = PosizioneSplash.top;
    var PosizioneRicercaY = PosizioneSplashY + 479;

    return PosizioneRicercaY;

}

$(document).ready(function () {

    // Ricavo le dimensioni dello schermo e inizializzo il mosaico.
    var SchermoX = screen.width;
    var SchermoY = screen.height;

    var Margine = 18;

    var BloccoX = 412 - Margine;
    var BloccoY = 252 - Margine;

    var StileMax = 12;

    var MosaicoPerRiga = parseInt(SchermoX / BloccoX) + 1;
    var MosaicoPerColonna = parseInt(SchermoY / BloccoY) + 1;

    var MosaicoTotale = MosaicoPerRiga * MosaicoPerColonna;

    var DimensioneMosaicoX = MosaicoPerRiga * BloccoX;
    var DimensioneMosaicoY = MosaicoPerColonna * BloccoY;

    var DifferenzaX = -(parseInt(DimensioneMosaicoX / 2));
    var DifferenzaY = -(parseInt(DimensioneMosaicoY / 2));

    var Velocita = 1000;
	
    $("#mosaico").css({
        "width": DimensioneMosaicoX,
        "height": DimensioneMosaicoY,
        "margin-left": DifferenzaX,
        "margin-top": DifferenzaY
    });

    var stile = 1;

    for (var i = 0; i < MosaicoTotale; i++) {
        $("#mosaico").append('<div class="sfondo s' + stile + ' indice_' + i + '"><div class="cont_status" style="display: none;"></div></div>');
        stile = (stile == StileMax) ? 1 : stile + 1;
    }
	
    /* Sistemo la grandezza del Div ANIMALCROSSINGLIFE sia al load della pagina che al ridimensionamento */

    $(window).bind("load resize", function () {

        var DimensioneFinestraX = $(window).width();
        var DimensioneFinestraY = $(window).height();

        $("#animalcrossinglife").css({
            "width": DimensioneFinestraX,
            "height": DimensioneFinestraY
        });
        $("#ricerca_ajax").css({
            "width": DimensioneFinestraX,
            "height": DimensioneFinestraY
        });
				
        if (!RicercaMode && !isRicerca) {
            $("html, body").scrollTop(0).animate({scrollTop: 0},100);
            $("#ricerca").css({
                "top": GetPosizioneAbsoluteRicerca()
            });
        } else {
            $("html, body").scrollTop(DimensioneFinestraY);
        }

    });
	
	/* Chrome Fix */
	ChromeFix();
	
    /* Configuro i vari Plugin */

    $('#links a').tipsy({
        'fade': true
    });

    /* Ricerca AJAX */

    $("#ricerca_form").submit(function () {

        Ricerca();
        return false;

    });

    $("#search").keyup(function () {

        Ricerca();		
        return false;

    });

    $("#search").click(function (event) {

        var DimensioneFinestraY = $(window).height();

        if (( $("html, body").scrollTop() < DimensioneFinestraY ) && !isRicerca) {
			
            $("html, body").animate({
                scrollTop: DimensioneFinestraY
            }, 500);
			
            $("#menu").fadeOut( 500 , function(){
				$(this).removeClass("menu_default").addClass("menu_chiaro").fadeIn(500);
			});
			
            $("#ricerca").animate({
                "top": 50,
				"opacity": 0
            }, 500, function () {
				
				$("#search").removeClass("stile_default").addClass("stile_chiaro")
				$(this).animate({ "opacity": 1 },500);
				
				RicercaSetMessaggioDefault("scrivi un termine e premi invio per avviare la ricerca.");
                $("#default").fadeIn(250);
				
            });
            RicercaMode = true;
			isRicerca = true;
        }

    });
	
	/* Paging Ricerca */
	
	DimensioniRicerca = parseInt( $("#risultati").height() );
	
	$("#risultati_lista").css({
		"top": parseInt( $("#risultati").css("top") ) + 25,
		"height": RicercaElementiLista * ElementoLista
	});
			
    /* Top */
	
    $("html, body").scrollTop(0);

    /* Carico il Preload */
	
    $("#preload").hide();
    for (var j = 0; j < StileMax; j++) {

        $("#preload").append('<img src="immagini/sfondi/' + j + '.png width="1" height="1" />');

    }

});

$(window).load( function(event){
	
	$("#full_preload").fadeOut( 1000 );

});
