// user remote scripting functions SN
var rObj = new Object();
// xmlHTTP method, works best but doesn't work in NT4
function postThis(sPostStr,sRetF) 
{  
   var xmlHTTPGet = document.all ? 
                       new ActiveXObject("MSXML2.XMLHTTP.3.0") :
                       new XMLHttpRequest();
   
   xmlHTTPGet.open("POST","/snbeta3/mod_usr/usrxlib.asp",false);
   xmlHTTPGet.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   xmlHTTPGet.send(sPostStr);
   var sResponse = xmlHTTPGet.responseText;
   var rObjArr   = sResponse.split('##');
   rObj.err      = rObjArr[0];
   rObj.result   = unescape(rObjArr[1]);
   if (sRetF)
    return eval(sRetF)
   else
    return
} 

function sendUsrData(bDidIt)
{ var oRes = document.getElementById('resultScreen');
  if (bDidIt == 1)
  { 
    if (rObj.err.match(/NOTOK|ERRTRAP/))
    { 
      if (rObj.err.match(/errtr/i))
       oRes.innerHTML = 'Programmafout:<hr size=1>'+rObj.result.replace(/\n/g,'<br>');
      else
       oRes.innerHTML = '<font color="red">Helaas ...</font><hr size=1>'+rObj.result.replace(/\n/g,'<br>');
     oRes.style.visibility = 'visible'
    }
    else
    {
     oRes.innerHTML = rObj.result.replace(/\n/g,'<br>');
     oRes.style.visibility = 'visible'
    }
    return 
  }
  else
  { 
    oRes.style.visibility = 'hidden';
    var theAddr = escape(String(document.getElementById('eaddr').value));
    if (theAddr.length<=7)
    {
      alert('vul svp een e-mailadres in');
      return
    }
    else
     postThis('fn=ReSendPwd&eml='+theAddr,'sendUsrData(1)')
  }
 return
}

/* checkUsrFlds: controle invoer gebruikersvelden
   (naam/emailadres) op volledigheid & juistheid */
function fnChkUsrFlds()
{
 var alertTxt = "je invoer is onvolledig of onjuist\n";
 var isOk     = true;
 var theForm  = document.forms[0];
 var rE       = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
  if (theForm.username.value.length > 10          || 
      !theForm.username.value                     || 
      CheckInval(theForm.username.value,LetterCijfer))
    { alertTxt += "* gebruikersnaam is te lang (max 10 tekens),\n"+
                  "   bevat onjuiste tekens "+
                  "of is niet ingevuld\n";
      isOk      = false } 
  if (!rE.test(theForm.eaddress.value) || 
       !theForm.eaddress.value           )
    { alertTxt += "* onjuist formaat email-adres/geen email ingevuld";
      isOk      = false } 
  if (!isOk)
    { alert(alertTxt);
      return }

  fnPostUsrData()
}


function fnTF(bOk)
{
  if (bOk)
   return true
  return eval(rObj.err)
}

//** check domein
function fnChkValidDomain(sDom)
{
  return postThis('fn=CheckMailDomain&dmn='+sDom,'fnTF()');
}

function fnChkValidUsr(sNwUsr,sNwEml)
{
  return postThis('fn=CheckExist&tstusr='+sNwUsr+'&tsteml='+sNwEml,'fnTF()')
}

function fnPostUsrData()
{
  var oForm      = document.forms[0];
  var sUsrName   = oForm.username.value;
  var sUsrMail   = oForm.eaddress.value;

//=> check exist
   if (!fnChkValidUsr(sUsrName,sUsrMail))
   {
    alert(rObj.result);
    return
   }

  var sDomain    = (sUsrMail.split(/\@/))[1];
  
  if (!fnChkValidDomain(sDomain))
   {
    alert('Naar het domein van uw mailadres\n(alles na @, i.c. '+sDomain+')\n'+
          'kan geen email worden gestuurd.\nVul svp een valide adres in!');
    return
   }

  // all checks ok, post 
  postThis('fn=PostNewUser&nwusr='+sUsrName+'&nweml='+sUsrMail);
  var sAlrt     =  String(rObj.result);
  oForm.username.value = '';    
  oForm.eaddress.value = '';
  document.getElementById('ShowBttn').style.visibility='visible'
  alert (sAlrt.replace(/\#/g,'\n'));
}

function fnDoChange(sPwd)
{
  postThis('fn=ChPwd&pwd='+escape(sPwd),'fnTF(1)');
}

function _loadUName()
{
 return postThis('fn=GetCurrentUsrName','fnTF(1)');
}

function NwPwd()
{
  var sP1   = document.getElementById('nwpwd1').value;
  var sP2   = document.getElementById('nwpwd2').value;
  var oShow = document.getElementById('resultScreen');
  if (sP1.length <= 4)
  {
   alert('wachtwoord moet minimaal 5 tekens bevatten')
   return
  }
  else if (sP1 != sP2)
  {
   alert('De ingevoerde wachtwoorden zijn niet aan elkaar gelijk')
   return
  }
  else
  {
    fnDoChange(sP1);
    oShow.innerHTML = rObj.result;
    oShow.style.visibility = 'visible';
  }
}

function insertUName()
{
//  if (_loadUName()) 
   postThis('fn=GetCurrentUsrName');
   document.getElementById('uname').innerHTML ='(deelnemer: '+rObj.result+')'
}
