function $(element){
	if(arguments.length >1){
		for(var i=0,elements=[],length=arguments.length;i<length;i++){elements.push($(arguments[i]));}
		return elements;
	}
	if (typeof element=='string'){
		if (document.getElementById){
			element = document.getElementById(element);
		}else if (document.all){
			element = document.all[element];
		}else if (document.layers){
			element = document.layers[element];
		}
	}
	return element;
};
function _SetCookie(name,value){
	expires=new Date();
	expires.setTime(expires.getTime()+(86400*365*1000));
	document.cookie=name+"="+escape(value)+"; expires="+expires.toGMTString()+"; path=/";
};

function _GetCookie(name){
	var start=document.cookie.indexOf(name);
	var end=document.cookie.indexOf(";",start);
	return start==-1 ? null : unescape(document.cookie.substring(start+name.length+1,(end>start ? end : document.cookie.length)));
};

function getAbsLeft(ob){var s_el=0;el=ob;while(el){s_el=s_el+el.offsetLeft;el=el.offsetParent;};return s_el;};
function getAbsTop(ob){var s_el=0;el=ob;while(el){s_el=s_el+el.offsetTop;el=el.offsetParent;};return s_el;};
function getObjHeight(obj){var ns=obj.childNodes;var nn = ns.length;var bh=0,n=null;for(var i=nn-1;i>=0;i--){n=ns[i];bh+=n.offsetHeight; }return bh;}

function removeClass(Obj,className){
	if(Obj!=null&&className!=""){
		var class_array = new Array();
		var classArray = Obj.className.split(" ");
		for(var i=0;i<classArray.length;i++){
			if(classArray[i]!=className){
				class_array[class_array.length]=classArray[i];
			}
		}
		Obj.className = class_array.join(" ");
	}
}
function addClass(Obj,className){
	if(Obj!=null&&className!=""){
		var ishave=false;
		var classArray = Obj.className.split(" ");
		for(var i=0;i<classArray.length;i++){
			if(classArray[i]==className){
				ishave=true;
				break;
			}
		}
		if(!ishave)classArray[classArray.length]=className
		Obj.className = classArray.join(" ");
	}
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); };
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}else {
		obj["on"+type] = obj["e"+type+fn];
	}
};
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			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);
