﻿// File JScript

function TestTimeOut(){
    alert("Ciao");
}

var __idLockElementTimeOut = new Object();

function LockDivElement(divId, showAlerts, callOnLoadPage){

    var wrapper = document.getElementById("wrapperPage");
    if (wrapper == null){
        if (showAlerts)
            alert("Impossibile bloccare elementi senza il wrapper page!");
        return false;
    }
    var element = document.getElementById(divId);
    if (element == null){
        if (showAlerts)
            alert("Attenzione! L'elemento che si desidera bloccare non esiste!");
        return false;
    }
    
    var infoElement = WebForm_GetElementPosition(element);
    
    
    //Se la variabile callOnLoadPage è true viene impostato un timeout e 
    //si richiama la seguente funzione, questo perchè a volte durante il processo
    //di creazione della pagina le dimnensioni lette non sono definitive e quindi si imposterebbe
    //una maschera errata
    if (__idLockElementTimeOut[divId] == null)
        __idLockElementTimeOut[divId] = 0; 
            
    if (__idLockElementTimeOut[divId] > 0)
        clearTimeout(__idLockElementTimeOut[divId]);
    
    if (callOnLoadPage != null && callOnLoadPage){
        __idLockElementTimeOut[divId] = setTimeout("LockDivElement('" + divId + "')", 50);
        return false;
    }
    
    
    var lockElementId = "__lock__" + element.id;
    var maskElement = document.getElementById(lockElementId);
    if (maskElement != null)
        CloneElementPosition(element, maskElement);
    else{        
        var lockElement = document.createElement("DIV");
    
        lockElement.id = lockElementId;
        lockElement.className = "lockDivElement";
        //lockElement.innerHTML = "&nbsp;";
    
        lockElement.style.top = infoElement.y + "px";
        lockElement.style.left = infoElement.x + "px";
        lockElement.style.width = infoElement.width + "px";
        lockElement.style.height = infoElement.height + "px";
        lockElement.style.zIndex = "800";
        
        lockElement.style.display = "none";
    
        wrapper.appendChild(lockElement);
    }
    
		$("#" + lockElementId).fadeIn(400);
		//new Effect.Appear(lockElementId, { duration: 0.4, from: 0.0, to: 0.6 });    
    return true;

}
function UnlockDivElement(divId, showAlerts){

    var lockElementId = "__lock__" + divId; 
    var lockElement = document.getElementById(lockElementId);
    if (lockElement == null){
        if (showAlerts)
            alert("Attenzione! L'elemento non risulta bloccato!");
        return false;
    }
		$("#" + lockElementId).fadeOut(400);
    return true;
}
function CloneElementPosition(source, destination){
    if (destination != null && source != null){
        var infoElement = WebForm_GetElementPosition(source);
        destination.style.top = infoElement.y + "px";
        destination.style.left = infoElement.x + "px";
        destination.style.width = infoElement.width + "px";
        destination.style.height = infoElement.height + "px";
    }
}
function ResizeLockElements(){
    var elements = document.getElementsByTagName("div");
    for(var i = 0; i < elements.length; i++){
        if (elements[i].id.indexOf("__lock__") > -1){
            var lockedElementId = elements[i].id.substring(8);
            var lockedElement = document.getElementById(lockedElementId)
            if (lockedElement != null)
                CloneElementPosition(lockedElement, elements[i]); 
        }
    }
}

AddEventOnObject(window, "onresize", ResizeLockElements); 
