isStyleSupported = (function(){
	var cache = {};
	var el = document.createElement('div');
	
	var toCamelCase = function(str){
		var parts = str.split('-'), camel = parts[0];
		for(var i=1, len=parts.length; i < len; i++){
			camel += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
		}
		return camel;
	};
	
	return function(style, value){
		var key = style + value || "";
		if(key in cache){
			return cache[key];
		}else{
			var supported = false;
			var camel = toCamelCase(style);
			if(el.runtimeStyle){
				try{
					el.style[camel] = value || "";
					supported = typeof el.runtimeStyle[camel] != 'undefined';
				}catch(e){};
			}else{
				var view = document.defaultView;
				if(view && view.getComputedStyle){
					var cs = view.getComputedStyle(el, null)[camel];
					supported = typeof cs !== 'undefined';
					if(value){
						el.innerHTML = '<div style="'+style+':'+value+'"></div>';
						supported = supported && el.firstChild.style[camel] !== "";
					}
				}
			}
			return cache[key] = supported;
		}
	}
})();
