(function(){
	var console = window['console'] || { log: function(){} };
	var body = document.id(document.body);
	var el = document.createElement('a');
	var prefix = {
		firefox: 'moz',
		chrome: 'webkit',
		safari: 'webkit',
		opera: 'o',
		ie: 'ms'
	}[Browser.name];
	var css = function(name, value, prefixValue) {
		var text = '-'+prefix+'-'+name+':'+value+'; '+name+':'+value+';';
		if (prefixValue) text = name+':-'+prefix+'-'+value+'; '+text;
		el.style.cssText = text;
		return el.style[name.camelCase()] || el.style[prefix.capitalize()+name.camelCase().capitalize()];
	};
	var features = {
		'javascript': Function.from(true),
		'box-shadow': function(){
			var value = css('box-shadow', '0px 0px 0px 0px #001 inset');
			return value && value.match(/((?:(?:^| )0px){4}|inset)/g).length == 2;
		},
		'border-radius': function(){
			return css('border-radius', '10px') || css('border-top-left-radius', '10px');
		},
		'multiple-backgrounds': function(){
			var value = css('background', 'url(//:), url(//:)');
			return value && value.match(/url\(/g).length == 2;
		},
		'gradients': function(){
			return css('background-image', 'linear-gradient(#000, #fff)', true) ||
				   css('background-image', '-webkit-gradient(linear, left top, left bottom, from(#000), to(#fff))');
		},
		'border-image': css.pass([ 'border-image', 'url(//:) 10 10 10 10 round round' ]),
		'rgba': css.pass([ 'background-color', 'rgba(0,0,0,0.5)' ]),
		'outline': Browser.ie && Browser.version < 8 ? Function.from(false) : css.pass([ 'outline', '1px solid #000' ]),
		'box-sizing': css.pass([ 'box-sizing', 'border-box' ])
	};
	body.addClass(prefix);
	body.addClass(Browser.name);
	body.addClass(Browser.Platform.name);
	body.appendChild(el);
	Browser.Features.CSS = {};
	for (var name in features) {
		var supported = !!features[name]();
		if (supported) body.removeClass('no-'+name);
		body.addClass(supported ? name : 'no-'+name);
		Browser.Features.CSS[name] = supported;
	}
	body.removeChild(el);
})();
if (Browser.firefox) (function(){
	document.body.addClass('font-loading');
	var loaded = function(){
		document.body.removeClass('font-loading');
	};
	window.addEvent('load', loaded);
	loaded.delay(3000);
})();
