var clickedElement;
var timeoutID = "";

document.onclick = function(ev)
{	
	//alert("element clicked");
	// Internet Explorer
	if (document.all)
	{
		//alert(ev.srcElement.nodeName);
		clickedElement = event.srcElement;
		event.cancelBubble = true;
	}
	else
	{	
		//alert(ev);
		clickedElement = ev.originalTarget;
		
		if (!clickedElement)
			clickedElement = ev.target;
		//alert(clickedElement);
		ev.stopPropagation();
	}

	try
	{
		if(clickedElement.tagName.toLowerCase() != "input" && clickedElement.tagName.toLowerCase() != "select" && clickedElement.tagName.toLowerCase() != "a" && clickedElement.tagName.toLowerCase() != "img" 
			&& clickedElement.tagName.toLowerCase() != "strong")
			clickedElement = null;
	}
	catch(e)
	{
		clickedElement = null;
	}		
}

document.onkeydown = function(ev)
{
	if (document.all)
	{
		//alert(ev.srcElement.nodeName);
		clickedElement = event.srcElement;
		event.cancelBubble = true;
	}
	else
	{	
		//alert(ev);
		clickedElement = ev.originalTarget;
		
		if (!clickedElement)
			clickedElement = ev.target;
		//alert(clickedElement);
		ev.stopPropagation();
	}
}

function raiseEvent(ievent, iargument)
{	
	if(clickedElement == null)
	{
		if(timeoutID != "")
			clearTimeout(timeoutID);

		timeoutID = setTimeout("raiseEvent('" + ievent + "', '" + iargument + "')", 50);
		return false;
	}

	var name = "";
	if (clickedElement.name != null)
		name = clickedElement.name.split("_");
	var groupName = "";
	if (name.length > 1)
		groupName = name[1];

	clickedElement = null;
	if (window.ValidatePage && iargument == "")
	{
		if (!ValidatePage(groupName))
			return false;
	}
	
	document.forms['mainForm'].__EVENT.value = ievent;
	document.forms['mainForm'].__ARGUMENT.value = iargument;
	document.forms['mainForm'].submit();
	return true;
}


function SetValue(oid, base64val)
{
	try
	{
		var val = (base64val == "")?"":base64_decode(base64val);
		var elements = document.getElementsByName(oid);

		for(var i = 0; i < elements.length; i++)
		{
			if (elements[i].tagName == "textarea")
				elements[i].innerHTML = val;
			else
			{					
				var type = elements[i].getAttribute("type");
				
				if (type == "radio")
				{
					if (elements[i].value == val)
						elements[i].checked = true;
				}
				else
				if (type == "checkbox")
				{
					if (val != "")
						elements[i].checked = true;
					else
						elements[i].checked = false;
				}
				else
				{
					elements[i].value = val;
				}
			}
		}
		
		return;
	}
	catch(e) {}
}