function CreateRequest(){var Request = false;if(window.XMLHttpRequest){Request=new XMLHttpRequest();}else if (window.ActiveXObject){try{Request=new ActiveXObject("Microsoft.XMLHTTP");}catch(CatchException){Request = new ActiveXObject("Msxml2.XMLHTTP");}}if(!Request){alert("Невозможно создать XMLHttpRequest");}return Request;}

function SendRequest(r_method, r_path, r_args, r_handler) {var Request=CreateRequest();if(!Request){return;}Request.onreadystatechange=function(){if(Request.readyState==4){r_handler(Request);}};if(r_method.toLowerCase()=="get"&&r_args.length>0)r_path+="?"+r_args;Request.open(r_method,r_path,true);if(r_method.toLowerCase()=="post"){Request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");Request.send(r_args);}else{Request.send(null);}}

function openPage(src)
{
  op = 0;
  closePage();
  
  ct_div = document.getElementById("ct");
  if(!ct_div) return false;
  
  sh_div = document.createElement("div");
  sh_div.className = "sh";
  sh_div.onclick = closePage;
  document.body.appendChild(sh_div);
  
  pg_div = document.createElement("div");
  pg_div.className = "ap";
  ct_div.appendChild(pg_div);
  
  ld_div = document.createElement("div");
  pg_div.appendChild(ld_div);
  
  cl_div = document.createElement("div");
  cl_div.className = "cl";
  cl_div.onclick = closePage;
  pg_div.appendChild(cl_div);
  
  setOpacity(op);
  
  SendRequest("GET", src, "", responseHandler);
}

function closePage()
{
  if(op > 0)
  {
    op -= .3;
    setOpacity(op);
    setTimeout(function(){closePage()}, 50);
  }
  else
  {
    try
    {
      if(pg_div) pg_div.parentNode.removeChild(pg_div);
      if(sh_div) sh_div.parentNode.removeChild(sh_div);
    }
    catch(e){}
  }
}

function responseHandler(Request)
{
  if(ld_div)
  {
    ld_div.innerHTML = Request.responseText;
    cl_div.innerHTML = "<span>Закрыть</span>";
  }
  
  if(op < 1)
  {
    setTimeout(function(){responseHandler(Request)}, 50);
    op += .3;
    setOpacity(op);
  }
}

function setOpacity(o)
{
  if(o < 0) o = 0;
  if(o > 1) o = 1;
  
  if(pg_div)
  {
    if(o != 1)
    {
      pg_div.style.opacity = o;
      pg_div.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + Math.round(o * 100) + ");";
    }
    else
    {
      pg_div.style.opacity = '';
      pg_div.style.filter = 'none';
    }
  }
}



















