

{

var styles = {
  'body' : function(el) {
    var shade=document.getElementById('SHADE');
    if (shade != null) { 
      shade.style.visibility='hidden'; 
    }
  },
  '.GLUE' : function(el) {
    if (!el.$ifw$placeHolder)
      return;
    var ph = document.getElementById(el.$ifw$placeHolder);
    if (!ph)
      return;
    if (el.$ifw$overrideParent)
      ph = ph.parentNode;
    var bounds = $ifw.getAbsoluteBounds(ph);
    el.style.width = bounds.width + "px";
    el.style.height = bounds.height + "px";
    $ifw.setAbsolutePosition(el, bounds.x, bounds.y);
  }
};

$ifw.registerStyles(styles);

}


{
  
  function _button(el, cbClass) {
    var btnWidth = 15;
    var parent = el.parentNode;
    var btns = $ifw.cssQuery("input[type=submit]", parent);
    var btn = (btns == null || btns.length <= 0) ? null : btns[0];
    var hasDblclick = el.$ifw$hasDblclick;
    var disabled = el.disabled || el.readOnly || !hasDblclick;
    if (btn != null) {
      if (disabled) {
        parent.removeChild(btn);
      }
      else {
        btn.disabled = disabled;
        if (disabled) 
          $ifw.addClass(btn, "disabled");
        else
          $ifw.removeClass(btn, "disabled");
        btn.style.verticalAlign = el.style.verticalAlign;
        if (!el.$ifws$touched || el.$ifws$touched != el.style.width) {
          el.style.width = (el.offsetWidth - btnWidth - 6) + "px";
          el.$ifws$touched = el.style.width;
        }
      }
    }
    else if (!disabled) {
      parent.style.whiteSpace = "nowrap";
      var div = document.createElement("div");
      div.innerHTML = "<input type='submit' class='" + 
          ((cbClass) ? cbClass : "cbLookup") + "' tabIndex='-1' value=''/>";
      btn = div.firstChild;
      btn.disabled = disabled;
      if (disabled) 
        $ifw.addClass(btn, "disabled");
      else
        $ifw.removeClass(btn, "disabled");
      //btn.style.verticalAlign = el.style.verticalAlign;
      btn.style.height = (el.offsetHeight - 0) + "px";
      btn.style.width = btnWidth  + "px";
      if (!el.$ifws$touched || el.$ifws$touched != el.style.width) {
        el.style.width = (el.offsetWidth - btnWidth - 6) + "px";
        el.$ifws$touched = el.style.width;
      }
      btn.onclick = function() {
        //el.focus();
        el.form.ondblclick({currentTarget:el.form, srcElement:el, 
          type:"dblclick", shiftKey:false, ctrlKey:false}); 
      }
      parent.appendChild(btn);
    }
  } 

var styles = {
  '.IFW_POS' : function(el) {
    if ($ifw.hasClass(el, "DIALOG")) {
      var hasSubDialog = ($ifw.cssQuery(".DIALOG", el).length > 0);
      if (hasSubDialog)
        $ifw.addClass(el, "DISABLEDDIALOG");
      else
        $ifw.removeClass(el, "DISABLEDDIALOG");
      var shade=document.getElementById('SHADE');
      if (shade != null) { 
        shade.style.visibility='visible'; 
      }
      if (!el.$ifw$dragged) {
        // fix dimensions
        if (!el.style.width)
          el.style.width = el.offsetWidth + "px";
//        if (!el.style.height)
//          el.style.height = el.offsetHeight + "px";
        $ifw.centerOnScreen(el, "absolute");
      }
    }
    else if ($ifw.hasClass(el, "POPUP")) {
      if (!el.$ifw$dragged) {
        if (el.$ifw$relativeToId) {
          $ifw.setLocationRelativeTo(el, 
              document.getElementById(el.$ifw$relativeToId), 
              el.$ifw$relativeToPrefPos); 
        }
        else if (el.$ifw$relativeToClientX && el.$ifw$relativeToClientY) {
          $ifw.setLocationRelativeToPoint(el,
              el.$ifw$relativeToClientX,
              el.$ifw$relativeToClientY); 
        }
        else {
          $ifw.centerOnScreen(el, "absolute");
        }
      }
    }    
  },
  'input[type=text].lookup' : function(el) {
    _button(el);
  },
  'input[type=text].calendar' : function(el) {
    _button(el, "cbCalendar");
  }
};

$ifw.registerStyles(styles);

}
