﻿//questo oggetto determina il comportamento lato browser leggendo 'attributo rel
// ES = rel="txt dsbl switch Euro"
// Il primo campo può essere txt (Testo) o btn (Button) UNICO CAMPO OBBLIGATORIO
// il secondo campo può esssere dsbl (disabilitato)o essere tralasciato
// Il campo Switch indica che deve cambiare stato quando viene richiamata la funzione toggle
// il campo num indica che il campo di tipo txt va formattato come numero
// il campo Euro indica che il campo di tipo txt va formattato come Euro
// il campo nocolor indica che il campo non deve cambiare il colore (utilir per chekboc e optbutton)



function sbBehavior(ButtonsHided, btnWidth) {
    var dom = YAHOO.util.Dom;
    var Selector = YAHOO.util.Selector;
    Btns = new Array
    Txts = new Array
    
    var onlyForOpenBtns = Selector.query('[rel~=btn]');

    this.blockOffer = function() {
        dom.setStyle(Btns , 'display', 'none');
    };

    this.Initialize = function() {
        var btnNodes = Selector.query('[rel~=btn]');
        for (i = 0; i <= (btnNodes.length - 1); i++) {

            var btn = new YAHOO.widget.Button(btnNodes[i]);
            //var btn = new YAHOO.widget.Button(btnNodes[i], { type: "submit"});        
            if (btnNodes[i].onclick != null) btn.on("click", btnNodes[i].onclick);

            if (Selector.test(btnNodes[i], '[rel~=switch]') == true) Btns[Btns.length] = btn;
            btn.setStyle('width', btnWidth);
            dom.setStyle(btn._button, 'width', btnWidth);
            if (Selector.test(btnNodes[i], '[rel~=dsbl]') == true) {
                if (ButtonsHided == true) {
                    btn.setStyle('display', 'none')
                }
                else {
                    btn.set("disabled", true);
                }
            }
        }

        var txtNodes = Selector.query('[rel~=txt]');
        for (i = 0; i <= (txtNodes.length - 1); i++) {

            if (Selector.test(txtNodes[i], '[rel~=switch]') == true) Txts[Txts.length] = txtNodes[i];
            if (Selector.test(txtNodes[i], '[rel~=dsbl]') == true) {
                dom.get(txtNodes[i]).disabled = true;
                if (Selector.test(txtNodes[i], '[rel~=nocolor]') == false) dom.setStyle(txtNodes[i], 'background-color', '#F0FDFF');
            }
            else {
                if (Selector.test(txtNodes[i], '[rel~=nocolor]') == false) dom.setStyle(txtNodes[i], 'background-color', '#ddf');
            }

            if (Selector.test(txtNodes[i], '[rel~=euro]') == true) {
                dom.get(txtNodes[i]).value = YAHOO.util.Number.format(dom.get(txtNodes[i]).value, { prefix: '€ ', thousandsSeparator: '.' });
            }
            if (Selector.test(txtNodes[i], '[rel~=num]') == true) {
                dom.get(txtNodes[i]).value = YAHOO.util.Number.format(dom.get(txtNodes[i]).value.replace(",", "."), { decimalPlaces: 2, decimalSeparator: ',', thousandsSeparator: '.' });
            }

        }
    }

    this.CheckAndSubmit = function(p_oEvent) {
        bSubmit = Page_ClientValidate();
        if (!bSubmit) {
            YAHOO.util.Event.preventDefault(p_oEvent);
        }
        else {
            YAHOO.util.Event.preventDefault(p_oEvent);
            var txtNodes = Selector.query('[rel~=txt]');
            for (i = 0; i <= (txtNodes.length - 1); i++) {
                dom.get(txtNodes[i]).disabled = false;
            }
            YAHOO.util.Dom.get('aspnetForm').submit();
        }

    }

    this.Toggle = function() {
        for (i = 0; i <= (Btns.length - 1); i++) {
            if (ButtonsHided == true) {
                if (Btns[i].getStyle('display') == 'none') {
                    Btns[i].setStyle('display', 'inline-block');
                }
                else {
                    Btns[i].setStyle('display', 'none');
                }
            }
            else {
                if (Btns[i].get('disabled') == true) {
                    Btns[i].set("disabled", false);
                }
                else {
                    Btns[i].set("disabled", true);
                }
            }
        }

        for (i = 0; i <= (Txts.length - 1); i++) {

            if (dom.get(Txts[i]).isDisabled == true) {
                dom.get(Txts[i]).disabled = false;
                if (Selector.test(Txts[i], '[rel~=nocolor]') == false) dom.setStyle(Txts[i], 'background-color', '#ddf');
                try {
                    dom.get(Txts[i]).value = dom.get(Txts[i]).value.replace('€ ', '').replace('.', '');
                }
                catch (e) { }
            }
            else {
                dom.get(Txts[i]).disabled = true;
                if (Selector.test(Txts[i], '[rel~=nocolor]') == false) dom.setStyle(Txts[i], 'background-color', '#F0FDFF');
                if (Selector.test(Txts[i], '[rel~=euro]') == true) {
                    dom.get(Txts[i]).value = YAHOO.util.Number.format(dom.get(Txts[i]).value, { prefix: '€ ', thousandsSeparator: '.' });
                }
                if (Selector.test(Txts[i], '[rel~=num]') == true) {
                    dom.get(Txts[i]).value = YAHOO.util.Number.format(dom.get(Txts[i]).value.replace(",", "."), { decimalPlaces: 2, decimalSeparator: ',', thousandsSeparator: '.' });
                }
            }
        }
        return false;
    }

}


function MyAlert(msgHD, msgBD) {
    var handleOk = function(){
        this.hide();  
    }

    var panelAlert = new YAHOO.widget.SimpleDialog("panelAlert", {
        draggable: true,
        fixedcenter: true,
        modal: true,
        width: "300px",
        visible: true,
        constraintoviewport: true,
        buttons: [ { text:"Ok", handler:handleOk, isDefault:true }],
        context: ["showbtn", "tl", "bl"]
    });
    panelAlert.setHeader(msgHD);
    panelAlert.setBody(msgBD);
    if (msgHD == 'Error') { panelAlert.cfg.setProperty("icon", YAHOO.widget.SimpleDialog.ICON_WARN); }
    else {panelAlert.cfg.setProperty("icon", YAHOO.widget.SimpleDialog.ICON_INFO);}
    panelAlert.render('MyAlertDialog');
}

function MyConfirm(msgHD, msgBD, cbFunction ) {
    var retVal;
    var handleOk = function() {
        this.hide();
        cbFunction(true);
    }

    var handleNo = function() {
        this.hide();
        cbFunction(false)
    }
    

    var panelAlert = new YAHOO.widget.SimpleDialog("panelConfirm", {
        draggable: true,
        fixedcenter: true,
        modal: true,
        width: "300px",
        visible: true,
        constraintoviewport: true,
        buttons: [{ text: "Si", handler: handleOk, isDefault: true}, { text: "No", handler: handleNo}],
        context: ["showbtn", "tl", "bl"]
    });
    panelAlert.setHeader(msgHD);
    panelAlert.setBody(msgBD);
    if (msgHD == 'Error') { panelAlert.cfg.setProperty("icon", YAHOO.widget.SimpleDialog.ICON_WARN); }
    else { panelAlert.cfg.setProperty("icon", YAHOO.widget.SimpleDialog.ICON_INFO); }
    panelAlert.render('MyConfirmDialog');
}



// ********************************************************************
// ***** Gestione del pannello Wait vususlizzato come modal popup *****
// ***** durante la preparazione dello zip con i dati estratti    *****
// ********************************************************************
waitDlg = new YAHOO.widget.Panel("wait",
            { width: "350px",
                fixedcenter: true,
                close: false,
                draggable: false,
                zindex: 4,
                modal: true,
                visible: false
            });


function showWaitDlg(msg){
    waitDlg.setBody("<img src='../../Images/loading.gif' />");
    waitDlg.setHeader(msg);
    waitDlg.render(waitDlgDiv);
    waitDlg.show();
}

function winpopup(link) {
    var width = 800;
    var height = 600;
    var left = (screen.width - width) / 2;
    var top = (screen.height - height) / 2;
    var params = 'width=' + width + ', height=' + height;
    params += ', top=' + top + ', left=' + left;
    params += ', scrollbars=yes';
    window.open('../../help/'+link, '_blank', params);
    return false;
}
function validateInt(evt) {
                  var theEvent = evt || window.event;
                  var key = theEvent.keyCode || theEvent.which;
                  key = String.fromCharCode( key );
                  var regex = /[0-9]/;
                  if( !regex.test(key) ) {
                    theEvent.returnValue = false;
                  }
} 

 function validatePhone(evt) {
          var theEvent = evt || window.event;
          var key = theEvent.keyCode || theEvent.which;
          key = String.fromCharCode( key );
          var regex = /[0-9]|\+|\./;
          if( !regex.test(key) ) {
            theEvent.returnValue = false;
          }
        }

