		function initiateClass(className, inlineData) {
			if (className) var objs = document.getElementsByClassName(className);
			else {
				var objs = document.getElementsByClassName('js');
				if (typeof(objs) == typeof({})) {
					var lastObjs = document.getElementsByClassName('js-last');
				}
				else {
					var objs = $$(".js");
					var lastObjs = $$(".js-last");
				}
				objs=$A(objs);
				lastObjs=$A(lastObjs);
				
				objs = objs.concat(lastObjs);
			}
			objs.each(function(item) {
				if (!className) {
					item.removeClassName('js');
					item.removeClassName('js-last');
					tempClassName = item.className.split(' ')[0];
					Object.extend(item,Classes[tempClassName]);
					delete tempClassName;
				}
				else Object.extend(item,Classes[className]);
				if (inlineData && item[inlineData]) {
					inlineObj = item[inlineData]();
					for (i in inlineObj) item[i] = inlineObj[i];
					delete inlineObj;
					item[inlineData] = null;
				}
				if (item['initiate']) item['initiate']();
			});
		}
		
		function initiateClasses() {
			initiateClass(null, 'ondblclick');
		}
		
		 var Query = window.location.toString().toQueryParams();
		 
		 var Cookie = {
			season: null,
			createCookie: function(name,value,days) {
			  if (days) {
			    var date = new Date();
			    date.setTime(date.getTime()+(days*24*60*60*1000));
			    var expires = "; expires="+date.toGMTString();
			  }
			  else expires = "";
			  document.cookie = name+"="+value+expires+"; path=/";
			},
			readCookie: function(name) {
			  var nameEQ = name + "=";
			  var ca = document.cookie.split(';');
			  for(var i=0;i < ca.length;i++) {
			    var c = ca[i];
			    while (c.charAt(0)==' ') c = c.substring(1,c.length);
			    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
			  }
			  return false;
			}
		}
		
		var Events = {
			add: function(obj,type,fn) {
			  if (obj.addEventListener){
			    obj.addEventListener(type, fn, false);
				return true;
			  }
			  else if (obj.attachEvent){
				var r = obj.attachEvent("on"+type, fn);
			    return r;
			  }
			  else {
				return false;
			  }
			},
			remove: function(obj,type,fn) {
			  if (obj.removeEventListener){
			    obj.removeEventListener(type, fn, false);
				return true;
			  }
			  else if (obj.detachEvent){
				var r = obj.detachEvent("on"+type, fn);
			    return r;
			  }
			  else {
				return false;
			  }	
			}
		};
		
		function popUp(URL, width, height) {
			day = new Date();
			id = day.getTime();
			eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width="+width+",height="+height+",left = 504,top = 125');");
		}
		
		function getUrl(url) {
			window.location = url;
		}
		
		function detectMac() {
			return (navigator.appVersion.indexOf('Mac') == -1);
		}