﻿// JScript File

// Modificare solo le 6 var che seguono
var kDivDaIntercettare = 'ctl00_MSB1_TitleText';// Div che intercetterà il click
var kDivDaMuovere = 'ctl00_MSB1';//Div che verrà trascinato di conseguenza
var kiFrameSfondo = 'ctl00_ifrSfondo';//iFrame di sfondo
var kDivSfondo = 'ctl00_divSfondo';//Div di sfondo
var kDivBottom = 'DivFooter';//Div più in basso di tutti
var kDivRight = 'DivCPH';//Div più a destra di tutti

function dimSfondi(){
/*Allarga ctl00_ifrSfondo, ctl00_divSfondo, in modo da occupare la massima altezza e larghezza della pagina.
Usa come riferimenti DivFooter per calcolare l'altezza max e DivCPH per calcolare la larghezza max*/

    var elFrame = document.getElementById(kiFrameSfondo);
    var elDiv = document.getElementById(kDivSfondo);
    
    var iHeight = new Number();
    var iWidth = new Number();

    //calcola la massima altezza e larghezza del BODY
    if(document.all){   //IE
        iHeight = document.body.scrollHeight;
        iWidth =document.body.scrollWidth;
    }else{              //FF
        var elDown = document.getElementById(kDivBottom);
        var elRight = document.getElementById(kDivRight);
        iHeight = elDown.offsetTop + elDown.offsetHeight;
        iWidth = elRight.offsetLeft + elRight.offsetWidth;
    }
    
    //Se lo schermo è molto grande, usiamo quest'ultimo come height e width
    iHeight = Math.max(iHeight,window.screen.height);
    iWidth = Math.max(iWidth,window.screen.width);
    
    //Setta i nuovi valori di style.height e style.width, per il frame ed il div dello sfondo
    elFrame.style.height = calcolaPX(iHeight);
    elFrame.style.width = calcolaPX(iWidth);
    elDiv.style.height = calcolaPX(iHeight);
    elDiv.style.width = calcolaPX(iWidth);
}

function chiudiMSB(){
//Nasconde ctl00_ifrSfondo, ctl00_divSfondo, ctl00_MSB1  
      
    var elem1 = document.getElementById(kiFrameSfondo);
    elem1.style.display = 'none';
        
    var elem2 = document.getElementById(kDivSfondo);
    elem2.style.display = 'none';
        
    var elem3 = document.getElementById(kDivDaMuovere);
    elem3.style.display = 'none';
        
    return false;
}

//  ------------------  INIZIO  Drag And Drop del MSB   --------------------    //

// Eventi globali del document da intercettare
document.onmousedown = MouseDown;
document.onmousemove = MouseMove;
document.onmouseup = MouseUp;

// var di appoggio temporanee
var xMouse = new Number(0);
var yMouse = new Number(0);
var xTrasl = new Number(0);
var yTrasl = new Number(0);
var isDragging = new Boolean(false);

// Controllo che verrà trascinato in giro per lo schermo
var divMSB;

// Attivata al document.onmousedown
function MouseDown(evento){

    if(!evento)evento = event;  //per IE
    
    var elem;   //Elemento che ha scatenato l'evento
    if (evento.srcElement){     //per IE
        elem = evento.srcElement;
    }else if (evento.target){   //per FireFox
        elem = evento.target;
    }
    
    //Se il click è stato scatenato proprio dal Div che vogliamo intercettare
    if (elem.id == kDivDaIntercettare){
        
        divMSB = document.getElementById(kDivDaMuovere);
        
        isDragging = true;
        
        xMouse = evento.screenX;
        yMouse = evento.screenY;
        xTrasl = xMouse - estraiPX(divMSB.style.left);
        yTrasl = yMouse - estraiPX(divMSB.style.top);
        
        divMSB.style.cursor = 'move';
        
        stopEventi(evento);// Evita di propagare l'evento per tutti i nesting del document
    }
    
}

// Attivata al document.onmousemove
function MouseMove(evento){
    
    if(!evento)evento = event;  //per IE
    
    if(isDragging==false) return;   //solo se il Drag And Drop è iniziato va avanti
    
    //Trascina il div con il mouse
    divMSB.style.left = calcolaPX(evento.screenX - xTrasl);
    divMSB.style.top = calcolaPX(evento.screenY - yTrasl);
    
    stopEventi(evento);// Evita di propagare l'evento per tutti i nesting del document

}

// Attivata al document.onmouseup
function MouseUp(evento){

    if(!evento)evento = event;  //per IE
    
    if(isDragging==false) return;   //solo se il Drag And Drop è iniziato va avanti
    
    isDragging = false; //stop del Drag And Drop
    
    xMouse = 0;
    yMouse = 0;
    xTrasl = 0;
    yTrasl = 0;
        
    divMSB.style.cursor = 'default';
    
    //divMSB = null;
    
    stopEventi(evento);// Evita di propagare l'evento per tutti i nesting del document
}

function stopEventi(evento){
    // Evita di propagare l'evento per tutti i nesting del document
    evento.cancelBubble = true;
    if(evento.stopPropagation) evento.stopPropagation();    //  per FireFox
}

function estraiPX(str){
    //se str = '56px', restituisce '56'
    return str.substr(0,str.length - 2);
}

function calcolaPX(str){
    //se str = '56', restituisce '56px'
    return str + 'px';
}

//  ------------------  FINE    Drag And Drop del MSB   --------------------    //

