//őű
///////////////////////////////////////////////////
// AJAX
///////////////////////////////////////////////////
var xmlHttp;

function ajaxCall(url,stateChangedFunction)
{
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
    alert ("Your browser does not support AJAX!");
    return;
  }
  url=url+"&sid="+Math.random();
  xmlHttp.onreadystatechange=stateChangedFunction;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

function ajaxCallPost(url,params,stateChangedFunction)
{
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
    alert ("Your browser does not support AJAX!");
    return;
  }
  xmlHttp.onreadystatechange=stateChangedFunction;
  xmlHttp.open("POST",url,true);
  //Send the proper header information along with the request
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Content-length", params.length);
  xmlHttp.setRequestHeader("Connection", "close");
  xmlHttp.send(params);
}

function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }
  catch (e)
  {
    // Internet Explorer
    try
    {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}

///////////////////////////////////////////////////
// AJAX content
///////////////////////////////////////////////////

function sethtml(div,content) {
   var search = content;
   var script;

   var is_singleq = 0; var singleq = "'";
   var is_doubleq = 0; var doubleq = '"';
   var is_escaped = 0; var escap = "\\";
   var layer = 0;

   document.getElementById(div).innerHTML=content;

   while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/)) {
      search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length);
      if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break;
      block = search.substr(0, search.indexOf(RegExp.$1));
      search = search.substring(block.length + RegExp.$1.length);

      while( func = block.match( /(function(.+?)\((.*?)\)\s*\{)/ )) {

         block = block.substr(block.indexOf(RegExp.$1) + RegExp.$1.length);
         name = RegExp.$2;
         param = RegExp.$3;


         is_singleq = 0;
         is_doubleq = 0;
         is_escaped = 0;
         layer = 0;


         for(i=0;i<block.length;i++) {
            c = block.substr(i,1);

            if ((is_singleq || is_doubleq) && is_escaped) {
               is_escaped = 0;
            } else if (!is_doubleq && (c==singleq)) {
               is_singleq = !is_singleq;
            } else if (!is_singleq && (c==doubleq)) {
               is_doubleq = !is_doubleq;
            } else if ((is_singleq || is_doubleq) && (c==escap)) {
               is_escaped = 1;
            } else if ( c=="{") {
               layer++;
            } else if ( c=="}") {
               if ( layer==0 ) {
                  break;
               }
               layer--;
            }
         }

         code = block.substr(0,i-1);
         block = block.substr(i +1);


         code = code.replace(/\n/g, '\\n');
         code = code.replace(/\r/g, '\\r');
         code = code.replace(/'/g,"\\'");
         code = code.replace(/"/g,'\\"');
         eval(name + " = new Function('"+param+"',\""+code+"\");");
      }
      //alert(block);
      eval(block); // for evaluating non functions
   }

}

function eval_html(search) {
   var script;

   var is_singleq = 0; var singleq = "'";
   var is_doubleq = 0; var doubleq = '"';
   var is_escaped = 0; var escap = "\\";
   var layer = 0;

   while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/)) {
      search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length);
      if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break;
      block = search.substr(0, search.indexOf(RegExp.$1));
      search = search.substring(block.length + RegExp.$1.length);

      while( func = block.match( /(function(.+?)\((.*?)\)\s*\{)/ )) {

         block = block.substr(block.indexOf(RegExp.$1) + RegExp.$1.length);
         name = RegExp.$2;
         param = RegExp.$3;


         is_singleq = 0;
         is_doubleq = 0;
         is_escaped = 0;
         layer = 0;


         for(i=0;i<block.length;i++) {
            c = block.substr(i,1);

            if ((is_singleq || is_doubleq) && is_escaped) {
               is_escaped = 0;
            } else if (!is_doubleq && (c==singleq)) {
               is_singleq = !is_singleq;
            } else if (!is_singleq && (c==doubleq)) {
               is_doubleq = !is_doubleq;
            } else if ((is_singleq || is_doubleq) && (c==escap)) {
               is_escaped = 1;
            } else if ( c=="{") {
               layer++;
            } else if ( c=="}") {
               if ( layer==0 ) {
                  break;
               }
               layer--;
            }
         }

         code = block.substr(0,i-1);
         block = block.substr(i +1);


         code = code.replace(/\n/g, '\\n');
         code = code.replace(/\r/g, '\\r');
         code = code.replace(/'/g,"\\'");
         code = code.replace(/"/g,'\\"');
         eval(name + " = new Function('"+param+"',\""+code+"\");");
      }
      eval(block); // for evaluating non functions
   }

}



var filesadded="" //list of files already added

function checkloadjscssfile(filename, filetype){
 if (filesadded.indexOf("["+filename+"]")==-1){
  loadjscssfile(filename, filetype)
  filesadded+="["+filename+"]" //List of files added in the form "[filename1],[filename2],etc"
 }
// else
//  alert("file already added!")
}

function loadjscssfile(filename, filetype){
 if (filetype=="js"){ //if filename is a external JavaScript file
  var fileref=document.createElement('script')
  fileref.setAttribute("type","text/javascript")
  fileref.setAttribute("src", filename)
 }
 else if (filetype=="css"){ //if filename is an external CSS file
  var fileref=document.createElement("link")
  fileref.setAttribute("rel", "stylesheet")
  fileref.setAttribute("type", "text/css")
  fileref.setAttribute("href", filename)
 }
 if (typeof fileref!="undefined")
  document.getElementsByTagName("head")[0].appendChild(fileref)
}


function divOnChange(divlink){
  ajaxCall(divlink,divOnResponse)
}

function divOnResponse() {
  if (xmlHttp.readyState==4)
  {
    var xmlDoc = xmlHttp.responseXML;
    var response = "";
    var divid = "";
    // mozilla
//    alert(xmlHttp.responseText);
    if (xmlDoc.getElementsByTagName("divid")[0].textContent)
      divid = xmlDoc.getElementsByTagName("divid")[0].textContent;
    else
      divid = xmlDoc.getElementsByTagName("divid")[0].childNodes[0].nodeValue;

    if (xmlDoc.getElementsByTagName("tartalom")[0].textContent)
      response = xmlDoc.getElementsByTagName("tartalom")[0].textContent;
    else
      response = xmlDoc.getElementsByTagName("tartalom")[0].childNodes[0].nodeValue;
    sethtml(divid,response);
    // animatedcollapse.toggle(divid);
    // a frissito js fgv hivasa
    if(xmlDoc.getElementsByTagName("update_site")[0]){
      if (xmlDoc.getElementsByTagName("update_site")[0].textContent)
        update = xmlDoc.getElementsByTagName("update_site")[0].textContent;
      else
        update = xmlDoc.getElementsByTagName("update_site")[0].childNodes[0].nodeValue;
      eval(update);
    }
  }
}
