protected String compressCssStyles(String source) {
		
		//set default css compressor
		if(cssCompressor == null) {
			YuiCssCompressor yuiCssCompressor = new YuiCssCompressor();
			yuiCssCompressor.setLineBreak(yuiCssLineBreak);
			
			cssCompressor = yuiCssCompressor;
		}
		
		//detect CDATA wrapper
		boolean cdataWrapper = false;
		Matcher matcher = cdataPattern.matcher(source);
		if(matcher.matches()) {
			cdataWrapper = true;
			source = matcher.group(1);
		}
		
		String result = cssCompressor.compress(source);
		
		if(cdataWrapper) {
			result = "<![CDATA[" + result + "]]>";
		} 

		return result;
		
	}