//outerHTML--------------------------------------------------------------------------------------------
if(!document.all)
{
HTMLElement.prototype.outerHTML setter = function(html)
{
var newRange = this.ownerDocument.createRange();
newRange.setStartBefore(this);
var smallBit = newRange.createContextualFragment(html);
this.parentNode.replaceChild(smallBit, this);
return html;
};
HTMLElement.prototype.outerHTML getter = function()
{
return HTMLElement_GetOuterHTML(this);
};
function HTMLElement_GetOuterHTML(node)
{
var elementTags = "";
var selfClosing = ["IMG", "HR", "BR", "INPUT"];
switch(node.nodeType)
{
case Node.ELEMENT_NODE:
elementTags += "<" + node.nodeName;
// get the element's attributes...
for(var i = 0; i < node.attributes.length; i++)
{
if(node.attributes.item(i).nodeValue != null)
{
elementTags += " ";
elementTags += node.attributes.item(i).nodeName + "=\"";
elementTags += node.attributes.item(i).nodeValue + "\"";
}
}
if(node.childNodes.length == 0 && selfClosing.getIndexOf(node.nodeName) > 0)
{
elementTags += ">";
}
else
{
elementTags += ">";
elementTags += node.innerHTML;
elementTags += "" + node.nodeName + ">"
}
break;
case Node.TEXT_NODE:
elementTags += node.nodeValue;
break;
case Node.CDATA_SECTION_NODE:
elementTags += "";
break;
case Node.ENTITY_REFERENCE_NODE:
elementTags += "&" + node.nodeName + ";"
break;
case Node.COMMENT_NODE:
elementTags += ""
break;
}
return elementTags;
}
Array.prototype.getIndexOf = function()
{
var num = -1;
if(arguments.length > 0)
{
for(var i = 0; i < this.length; i++)
{
if(this[i] == arguments[0])
{
num = i;
break;
}
}
}
return num;
};
}