
var internet_explorer = /MSIE/.test(navigator.userAgent);
var mozilla_firefox = !internet_explorer && navigator.product == "Gecko";

function initFunction_outerHTML( )
{
	if ( HTMLElement )
	{
		var element = HTMLElement.prototype;
		
		if ( element.__defineSetter__ && element.__defineGetter__ )
		{
			element.__defineSetter__(
				"outerHTML", function ( htmlcode )
				{
				   var range = this.ownerDocument.createRange( );
				   var parent = this.parentNode;
				   range.setStartBefore( this );
				   var fragment = range.createContextualFragment( htmlcode );
				   parent.replaceChild( fragment, this );
				   return htmlcode;
				}
			);

			element.__defineGetter__(
				"outerHTML", function ( )
				{
					var element_attr, element_attrs = this.attributes;
					var requested_element = "<" + this.tagName;
					for ( var i_attr = 0; i_attr < element_attrs.length; i_attr++ )
					{
						element_attr = element_attrs[i_attr];
						if ( element_attr.specified ) { requested_element += " " + element_attr.name + '="' + element_attr.value + '"'; }
					}
					if ( !this.canHaveChildren ) { return requested_element + ">"; }
					return requested_element + ">"+ this.innerHTML + "</" + this.tagName + ">";
				}
			);
		}
	}
}
