<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -65,10 +65,12 @@ XHTMLPurifierTestCase = function() {
 
     testHTMLWithBoldTags: function() {
       var html = 'Testing &lt;b&gt;some bold&lt;/b&gt; and testing';
-      assert.areEqual(
-          '&lt;p&gt;\n  Testing &lt;strong&gt;some bold&lt;/strong&gt; and testing\n&lt;/p&gt;',
-          XHTMLPurifier.purify(html)
-          );
+      assert.areEqual('&lt;p&gt;\n  Testing &lt;strong&gt;some bold&lt;/strong&gt; and testing\n&lt;/p&gt;', XHTMLPurifier.purify(html));
+    },
+
+    testHTMLWithItalicsTags: function() {
+      var html = 'Testing &lt;i&gt;some italics&lt;/i&gt; and testing';
+      assert.areEqual('&lt;p&gt;\n  Testing &lt;em&gt;some italics&lt;/em&gt; and testing\n&lt;/p&gt;', XHTMLPurifier.purify(html));      
     }
   });
 }();</diff>
      <filename>test/xhtml_purifier_test.js</filename>
    </modified>
    <modified>
      <diff>@@ -60,9 +60,6 @@ XHTMLPurifier = function() {
       var allowed_for_all = allowed_attributes_as_hash['all_elements'] || {};
       for(var i=0, len=el.attributes.length; i&lt;len; i++) {
         attr_name = el.attributes[i].nodeName.toLowerCase();
-        console.log(&quot;Attr &quot; + attr_name);
-        console.log(allowed_for_tag);
-        console.log(allowed_for_all);
         if((allowed_for_tag[attr_name] || allowed_for_all[attr_name]) &amp;&amp; el.attributes[i].nodeValue) {
           result += &quot; &quot; + attr_name + '=&quot;' + el.attributes[i].nodeValue + '&quot;';
         }
@@ -89,7 +86,7 @@ XHTMLPurifier = function() {
         return &quot;&quot;;
       }
       var len = el.childNodes.length;
-      if(len == 0) {
+      if(len === 0) {
         if(empty_tags[el.tagName]) {
           return indentation(depth || 0, true) + emptyTag(el);
         }
@@ -127,17 +124,17 @@ XHTMLPurifier = function() {
     stack = [root, p];
     active_elements = [];
     allowed_attributes_as_hash = {};
-    var attr;
+    var attr, i;
     for(var key in allowed_attributes) {
       allowed_attributes_as_hash[key] = {};
-      for(var i in allowed_attributes['all_elements']) {
+      for(i in allowed_attributes['all_elements']) {
         attr = allowed_attributes['all_elements'][i];
         allowed_attributes_as_hash[key][attr] = true;
       }
       if(key == 'all_elements') {
         continue;
       }
-      for(var i in allowed_attributes[key]) {
+      for(i in allowed_attributes[key]) {
         attr = allowed_attributes[key][i];
         allowed_attributes_as_hash[key][attr] = true;
       }
@@ -147,7 +144,7 @@ XHTMLPurifier = function() {
 
   function last_el(list) {
     var len = list.length;
-    if(len == 0) {
+    if(len === 0) {
       return null;
     }
     return list[len - 1];
@@ -165,7 +162,7 @@ XHTMLPurifier = function() {
   }
 
   function reconstruct_the_active_formatting_elements() {
-    if(active_elements.length == 0 || in_array(stack, last_el(active_elements))) {
+    if(active_elements.length === 0 || in_array(stack, last_el(active_elements))) {
       return;
     }
     var entry;
@@ -224,13 +221,13 @@ XHTMLPurifier = function() {
     var tagName = current_node().tagName.toLowerCase();
     while(tags_with_implied_end[tagName] &amp;&amp; tagName != exception) {
       end(tagName);
-      var tagName = current_node().tagName.toLowerCase();
+      tagName = current_node().tagName.toLowerCase();
     }
   }
 
   // This function does not form part of the HTML5 specification
   function remove_node_if_empty(node) {
-    if(node.getElementsByTagName(&quot;*&quot;).length == 0 &amp;&amp; textContent(node).match(/^\s*$/g)) {
+    if(node.getElementsByTagName(&quot;*&quot;).length === 0 &amp;&amp; textContent(node).match(/^\s*$/g)) {
       node.parentNode.removeChild(node);
     }
   }
@@ -305,12 +302,13 @@ XHTMLPurifier = function() {
         case 'table':
           insertion_mode = InTable;
           return;
+        default:
+          if (last) {
+            insertion_mode = InBody;
+            return;
+          }
       }
-      if (last) {
-        insertion_mode = InBody;
-        return;
-      }
-    };
+    }
   }
   
   function close_the_cell() {
@@ -335,12 +333,13 @@ XHTMLPurifier = function() {
     }
     text = html_entity_decode(text).replace(/\n\s*\n\s*\n*/g,'\n\n').replace(/(^\n\n|\n\n$)/g,'');
     var paragraphs = text.split('\n\n');
+    var trimmedText, textNode;
     if(paragraphs.length &gt; 1) {
       for(var i in paragraphs) {
         start('p');
         reconstruct_the_active_formatting_elements();
-        var trimmedText = trim_to_1_space(paragraphs[i]);
-        var textNode = doc.createTextNode(trimmedText);
+        trimmedText = trim_to_1_space(paragraphs[i]);
+        textNode = doc.createTextNode(trimmedText);
         current_node().appendChild(textNode);
         end('p');
       }
@@ -349,8 +348,8 @@ XHTMLPurifier = function() {
         return;
       }
       reconstruct_the_active_formatting_elements();
-      var trimmedText = trim_to_1_space(paragraphs[0]);
-      var textNode = doc.createTextNode(trimmedText);
+      trimmedText = trim_to_1_space(paragraphs[0]);
+      textNode = doc.createTextNode(trimmedText);
       current_node().appendChild(textNode);
     }
   }
@@ -362,6 +361,9 @@ XHTMLPurifier = function() {
         case 'b':
           start('strong');
           return;
+        case 'i':
+          start('em');
+          return;
         case 'h1':
         case 'h2':
         case 'h3':
@@ -369,7 +371,7 @@ XHTMLPurifier = function() {
         case 'h5':
         case 'h6':
         case 'h7':
-          if(allowHeaders == false) {
+          if(!allowHeaders) {
             start('p');
             start('strong');
             return;
@@ -449,6 +451,9 @@ XHTMLPurifier = function() {
         case 'b':
           end('strong');
           return;
+        case 'i':
+          end('em');
+          return;
         case 'h1':
         case 'h2':
         case 'h3':
@@ -456,7 +461,7 @@ XHTMLPurifier = function() {
         case 'h5':
         case 'h6':
         case 'h7':
-          if(allowHeaders == false) {
+          if(!allowHeaders) {
             end('strong');
             end('p');
             return;
@@ -574,7 +579,7 @@ XHTMLPurifier = function() {
           start('tbody');
           start(tagName, attrs, unary);
           return;
-      };
+      }
     },
     
     insertion_mode_end: function (tagName) {</diff>
      <filename>xhtml_purifier.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f59798c03b7696cafbb0ad7220a9416c05b023d6</id>
    </parent>
  </parents>
  <author>
    <name>Mathias Biilmann Christensen</name>
    <email>mathias.biilmann@domestika.com</email>
  </author>
  <url>http://github.com/biilmann/javascript-xhtml-purifier/commit/e8bb4ed605c59002a0c85014723328ccce7ffe60</url>
  <id>e8bb4ed605c59002a0c85014723328ccce7ffe60</id>
  <committed-date>2009-05-21T06:30:49-07:00</committed-date>
  <authored-date>2009-05-21T06:30:49-07:00</authored-date>
  <message>Now converting &lt;i&gt; to &lt;em&gt;</message>
  <tree>e8c2591f51b8c358f3d6257b4dfa83beb9280a41</tree>
  <committer>
    <name>Mathias Biilmann Christensen</name>
    <email>mathias.biilmann@domestika.com</email>
  </committer>
</commit>
