/*
  spusti funkci "srcfunkce" s parametry "parametry" v php souboru "adresa" a vrati vysledek do javascriptove funkce "dstfunkce"
  
  vstup je vzdy pole Array('hodnota1','hodnota2')
  vysledek je bud string nebo pole 

  priklad na secteni dvou cisel
  
  javascriptPhp('soubor.php','secti', parametry, 'vysledek');
*/ 
var javascriptPhpMinimality='ZajimaloByMneJakaJePravdebodopnostZeSeTenhleTextNekdeViskitne';

function javascriptPhpJsToStr(text){
  var oldtext='';
  do {
    oldtext=text;
    text=text.replace("%", javascriptPhpMinimality);  
  } while (oldtext!=text);   
  do {
    oldtext=text;
    text=text.replace("+", '%2B');  
    text=text.replace("#", '%23');  
    text=text.replace("\&", '%26');
    text=text.replace("\n", '%0A');
    text=text.replace("\r", '%0D'); 
  } while (oldtext!=text);   
  do {
    oldtext=text;
    text=text.replace(javascriptPhpMinimality, "%25");  
  } while (oldtext!=text);   
  return text;
}

function javascriptPhp(adresa,srcfunkce,parametry,dstfunkce){
  var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
  request.open("POST", adresa+'?srcfunkce='+srcfunkce, true);
  request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
  request.onreadystatechange = function(){
    if (request.readyState == 4 && request.status == 200) {
      if (request.responseText){
        var hlavicka = document.getElementsByTagName('head')[0];
        var dataLoader = document.getElementById('javascriptPhpLoader');
        if (dataLoader) hlavicka.removeChild(dataLoader);
        var script = document.createElement('script');
        script.id = 'javascriptPhpLoader';
        //alert(request.responseText);
        script.text=dstfunkce+'('+request.responseText+');';
        hlavicka.appendChild(script);
      }
    }
  }
  var strparam='';
  for (var i=0;i<parametry.length;i++){
    if (i>0) strparam=strparam+'&';
    parametry[i]
    strparam=strparam+i+'='+javascriptPhpJsToStr(parametry[i]);
  }
  //alert(strparam);
  request.send(strparam);
}
