//fuggosegek: 
if (typeof BROWSERDETECT == "undefined") {
  alert("(HIDESELECT) BROWSERDETECT include missing");
}
//tobbszoros include:
if (typeof HIDESELECT != "undefined") {
  alert("HIDESELECT multiple insert!");
}
HIDESELECT=true;

function HideSelectNode(node) {
  this.node=node;
  this.selects=new Array();    //azon selectek, amik alattunk vannak IE-ben :)
//  this.needSelectsUpdate=true; //ez jelzi, hogy kell-e a selects tombot frissiteni
}

HideSelectNode.prototype.hideSelects = function() {
  if (ieDOM) {    
    //    if (this.needSelectsUpdate == true) {                 //valtozott a tartalom: mashova kerult a layer, masok a selectek
    this.selects = new Array();
    var layerDim = getDim(this.node);
    var sels = document.getElementsByTagName("select");
    for (var i=0; i<sels.length; i++) {
      var sel = sels[i];
      var selDim = getDim(sel);

      var t=dimIntersectsDim(layerDim,selDim);
      if (t[1] != null) {
        this.selects[this.selects.length]=sel;
        sel.style.visibility='hidden'; 
      }
    }    
    //      this.needSelectsUpdate = false;
    //    }
    //    for (var i in this.selects) {
    //      this.selects[i].style.visibility = 'hidden'; 
    //    } 
  }
}

HideSelectNode.prototype.showSelects = function() {
  if (ieDOM) {
    for (var i in this.selects) {
      if (typeof this.selects[i] == 'object' && this.selects[i].className != 'checkselect') {
        //xmlrpc miatt :)
        this.selects[i].style.visibility='visible'; 
      }
    }
  }
}


function HideSelect() {}

HideSelect.enable = function () {
  this.disabled=false;  
}
HideSelect.disable = function () {
  this.disabled=true;
}

HideSelect.registerNode = function (id,node,vis) {
  //regisztralni lehet
  if (this.nodes == null) {
    this.nodes=new Array();
    this.visibleNodes=new Array();
  }
  this.nodes[id]=new HideSelectNode(node);
  if (vis) {
    this.visibleNodes[id]=this.nodes[id];
  }

}

HideSelect.unregisterNode = function (id) {
  //leregisztralni lehet
  this.nodes[id]=null;
  this.visibleNodes[id]=null;
}
HideSelect.notifyShow = function (id) {
  this.visibleNodes[id]=this.nodes[id];

  if (this.disabled != true) {
    //ha nincs tiltva
    this.nodes[id].hideSelects();
  }
}

HideSelect.notifyHide = function (id,hide) {
  this.visibleNodes[id]=null;

  if (this.disabled != true) {
    this.nodes[id].showSelects();
    if (hide) {
      //a lathato elemekre viszont kell egy hide  
      for (var i in this.visibleNodes) {
        if (this.visibleNodes[i] && typeof this.visibleNodes[i] == 'object') {
          this.visibleNodes[i].hideSelects();
        }
      }
    }
  }
}

