var reqs=new Array();

function clear(O) { if (O) if (O.childNodes) for (var i in O.childNodes) cf(O.childNodes[i]); }

function cf(O) {
  if (O) {
    if (O.childNodes) for (var i in O.childNodes) cf(O.childNodes[i]);
    if (O.parentNode && O.parentNode.removeChild)  O.parentNode.removeChild(O);
  }
}

function GE(id) { return document.getElementById(id); }

function SXload(id, url, prop, delay, first, cb, post) {

  if (reqs[id][1].readyState == 4) {
    var response=reqs[id][1].responseText;
    if (response!='1') 	{
      var O=GE(id);

      if (prop=='innerHTML') {
  	    clear(O);
        response='<div style="margin:0px; padding:0px;">'+response+'</div>'; /* height is always calculated correctly */
      }
      O[prop] = response; 
      execJS(GE(id));
//      show_ctls(GE(id));
    }
    if (cb!=undefined) cb(id);
    if (delay != undefined) { setTimeout('SXreq(\''+id+'\',\''+url+'\',\''+prop+'\',\''+delay+'\',false, undefined, \''+post+'\');', delay); }
  }
}

function SXreq(O) {
//function SXreq(id, url, prop, delay, first, cb, post) {

  var id=O.id,  url=O.url, prop=O.prop, delay=O.delay, first=O.first, cb=O.cb, post=O.post;

  if (first==undefined) first = true;
  url+=(url.indexOf('?')==-1?'?':'&')+'sxreq_nocache='+Math.floor(Math.random()*999999);
  var url_mod=url; if (first) url_mod+=(url_mod.indexOf('?')!=-1?'&':'?')+'first_load=1';
  if (prop==undefined || prop=='null') prop='innerHTML';
  if (window.XMLHttpRequest) {
    reqs[id] = Array( url, new XMLHttpRequest() );
  } else if (window.ActiveXObject) {
    reqs[id] = Array( url, new ActiveXObject('Microsoft.XMLHTTP') );
  }
  if (reqs[id][1] != undefined) {
    reqs[id][1].onreadystatechange = function() { SXload(id, url, prop, delay, first, cb); };
		reqs[id][1].open((post?'POST':'GET'), url_mod, true);
		if (post) {
			reqs[id][1].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
/*
//			reqs[id][1].setRequestHeader("Content-type", "text/plain; charset=UTF-8");
//      reqs[id][1].overrideMimeType('text/xml; charset=utf-8');  
//			reqs[id][1].setRequestHeader("Charset", "UTF-8");
*/
			reqs[id][1].setRequestHeader("Content-length", post.length);
			reqs[id][1].setRequestHeader("Connection", "close");
		}
    reqs[id][1].send(post?post:'');
  }
}

function execJS(node) {

  var st = node.getElementsByTagName('SCRIPT');
  var strExec;
  for (var i=0; i<st.length; i++) {
    if (bSaf) strExec = st[i].innerHTML; else if (bOpera) strExec = st[i].text; else if (bMoz) strExec = st[i].textContent; else strExec = st[i].text;
    try { eval(strExec.split("<!--").join("").split("-->").join("")); } catch(e) { alert(e); }
  }
}

