/*
plugin name: Browser Classes
plugin description: adds browser specific classes to html element (based on their rendering engines); ATTENTION: render version != browser version
plugin environment: jQuery
requirements: 
author: Georg Knabl
company: Page On Stage
*/

(function($) {
	//plugin
	$.fn.browserclasses = function(options) {
		//merge options
		var opts = $.extend({}, $.fn.browserclasses.defaults, options);
		
		var versionOneDgt = parseInt($.browser.version,10);
		var versionTwoDgt = $.browser.version.slice(0,3);
		var versionAllDgt = $.browser.version;
		versionTwoDgt = versionTwoDgt.replace(/\./g,'-');
		versionAllDgt = versionAllDgt.replace(/\./g,'-');
		
		$(opts.addToSelector).addClass('no-ie');
		$(opts.addToSelector).addClass('no-webkit');
		$(opts.addToSelector).addClass('no-firefox');
		$(opts.addToSelector).addClass('no-opera');
		
		if ($.browser.msie) {
			$(opts.addToSelector).removeClass('no-ie');
			$(opts.addToSelector).addClass('ie');
			$(opts.addToSelector).addClass('ie-renderer-' + versionOneDgt);
			$(opts.addToSelector).addClass('ie-renderer-' + versionTwoDgt);
			$(opts.addToSelector).addClass('ie-renderer-' + versionAllDgt);
		}
		else if ($.browser.webkit) {
			$(opts.addToSelector).removeClass('no-webkit');
			$(opts.addToSelector).addClass('webkit');
			$(opts.addToSelector).addClass('webkit-renderer-' + versionOneDgt);
			$(opts.addToSelector).addClass('webkit-renderer-' + versionTwoDgt);
			$(opts.addToSelector).addClass('webkit-renderer-' + versionAllDgt);
		}
		else if ($.browser.mozilla) {
			$(opts.addToSelector).removeClass('no-firefox');
			$(opts.addToSelector).addClass('firefox');
			$(opts.addToSelector).addClass('firefox-renderer-' + versionOneDgt);
			$(opts.addToSelector).addClass('firefox-renderer-' + versionTwoDgt);
			$(opts.addToSelector).addClass('firefox-renderer-' + versionAllDgt);
		}
		else if ($.browser.opera) {
			$(opts.addToSelector).removeClass('no-opera');
			$(opts.addToSelector).addClass('opera');
			$(opts.addToSelector).addClass('opera-renderer-' + versionOneDgt);
			$(opts.addToSelector).addClass('opera-renderer-' + versionTwoDgt);
			$(opts.addToSelector).addClass('opera-renderer-' + versionAllDgt);
		}
	}
	
	//public plugin defauls
	$.fn.browserclasses.defaults = {
		addToSelector: 'html'
	};
	
	//debug message
	$.fn.browserclasses.debug = function(msg) {
		if (window.console && window.console.log) window.console.log(msg);
	};
	
	$.fn.browserclasses();
})(jQuery);
