<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -20,7 +20,7 @@ IWL.Draggable = Class.create(Draggable, (function() {
 
     if (this.initialScrollOffset[0] || this.initialScrollOffset[1])
       Position.includeScrollOffsets = true;
-    (Event.element(event) || this.element).emitSignal('iwl:drag_init', this, eventOptions.call(this, event));
+    Element.emitSignal(Event.element(event) || this.element, 'iwl:drag_init', this, eventOptions.call(this, event));
     if (this.terminated) {
       delete this.terminated;
       return;
@@ -153,7 +153,7 @@ IWL.Draggable = Class.create(Draggable, (function() {
     if (!this.absolutePosition)
       this.initialStyledOffset = [parseFloat(Element.getStyle(this.element, 'left')), parseFloat(Element.getStyle(this.element, 'top'))];
 
-    this.element.emitSignal('iwl:drag_begin', this);
+    Element.emitSignal(this.element, 'iwl:drag_begin', this);
         
     if (this.options.startEffect) this.options.startEffect(this.draggableElement);
   }
@@ -323,7 +323,7 @@ IWL.Draggable = Class.create(Draggable, (function() {
         this.startScrolling(speed);
       }
       
-      this.element.emitSignal('iwl:drag_motion', this);
+      Element.emitSignal(this.element, 'iwl:drag_motion', this);
       
       // fix AppleWebKit rendering
       if (Prototype.Browser.WebKit) window.scrollBy(0,0);
@@ -386,7 +386,7 @@ IWL.Draggable = Class.create(Draggable, (function() {
       if (success)
         dropped = Droppables.fire(event, this.element); 
 
-      this.element.emitSignal('iwl:drag_end', this);
+      Element.emitSignal(this.element, 'iwl:drag_end', this);
 
       var revert = this.options.revert;
       if(revert &amp;&amp; Object.isFunction(revert)) revert = revert(this.element);
@@ -396,8 +396,8 @@ IWL.Draggable = Class.create(Draggable, (function() {
         if (this.options.revertEffect)
           this.options.revertEffect(this.element, d[1] - this.delta[1], d[0] - this.delta[0]);
         else {
-          this.element.style.left = parseFloat(this.element.style.left) + this.delta[0] - d[0] + 'px';
-          this.element.style.top = parseFloat(this.element.style.top) + this.delta[1] - d[1] + 'px';
+          this.element.style.left = parseFloat(this.element.style.left || 0) + this.delta[0] - d[0] + 'px';
+          this.element.style.top = parseFloat(this.element.style.top || 0) + this.delta[1] - d[1] + 'px';
         }
       } else this.delta = d;
 
@@ -449,7 +449,7 @@ IWL.Draggable = Class.create(Draggable, (function() {
           draw.call(this, this.draggableElement, Draggables._lastScrollPointer);
       }
 
-      this.element.emitSignal('iwl:drag_motion', this);
+      Element.emitSignal(this.element, 'iwl:drag_motion', this);
 
       if (!actual[0] &amp;&amp; !actual[1])
         this.stopScrolling();
@@ -480,11 +480,11 @@ IWL.Draggable.Actions = {
 
 IWL.Droppable = Class.create((function() {
   function onHover(sourceElement, destElement, overlap) {
-    this.element.emitSignal('iwl:drag_hover', sourceElement, destElement, overlap, this.options.actions)
+    Element.emitSignal(this.element, 'iwl:drag_hover', sourceElement, destElement, overlap, this.options.actions)
   }
 
   function onDrop(sourceElement, destElement, sourceEvent) {
-    this.element.emitSignal('iwl:drag_drop', sourceElement, destElement, sourceEvent, this.options.actions);
+    Element.emitSignal(this.element, 'iwl:drag_drop', sourceElement, destElement, sourceEvent, this.options.actions);
   }
 
   return {
@@ -522,7 +522,7 @@ IWL.BoxSelection = Class.create(Draggable, (function() {
       || this.element.clientHeight &lt; pointer[1])
       return;
 
-    (Event.element(event) || this.element).emitSignal('iwl:box_selection_init', this);
+    Element.emitSignal(Event.element(event) || this.element, 'iwl:box_selection_init', this);
     if (this.terminated) {
       delete this.terminated;
       return;
@@ -545,7 +545,8 @@ IWL.BoxSelection = Class.create(Draggable, (function() {
 
     this.initialPointer = pointer;
 
-    this.element.emitSignal(
+    Element.emitSignal(
+      this.element,
       'iwl:box_selection_begin',
       this,
       relativeCoordinates.call(this, this.initialPointer, pointer),
@@ -596,7 +597,8 @@ IWL.BoxSelection = Class.create(Draggable, (function() {
     pointer = [pointer.x, pointer.y];
     pointer[0] += this.element.scrollLeft;
     pointer[1] += this.element.scrollTop;
-    this.element.emitSignal(
+    Element.emitSignal(
+      this.element,
       'iwl:box_selection_end',
       this,
       relativeCoordinates.call(this, this.initialPointer, pointer),
@@ -644,7 +646,8 @@ IWL.BoxSelection = Class.create(Draggable, (function() {
 
       draw.call(this, pointer);
 
-      this.element.emitSignal(
+      Element.emitSignal(
+        this.element,
         'iwl:box_selection_motion',
         this,
         relativeCoordinates.call(this, this.initialPointer, pointer),</diff>
      <filename>share/jscript/dnd.js</filename>
    </modified>
    <modified>
      <diff>@@ -287,6 +287,8 @@ Object.extend(Event, (function() {
     },
     emitSignal: function(element, name) {
       if (!(element = $(element)) || !name) return;
+      if (Prototype.Browser.IE &amp;&amp; !Prototype.Browser.IE7 &amp;&amp;
+        (!element.parentNode || element.parentNode.nodeType != 1)) return;
 
       var args = $A(arguments);
       var element = args.shift();</diff>
      <filename>share/jscript/prototype_extensions.js</filename>
    </modified>
    <modified>
      <diff>@@ -70,7 +70,7 @@ IWL.TreeView = Object.extend(Object.extend({}, IWL.Widget), (function () {
             var template = header.template || this.options.cellAttributes[i].templateRenderer.header;
             if (!(template instanceof Template))
                 template = new Template(template);
-            var options = {title: header.title, modelColumnIndex: cMap[i]};
+            var options = {title: header.title || '&amp;nbsp;', modelColumnIndex: cMap[i]};
             headerTemplate['column' + i] = template.evaluate(options);
         }
         return headerTemplate;
@@ -105,7 +105,7 @@ IWL.TreeView = Object.extend(Object.extend({}, IWL.Widget), (function () {
         var nView = map[nId];
         nView.node = node, nView.element = element, nView.container = container, nView.indent = indent, nView.sensitive = true;
         element.node = node;
-        if (nView.childContainer &amp;&amp; !nView.childContainer.parentNode) {
+        if (nView.childContainer &amp;&amp; (!nView.childContainer.parentNode || nView.childContainer.parentNode.nodeType != 1)) {
             var next = element.nextSibling;
             next
                 ? element.parentNode.insertBefore(nView.childContainer, next)
@@ -252,7 +252,7 @@ IWL.TreeView = Object.extend(Object.extend({}, IWL.Widget), (function () {
         }
         var next = node.nextSibling, previous = node.previousSibling,
             map = nodeMap[id], element = nodeMap[id][node.attributes.id].element;
-        if (Object.isElement(element) &amp;&amp; element.parentNode)
+        if (Object.isElement(element) &amp;&amp; element.parentNode &amp;&amp; element.parentNode.nodeType == 1)
             element.replace(html);
         else {
             if (next)
@@ -433,7 +433,6 @@ IWL.TreeView = Object.extend(Object.extend({}, IWL.Widget), (function () {
         var view = nodeMap[this.id][parentNode.attributes.id];
         var highlight = view.element.highlight;
         recreateNode.call(this, parentNode, generateNodeTemplate.call(this), view.container, view.indent);
-        Element.removeClassName(view.element, 'treeview_node_loading');
         this.queue.end();
         this.expandNode(parentNode, options.allDescendants);
         if (highlight)
@@ -483,7 +482,7 @@ IWL.TreeView = Object.extend(Object.extend({}, IWL.Widget), (function () {
 
     function nodeMove(event, node, parentNode, previousParent) {
         var view = nodeMap[this.id][node.attributes.id];
-        if (view.element &amp;&amp; view.element.parentNode)
+        if (view.element &amp;&amp; view.element.parentNode &amp;&amp; view.element.parentNode.nodeType == 1)
             view.element.remove();
 
         nodeInsert.call(this, event, node, parentNode);
@@ -558,7 +557,7 @@ IWL.TreeView = Object.extend(Object.extend({}, IWL.Widget), (function () {
     }
     
     function removeContainers(container) {
-        if (container.parentNode &amp;&amp; container != this.container)
+        if (container.parentNode &amp;&amp; container.parentNode.nodeType == 1 &amp;&amp; container != this.container)
             container.remove();
         else if (container == this.container)
             this.container.innerHTML = '';
@@ -753,7 +752,7 @@ IWL.TreeView = Object.extend(Object.extend({}, IWL.Widget), (function () {
         if (node.childCount) {
             if (!view.childContainer)
                 createNodes.call(this, node.childNodes, generateNodeTemplate.call(this), view.indent);
-            if (!view.childContainer.parentNode) {
+            if (!view.childContainer.parentNode || view.childContainer.parentNode.nodeType != 1) {
                 var next = view.element.nextSibling;
                 next
                     ? view.element.parentNode.insertBefore(view.childContainer, next)</diff>
      <filename>share/jscript/treeview.js</filename>
    </modified>
    <modified>
      <diff>@@ -120,7 +120,7 @@ div.expander_collapsed .expander_icon {
     margin: -16px 0 0 0;
 }
 
-.iwl-cell-boolean .iwl-active {
+body .iwl-cell-boolean .iwl-active {
     background-image: url(/iwl/skin/default/images/cellrenderer/boolean_active.gif);
 }
 
@@ -151,6 +151,6 @@ div.expander_collapsed .expander_icon {
 .treeview_node_last .treeview_column {
     border-bottom: none;
 }
-.treeview_column.treeview_column_hover, .treeview_header .treeview_node_indent.treeview_column_hover {
+body .treeview_column.treeview_column_hover, body .treeview_header .treeview_node_indent.treeview_column_hover {
     background: url('/iwl/skin/default/images/treeview/target.gif') 100% center no-repeat;
 }</diff>
      <filename>share/skin/ie6.css</filename>
    </modified>
    <modified>
      <diff>@@ -1597,6 +1597,12 @@ div.tooltip_content {
     text-align: center;
 }
 
+.iwl-cell-boolean {
+    background: transparent;
+    width: 16px;
+    height: 16px;
+}
+
 .iwl-cell-boolean .iwl-active {
     background: url(/iwl/skin/default/images/cellrenderer/boolean_active.png) no-repeat center;
     width: 16px;</diff>
      <filename>share/skin/main.css</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>83183b43da6096b312915134365144c8a83634ea</id>
    </parent>
  </parents>
  <author>
    <name>urandom</name>
    <email>vkojouharov@gmail.com</email>
  </author>
  <url>http://github.com/urandom/iwl/commit/8e9050a44b4ee7950c92c980107c070799664d28</url>
  <id>8e9050a44b4ee7950c92c980107c070799664d28</id>
  <committed-date>2008-09-21T05:41:47-07:00</committed-date>
  <authored-date>2008-09-21T05:41:47-07:00</authored-date>
  <message>a few fixes for IE family browsers</message>
  <tree>b9bcbd620b623f6d6c026c2a446b4a74c7f2dd11</tree>
  <committer>
    <name>urandom</name>
    <email>vkojouharov@gmail.com</email>
  </committer>
</commit>
