var layer = new Array();

function getAdminLayer(p_rootdir, p_boxname) {
  var div1, div2, div3, button;

  div1 = document.createElement("DIV");
  div1.className = 'popup_list_category';

  div2 = document.createElement("DIV");
  div2.className = 'popup_list';
  div2.id = 'admin_layer_content';
  div2.rootdir = p_rootdir;
  div2.boxname = p_boxname;
  div2.style.width = '700px';
  div2.style.height = 'auto';
  div2.style.overflowX = 'auto';
  div2.style.overflowY = 'visible';
  div1.appendChild(div2);

  div2 = document.createElement("DIV");
  div2.className = 'popup_list_content';
  div2.appendChild(div1);

  div1 = document.createElement("DIV");
  div1.className = 'popup_right_border';
  div1.appendChild(div2);

  div2 = document.createElement("DIV");
  div2.className = 'popup_buttons';

  button = document.createElement("INPUT");
  button.className = 'button_cancel';
  button.type = 'button';
  button.value = 'Cancel';
  button.onclick = function() { closeAdminLayer() }
  div2.appendChild(button);

  div1.appendChild(div2);

  div2 = document.createElement("DIV");
  div2.className = 'popup_left_border';
  div2.appendChild(div1);

  div1 = document.createElement("DIV");
  div1.className = 'popup_container2';

  div3 = document.createElement("DIV");
  div3.className = 'popup_top_left';
  div1.appendChild(div3);

  div3 = document.createElement("DIV");
  div3.className = 'popup_top_center';
  div1.appendChild(div3);

  div3 = document.createElement("DIV");
  div3.className = 'popup_top_right';
  div1.appendChild(div3);

  div1.appendChild(div2);

  div3 = document.createElement("DIV");
  div3.className = 'popup_list_bottom';

  div2 = document.createElement("DIV");
  div2.className = 'popup_bottom_left';
  div3.appendChild(div2);

  div2 = document.createElement("DIV");
  div2.className = 'popup_bottom_center';
  div3.appendChild(div2);

  div2 = document.createElement("DIV");
  div2.className = 'popup_bottom_right';
  div3.appendChild(div2);

  div1.appendChild(div3);

  var yScroll;

  if (self.pageYOffset) {
    yScroll = self.pageYOffset;
  } else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
    yScroll = document.documentElement.scrollTop;
  } else if (document.body) {// all other Explorers
    yScroll = document.body.scrollTop;
  }

  div2 = document.createElement("DIV");
  div2.className = 'popup_background';
  div2.style.top = yScroll + 'px';
  layer[0] = document.body.appendChild(div2);

  div2 = document.createElement("DIV");
  div2.className = 'popup_container';
  div2.style.top = yScroll + 'px';
  div2.align = 'center';
  div2.appendChild(div1);

  layer[1] = document.body.appendChild(div2);

  document.body.style.width = '100%';
  document.body.style.height = '100%';
  document.body.style.overflow = 'hidden';

  searchCombo('hidden');

  AjaxRequest.get({
    'url'        : p_rootdir + '_application/src/provider/get_box_for_layer/?box=' + p_boxname,
    'onSuccess'  : function(req) { processAdminLayerResponse(req); },
    'onError'    : function() {}
  });
}

function processAdminLayerResponse(req) {
  var layer_content = document.getElementById('admin_layer_content');
  if (req.responseText != null) {
    layer_content.innerHTML = req.responseText.replace(/..\/..\/..\/..\//g, layer_content.rootdir);
    var links = layer_content.getElementsByTagName('A');
    for (var i=0;i<links.length;i++) {
      links[i].onclick = function () { refreshAdminLayer(this);return false; }
    }
    links = layer_content.getElementsByTagName('FORM');
    for (var i=0;i<links.length;i++) {
      links[i].onsubmit = function () { postAdminLayerForm(this);return false; }
    }
    links = layer_content.getElementsByTagName('INPUT');
    for (var i=0;i<links.length;i++) {
      if (links[i].type == 'text' && links[i].parentNode.className == 'page'
          && links[i].onkeypress != undefined) {
        links[i].onkeypress = function (event) { return adminlayer_tablePagerSubmitOnEnter(event,this.form); }
      }
    }
  }
  var full_layer = layer_content.parentNode.parentNode.parentNode.parentNode.parentNode;
  full_layer.style.display = '';
  full_layer.style.marginTop = ((full_layer.parentNode.clientHeight - full_layer.offsetHeight) / 2) + 'px';
}

function adminlayer_tablePagerSubmitOnEnter(e,form) {
  var key=e.keyCode || e.which;
  if (key==13){
    postAdminLayerForm(null);
    return false;
  } else {
    return true;
  }
}

function refreshAdminLayer(p_this) {
  var layer_content = document.getElementById('admin_layer_content');
  var href = p_this.getAttribute('href');
  href = href.split("?");
  href = href[1];
  p_this.href = '#';
  var inputs = layer_content.getElementsByTagName('INPUT');
  for (var i=0;i<inputs.length;i++) {
    href = href + '&' + inputs[i].name + '=' + encodeURIComponent( inputs[i].value );
  }

  AjaxRequest.get({
    'url'        : layer_content.rootdir + '_application/src/provider/get_box_for_layer/?box=' + layer_content.boxname + '&' + href,
    'onSuccess'  : function(req) { processAdminLayerResponse(req); },
    'onError'    : function() {}
  });
}

function postAdminLayerForm(p_this) {
  var layer_content = document.getElementById('admin_layer_content');
  var href = '';;
  if (p_this != null
      && p_this.getAttribute('name') != null) {
    href = href + '&' + p_this.getAttribute('name') + '=1';
  }
  var inputs = layer_content.getElementsByTagName('INPUT');
  for (var i=0;i<inputs.length;i++) {
    href = href + '&' + inputs[i].name + '=' + encodeURIComponent( inputs[i].value );
  }
  
  var inputs = layer_content.getElementsByTagName('SELECT');
  for (var i=0;i<inputs.length;i++) {
    href = href + '&' + inputs[i].name + '=' + encodeURIComponent( inputs[i].value );
  }

  var textareas = layer_content.getElementsByTagName('TEXTAREA');
  for (var i=0;i<textareas.length;i++) {
    href = href + '&' + textareas[i].name + '=' + encodeURIComponent( textareas[i].value );
  }

  AjaxRequest.get({
    'url'        : layer_content.rootdir + '_application/src/provider/get_box_for_layer/?box=' + layer_content.boxname + href,
    'onSuccess'  : function(req) { processAdminLayerResponse(req); },
    'onError'    : function() {}
  });
}

function postCloseAdminLayer() {
  var layer_content = document.getElementById('admin_layer_content');
  var inputs = layer_content.getElementsByTagName('INPUT');
  var href = '';
  for (var i=0;i<inputs.length;i++) {
    href = href + '&' + inputs[i].name + '=' + encodeURIComponent( inputs[i].value );
  }

  try {
    // Moz supports XMLHttpRequest. IE uses ActiveX. 
    // browser detction is bad. object detection works for any browser
    xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP');
    xmlhttp.open('GET', layer_content.rootdir + '_application/src/provider/get_box_for_layer/?box=' + layer_content.boxname + href, false);
    xmlhttp.send(null);
    if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
      result = unescape(xmlhttp.responseText);
    }
  } catch (e) {
   // browser doesn't support ajax. handle however you want
  }

  closeAdminLayer();
}

function closeAdminLayer() {
  document.body.style.width = 'auto';
  document.body.style.height = 'auto';
  document.body.style.overflow = 'auto';

  searchCombo('visible');

  document.body.removeChild(layer[0]);
  document.body.removeChild(layer[1]);
}

var opener_button;
function szotar_hasonlo_beir(p_this) {
  var tds = p_this.parentNode.parentNode.getElementsByTagName('TD');
  var textareas = opener_button.parentNode.parentNode.getElementsByTagName('TEXTAREA');
  textareas[textareas.length-1].value = tds[tds.length-1].innerHTML;
  closeAdminLayer();
}

