﻿/** Questa sezione contiene le funzioni generiche **/




// Questa funzione mostra la pagina di login SE e solo SE l'utente non ha
// effettuato l'accesso. In caso contrario lo manda in Area utente.
function NetSellGui_RequestLogin() {
    if (NetSell_Global_CurrentSessionID == -1)
        NetSellGui_OpenDialogWindow(NetSell_XalpServiceUrl + '/NetSellGui_StandardDialog/LoginDialog/LoginDialog.aspx', 'LOGIN WINDOW');
    else {
        // Carica il modulo UserArea.aspx
        NetSellGui_CleanDiv_OpenPage(NetSell_XalpServiceUrl + '/NetSellGui_StandardPage/UserArea/UserArea.aspx');
        
    }
}

// Questa funzione mostra il form di richiesta preventivo. Può essere utilizzato
// anche senza login
function NetSellGui_RequestPreventivo() {
    NetSellGui_OpenDialogWindow(NetSell_XalpServiceUrl + '/NetSellGui_StandardDialog/RequestPreventivo/RequestPreventivo.aspx', 'Modulo richiesta preventivo');
}

// Questa funzione mostra il form per essere richiamati con urgenza. Può essere utilizzato
// anche senza login
function NetSellGui_RequestRecall() {
    NetSellGui_OpenDialogWindow(NetSell_XalpServiceUrl + '/NetSellGui_StandardDialog/RequestRichiamata/RequestRichiamata.aspx', 'Request to re-call you!');
}

// Questa funzione determina se è già stato effettuato l'accesso.
function NetSellGui_isLogged() {
    return (NetSell_Global_CurrentSessionID != -1)
}



// Questa funzione permette di effettuare l'accesso al sistema tramite username e password
// passate in argomento. Per abilitare la connessione protetta settare il parametro _SecureServiceAddr
function NetSellGui_ExecuteLogin(Username, Password, _SecureServiceAddr,__callBack) {
    var _MyParam = new Array();
    _MyParam['p1'] = Username;
    _MyParam['p2'] = Password;
    _MyParam['serviceType'] = 'RequestLogin';
    if (_SecureServiceAddr == null) {
        if (__callBack == null) 
            invoke(NetSell_XalpServiceUrl + '/CommonService/CommonRequest.aspx', _MyParam, 'NetSellGui_ExecuteLogin_XalpCallBack', 15000 );
        else
            invoke(NetSell_XalpServiceUrl + '/CommonService/CommonRequest.aspx', _MyParam, __callBack, 15000 );           
    }
    _MyParam = null;
}

// Handler per il ritorno della funzione. In realtà ne dovrebbe essere sempre definita un'altra
// all'interno della dialog che si utilizza per il login. 
function NetSellGui_ExecuteLogin_XalpCallBack(_xO) 
{
    return true;
}



// Funzione per l'apertura del Carrello
function NetSellGui_OpenUserKart() {
    if (NetSellGui_Costumize_OpenKartAsDialog == true)
        NetSellGui_OpenDialogWindow(NetSell_XalpServiceUrl + '/NetSellGui_StandardPage/UserKart/CompleteKart.aspx', 'Carrello');
    else
        NetSellGui_CleanDiv_OpenPage(NetSell_XalpServiceUrl + '/NetSellGui_StandardPage/UserKart/CompleteKart.aspx');
}
// Apertura carrello con cambio pagamento
function NetSellGui_OpenUserKartChangeCopag(NewCopag) {
    if (NetSellGui_Costumize_OpenKartAsDialog == true)
        NetSellGui_OpenDialogWindow(NetSell_XalpServiceUrl + '/NetSellGui_StandardPage/UserKart/CompleteKart.aspx?NewCopag=' + NewCopag, 'Carrello');
    else
        NetSellGui_CleanDiv_OpenPage(NetSell_XalpServiceUrl + '/NetSellGui_StandardPage/UserKart/CompleteKart.aspx?NewCopag=' + NewCopag);
}


// Funzione per gestire il salvataggio dell'ordine
function NetSellGui_SaveCurrentKart(PayType,PayCode,DocState,PayModule,MulSend,HideBtnSave,CliComm) {

    if (HideBtnSave != null) {
        HideBtnSave.value = 'Attendere... Salvataggio in corso...';
        HideBtnSave.setAttribute("disabled", "disabled"); 
    }

    // Prepara la chiamata Xalp
    var MyParam = new Array();
    MyParam['serviceType'] = 'SaveCurrentKart';
    MyParam['PayType'] = PayType;   // < viene ripassato alla funzione di CallBack
    MyParam['PayCode'] = PayCode;
    MyParam['DocState'] = DocState;
    MyParam['MulSend'] = MulSend;
    MyParam['RIFINTERNO'] = CliComm;

    parent.invoke(NetSell_XalpServiceUrl + '/CommonService/SaveOrder.aspx', MyParam, 'NetSellGui_SaveCurrentKart_XalpCallBack', 30000);

}


// Funzione generica per creare TextNode all'interno di altri elementi
function NetSellGui_CreateTextNode(Value, __dstElement) 
{
    var MyDst = document.getElementById(__dstElement);
    var MyTxt = document.createTextNode(Value);
    MyDst.appendChild(MyTxt);
    MyDst = null; MyTxt = null;
}



// Obbliga la MinWinKart ( se disponibile ) ad aggiornarsi.
function NetSellGui_Raise_MinKartWinUpdate() {
        var _param = new Array();
        _param['serviceType'] = 'nope';
        parent.invoke(NetSell_XalpServiceUrl + '/CommonService/KartService.aspx', _param, 'NetSellGui_UpdateMinKartWin_XalpCallBack', 15000);
        _param = null;
}


// Apre la finestra di registrazione SE e solo SE non è stato ancora
// effettuato l'accesso. In caso contrario manda in AREA UTENTE.

function NetSellGui_RequestRegister() {
    if (NetSell_Global_CurrentSessionID == -1)
        NetSellGui_OpenDialogWindow(NetSell_XalpServiceUrl + '/NetSellGui_StandardDialog/RegisterDialog/RegisterDialog.aspx', 'Registrazione nuovo utente');
    else {
        // Carica il modulo UserArea.aspx
        NetSellGui_CleanDiv_OpenPage(NetSell_XalpServiceUrl + '/NetSellGui_StandardPage/UserArea/UserArea.aspx');

    }
}




// Questa funzione permette l'invio di una E-Mail solo testo tramite il server SMTP
// eventualmente specificato. Non sono ammessi attachment.
function NetSellGui_SendEMail(MsgTo, MsgSubject, MsgBody,HideReturnMessage) {

    var _param = new Array();
    _param['RSE_MsgTo'] = MsgTo;
    _param['RSE_Subject'] = MsgSubject;
    _param['RSE_MsgBody'] = MsgBody;
    _param['serviceType'] = 'RequestSendEmail';
    _param['HideReturnMessage'] = 'false'

    if (HideReturnMessage != null)
        _param['HideReturnMessage'] = 'true';
        
    parent.invoke(NetSell_XalpServiceUrl + '/CommonService/CommonRequest.aspx', _param, 'NetSellGui_SendEMail_XalpCallBack', 15000);
    _param = null;
}
function NetSellGui_SendEMail_XalpCallBack(_xO) {
    if(_xO['HideReturnMessage']=='false')
        alert(_xO['reason']);
}



