window.onunload = function()
{
  if (typeof fen != 'undefined' && typeof fen[1] != 'undefined') {
    fen[1].onunload();
  }
}

function setupFenster() 
{
  myFensters = xGetElementsByClassName('fenster', null, null);
  fen = new Array();
  if(xGetElementById('fen1')) {
    elm = xGetElementById('fenContent');
    if (elm.innerHTML.length > 0){
      fen[1] = new xFenster('fen1', 300, 100, 'fenBar1', 'fenClBtn1');
    }
  }
  if (xGetElementById('fen2')){
    elm = xGetElementById('fenContent');
    if (elm.innerHTML.length > 0){
      fen[2] = new xFenster('fen2', 300, 100, 'fenBar2', 'fenClBtn2');
    }
  }
}


function fensterDetail(url)
{
    var fenDetail = xGetElementById('fenDetail');
    fenDetail.src=url;
    EventManager.Add(fenDetail, 'load',
      function() {xGetElementById('fenIframe').style.display = 'block';}, true);
}


// object-oriented version - see drag1.php for a procedural version

function xFenster(eleId, iniX, iniY, barId, clBtnId) // object prototype
{
  // Private Properties
  var me = this;
  var ele = xGetElementById(eleId);
  var clBtn = xGetElementById(clBtnId);
  var iframes = xGetElementsByTagName("iframe", document);
  var dropdowns = xGetElementsByTagName("select", document);
  //var dropdowns = xGetElementsByTagName("select", ele);
  var tmpDpDwn = new Array();
  var x, y, w, h, maximized = false;
  // Public Methods
  this.onunload = function()
  {
    xDisableDrag(barId);
    me = ele = clBtn = null;
//    clBtn.onclick = ele.onmousedown = null;
  }
  this.paint = function()
  {
    //xMoveTo(clBtn, xWidth(ele),0);
    xMoveTo(clBtn, xWidth(ele) - xWidth(clBtn) - 3, 0);
  }
  this.close = function()
  {
    var tmpDpDwn = xGetElementsByClassName('tmpDpDwn');
    for (i=0; i < tmpDpDwn.length; i++) {
      tmpDpDwn[i].code = null;
      var parent = xParent(tmpDpDwn[i]);
      tmpDpDwn[i].removeNode(true);
      dropdowns[i].style.display = 'inline';
    }
    var iframes = xGetElementsByTagName("iframe", document);
    if (document.all) {
      for (var i = 0; i < iframes.length; i++) {
        xShow(iframes[i]);
      }
    }
    xHide(ele)
  }
  // Private Event Listeners
  function barOnDrag(e, mdx, mdy)
  {
    xMoveTo(ele, xLeft(ele) + mdx, xTop(ele) + mdy);

  }
  function fenOnMousedown()
  {
    xZIndex(ele, xFenster.z++);
  }
  function clOnClick()
  {
    if (document.all) me.close();
    xHide(ele);
  }
  
  // Constructor Code
  xFenster.z++;
  xMoveTo(ele, iniX, iniY);
  this.paint();
  xEnableDrag(barId, null, barOnDrag, null);
  clBtn.onclick = clOnClick;
  ele.onmousedown = fenOnMousedown;
  xZIndex(ele,xFenster.z);
  // hack change type for dropdowns
  /*
  if (document.all) {
    for (var i=0;  i < dropdowns.length; i++) {
      var strg = "<input type='text' class='tmpDpDwn' ";
      strg += "style='width:"+ xWidth(dropdowns[i])+";'";
      strg += " value='"+ dropdowns[i].options[dropdowns[i].selectedIndex].text;
      strg += "' onfocus='javascript:fen[1].close()' />";
      dropdowns[i].insertAdjacentHTML("BeforeBegin",strg);
      dropdowns[i].style.display = "none";
    }
    for (var i = 0; i < iframes.length; i++) {
      xHide(iframes[i]);
    }
  }
  */
  xShow(ele);
} // end xFenster object prototype

xFenster.z = 150000; // xFenster static property

EventManager.Add(window, 'load', setupFenster, false);

