var dhBrowserName = null;
var userAgent = navigator.userAgent.toLowerCase();
if(userAgent.indexOf("msie") != -1){
	dhBrowserName = "msie";
}
if(userAgent.indexOf("firefox") != -1){
	dhBrowserName = "firefox";
}
if(userAgent.indexOf("safari") != -1){
	dhBrowserName = "safari";
}
if(userAgent.indexOf("opera") != -1){
	dhBrowserName = "opera";
}

function dhGetMousePosition(e)
{
	var position = {x:0, y:0};
	
	if(!e){
		position.x = event.clientX;
		position.y = event.clientY;	
	}else{
		position.x = e.pageX;
		position.y = e.pageY;
	}
	
	return position;
}

function dhGetObjectPosition(object)
{
	var position = {x:0, y:0};
	
	if(object == null){
		return position;
	}
	
	do{
		position.x += object.offsetLeft;
		position.y += object.offsetTop;
	}while(object = object.offsetParent);
	
	return position;
}

function dhGetObjectDimensions(object)
{
	var dimensions = {width:0, height:0};
	
	if(object == null){
		return dimensions;
	}
	
	dimensions.width = object.offsetWidth;
	dimensions.height = object.offsetHeight;
	
	return dimensions;
}

function dhIsMousePositionOnObject(mousePosition, object)
{
	var objectPosition = dh_getObjectPosition(object);
	var objectDimensions = dh_getObjectDimensions(object);
		
	var minMouseX = objectPosition.x;
	var maxMouseX = objectPosition.x + objectDimensions.width;
	var minMouseY = objectPosition.y;
	var maxMouseY = objectPosition.y + objectDimensions.height;
	
	if(mousePosition.x >= minMouseX){
		if(mousePosition.x <= maxMouseX){
			if(mousePosition.y >= minMouseY){
				if(mousePosition.y <= maxMouseY){
					return true;
				}
			}
		}
	}
	
	return false;
}

function dhGetDocumentDimensions()
{
	var dimensions = {width:0, height:0};
	
	dimensions.width = document.documentElement.offsetWidth;
	if(dimensions.width == 0){
		dimensions.width = document.body.offsetWidth;
	}
	dimensions.height = document.documentElement.clientHeight;
	if(dimensions.height == 0){
		dimensions.height = document.body.offsetHeight;
	}
	
	return dimensions;
}

function dhGetDocumentScrollPosition()
{
	var position = {x:0, y:0};
	
	position.x = document.documentElement.scrollLeft;
	if(position.x == 0){
		position.x = document.body.scrollLeft;
	}
	position.y = document.documentElement.scrollTop;
	if(position.y == 0){
		position.y = document.body.scrollTop;
	}		
	
	return position;
}

function dhDeselectObject()
{
	if(dhBrowserName == "opera"){
		return;
	}
	
	if(document.selection){
		document.selection.empty();
	}else{
		window.getSelection().removeAllRanges();
	}
}

function dhSetOpacity(element, value)
{
	value = parseInt(value);
	if(element == null){
		return;
	}
	element.style.opacity = value/100;
	element.style.filter = 'alpha(opacity=' + value + ')';
};

function dh_setOpacityById(id, value)
{
	if(document.getElementById(id) == null){
		return;
	}
	var element = document.getElementById(id);
	dhSetOpacity(element, value);
};

function dhSetMouseEffect(element)
{	
	element.style.cursor = 'pointer';
	element.onmouseout = function()
	{
		element.style.cursor = 'default';
	};
	alert(element.style.cursor);
}