function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}
/*
addLoadEvent(function() {
    addPrintLink("stampa")
});
*/
function addPrintLink(id) {
    if (!document.getElementById || !document.getElementById(id)) {
        return;
    }

    var printPage = document.getElementById(id);

    var printFunction = document.createElement('a');
    printFunction.setAttribute('href', '#');
    printFunction.className = 'print-link';
    printFunction.onclick = function() {
        printPreview();
        return false;
    };

    var image = document.createElement("img");
    image.setAttribute("src", "/images/stampa.gif");
    image.setAttribute("class", "cmd-icon");

    printFunction.appendChild(image);
    printFunction.appendChild(document.createTextNode(" Versione stampabile"));
    
    printPage.appendChild(printFunction);
}

function printPreview() {
    setActiveStyleSheet("Print Preview");
    addPreviewMessage();
}

function addPreviewMessage() {
    var mainContent = document.getElementById('header');
    var mainBody = mainContent.parentNode;

    if (document.getElementById) {

        var previewMessage = document.createElement('div');
        previewMessage.id = 'preview-message';
        previewMessage.setAttribute("class", "noprint");

        // Create Heading
        var previewHeader = document.createElement('h3');
        var previewHeaderText = document.createTextNode("Versione stampabile della pagina");
        previewHeader.appendChild(previewHeaderText);

        // Create paragraph
        var previewPara = document.createElement('p');
        var previewParaText = document.createTextNode('');

        var cancelFunctionLink = document.createElement('a');
        cancelFunctionLink.onclick = function() {
            cancelPrintPreview();
            return false;
        };
        cancelFunctionLink.setAttribute('href', '#');
        var cancelFunctionLinkText = document.createTextNode('Torna alla versione standard');
        cancelFunctionLink.appendChild(cancelFunctionLinkText);

        var printLink = document.createElement('a');
        printLink.onclick = function() {
            window.print();
            return false;
        };
        printLink.setAttribute('href', '#');
        var printLinkText = document.createTextNode('Stampa');
        printLink.appendChild(printLinkText);

        previewPara.appendChild(previewParaText);
        previewPara.appendChild(printLink);
        previewPara.appendChild(document.createElement('br'));
        previewPara.appendChild(cancelFunctionLink);

        // Put it all together
        previewMessage.appendChild(previewHeader);
        previewMessage.appendChild(previewPara);
        mainBody.insertBefore(previewMessage, mainContent);
    }
}

function cancelPrintPreview() {
    // Destroy the preview message
    var printPreview = document.getElementById('preview-message');
    var mainBody = printPreview.parentNode;
    mainBody.removeChild(printPreview);

    // Switch back stylesheet
    setActiveStyleSheet('Default');
}

function setActiveStyleSheet(title) {
    var stylesheets = document.styleSheets;
    for (var i = 0; i < stylesheets.length; i++) {
        if (stylesheets[i].title) {
            stylesheets[i].disabled = true;
        }
        if (stylesheets[i].title == title) {
            stylesheets[i].disabled = false;
        }
    }
    if (!stylesheets.length) {
        alert('Il tuo browser non è abilitato a cambiare i fogli di stile CSS');
    }
}
