function pr(data)
{
	console.log(data);
}

function $(id)
{
	if(document.getElementById(id))
	{
		return document.getElementById(id);
	}
	else
	{
		return id;
	}
}

function setCss(el, options)
{
	el = $(el);
	for(property in options)
	{
		el.style[property] = options[property];
	}
}

function getWidth(el)
{
	return $(el).offsetWidth;
}

function getHeight(el)
{
	return $(el).offsetHeight;
}

function getLeft(el)
{
	el = $(el);
	if(el.offsetParent)
	{
		return el.offsetLeft + getLeft(el.offsetParent);
	}
	else
	{
		return el.offsetLeft;
	}
}

function getTop(el)
{
	el = $(el);
	if(el.offsetParent)
	{
		return el.offsetTop + getTop(el.offsetParent);
	}
	else
	{
		return el.offsetTop;
	}
}

function getDimensions(el)
{
	var dimensions = new Object();
	dimensions['width'] = getWidth(el);
	dimensions['height'] = getHeight(el);
	dimensions['left'] = getLeft(el);
	dimensions['top'] = getTop(el);

	return dimensions;
}

/*
Object.extend = function(destination, source)
{
	for (var property in source)
	{
		destination[property] = source[property];
	}

	return destination;
}
*/

function trim(value)
{
	return value.replace(/^\s+/, '').replace(/\s+$/, '');
}

function hasClassName(element, className)
{
    if(!(element = $(element)))
    {
    	return;
    }

	var elementClassName = element.className;

	return (elementClassName.length > 0 && (elementClassName == className || new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
 }


function addClassName(element, className)
{
	if(!(element = $(element)))
	{
		return;
	}

	if(!hasClassName(element, className))
	{
		element.className += (element.className ? ' ' : '') + className;
		return element;
	}
}

function removeClassName(element, className)
{
	if(!(element = $(element)))
	{
		return;
	}

    element.className = trim(element.className.replace(new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' '));
    return element;
}
