// определение IE
var sUserAgent = navigator.userAgent;
var isIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1 && sUserAgent.indexOf("Opera") == -1;
var isWin = (navigator.platform == "Win32") || (navigator.paltform == "Windows");

var Event = {
	// добавление слушателя
	add:function(obj,type,fn){
		sType = type;
		if(type != "DOMMouseScroll"){
			sType = "on"+type;
		}
		if (obj.addEventListener){
			obj.addEventListener( type, fn, false );
		} else if (obj.attachEvent){
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
			obj.attachEvent( sType, obj[type+fn] );
		} else {
			obj[sType] = fn;
		}
	},

	// удаление слушателя
	remove:function(obj, type, fn){
		sType = type;
		if(type != "DOMMouseScroll"){
			sType = "on"+type;
		}
		if (obj.removeEventListener){
			obj.removeEventListener( type, fn, false );
		} else if (obj.detachEvent){
			obj.detachEvent( sType, obj[type+fn] );
			obj[type+fn] = null;
			obj["e"+type+fn] = null;
		} else {
			obj[sType] = null;
		}
	},

	// форматирование события для соответствия параметров в IE и других броузерах
	format:function(oEvent){
		if(isIE && isWin){
			oEvent.charCode=(oEvent.type=="keypress")?oEvent.keyCode:0;
			oEvent.eventPhase=2;
			oEvent.isChar=(oEvent.charCode>0);
			oEvent.pageX=oEvent.clientX+document.body.scrollLeft;
			oEvent.pageY=oEvent.clientY+document.body.scrollTop;
			oEvent.preventDefault=function(){
				this.returnValue=false;
			}
			if(oEvent.type=="mouseout")
				oEvent.relatedTarget=oEvent.toElement;
			else if(oEvent.type=="mouseover")
				oEvent.relatedTarget=oEvent.fromElement;
			oEvent.stopPropagation=function(){
				this.cancelBubble=true;
			}
			oEvent.target=oEvent.srcElement;
			oEvent.time=(new Date).getTime();
		}
		return oEvent;
	}
}

function blockEvent(event){
	if (!event){
		event = window.event;
	}
	if(event.stopPropagation) event.stopPropagation();
	else event.cancelBubble = true;
	if(event.preventDefault) event.preventDefault();
	else event.returnValue = false;
}

