	function returnFalse(e){
	  return false;
	}
	function cancelEvent(e){
	  if(e.preventDefault)e.preventDefault();
	  else e.returnValue=false;
	}
	function addHandler(e,event,action,param){
	  if(document.addEventListener)e.addEventListener(event,action,param);
	  else if(document.attachEvent)e.attachEvent('on'+event,action);
	  else e['on'+event]=action;
	}
	function removeHandler(e,event,action,param){
	  if(document.addEventListener)e.removeEventListener(event,action,param);
	  else if(document.attachEvent)e.detachEvent('on'+event,action);
	  else e['on'+event]=returnFalse;
	}
	addHandler(document,'mouseup',mouseUp,false);
	function mouseDown(e)
	{
		e=e||event;
		cancelEvent(e);
		addHandler(document,'selectstart',returnFalse,false);
	}
	mouseUpEvents = new Array();	
	function mouseUp(e)
	{
		removeHandler(document,'selectstart',returnFalse,false);
		mouseUpEvent();
	}
	//**********
	function mouseUpEvent()
	{
		if(mouseUpEvents)
		{
			for (var name in mouseUpEvents)
			{
				if(mouseUpEvents[name])
					eval(mouseUpEvents[name] + '()');
			}
		}
	}
	//***************
	var ua = navigator.userAgent.toLowerCase();
	var isFirefox = (ua.indexOf("firefox") != -1);

	var fixPadding = (isFirefox) ? -2 : -5;
	var fixHeight = (isFirefox) ? -2 : 0;
	//var docHeight = getClientHeight();
	//var docWidth = getClientWidth();
	//*************************************
	isDOM=document.getElementById //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+) 
	isOpera=isOpera5=window.opera && isDOM //Opera 5+ 
	isOpera6=isOpera && window.print //Opera 6+ 
	isOpera7=isOpera && document.readyState //Opera 7+ 
	isMSIE=document.all && document.all.item && !isOpera //Microsoft Internet Explorer 4+ 
	isMSIE5=isDOM && isMSIE //MSIE 5+ 
	isNetscape4=document.layers //Netscape 4.* 
	isMozilla=isDOM && navigator.appName=="Netscape" //Mozilla или Netscape 6.* 

	var mousex = 0;
	var mousey = 0;
	var prvmousex = 0;
	var prvmousey = 0;
	var mouseDeltaX = 0;
	var mouseDeltaY = 0;

	
	if (document.all && document.all.item) //ie
	{
	  document.onmousemove=function()
	  {    
		prvmousex = mousex;
		prvmousey = mousey;
		mousex=event.clientX + document.body.scrollLeft;
		mousey=event.clientY + document.body.scrollTop;
		
		mouseMoveEvent();
		return true
	  }
	}
	else // !ie
	{
	  document.onmousemove=function(e) 
	  {
		prvmousex = mousex;
		prvmousey = mousey;
		mousex = e.pageX
		mousey = e.pageY
		
		mouseMoveEvent();
		return true
	  }  
	}
	/*if(isNetscape4) 
		document.captureEvents(Event.MOUSEMOVE) 
	if(isMSIE || isOpera7)
	{ 
		document.onmousemove=function()
		{ 
			prvmousex = mousex;
			prvmousey = mousey;
			mouseDeltaX = event.clientX + document.documentElement.scrollLeft - mousex;
			mouseDeltaY = event.clientY + document.documentElement.scrollTop - mousey;
			mousex = event.clientX + document.documentElement.scrollLeft;     
			mousey = event.clientY + document.documentElement.scrollTop;
			
			mouseMoveEvent();
			return true 
		} 
	}
	else if(isOpera)
	{ 
		document.onmousemove=function()
		{ 
			mouseDeltaX = event.clientX - mousex;
			mouseDeltaY = event.clientY - mousey;
			mousex = event.clientX;
			mousey = event.clientY;
			
			mouseMoveEvent();
			return true 
		} 
	}
	else if(isNetscape4 || isMozilla)
	{ 
		document.onmousemove=function(e)
		{ 
			mouseDeltaX = e.pageX - mousex;
			mouseDeltaY = e.pageY - mousey;
			mousex = e.pageX;
			mousey = e.pageY;
			
			mouseMoveEvent();
			return true 
		}   
	}*/
	mouseMoveEvents = new Array();
	function mouseMoveEvent()
	{
		if(mouseMoveEvents)
		{
			for (var name in mouseMoveEvents)
			{
				if(mouseMoveEvents[name])
					eval(mouseMoveEvents[name] + '()');
			}
		}
	}
	//*******************************************************
	var isIE = checkBrowser();	
	function checkBrowser() 
	{
		if (navigator.appName.indexOf ("Microsoft") !=-1) 
		{
			return true //IE
		}	
		return false;
	} 
	//******************
	function getElem(id)
	{
		return document.getElementById(id);
	}

	function getClientHeight()
	{
		return (document.compatMode=='CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight;
	}

	function getClientWidth()
	{
	  return (document.compatMode=='CSS1Compat') ? document.documentElement.clientWidth : document.body.clientWidth;
}
