var scrLoaded = false;

REM = REM;

objREM = new Object();


function REM_addScript() {

   var rScript = document.createElement('script');

   rScript.type = 'text/javascript';
   rScript.defer = true;
   rScript.id = 'remoteJS';
   rScript.onload = function(){return true};
   rScript.setAttribute('src', this.rSrc);

   if (!scrLoaded) {
     var scrDiv = document.createElement('div');
     scrDiv.id = 'jsdiv';
     document.body.appendChild(scrDiv);
     document.getElementById('jsdiv').appendChild(rScript);
     scrLoaded = true;
   } else {
     var scrDiv = document.getElementById('jsdiv');
     scrDiv.removeChild(scrDiv.firstChild);
     scrDiv.appendChild(rScript);
   }

}


function REM_addQVars(qVars) {

   var qString = '';
   for (var pName in qVars) {
      qString += '&' + pName + '=' + qVars[pName];
   }

   return qString;

}


function REM() {

   this.inData = arguments[0];
   this.queryData = arguments[1];

   var remoteScript = this.inData.remoteCGI;
   var exitScript = this.inData.returnJS;

   if (!String(exitScript).match(/undef|null/) && String(typeof exitScript).match(/funct|obj/i)) {
      this.exit = exitScript;
   } else {
      this.exit = function() {return true};
   }

   var queryString = REM_addQVars(this.queryData);

   var timestamp = new Date();

   this.rSrc = remoteScript + queryString + '&ts=' + escape(timestamp);

   this.initScript = REM_addScript;

}
