function addEvent(elm, evType, fn, useCapture) {if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true; }else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); EventCache.add(elm, evType, fn);return r; }else {elm['on' + evType] = fn;}}function getEventSrc(e) {if (!e) e = window.event;if (e.originalTarget)return e.originalTarget;else if (e.srcElement)return e.srcElement;}function addLoadEvent(func) {var oldonload = window.onload;if (typeof window.onload != 'function') {window.onload = func;} else {window.onload = 	function() {	oldonload();	func();	}}}var EventCache = function(){var listEvents = [];return {	listEvents : listEvents,	add : function(node, sEventName, fHandler, bCapture){		listEvents.push(arguments);	},	flush : function(){		var i, item;		for(i = listEvents.length - 1; i >= 0; i = i - 1){			item = listEvents[i];						if(item[0].removeEventListener){				item[0].removeEventListener(item[1], item[2], item[3]);			};						if(item[1].substring(0, 2) != "on"){				item[1] = "on" + item[1];			};						if(item[0].detachEvent){				item[0].detachEvent(item[1], item[2]);			};						item[0][item[1]] = null;		};	}};}();addEvent(window,'unload',EventCache.flush, false);

