//
// DataSPort Client Dispatcher
//
var xH, 
    dspt_P,
    dspt_E="ERRDSPT_",    
    dspt_ct="Content-Type", 
    qS="";

function setxH()
{
    // If IE7, Mozilla, Safari, etc => native object
    xH = window.XMLHttpRequest ? new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
}
function dspt(what, msg, tOut, post, pfx, ct, version)
{            
   if (!post) post="";
    if (!pfx)  pfx="/App/dspt/dispatch.aspx?";
    if (!ct) ct="application/x-www-form-urlencoded";
    if (!version) version="";     
    qS=pfx+what; 
    if (!msg)
    {
        try
        {            
            if (!xH) setxH();            
            xH.open("POST", qS, false)
            xH.setRequestHeader(dspt_ct, ct);
            xH.send(post);
            return xH.readyState==4 ? xH.responseText:dspt_E+"Request"; //+err xmlhttp
        }
        catch(e) {return dspt_E+'\n'+e.description};
    }   
    if (!dspt_P) dspt_P=new Object();
    dspt_P.fnc=what;            
    dspt_P.msg=msg ? msg : "Traitement en cours ...";
    dspt_P.tim=tOut? tOut*1000 : 600000;
    dspt_P.post=post;
    dspt_P.pfx=pfx;
    dspt_P.ct=ct;
    window.showModalDialog("/App/Dspt/dspt"+version+".htm", dspt_P,     
    "dialogHeight: 60px; dialogWidth:480px; center: Yes; help: No; resizable: No; status: No; scroll: No");
    return dspt_P.ret;
}

var dlD; 
function wol()
{
    setxH();
    dspt_P=window.dialogArguments;        
    dmsg.innerText=dspt_P.msg;
    dlD=false;
    qS=dspt_P.pfx+dspt_P.fnc;
    try
    {                             
        xH.onreadystatechange = 
            function()
            {
                if (xH.readyState==4)
                {
                    dlD=true;
                    dspt_P.ret=xH.responseText;
                    window.close();
                }
            }               
        xH.open("POST", qS, true);        
        xH.setRequestHeader(dspt_ct, dspt_P.ct);
        xH.send(dspt_P.post);
        window.setTimeout(
            function () 
            {
                dlD=true;
                dspt_P.ret=dspt_E+"TimeOut"; 
                window.close();
            }, dspt_P.tim); 
    }
    catch(e) {return dspt_E+e.description};
}
function wul()
{                       
    if (dlD) return;
    while (!dlD) alert("Traitement en cours ... ");                 
}
