var cw = '';
var done = false;
var sInterval;
var upInterval;
var maxid = 1;
var shid = 900;
function sendShout(element, event) {
     if (upInterval) { clearInterval(upInterval); }
     document.getElementById("shoutinput").disabled = true;
     document.getElementById("shoutsend").disabled = true;
     document.getElementById("shoutname").type = 'hidden';
     var requ = _si_req();
     var text =  document.getElementById("shoutinput").value
     var name =  document.getElementById("shoutname").value
     document.getElementById("shoutinput").value = 'Sending.';
     requ.open('GET', '/shout.php?action=post&name=' + name + '&text=' + text + '&id='+maxid);
     requ.onreadystatechange = function() {
        if (requ.readyState == 4 && requ.status == 200) {
          var xmlElements = requ.responseXML.getElementsByTagName("shout"); 
          for (i=xmlElements.length; i > 0; i--) { 
            var xmlElement = xmlElements[i-1];
            var HTML = document.getElementById("shoutboxview").innerHTML;
            document.getElementById("shoutboxview").innerHTML = HTML + makeShoutCaption(getElementTextNS("","name",xmlElement,0), getElementTextNS("","text",xmlElement,0));
          }
          var idElement = requ.responseXML.getElementsByTagName("xml"); 
          maxid = getElementTextNS("","maxid",idElement[0],0);  
          document.getElementById("shoutinput").disabled = false;
          document.getElementById("shoutinput").value = '';
          document.getElementById("shoutsend").disabled = false;
          startScroll();
        }
        if (upInterval) { clearInterval(upInterval); }
        upInterval = setInterval("update_sb()",10000);
     }
     requ.send(null);
}


function update_sb() {
     shid--;
     if (shid < 1) return;
   
     if (!(maxid > 1)) { return; }
     var requ2 = _si_req();
     requ2.open('GET', '/shout.php?id='+maxid);
     requ2.onreadystatechange = function() {
        if (requ2.readyState == 4 && requ2.status == 200) {
          var xmlElements = requ2.responseXML.getElementsByTagName("shout"); 
          for (i=xmlElements.length; i > 0; i--) { 
            var xmlElement = xmlElements[i-1];
            var HTML = document.getElementById("shoutboxview").innerHTML;
            document.getElementById("shoutboxview").innerHTML = HTML + makeShoutCaption(getElementTextNS("","name",xmlElement,0), getElementTextNS("","text",xmlElement,0));
          }
          var idElement = requ2.responseXML.getElementsByTagName("xml"); 
          maxid = getElementTextNS("","maxid",idElement[0],0); 
          document.getElementById("currentusers").innerHTML = getElementTextNS("","users",idElement[0],0) + " user(s) online"; 
        }
    }
    requ2.send(null);
}

function startScroll() {
   done = false;
   if (sInterval) { clearInterval(sInterval); }
   sInterval = setInterval("slowScroll()",900);
}

function slowScroll() {
   if (done) {return; }
   var sElement = document.getElementById('shoutboxview');
   if (sElement.scrollTop+130 >= sElement.scrollHeight) { done = true; clearInterval(sInterval); return; }
   var sStyle = sElement;
   if (sStyle.style) { sStyle = sStyle.style; }
   sElement.scrollTop = sElement.scrollTop + (sElement.scrollHeight-133);
   //sElement.scrollTop = sElement.scrollTop + (((sElement.scrollHeight-133) - sElement.scrollTop) / 8)+1;
}


function init_shoutbox() {
//     var requ = _si_req();
//     requ.open('GET', '/shout.php');
//     requ.onreadystatechange = function() {
//        if (requ.readyState == 4 && requ.status == 200) {
//          var xmlElements = requ.responseXML.getElementsByTagName("shout"); 
//            document.getElementById("shoutboxview").innerHTML = '';
//          for (i=0; i < xmlElements.length; i++) { 
//            var xmlElement = xmlElements[i];
//            var HTML = document.getElementById("shoutboxview").innerHTML;
//           document.getElementById("shoutboxview").innerHTML = makeShoutCaption(getElementTextNS("","name",xmlElement,0), getElementTextNS("","text",xmlElement,0)) + HTML;
//          }
//          var idElement = requ.responseXML.getElementsByTagName("xml"); 
//        }
//     }
//     requ.send(null);
     
     maxid = document.getElementById("maxid").getAttribute("title"); 
     zInterval = setInterval("slowScroll()",1000);
     upInterval = setInterval("update_sb()",10000);
}


function makeShoutCaption(name, text) {
   var rbox = '<span class="shoutnamev">'+name+'</span>:&nbsp;<span class="shouttextv">'+text+'</span><br />';
   return rbox;
}
