  
     Request.HTML.implement({
  
         processHTML: function(text){
               var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
                text = (match) ? match[1] : text;
              
               var container = new Element('div');
              
               return $try(function(){
                   var root = '<root>' + text + '</root>', doc;
                  if (Browser.Engine.trident){
                     doc = new ActiveXObject('Microsoft.XMLDOM');
                     doc.async = false;
                     doc.loadXML(root);
                  } else {
                       doc = new DOMParser().parseFromString(root, 'text/html');
                }
                root = doc.getElementsByTagName('root')[0];
                   for (var i = 0, k = root.childNodes.length; i < k; i++){
                       var child = Element.clone(root.childNodes[i], true, true);
                       if (child) container.grab(child);
                  }
                  return container;
              }) || container.set('html', text);
          }
      
       });
    
