function MM_preloadImages() { //v3.0
    var d = document; if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; } 
    }
}

function MM_swapImgRestore() { //v3.0
    var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function MM_findObj(n, d) { //v4.01
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
    var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2]; }
}

function MM_effectAppearFade(targetElement, duration, from, to, toggle) {
    Spry.Effect.DoFade(targetElement, { duration: duration, from: from, to: to, toggle: toggle });
}

function switcher(obj) {
    var el = document.getElementById(obj);
    if (el.style.display != "none") {
        el.style.display = 'none';
    }
    else {
        el.style.display = '';
    }
}

function toggleLayer(whichLayer) {
    var elem, vis;
    if (document.getElementById) // this is the way the standards work
        elem = document.getElementById(whichLayer);
    else if (document.all) // this is the way old msie versions work
        elem = document.all[whichLayer];
    else if (document.layers) // this is the way nn4 works
        elem = document.layers[whichLayer];
    vis = elem.style;
    // if the style.display value is blank we try to figure it out here
    if (vis.display == '' && elem.offsetWidth != undefined && elem.offsetHeight != undefined)
        vis.display = (elem.offsetWidth != 0 && elem.offsetHeight != 0) ? 'block' : 'none';
    vis.display = (vis.display == '' || vis.display == 'block') ? 'none' : 'block';
}

/* UnoDIRETTA test */

/**
* Copyright (c) 2006 Adobe Macromedia Software LLC and its licensors.
* All rights reserved.
*/
function flashPlugin(schema, width, height, align, script, movie, menu, quality, scale, bgcolor, flashvars, version, base, id, scroll, wmode, swlive) {
    var classid = "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
    var codebase = schema + "://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" + version;
    document.write(
        "<OBJECT"
        + (id ? attribute("ID", id) : "")
        + attribute("CLASSID", classid)
        + attribute("CODEBASE", codebase)
        + attribute("WIDTH", width)
        + attribute("HEIGHT", height)
        + attribute("ALIGN", align)
        + (scroll ? attribute("SCROLL", scroll) : "")
        + ">"
        + param("MOVIE", movie)
        + (flashvars ? param("FLASHVARS", flashvars) : "")
        + param("QUALITY", quality)
        + param("SCALE", scale)
        + (base ? param("BASE", base) : "")
        + (menu ? param("MENU", menu) : "")
        + (wmode ? param("WMODE", wmode) : "")
        + (bgcolor ? param("BGCOLOR", bgcolor) : "")
        + (script ? param("ALLOWSCRIPTACCESS", script) : "")
        + "<EMBED"
        + attribute("SRC", movie)
        + (id ? attribute("NAME", id) : "")
        + (flashvars ? attribute("FLASHVARS", flashvars) : "")
        + attribute("QUALITY", quality)
        + attribute("SCALE", scale)
        + attribute("WIDTH", width)
        + attribute("HEIGHT", height)
        + attribute("ALIGN", align)
        + attribute("TYPE", "application/x-shockwave-flash")
        + attribute("PLUGINSPAGE", schema + "://www.macromedia.com/go/getflashplayer")
        + (base ? attribute("BASE", base) : "")
        + (menu ? attribute("MENU", menu) : "")
        + (wmode ? attribute("WMODE", wmode) : "")
        + (bgcolor ? attribute("BGCOLOR", bgcolor) : "")
        + (swlive ? attribute("SWLIVECONNECT", swlive) : "")
        + (script ? attribute("ALLOWSCRIPTACCESS", script) : "")
	  + ">"
        + "</EMBED>"
        + "</OBJECT>"
    );

}

function attribute(name, value) {
    return " " + name + '="' + value + '"';
}

function param(name, value) {
    return "<PARAM " + attribute("NAME", name) + attribute("VALUE", value) + ">";
}

/*
This function calls the flashPlugin function passing it a list of the most common settings for some of the required parameters. 
Use this function if you want to use default values but want to specify the version of flash
*/
function loadswfwithversion(schema, width, height, movie, flashvars, version) {
    flashPlugin(schema, width, height, "middle", "sameDomain", movie, "false", "best", "noscale", "#ffffff", flashvars, version);
}

/*
This is the default loadswf function to use, it will suffice for most of the cases where a flash object is displayed on a page.
*/
function loadswf(schema, width, height, movie, flashvars) {
    loadswfwithversion(schema, width, height, movie, flashvars, "9,0,0,0");
}

/*
We should probably just have a JavaScript object to encapsulate all these different parameters :(
*/
function loadswfWithId(schema, width, height, movie, flashvars, id) {
    flashPlugin(schema, width, height, "middle", "sameDomain", movie, "false", "best", "noscale", "#ffffff", flashvars, "9,0,0,0", "", id);
}

function addResizeEventListener(fnCallback) {
    // Add event listeners for resize and load event.  
    if (typeof window.addEventListener != 'undefined') {
        window.addEventListener("load", fnCallback, false);
        window.addEventListener("resize", fnCallback, false);
    }
    else if (typeof document.addEventListener != 'undefined') {
        document.addEventListener("load", fnCallback, false);
        document.addEventListener("resize", fnCallback, false);
    }
    else if (typeof window.attachEvent != 'undefined') {
        window.attachEvent("onload", fnCallback);
        window.attachEvent("onresize", fnCallback);
    }
}

