﻿window.onload = function () {
    //document.getElementById("tbxCerca") RITORNA l'oggetto, su cui si può lavorare in javascript
    // dire document.getElementById("tbxCerca").onkeypress=cercaKP
    // signigica che quando si preme un tasto ("onkeypress") deve essere chiamata la funzione cercaKP
    document.getElementById("tbxCerca").onkeypress = cercaKP;
    initTopPix();
}
function cercaKP(e) {
    if (!(e = (e || event))) return;
    // alla pressione di un tasto del campo di ricerca viene chiamata questa funzione
    // i browser generano un oggetto informativo che contiene il codice del tasto premuto
    // IE definisce keyCode, gli altri browser which
    // "e" contiene l'oggetto informativo dell'evento
    /// dire e.which||e.keyCode è come dire: dammi il valore di which e, se questo non è definito, dammi il valore di keyCode
    // lo switch permette di eseguire codice in base al valore tra parentesi
    switch (e.which || e.keyCode) {
        case 13:
        case 10:
            // Un evento generato per un controllo (la pressione di un tasto nella casella di testo ad esempio), viene passato
            // anche agli oggetti padre del controllo stesso (così ad esempio l'evento "tasto premuto" viene inviato anche, ad esempio,
            // alla tabella che contiene il controllo. Per evitare che ciò accada facciamo così:
            e.cancelBubble = !(e.returnValue = false);
            if (e.preventDefault) e.preventDefault();
            if (e.stopPropagation) e.stopPropagation();
            VaiRicerca();
            return false;
    }
}

function VaiRicerca(e) {
    var I, s;
    // QUesto javascript viene eseguito se il codice del carattere è 10 oppure 13 (ovvero è un ritorno a capo / invio / enter)
    // Mettiamo in I un riferimento all'oggetto html che rappresenta la casella di testo ("tbxCerca")
    I = document.getElementById("tbxCerca");
    // Ricaviamone il testo contenuto, togliendo eventuali spazi/tabulazioni/ritorni a capo all'inizio o alla fine (usando quelle
    // che vengono chiamate "espressioni regolari"). Tale testo semplificato lo mettiamo nella variabile s
    s = I.value.replace(/^[ \t\r\n]+|[ \t\r\n]+$/g, "");

    //Ma toniamo alla nostra variabile s che contiene il testo preso dalla casella di controllo.
    // Dire if(s.length) è come dire if(s.length!=0) ovvero se la lunghezza del testo non è vuota.
    //
    if (s.length)
        window.location.href = "cerca.aspx?w=" + (window["encodeURIComponent"] ? encodeURIComponent(s) : escape(s)); //se c'è del testo, navighiamo alla pagina "cerca.aspx", passando il parametro "w" che contiene il valore di s
    else {
        // Se invece il testo è vuoto (ha solo spazi), selezioniamo tutto il testo della casella di controllo...
        if (I.select) I.select();
        // ...e rendiamo tale casella di testo attiva (il cursore ci entra dentro).
        I.focus();
    }
}

/* Immagine in alto */
var topPixUrls = null, topPixDelay = null, topPixUrlsSwapper = null;
function initTopPix() {
    if (topPixUrls)
        new topPixUrlsSwapperB();
}
function topPixUrlsSwapperB() {
    topPixUrlsSwapper = this;
    this.Index = 0;
    this.I = document.getElementById("imgTopPix");
    try {
        this.UseFilter = false;
        if (document.all && this.I.filters && (typeof (this.I.filters.length) == "number") && this.I.filters.length)
            this.UseFilter = true;
    }
    catch (e)
	{ }
    setInterval("topPixUrlsSwapper.Next()", topPixDelay ? topPixDelay : 4000);
}
topPixUrlsSwapperB.prototype =
{
    FILTER_DELAY: 0.8,
    FILTERS:
	[
		"Barn(orientation='horizontal' motion='in',%d%)",
		"Barn(orientation='horizontal' motion='out',%d%)",
		"Barn(orientation='vertical' motion='in',%d%)",
		"Barn(orientation='vertical' motion='out',%d%)",
		"Checkerboard(Direction='down',%d%)",
		"Checkerboard(Direction='left',%d%)",
		"Checkerboard(Direction='right',%d%)",
		"Checkerboard(Direction='up',%d%)",
		"Inset(%d%)",
		"Iris(irisStyle='circle', motion='in',%d%)",
		"Iris(irisStyle='cross', motion='out',%d%)",
		"Iris(irisStyle='diamond', motion='in',%d%)",
		"Iris(irisStyle='plus', motion='in',%d%)",
		"Iris(irisStyle='square', motion='out',%d%)",
		"Iris(irisStyle='star', motion='out',%d%)",
		"Pixelate(%d%)",
		"RandomBars(motion='horizontal',%d%)",
		"RandomBars(motion='vertical',%d%)",
		"RandomDissolve(%d%)",
		"Slide(bands=5, slidestyle='hide',%d%)",
		"Slide(bands=5, slideStyle='push',%d%)",
		"Slide(bands=5, slidestyle='swap',%d%)",
		"Spiral(%d%)",
		"Stretch(stretchStyle='push',%d%)"
	],
    Next: function () {
        if (++this.Index >= topPixUrls.length)
            this.Index = 0;
        if (this.UseFilter) {
            this.I.style.filter = "progid:DXImageTransform.Microsoft." + this.FILTERS[Math.round(Math.random() * (this.FILTERS.length - 1))].replace("%d%", "duration=" + this.FILTER_DELAY);
            this.I.filters[0].apply();
        }
        this.I.src = topPixUrls[this.Index];
        if (this.UseFilter)
            this.I.filters[0].play();
    }
}
