var		WINDOW_ONLOAD_QUEUE = new Array();	// onLoad event queue

// specific event handler vars
var		KB_EVENT_DISABLE = false;


function addWindowOnLoadEvent(str)
{
	WINDOW_ONLOAD_QUEUE.push(str);
}

function execWindowOnloadQueue()
{
	while (WINDOW_ONLOAD_QUEUE.length) {
		eval(WINDOW_ONLOAD_QUEUE.shift());
	}
}

// prevents events from bubbling (triggering events in parent DOM objects)
function noEventBubble(e)
{
	if (!e)
		window.event.cancelBubble = true;
	else if (e.stopPropagation) {
		e.stopPropagation();
	}
}

// cross-browser event attachment
function addEvent(obj, event, func)
{
	if (obj.addEventListener)
		obj.addEventListener(event, func, false);
	else if (obj.attachEvent)
		obj.attachEvent('on' + event, func);
}


// ================ kbEvent handlers ================

function kbEventDisable(e)
{
	KB_EVENT_DISABLE = true;
}

function kbEventEnable(e)
{
	KB_EVENT_DISABLE = false;
}

// disable keyboard events when focused on form elements
function formKbEventDisable(fObj)
{
	for (i = 0; i < fObj.elements.length; i++) {
		var obj = fObj.elements[i];
		if (obj.type != 'hidden') {
			addEvent(obj, 'focus', kbEventDisable);
			addEvent(obj, 'blur', kbEventEnable);
		}
	}	
}



