var IE = false;

function callMe(url, callback, urllock){
  ajaxObject = function() {
  try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e){
  try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e){
  try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e){
  try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e){
  try { return new XMLHttpRequest(); } catch(e){
  throw new Error( "This browser does not support XMLHttpRequest." );
  }}}}}};
  ajax = new ajaxObject();
  ajax.onreadystatechange = function(){
    if(ajax.readyState == 4){
      if(ajax.status == 200){
        callHandle(url,ajax.responseText,callback,urllock);
      }
    }
  };
  if(url.indexOf('time') == -1){
    url += '?time='+Number(new Date());
  }
  ajax.open('GET', url, true);
  ajax.send(null);
}
function callMePost(url, params, callback, urllock){
  ajaxObject = function() {
  try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e){
  try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e){
  try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e){
  try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e){
  try { return new XMLHttpRequest(); } catch(e){
  throw new Error( "This browser does not support XMLHttpRequest." );
  }}}}}};
  ajax = ajaxObject();
  ajax.onreadystatechange = function(){
    if(ajax.readyState == 4){
      if(ajax.status == 200){
        callHandle(url.replace('ajax/',''),ajax.responseText,callback,urllock);
      }
    }
  };
  ajax.open('POST', url, true);
  ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  ajax.setRequestHeader("Content-length", params.length);
  ajax.setRequestHeader("Connection", "close");
  ajax.send(params);
}
function callHandle(url,json, callback, urllock){
//   if(!urllock) location.href = "#"+url.replace(/,small_1/,'').split('?')[0];
  var obj;
  try{
    if(typeof(JSON) === "object" && typeof(JSON.parse) === "function")
      obj = JSON.parse(json);
    else
      eval("obj = "+json+";");
//     if(obj.title) document.title = obj.title;
//     if(obj.description){
//       document.getElementById("sitedescription").content = obj.description.replace(/\<[^\>]*\>/g,'').substring(0,250);
//     }
  }catch(e){
   obj = json;
  }
  if(typeof(callback) === "function"){
    callback(obj);
  }
}

function trim(str){
  s = str.replace(/^(\s)*/, '');
  s = s.replace(/(\s)*$/, '');
  return s;
}

function EmitSignal(signal, value){
  var els = document.getElementsByName("show["+signal+"_"+"0]"), i;
  for(i=0;i<els.length;i++){
    els[i].style.display = value?'none':'';
  }
  els = document.getElementsByName("show["+signal+"_"+"1]");
  for(i=0;i<els.length;i++){
    els[i].style.display = value?'':'none';
  }
}

var LoaderFunctions = [];
var LoaderLoaded = false;
var LoaderLastOnLoad = window.onload;
if(typeof(LoaderLastOnLoad) !== 'function')
  window.onload = FireLoader;
else
  window.onload = function(){LoaderLastOnLoad(); FireLoader();};
var LoaderLastContentLoaded = window.DOMContentLoaded;
if(typeof(LoaderLastContentLoaded) !== 'function')
  window.DOMContentLoaded = FireLoader;
else
  window.DOMContentLoaded = function(){LoaderLastContentLoaded(); FireLoader();};
function AddLoad(func){
  LoaderFunctions.push(func);
}
function FireLoader(){
  for(var i=0; i<LoaderFunctions.length; i++){
    LoaderFunctions[i]();
  }
  LoaderFunctions = [];
}

function ShowHide(id){
  var el = document.getElementById(id);
  if(el){
    if(el.style.display !== 'block'){
      el.style.display = 'block';
    }else{
      el.style.display = 'none';
    }
  }
}

function stop(e){
  if (!e) var e = window.event;
  e.cancelBubble = true;
  if (e.stopPropagation) e.stopPropagation();
}
function RegDebug(){
  el = document.getElementById("debugger");
  if(!el) return;
  el.onclick = function(){ShowHide('debugger')};
  el.firstChild.onclick = stop;
}
AddLoad(RegDebug);

function Url(val){
  return val.replace(/,/g,'$przec;').replace(/_/g,'$under;');
}

function PagerGo(el, url){
  var val = el.value;
  if(!val) url = url.replace(",page_X",'');
  else url = url.replace(",page_X",",page_"+val);
  location.href = url;
}
function PagerSearch(el, url){
  var val = el.value;
  if(!val.length) url = url.replace(",search_","");
  else url = url.replace(",search_",",search_"+Url(val));
  location.href = url;
}
function PagerSearchFocus(el, url){
  el.onkeypress = function(e){
    if(!e) e = window.event;
    var keynum;
    if(window.event)
      keynum = e.keyCode;
    else if(e.which)
      keynum = e.which;
    if(keynum == 13){
      e.returnValue = false;
      if(e.preventDefault) e.preventDefault();
      PagerSearch(this, url);
    }
  };
  el.onblur = function(e){
    this.onkeypress = null;
    this.onblur = null;
  }
}

function RowHover(el, url){
  el.onclick = function(e){
    if(!e) e = window.event;
    if(!e.target){
      e.target = e.srcElement;
    }
    if(e.target.tagName.toLowerCase() == 'td'){
      location.href = url;
    }
  };
  el.mouseout = function(e){
    this.onclick = null;
    this.mouseout = null;
  }
}

function SlidePInfo(e){
  var el = e.parentNode;
  if(!el.style.left || parseInt(el.style.left) == 0){
    el.style.left = "-326px";
    e.firstChild.className = "f";
  }else{
    el.style.left = "0";
    e.firstChild.className = "b";
  }
}

function LangListShowHide(){
  ShowHide("langlist");
}
function LangSearch(el){
  var e = document.getElementById("langlist");
  if(!e) return;
  var reg;
  if(el.value){
    reg = new RegExp(el.value, "i");
  }else{
    reg = new RegExp(".*", "i");
  }
  var ch, amount=0;
  for(var i=0; i<e.childNodes.length; i++){
    ch = e.childNodes[i];
    if(ch.nodeType !== 3){
      if(reg.test(ch.lastChild.innerHTML)){
        ch.style.display = "";
        amount++;
      }else{
        ch.style.display = "none";
      }
    }
  }
  if(amount){
    e.style.display = "block";
  }else{
    e.style.display = "none";
  }
}
function LangListClick(el){
  location.href = el.lastChild.href;
}
function InputPlaceholder(el, ev){
  if(ev == "focus" && el.value == el.defaultValue){
    el.value = "";
  }else if(ev == "blur" && el.value == ""){
    el.value = el.defaultValue;
  }
}
function Trans(id, text, lang){
  var ret = prompt("ID: "+id, text);
  if(ret){
    callMePost("trans.php", "id="+id+"&lang="+lang+"&text="+ret, function(obj){ alert(obj) }, false);
  }
}

function Newsread(el){
  do{
    el = el.previousSibling;
  }while(el.nodeType == 3);
  if(el.style.maxHeight == "40px"){
    el.style.maxHeight = "";
  }else{
    el.style.maxHeight = "40px";
  }
}

function Url(val){
  return val.replace(/,/g,'$przec;').replace(/_/g,'$under;');
}

function PagerGo(el, url){
  var val = el.value;
  if(!val) url = url.replace(",page_X",'');
  else url = url.replace(",page_X",",page_"+val);
  location.href = url;
}
function PagerSearch(el, url){
  var val = el.value;
  if(!val.length) url = url.replace(",search_","");
  else url = url.replace(",search_",",search_"+Url(val));
  location.href = url;
}
function PagerSearchFocus(el, url){
  el.onkeypress = function(e){
    if(!e) e = window.event;
    var keynum;
    if(window.event)
      keynum = e.keyCode;
    else if(e.which)
      keynum = e.which;
    if(keynum == 13){
      e.returnValue = false;
      if(e.preventDefault) e.preventDefault();
      PagerSearch(this, url);
    }
  };
  el.onblur = function(e){
    this.onkeypress = null;
    this.onblur = null;
  }
}

