/*
 *  getinfo.JS - ...
 *
 *  Created by: Dennis Lassing - http://www.denniz.nl/
 *  Version: 1.00 
 *
 */

   var xmlstatus = 4;
   var xmlreq;
   var userListName;
   var userListInChat;
   var userListOperator;
   
   function loadXMLDoc(urrel, sendmsg) {
      // document.all.weekNummer.innerHTML = '<font color=\'red\'><B>Inlezen...</b></font>';
       // branch for native XMLHttpRequest object
       //addDebug('url requested: '+urrel);
       //addDebug('post data: '+sendmsg);
       if(window.XMLHttpRequest) {
          try {
            xmlreq = new XMLHttpRequest();
           } catch(e) {
            xmlreq = false;
           }
       // branch for IE/Windows ActiveX version
       } else if(window.ActiveXObject) {
             try {
              xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
              try {
                   xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
              } catch(e) {
                   xmlreq = false;
              }
         }
       }
      if(xmlreq) {
         xmlreq.onreadystatechange = processReqChange;
         xmlreq.open("POST", urrel, true);
         xmlreq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
         xmlreq.setRequestHeader('Connection','close'); // Firefox bug
         xmlreq.send(sendmsg);
         //addDebug("Message sent");
      }
   }

   function addDebug(wat) {
      //document.all.debugVeld.innerHTML = document.all.debugVeld.innerHTML + wat + '<BR>';
   }
   
   function processReqChange() {
       xmlstatus = xmlreq.readyState;
       // only if req shows "loaded"
       //addDebug('Process changed to: '+xmlreq.readyState);
       if (xmlreq.readyState == 4) {
           // only if "OK"
           if (xmlreq.status == 200) {
               // ...processing statements go here...
               processXMLStuff();
           } else {
               //pdownHide(wie);
               // error
           }
       }
   }
   
   function parseChat(soort, tijd, username, chatline) {

         var regel = '';
         //addDebug('Parsing a '+soort+' message.');
         if ( soort == 'SYSTEM' ) {
            regel = '['+tijd+'] <B>*** '+chatline+'</B>';
         } else if ( soort == 'CHAT' ) {
            regel = '['+tijd+'] &lt;<B>'+username+'</B>&gt; '+chatline;
         } else if ( soort == 'PERSONAL' ) {
            regel = '<span style=\'color:#5E005E;\'>'+chatline+'</span>';
         } else {
            regel = 'Unknown packet';
         }
         chatAddToChatbox(regel);
   
   }
   
   function processXMLStuff() {
       //var a = req.responseXML.getElementsByTagName("myxml");
      var response = xmlreq.responseXML.documentElement;
      var soortMsg = response.getElementsByTagName("soortmsg");
      var chatIsInvited = 0;
      
      if (soortMsg.length == 0 ) return;
      
      soortMsg = soortMsg[0].firstChild.data;
      
      // PARSE Invited msg
      var chatIsInvited = response.getElementsByTagName("isinvited");
      var chatIsInvitedBy = response.getElementsByTagName("isinvitedby");
      if (chatIsInvited.length > 0) {
         chatIsInvited = chatIsInvited[0].firstChild.data;
         
         
         if (chatIsInvited > 0 ) {
            if (chatIsInvitedBy.length > 0 ) chatIsInvitedBy = chatIsInvitedBy[0].firstChild.data; 
            if ( window.confirm('Je bent uitgenodigd door '+chatIsInvitedBy+' om mee te chatten in de chatbox.') ) {
               window.location='/mod/chat2/index.php';
            }
         }
      }

      // PARSE personal message (result from commands)
      var chatPersonalMessage = response.getElementsByTagName("personalmessage");
      for( var i = 0; i<chatPersonalMessage.length; i++ ) {
         parseChat("PERSONAL", 0, "System", chatPersonalMessage[i].firstChild.data);
      }
      
      // PARSE whisper messages (private msg's to other users in channel)
      // todo...
      
      // PARSE users
      var chatUserName = response.getElementsByTagName("name");
      var chatUserInChat = response.getElementsByTagName("inchat");
      var chatUserOperator = response.getElementsByTagName("operator");
     
      if ( chatUserName.length > 0 ) {
         userListName = new Array();
         userListInChat = new Array();
         userListOperator = new Array();
         
         for ( var i = 0; i<chatUserName.length; i++ ) {
            userListName.push(chatUserName[i].firstChild.data);
            userListInChat.push(chatUserInChat[i].firstChild.data);
            userListOperator.push(chatUserOperator[i].firstChild.data);
         }
         if ( window.chatFillList ) chatFillList();
         if ( window.chatFillMenuList ) chatFillMenuList();
         //alert('ja'); 
      }
      
      
      //if ( soortMsg == 'inchat' ) {
         // PARSE chatlines
         var chatLineSoort = response.getElementsByTagName("soort");
         var chatLineTijd = response.getElementsByTagName("tijd");
         var chatLineUsername = response.getElementsByTagName("username");
         var chatLineLine = response.getElementsByTagName("line");
         
         for( var i = 0; i<chatLineLine.length; i++ ) {
            parseChat(chatLineSoort[i].firstChild.data, chatLineTijd[i].firstChild.data, chatLineUsername[i].firstChild.data, chatLineLine[i].firstChild.data);
         }
         
      //}

      if ( soortMsg == 'chatrcv' ) {
         var chatStatus = response.getElementsByTagName("status")[0].firstChild.data;
         // status 1 = ok, 0 = niet ok (misschien 2 = flood?)
         var chatLineSoort = response.getElementsByTagName("soort");
         var chatLineTijd = response.getElementsByTagName("tijd");
         var chatLineUsername = response.getElementsByTagName("username");
         var chatLineLine = response.getElementsByTagName("line");
         
         for( var i = 0; i<chatLineLine.length; i++ ) {
            parseChat(chatLineSoort[i].firstChild.data, chatLineTijd[i].firstChild.data, chatLineUsername[i].firstChild.data, chatLineLine[i].firstChild.data);
         }

      }
      //addDebug('soort: '+soortMsg);

       //addDebug('soortmsg:'+soortMsg);
       //addDebug('msg:'+soortMsg[0].firstChild.data);
       //addDebug('Message Soort: '+soortMsg);
       
      
      /*
      var iID = response.getElementsByTagName("id");
      var iName = response.getElementsByTagName("left");
      var iPrice = response.getElementsByTagName("right");
      var iAdd = response.getElementsByTagName("add");
   
      for (var i = 0; i < iID.length; i++) {
         pdownAdd(wie,iID[i].firstChild.data, iName[i].firstChild.data, iPrice[i].firstChild.data, iAdd[i].firstChild.data);
      }
      if ( iID.length == 0 ) {
         pdownAdd(wie,0,'no results found','');
      } else {
         wie.pdownSel = 1;
      }
      pdownShow(wie);
      */
      //addDebug('processing completed');
   }
   

