function cb_g(sID) {
	return document.getElementById(sID);
}

function cb_getStyle(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle){
		strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
	}
	else if(oElm.currentStyle){
		strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
			return p1.toUpperCase();
		});
		strValue = oElm.currentStyle[strCssRule];
	}
	return strValue;
}



function cb_attachEvent(oElement, sName, f) {
	
	if( typeof(sName) != "string" ) {
		for( var i = 0; i < sName.length; i++ )
			cb_attachEvent(oElement, sName[i], f);
		return;
	}
	
	cAssociatedEvents.push({element: oElement, type: sName, listener: f});
	
	if( oElement.addEventListener ) {
		oElement.addEventListener(sName, f, false);	
	} else {
		oElement.attachEvent('on' + sName, f);	
	}
}

var cAssociatedEvents = [];
function cb_clearEvents() {
	var oListener = null;
	while( (oListener = cAssociatedEvents.pop()) ) {
		var oElement = oListener.element;
		if( oListener.propertyName ) {
			oElement[oListener.propertyName] = null;			    
		} else if( oElement.removeEventListener ) {
			oElement.removeEventListener(oListener.type, oListener.listener, false);					
		} else {
			oElement.detachEvent("on" + oListener.type, oListener.listener);
		}
	}
}

function cb_getSrcElement(oEvent) {
	return oEvent.srcElement || oEvent.target;
}
	
	
function cb_cancelEvent(oEvent) {
	oEvent.cancel = true;
	oEvent.returnValue = false;
	oEvent.cancelBubble = true;
}

cb_attachEvent(window, "beforeunload", cb_clearEvents);
