/*
* @package css
*/
;(function (global){
	
	if (!global.css || !css){
		var css = global.css = {};
	}
	
	css.addInit = function (fn){
		var addEventListener = "addEventListener",
			attachEvent = "attachEvent";
		
		if (global[addEventListener]){ 
			global[addEventListener]("load", fn, false); 
		} else if (global[attachEvent]){ 
			global[attachEvent]("onload", fn); 
		}
	};
	
})(window);

/*
* @package css.helpers
*/
	
css.addInit(function (){
	var ua = navigator.userAgent.toLowerCase(),
		check 			= function(expression){return expression.test(ua);},
		isStrict 			= document.compatMode == "CSS1Compat",
		isOpera 		= check(/opera/),
		isChrome 		= check(/\bchrome\b/),
		isWebKit 		= check(/webkit/),
		isSafari 		= !isChrome && check(/safari/),
		isSafari2 		= isSafari && check(/applewebkit\/4/),
		isSafari3 		= isSafari && check(/version\/3/),
		isSafari4 		= isSafari && check(/version\/4/),
		isIE 				= !isOpera && check(/msie/),
		isIE7 			= isIE && check(/msie 7/),
		isIE8 			= isIE && check(/msie 8/),
		isIE6 			= isIE && !isIE7 && !isIE8,
		isGecko 		= !isWebKit && check(/gecko/),
		isGecko2 		= isGecko && check(/rv:1\.8/),
		isGecko3 		= isGecko && check(/rv:1\.9/),
		isBorderBox 	= isIE && !isStrict,
		isWindows 	= check(/windows|win32/),
		isMac 			= check(/macintosh|mac os x/),
		isAir 				= check(/adobeair/),
		isLinux 			= check(/linux/),
		
		features 		= css.features = {
			strict: 			isStrict,
			borderBox: 	isBorderBox,
			
			opera: 			isOpera,
			chrome:		isChrome,
			webKit: 		isWebKit,
			safari: 			isSafari,
			gecko: 			isGecko,
			ie: 				isIE,
			
			safari2: 		isSafari2,
			safari3: 		isSafari3,
			safari4: 		isSafari4,
			ie6: 				isIE6,
			ie7: 				isIE7,
			ie8: 				isIE8,
			gecko2: 		isGecko2,
			gecko3: 		isGecko3,
			
			windows: 		isWindows,
			mac: 			isMac,
			air: 				isAir,
			linux: 			isLinux
		},
		
		body		= document.getElementsByTagName("html")[0],
		classes 	= body.className.replace(/\bno-js\b/g, "js").split(" "),
		feature, key, index, tmp = {}, length;
		
	for (key in features){
		feature = features[key];
		
		if (feature){
			classes.push((!feature ? feature : "") + key);
		} else {
			index = classes.indexOf(key);
			if (index > 0) {
				classes.splice(index, 1);
			}
		}
	}
	
	length = classes.length;
	
	for (index = 0; index < length; index++){
		tmp[classes[index]] = 0;
	}
	
	classes = [];
	for (key in tmp){
		if (tmp[key]==0){
			classes.push(key);
		}
	}
	
	body.className = classes.join(" ");
});

