var timers = new Array();

function loadXMLDoc(url, id) {
    var req;
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {   
            /*var _div;
            _div = document.getElementById(id+'_block');
            _div.innerHTML = stat(req.readyState); */
            ab = window.setTimeout("req.abort();", 100000);
            if (req.readyState == 4) {
                clearTimeout(ab);
                if (req.status == 200) {
                    var data = eval('(' + req.responseText + ')');
                    if (data.err_message == null) {
                        var delay = data.textlifetime;
                        window.clearTimeout(timers[id]);
                        var block = document.getElementById(id+'_block');
                        block.innerHTML = data.text;
                        timers[id] = window.setTimeout('OnBlockCheange('+id+')', 1000*delay);
                    }
                } else {
                    alert("Не удалось получить данные:\n" + req.statusText);
                }
            }  
        }
        req.open("GET", url, true);
        req.send(null);
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {   
            /*var _div;
            _div = document.getElementById(id+'_block');
            _div.innerHTML = stat(req.readyState); */
            ab = window.setTimeout("req.abort();", 100000);
            if (req.readyState == 4) {
                clearTimeout(ab);
                if (req.status == 200) {
                    var data = eval('(' + req.responseText + ')');
                    if (data.err_message == null) {
                        var delay = data.textlifetime;
                        window.clearTimeout(timers[id]);
                        var block = document.getElementById(id+'_block');
                        block.innerHTML = data.text;
                        timers[id] = window.setTimeout('OnBlockCheange('+id+')', 1000*delay);
                    }
                } else {
                    alert("Не удалось получить данные:\n" + req.statusText);
                }
            }  
        }
            req.open("GET", url, true);
            req.send();
        }
    }
}

function stat(n)
{
  var msg;
  msg = "<table width=\"100%\" height=\"100%\"><tr><td align=\"center\"><img src=/images/block-ajax-loader.gif></td></tr></table>";
  switch (n) {
    case 0:
      return "не инициализирован";
    break;
      
    case 1: 
      return msg;
    break;
    
    case 2: 
      return msg;
    break;
    
    case 3: 
      return msg;
    break;
      
    case 4: 
      return "готово";
    break;
    
    default:
      return "неизвестное состояние";  
  }  
}


function requestdata(params, id)
{
    loadXMLDoc('/din_block.php?HTTPrequest=1'+params, id);
}

function LoadBlockContent(blockID, delay) {
    timers[blockID] = window.setTimeout('OnBlockCheange('+blockID+')', 1000*delay);
}

function OnBlockCheange(ID) {
    requestdata('&id='+ID, ID);
    //alert ('blablabla');
}