/**
 * 处理Firefox下事件处理函数内event对象的捕获
 * 页面引入此文件,则可以在页面中直接使用event变量,等用于IE中window.event
 * @author 	billy
 * version 	1.0.061212
 */
if(window.Event){
	window.constructor.prototype.__defineGetter__("event", SearchEvent);
} 
function SearchEvent(){
 	var o = arguments.callee.caller;
 	var e;
 	while(o != null){
  		e = o.arguments[0];
  		if(e && (e.constructor == Event || e.constructor == KeyboardEvent)) return e;
  		o = o.caller;
 	}
	return null;
}

/**
 * 处理Firefox下事件处理函数内outerHTML属性的捕获
 * 页面引入此文件,则可以在页面中直接使用outerHTML属性
 * @author 	billy
 * version 	1.0.061212
 */
if(typeof(HTMLElement)!="undefined" && !window.opera){  
	HTMLElement.prototype.__defineGetter__("outerHTML",function()  
    	{  
        	var a=this.attributes, str="<"+this.tagName, i=0;
        	for(;i<a.length;i++)  
          		if(a[i].specified)
          			str+="   "+a[i].name+'="'+a[i].value+'"';  
          	if(!this.canHaveChildren)
          		return   str+"   />";  
          	return   str+">"+this.innerHTML+"</"+this.tagName+">";  
      	}
	);  
	HTMLElement.prototype.__defineSetter__("outerHTML",function(s)  
    	{  
        	var d=document.createElement("DIV");   
        	d.innerHTML = s;  
          	for(var i=0; i<d.childNodes.length; i++)  
            	this.parentNode.insertBefore(d.childNodes[i], this);  
          	this.parentNode.removeChild(this);  
      	}
    );  
	HTMLElement.prototype.__defineGetter__("canHaveChildren",function()  
    	{  
        	return   !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());  
      	}
    );  
}