﻿<!--
/*
*** Widget Drag & Drop ***
* funzioni e variabili per effettuare il drag & grop dell'oggetto widget *
* sulla pagina durante la creazione della pagina del MyBook application  *
*/
var iMousePosX = -5;
var iMousePosY = 5;

var widgetClone = null;
var dropPanelId = '';
var mouseState = 'up';
/* elementi box dove fare il drag&drop */
var iMaxArrayElements = 12;
var dropZoneArray = new Array(iMaxArrayElements);
///* Esempio box 1 */
//dropZoneArray[0] = "xxx_dZone_01_00_xxx";//dropZoneArray[1] = "xxx_dZone_01_01_xxx";//dropZoneArray[2] = "xxx_dZone_01_02_xxx";

/* pattern comune per identificare il widget */
var dropElementPattern = ".+div_dZone_";
/* pattern comune per identificare il widget */
var dragElementPattern = ".+_widgetLib$";

/* Visualizzazione della Mascotte */
function LoadEditingMascotteOnPage(divMascotteId, swfMascotteFile, swfDZone, swfMascotteContent)
{
    if (swfMascotteContent == "")
        swfMascotteContent = "Nel mio intimo c'è Chilly.";
    try
    {
        var objSwfMascotte = document.getElementById(divMascotteId);
        var hasReqestedVersion = DetectFlashVerMod(requiredMajorVersion, requiredMinorVersion, requiredRevision);
        if (hasReqestedVersion)
        {
            objSwfMascotte.innerHTML = AC_FL_RunContentMod("src","/common/images/widget_library/" + swfMascotteFile + "?mascotte=" + swfDZone + "&modo=editing&frase=" + swfMascotteContent,"width","300","height","300","align","center","id",swfMascotteFile,"quality","high","wmode","transparent","name",swfMascotteFile,"allowScriptAccess","sameDomain","type","application/x-shockwave-flash","codebase","http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab","pluginspage","http://www.adobe.com/go/getflashplayer");
        }
        else
        {
            objSwfMascotte.innerHTML = "Attenzione per poter utilizzare questo widget devi installare il plugin di flash.";
        }
    }
    catch (e) {}
}

/* Visualizzazione della Musica */
function LoadWidgetMusicaOnPage(divMusicaId, swfParametriMusica)
{
    try
    {
        var objSwfMusica = document.getElementById(divMusicaId);
        var hasReqestedVersion = DetectFlashVerMod(requiredMajorVersion, requiredMinorVersion, requiredRevision);
        if (hasReqestedVersion)
        {
            objSwfMusica.innerHTML = AC_FL_RunContentMod("src","/common/images/widget_library/loop?" + swfParametriMusica,"width","300","height","300","align","center","id",divMusicaId,"quality","high","wmode","transparent","name",divMusicaId,"allowScriptAccess","sameDomain","type","application/x-shockwave-flash","codebase","http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab","pluginspage","http://www.adobe.com/go/getflashplayer");
        }
        else
        {
            objSwfMusica.innerHTML = "Attenzione per poter utilizzare questo widget devi installare il plugin di flash.";
        }
    }
    catch (e) {}
}

/* aggiornamento o inserimento del widget nello slot */
function updatePageSlotContent(hiddenFieldID, SlotPosition)
{
    var WidgetId = widgetClone.id;
    var SlotContent = "";

    switch(WidgetId)
    {
        case "singlephoto_img_widgetLib":
            var objHfPhotoImage = document.getElementById("hfWidgetImgPhotoToAdd");
            SlotContent = objHfPhotoImage.value;
            if (SlotContent == "")
            {
                alert("Nessuna immagine caricata per essere inserita nel MyChillyBook.");
                return;
            }
            break;
        case "photogallery_img_widgetLib":
            var objHfPhotoGallery = document.getElementById("hfWidgetPhotoGalleryToAdd");
            SlotContent = objHfPhotoGallery.value;
            if (SlotContent == "")
            {
                alert("Nessuna photogallery caricata per essere inserita nel MyChillyBook.");
                return;
            }
            break;
    }

    var oXmlHttp = zXmlHttp.createRequest();
    oXmlHttp.open("get", "/MyBook/add_widget_on_page.aspx?WidgetId=" + WidgetId + "&SlotPosition=" + SlotPosition + "&SlotContent=" + SlotContent, true);
    oXmlHttp.onreadystatechange = function () {
        if (oXmlHttp.readyState == 4)
        {
            if (oXmlHttp.status == 200)
            {
                var sResponseStatus = oXmlHttp.responseText;
                if (IsMatch(sResponseStatus,"##true##"))
                {
                    postBackHiddenField(hiddenFieldID);
                }
                else if (IsMatch(sResponseStatus,"##music##"))
                {
                    /* */
                    alert("Attenzione puoi inserire solo un widget musicale.");
                }
                else if (IsMatch(sResponseStatus,"##gallery##"))
                {
                    /* */
                    alert("Attenzione puoi inserire solo una widget photogallery.");
                }
                else
                {
                    /* */
                    alert("uhm! Richiesta non completata");
                }
            }
            else
            {
                alert(oXmlHttp.statusText); //statusText is not always accurate
            }
        }
    };
    oXmlHttp.send(null);
}

/* funzione che effettual il postback per poi fare le operazioni di refresh panel lato server */
function postBackHiddenField(hiddenFieldID)
{
    var hiddenField = $get(hiddenFieldID);

    if (hiddenField)
    {
        /* valorizzo il campo nascosto con l'id del widget */
        if (hiddenField.value == "")
            hiddenField.value = widgetClone.id;

        __doPostBack(hiddenField.id,"");
    }
}

/*** Riporta lo stile del box vuoto alla posizione iniziale ***/
function ResetColor(objId)
{
    var sCssClass = "";
    try
    {
        for(i = 0; i < dropZoneArray.length; i++)
        {
            sCssClass = GetCssClassName(dropZoneArray[i]);
            if ((sCssClass != "") && (mouseState == 'down') && (objId != dropZoneArray[i]))
                document.getElementById(dropZoneArray[i]).className = sCssClass;
        }
    }
    catch (e) { }
}

/* se si cambiano i nomi delle classi del foglio di stile ricordarsi di sistemare queste */
function GetCssClassName(objId)
{
    var sCssClass = "";
    if (objId != "")
    {
        var sCssClassObj = document.getElementById(objId).className

        switch(sCssClassObj)
        {
            case "div-widget-bigbox":
            case "div-widget-bigbox-hover":
                sCssClass = "div-widget-bigbox";
                break;
            case "div-widget-smallbox":
            case "div-widget-smallbox-hover":
                sCssClass = "div-widget-smallbox";
                break;
            default:
                sCssClass = "";
                break;
        }
    }
    return sCssClass;
}
/* controlla che l'oggetto è nella DropZone */
function IsInDropZone(evtTarget)
{
    var result = false;
    // iterate through the array and find it the id exists 
    for(i = 0; i < dropZoneArray.length; i++)
    {
        if(evtTarget.id == dropZoneArray[i])
        {
            result = true;
            break;
        }
    }
    return result;
}
/* controlla che l'oggetto che sto cercando fa parte di quelli che mi interessano */
function IsMatch(id, pattern)
{
    var regularExpresssion = new RegExp(pattern);
    if(id.match(regularExpresssion))
        return true;
    else
        return false;
}
/* controllo se il browser è ie o no */
function IsFireFox()
{
    if(navigator.appName == 'Netscape')
        return true;
    else
        return false;
}
/* creazione dell'oggetto per il drag&drop */
function MakeElementDraggable(obj)
{
    var startY = 0;
    var startX = 0;
    /* inzializzazione del Drag */
    function InitiateDrag(e)
    {
        mouseState = 'down';
        var evt = e || window.event;
        var iScrollY = 0;
        if (IsFireFox())
            iScrollY = window.pageYOffset;
        else
            iScrollY = document.documentElement.scrollTop;

        startY = parseInt(evt.clientY+iScrollY);
        startX = parseInt(evt.clientX);

        widgetClone = obj.cloneNode(true);
        widgetClone.style.position = 'absolute';
        widgetClone.style.top = parseInt(startY+iMousePosY) + 'px';
        widgetClone.style.left = parseInt(startX+iMousePosX) + 'px';

        document.body.appendChild(widgetClone);
        document.onmousemove = Drag;
        document.onmouseup = Drop;
        document.onselectstart = function(){return false;}

        return false;
    }
    /* elaborazione durante il Drag */
    function Drag(e)
    {
        if(mouseState == 'down')
        {
            // only drag when the mouse is down
            var evt = e || window.event;
            var evtTarget = evt.target || evt.srcElement;
            var iScrollY = 0;
            if (IsFireFox())
                iScrollY = window.pageYOffset;
            else
                iScrollY = document.documentElement.scrollTop;

            startY = parseInt(evt.clientY+iScrollY);
            startX = parseInt(evt.clientX);

            widgetClone.style.top = (startY+iMousePosY) + 'px';
            widgetClone.style.left = (startX+iMousePosX) + 'px';

            // Check if we are in the drop Zone 
            if(IsInDropZone(evtTarget))
            {
                if (dropPanelId != evtTarget.id)
                    ResetColor(evtTarget.id);

                dropPanelId = evtTarget.id;
                var sCssClass = GetCssClassName(dropPanelId);
                if (sCssClass != "")
                    evtTarget.className = sCssClass + "-hover";
            }
            else
            {
                ResetColor(evtTarget.id);
                dropPanelId = '';
            }
        }
    }
    /* elaborazione durante il Drop */
    function Drop(e)
    {
        var evt = e || window.event;
        var evtTarget = evt.target || evt.srcElement;
        var dZone = "";

        if (evtTarget.id != "")
            dZone = document.getElementById(evtTarget.id);

        if((dZone.id != "") && (dZone.id==dropPanelId))
            CompleteDragOperation(widgetClone, dropPanelId);

        document.onmouseup = null;
        document.onmousemove = null;
        document.onselectstart = null;
        document.body.removeChild(widgetClone);
        ResetColor(dropPanelId);
        mouseState = 'up';
        dropPanelId = '';
    }
    /* Cosa fare al completamento del Drag&Drop */
    function CompleteDragOperation(objClone, idDropPanel)
    {
        var objHfieldElements = document.getElementsByTagName("input");
        var hiddenFieldID = "";

        var sDropPanelZonePart = "";
        try
        {
            sDropPanelZonePart = idDropPanel.substring((idDropPanel.length-11));
        }
        catch (e) { }

        var hiddenFieldElementPattern = ".+_hdField_" + sDropPanelZonePart + "$";

        for(i=0;i<objHfieldElements.length;i++)
        {
            if(IsMatch(objHfieldElements[i].id, hiddenFieldElementPattern))
            {
                hiddenFieldID = objHfieldElements[i].id;
                break;
            }
        }
        if (hiddenFieldID != "")
            updatePageSlotContent(hiddenFieldID, sDropPanelZonePart)
        else
            alert("Impossibile proseguire con l'operazione.\r\nProvate a ricaricare la pagina.\r\nSe il problema si dovesse ripresentare vi preghiamo di segnalare il problema.");
    }

    obj.onmousedown = InitiateDrag;
}

/* aggiungo a tutti gli elementi facenti parte della WidgetLibrary le funzioni di Drag&Drop */
/* valorizzo l'array che contiene gli id per il drop dei widget */
function InitializeDragDropPage()
{
    var divDragDropElements = document.getElementsByTagName("div");
    var iDrop = 0;

    /* inizializzo l'elemento */
    for (iA=0; iA<iMaxArrayElements; iA++)
        dropZoneArray[iA] = "";

    for(i=0;i<divDragDropElements.length;i++) 
    {
        if(IsMatch(divDragDropElements[i].id, dropElementPattern))
        {
            dropZoneArray[iDrop] = divDragDropElements[i].id;
            iDrop += 1;
        }

        if(IsMatch(divDragDropElements[i].id, dragElementPattern))
        {
            MakeElementDraggable(divDragDropElements[i]);
        }
    }
}

function OldLoadTinyMceObject(pgTinyMceElements)
{
    var arrTinyMceElements = pgTinyMceElements.split(",");
    var TextAreasTinyMce = document.getElementsByTagName("textarea");

    for(i=0;i<arrTinyMceElements.length;i++)
    {
        for (Ei=0;Ei<TextAreasTinyMce.length;Ei++)
        {
            if(IsMatch(TextAreasTinyMce[Ei].id, arrTinyMceElements[i]))
            {
                //'mceAddControl' //'mceRemoveControl' //'mceFocus'
                tinyMCE.execCommand('mceAddControl', true, TextAreasTinyMce[Ei].id);
                break;
            }
        }
    }
}
function LoadTinyMceObject(pgTinyMceElements)
{
    var TextAreasTinyMce = document.getElementsByTagName("textarea");
    for (i=0;i<TextAreasTinyMce.length;i++)
    {
        //'mceAddControl' //'mceRemoveControl' //'mceFocus'
        tinyMCE.execCommand('mceAddControl', false, TextAreasTinyMce[i].id);
    }
}

function FFsetTextAreaValue(inst)
{
    if (IsFireFox())
    {
        var objTextArea = document.getElementById(inst.formElement.id);
	    objTextArea.value = inst.getBody().innerHTML;
    }
	return false;
}

/* funzione per far scrollare il menu */
function ScrollWidgetMenu(sScrollMenuId)
{
    var ord = 0;
    var objMenuToScroll = document.getElementById(sScrollMenuId);

	if (navigator.appName == "Netscape")
	{ ord=window.pageYOffset; }
	else
	{ ord=document.documentElement.scrollTop; }

    if (ord > 385)
    { objMenuToScroll.style.top = parseInt(ord-385) + 'px'; }
    else
    { objMenuToScroll.style.top = '0px'; }

    setTimeout("ScrollWidgetMenu('" + sScrollMenuId + "')",100);
}

/* inizializzazione dello slideshow per la fotogallery */
function InitializeSlideShow()
{
    try
    {
        if (document.images)
        {
            SLIDES.image = document.images.MyBookPhotoGallery;
            SLIDES.update();
            SLIDES.next();
            SLIDES.play();
            SLIDES.timeout = 4000;
        }
    }
    catch (e) {}
}
function CreateSlideShow(arrPhotoImg)
{
    try
    {
        SLIDES = new slideshow("SLIDES");
        for(i=0; i<arrPhotoImg.length; i++)
        {
            SLIDES.add_slide(new slide(arrPhotoImg[i], ""));
        }
    }
    catch (e) {}
}

function GetParentElementHeight(objToGetHeight)
{
    try
    {
        var divToGetHeight = document.getElementById(objToGetHeight);
        var divCorniceToSetH = document.getElementById("cc_ie6_" + objToGetHeight);

        var divHeight = 0;
        if(divToGetHeight.offsetHeight)
        {
	        divHeight=divToGetHeight.offsetHeight;
	        //if (divHeight > 0 && divHeight < 60)
    	    //    divHeight = 60;
        }
        if (divHeight > 0)
            divCorniceToSetH.style.height = divHeight + 'px';
    }
    catch(e) { }
}

/* aggiungo la funzione al caricamento della pagina */
window.onload=function()
{
    InitializeDragDropPage();
}

//-->
