//függőségek: 
if (typeof BROWSERDETECT == "undefined") {
  alert("(HIDESELECT) BROWSERDETECT include missing");
}
//többszörös 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 tömböt frissíteni
}

HideSelectNode.prototype.hideSelects = function() {
  if (ieDOM) {    
    //    if (this.needSelectsUpdate == true) {                 //változott a tartalom: máshová került a layer, mások 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) {
      this.selects[i].style.visibility='visible'; 
    }
  }
}


function HideSelect() {}

HideSelect.registerNode = function (id,node,vis) {
  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) {
  this.nodes[id]=null;
  this.visibleNodes[id]=null;
}
HideSelect.notifyShow = function (id) {
  this.visibleNodes[id]=this.nodes[id];

  this.nodes[id].hideSelects();
}

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

  this.nodes[id].showSelects();
  if (hide) {
  //a látható elemekre viszont kell egy hide  
    for (var i in this.visibleNodes) {
      if (this.visibleNodes[i]) {
        this.visibleNodes[i].hideSelects();
      }
    }
  }
}

