/*
 * Common - 2009.06.19
 */


function MCPPEventRegister(object, eventName, handler)
{
	if (object.addEventListener)
		object.addEventListener(eventName, handler, false);
	else if (object.attachEvent)
		object.attachEvent('on' + eventName, handler);
}

function MCPPEventUnregister(object, eventName, handler)
{
	if (object.removeEventListener)
		object.removeEventListener(eventName, handler, false);
	else if (object.detachEvent)
		object.detachEvent('on' + eventName, handler);
}

function MCPPEventStopPropagation(event)
{
	if (event.stopPropagation)
		event.stopPropagation();
	else
		event.cancelBubbel = true;
	
	if (event.preventDefault)
		event.preventDefault();
	else
		event.returnValue = false;
}

function MCPPSetOpacity(object, opacity)
{
	if (opacity < 1.0 && opacity > 0.0)
	{
		object.style.display = "block";
		object.style.opacity = opacity;
		object.style.MozOpacity = opacity;
		object.style.filter = "alpha(opacity=" + (opacity * 100) + ")";
	}
	else if (opacity >= 1.0)
	{
		object.style.display = "block";
		
		MCPPRemoveStyle(object, 'opacity');
		MCPPRemoveStyle(object, 'MozOpacity');
		MCPPRemoveStyle(object, 'filter');
	}
	else if (opacity <= 0.0)
	{
		object.style.display = "none";
		
		MCPPRemoveStyle(object, 'opacity');
		MCPPRemoveStyle(object, 'MozOpacity');
		MCPPRemoveStyle(object, 'filter');
	}
}

function MCPPRemoveStyle(object, style)
{
	if (object.style.removeAttribute)
		object.style.removeAttribute(style);
	else
		object.style.removeProperty(style);
}

function MCPPGetElementByClassName(parent, className)
{
	if (parent)
	{
		var enumerator = parent.childNodes;
		
		for (i = 0; i < enumerator.length; ++i)
		{
			if (enumerator[i].className == className)
				return enumerator[i];
		}
	}
	
	return null;
}

function MCPPRemoveOverflow(id, tagName, className)
{
	var container = document.getElementById(id);
	
	if (container)
	{
		return MCPPRemoveOverflowFromContainer(container, tagName, className);
	}
}

function MCPPRemoveOverflowFromContainer(container, tagName, className)
{
	var enumerator = container.getElementsByTagName(tagName);
	var i = enumerator.length;
	
	while (container.scrollHeight > container.clientHeight && i > 0)
	{
		var item = enumerator[--i];
		
		if (item.className == className)
			item.parentNode.removeChild(item);
	}
}

function MCPPAddPlaceholder(input, text, color, trim)
{
	input.onfocus = function()
	{
		if (input._placeholder)
		{
			input._placeholder = false;
			input.value = '';
			MCPPRemoveStyle(input, 'color');
		}
	};
	
	input.onblur = function()
	{
		input._placeholder = false;
		if (MCPPTrim(input.value) == '')
		{
			input._placeholder = true;
			input.value = text;
			input.style.color = color;
		}
		else if (trim)
		{
			input.value = MCPPTrim(input.value);
		}
	};
	
	input.onblur();
}

function MCPPTrim(string)
{
	return string.replace(/^\s+|\s+$/g, '');
}
