/*
  spusti funkci "srcfunkce" s parametry "parametry" v php souboru "adresa" 
  a vrati vysledek do javascriptove funkce "dstfunkce"
  
  pokud pouzivate nice url, tak jeste nastavte do js promnne javascriptPhpAbsoluteUrl 
  absolutni cestu rootu vaseho webu (http://www.neco.cz/)
  
  vstup je vzdy pole Array('hodnota1','hodnota2')
  vysledek je bud string nebo pole 

  priklad na secteni dvou cisel
  
  javascriptPhp('soubor.php','secti', parametry, 'vysledek');
*/ 


function javascriptPhp(adresa,srcfunkce,parametry,dstfunkce){
  var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
  var url='javascriptPHP/javascriptPHP.php?srcsoubor='+adresa+'&srcfunkce='+srcfunkce;
  if ((typeof javascriptPhpAbsoluteUrl)=="string") url=javascriptPhpAbsoluteUrl+url;
   //alert(url);
  request.open("POST", url, true);
  request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
  request.onreadystatechange = function(){
    if (request.readyState == 4 && request.status == 200) {
      //alert(request.responseText);
      if (request.responseText && dstfunkce!=''){
        var hlavicka = document.getElementsByTagName('head')[0];
        var dataLoader = document.getElementById('javascriptPhpLoader');
        if (dataLoader) hlavicka.removeChild(dataLoader);
        var script = document.createElement('script');
        script.id = 'javascriptPhpLoader';
        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);
}

var javascriptPhpMinimality='ZajimaloByMneJakaJePravdebodopnostZeSeTenhleTextNekdeViskitne';

function javascriptPhpJsToStr(text){
  var oldtext='';
  text=text+'';
  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;
}

