// asynchronni

function ajax(url,toSpan){

  if (!send_xmlhttprequest(obsluha, 'GET', url, '', '', toSpan)) { return false;}

}

function send_xmlhttprequest(obsluha, method, url, content, headers, toSpan){

    var url = url+ "&dummy=" + new Date().getTime();
    var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
    if (!xmlhttp) { return false; }
       xmlhttp.open(method, url);
    xmlhttp.onreadystatechange = function() { obsluha(xmlhttp,toSpan); };
    if (headers) {
        for (var key in headers)  { xmlhttp.setRequestHeader(key, headers[key]); }
        }
    xmlhttp.send(content);
    return true;

}

function obsluha(xmlhttp,toSpan){

    if (xmlhttp.readyState == 4) {
    responseXML = xmlhttp.responseXML;
    if (!window.ActiveXObject) {responseXML.normalize();}
    var DataA = responseXML.getElementsByTagName('code');
    document.getElementById(toSpan).innerHTML = DataA[0].firstChild.data;
    var DataB = responseXML.getElementsByTagName('script');
    var script = DataB[0].firstChild.data;
    if (script!='' && script!=' ' && script!='&nbsp;') {eval(script);}
    }

}

// synchronni

function jax(url,toSpan){

  if (!send_xmlhttprequest_jax(obsluha, 'GET', url, '', '', toSpan)) { return false;}

}


function send_xmlhttprequest_jax(obsluha, method, url, content, headers, toSpan){

    var url = url+ "&dummy=" + new Date().getTime();
    var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
    if (!xmlhttp) { return false; }
       xmlhttp.open(method, url, false);
    if (headers) {
        for (var key in headers)  { xmlhttp.setRequestHeader(key, headers[key]); }
        }
    xmlhttp.send(content);
    obsluha_jax(xmlhttp,toSpan);
    return true;
}


function obsluha_jax(xmlhttp,toSpan){

    responseXML = xmlhttp.responseXML;
    if (!window.ActiveXObject) {responseXML.normalize();}
    var DataA = responseXML.getElementsByTagName('code');
    document.getElementById(toSpan).innerHTML = DataA[0].firstChild.data;
    var DataB = responseXML.getElementsByTagName('script');
    var script = DataB[0].firstChild.data;
    if (script!='' && script!=' ' && script!='&nbsp;') {eval(script);}


}

function ajaxPost(formName,url,toSpan){
      params = formSerialize(formName);
      //if (url.indexOf('?') == -1) url += '?';

      var headers = new Object();

      headers["Content-type"]   = "application/x-www-form-urlencoded";
      headers["Content-length"] = params.length;
      headers["Connection"]     = "close";

      if (!send_xmlhttprequest(obsluha, 'POST', url, params, headers, toSpan)) { return false;}
}

function jaxPost(formName,url,toSpan){
      params = formSerialize(formName);
      //if (url.indexOf('?') == -1) url += '?';

      var headers = new Object();

      headers["Content-type"]   = "application/x-www-form-urlencoded";
      headers["Content-length"] = params.length;
      headers["Connection"]     = "close";

      if (!send_xmlhttprequest_jax(obsluha, 'POST', url, params, headers, toSpan)) { return false;}
}

function formSerialize(formName){

  // aktualizovat udaje vsech input poli dle instanci FCK editoru

  if (isdefined('FCKeditorAPI')) { for ( var s in FCKeditorAPI.Instances ) { FCKeditorAPI.GetInstance(s).UpdateLinkedField();  } }

  var serialized = '';

  form = document.forms[formName];

  for (i=0;i<form.length;i++){

     elementValue = '';

     elementName = form.elements[i].getAttribute('name');

     switch (form.elements[i].getAttribute('type')){
       case 'checkbox': if ( form.elements[i].checked == true) elementValue = form.elements[i].value; break;
       case 'radio':   	if (form.elements[i].checked == true) elementValue = form.elements[i].value;  break;
       case null:       elementValue = form.elements[i].value;                                        break;   // fieldset, textarea, select
       case 'button':   elementValue = '';                                                            break;   // buttons
       default:         elementValue = form.elements[i].value;                                        break;   // text, hidden
     }

     if (elementValue!=''){
     serialized += "&"+elementName+'='+utf8encode(elementValue);
     }

  }

  return serialized;

}

function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined") ?  false : true;
}


function keepClientOnline(){
   ajax('/system/ajax/?m=client','null');
   setTimeout('keepClientOnline()',300000);
}


function addLoadEvent(func) {
	  var oldonload = window.onload;
	  if (typeof window.onload != 'function') {
	    window.onload = func;
	  } else {
	    window.onload = function() {
	      if (oldonload) {
	        oldonload();
	      }
	      func();
	    }
	  }
        //  alert(window.onload);
}

addLoadEvent(keepClientOnline);
