﻿function UT_addEventHandler(elm, event, handler)
{
	if (elm.addEventListener) // W3C, FF  
	{
		// event , handler and True/False=Capture/Bubble  
		elm.addEventListener(event, handler, false);
	}
	else if (elm.attachEvent) // IE  
	{
//		elm.attachEvent("on" + event, handler);
		elm["on" + event] = handler;
	}
}

function UT_confirmForPleaseWait(elm, message) 
{
	elm.NoPleaseWait = "false";

	if (confirm(message))
		return true;

	elm.NoPleaseWait = "true";
	return false;
}

function UT_fireEvent(ctrl, event)
{
	if (ctrl.fireEvent)
		ctrl.fireEvent(event); // for IE
	else if (document.createEvent && ctrl.dispatchEvent)
	{
		var evt = document.createEvent("HTMLEvents");
		evt.initEvent(event, true, true);
		ctrl.dispatchEvent(evt); // for DOM-compliant browsers
	}
}

function UT_EventTarget(event)
{
	var target;

	if (event == null)
		event = window.event;

	if (event.target)
		target = event.target;
	else if (event.srcElement)
		target = event.srcElement;

	if (target.nodeType == 3) // defeat Safari bug
		target = target.parentNode;

	return target;
}

function UT_ChangeToWaiting(element)
{
	var width;
	var height;
	var alreadyset = element.children[0] == null || element.children[0].disabled;

	this.ChangeToWaiting = function ()
	{
		var str = "Please Wait...";
		element.children[0].value = str;
		element.children[0].style.fontSize = "xx-small";
		element.children[0].style.width = width + "px";
		element.children[0].style.height = height + "px";
		element.children[0].style.pixelWidth = width;
		element.children[0].style.pixelHeight = height;
		element.children[0].disabled = true;
	}

	if (alreadyset)
		return;

	if (element.children[0].NoPleaseWait == "true")
		return;

	alreadyset = true;

	width = element.children[0].getBoundingClientRect().right - element.children[0].getBoundingClientRect().left;
	height = element.children[0].getBoundingClientRect().bottom - element.children[0].getBoundingClientRect().top;
	window.setTimeout("this.ChangeToWaiting()", 1);
}

