(function(){

	var docElement = document.documentElement,
		div = document.createElement('div'),
		classes = [],
		DOMprefixes = "Khtml ms Moz O Webkit".split(" "),
		CSSprefixes = ' -khtml- -ms- -moz- -o- -webkit- '.split(" ");

	// css 3 feature detection, inspired from http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-detect-css-support-in-browsers-with-javascript/ 
	var support = function(propName){
		var len = DOMprefixes.length;
		if( propName in div.style ) return true;
		propName = propName.replace(/^[a-z]/, function(val) {
			return val.toUpperCase();
		});
		while( len-- ) {
			if(DOMprefixes[len] + propName in div.style){
				return true;
			}
		}
		return false;
	}
	
	var contains = function( str, substr ) {
        return (''+str).indexOf( substr ) !== -1;
    }
	
	// check border radius support
	if ( ! support('borderRadius') ) {
	   classes.push('no-borderradius');
	}
	
	// check linear gradient support
	(function(){
		var str1 = 'background-image:',
			str2 = 'gradient(linear,left top,right bottom,from(#408f9a),to(#377a83));',
			str3 = 'linear-gradient(left top,#408f9a, #377a83);';
		
		div.style.cssText = (str1 + CSSprefixes.join(str2 + str1) + CSSprefixes.join(str3 + str1)).slice(0,-str1.length);
		
		if( ! contains(div.style.backgroundImage, 'gradient' )){
			classes.push('no-lineargradient');
		}
	})();

	docElement.className = docElement.className.replace(/\bno-js\b/,'') + ' js ' + classes.join(' ');
	
	div = null;

})();
