/*
** 
*/
(function($){
	if(!$.util){
        $.util = new Object();
    };
    
    $.util.ChooseBrowser = function(el, options){
        // To avoid scope issues, use 'base' instead of 'this'
        // to reference this class from internal events and functions.
        var base = this;
        
        // Access to jQuery and DOM versions of element
        base.$el = $(el);
        base.el = el;
        
        // Add a reverse reference to the DOM object
        base.$el.data("util.ChooseBrowser", base);
        
        base.init = function(){
            base.options = $.extend({},$.util.ChooseBrowser.defaultOptions, options);            
            // Put your initialization code here
        };
        
        // Sample Function, Uncomment to use
        base.getBrowser = function(a,z){
			var u = 'unknown', x = 'X', m = function (r, h) {
				for (var i = 0; i < h.length; i = i + 1) {
					r = r.replace(h[i][0], h[i][1]);
				}
	
				return r;
			}, c = function (i, a, b, c) {
				var r = {
					name: m((a.exec(i) || [u, u])[1], b)
				};
	
				r[r.name] = true;
	
				r.version = (c.exec(i) || [x, x, x, x])[3];
	
				if (r.name.match(/safari/) && r.version > 400) {
					r.version = '2.0';
				}
	
				if (r.name === 'presto') {
					r.version = ($.browser.version > 9.27) ? 'futhark' : 'linear_b';
				}
				r.versionNumber = parseFloat(r.version, 10) || 0;
				r.versionX = (r.version !== x) ? (r.version + '').substr(0, 1) : x;
				r.className = r.name + r.versionX;
	
				return r;
			};
	
			a = (a.match(/Opera|Navigator|Minefield|KHTML|Chrome/) ? m(a, [
				[/(Firefox|MSIE|KHTML,\slike\sGecko|Konqueror)/, ''],
				['Chrome Safari', 'Chrome'],
				['KHTML', 'Konqueror'],
				['Minefield', 'Firefox'],
				['Navigator', 'Netscape']
			]) : a).toLowerCase();
	
			$.browser = $.extend((!z) ? $.browser : {}, c(a, /(camino|chrome|firefox|netscape|konqueror|lynx|msie|opera|safari)/, [], /(camino|chrome|firefox|netscape|netscape6|opera|version|konqueror|lynx|msie|safari)(\/|\s)([a-z0-9\.\+]*?)(\;|dev|rel|\s|$)/));
	
			$.layout = c(a, /(gecko|konqueror|msie|opera|webkit)/, [
				['konqueror', 'khtml'],
				['msie', 'trident'],
				['opera', 'presto']
			], /(applewebkit|rv|konqueror|msie)(\:|\/|\s)([a-z0-9\.]*?)(\;|\)|\s)/);
	
			$.os = {
				name: (/(win|mac|linux|sunos|solaris|iphone)/.exec(navigator.platform.toLowerCase()) || [u])[0].replace('sunos', 'solaris')
			};
	
			if (!z) {
				$('html').addClass([$.os.name, $.browser.name, $.browser.className, $.layout.name, $.layout.className].join(' '));
			}
        };
        
        base.checkBrowser = function(){
        	switch($.browser.name){
				case "chrome":
					break;
				case "firefox":
					if(parseFloat($.browser.version) < base.options.firefox_ver){
						base.alert();
					}
					break;
				case "msie":
					break;
				case "opera":
					break;
				case "safari":
					break;
			}
			
        };
        
        base.alert = function(){
        	var html = "";
        	
        	$.ajax({ url: "js/util/choosebrowser/alert.html", dataType: "html", async:false, success: function(data){
        		html = data;
        	}});
        	
        	html = html.replace("{HEADLINE}", base.options.headline);
        	html = html.replace("{COPY}", base.options.message);

			$(base.el).prepend(html);
			$('#browser').html("<p>You are currently using "+$.browser.name + " " + $.browser.version + "</p>");

			$('#choose-browser').css(base.options.style_choose_browser);
			$('#choose-browser-copy').css(base.options.style_choose_browser_copy);
			$('#choose-browser-copy h1').css(base.options.style_choose_browser_copy_h1);
			$('#choose-browser-copy p').css(base.options.style_choose_browser_copy_p);

			$('.show-options').click(base.showOptions);
			$('#choose-browser').slideDown(1000);
        };
        
        base.showOptions = function(){
        	
        	return false;
	    };
        // Run initializer
        base.init();
        base.getBrowser(navigator.userAgent);
        base.checkBrowser();
        
    };
    
    
    
    $.util.ChooseBrowser.defaultOptions = {
        chrome_ver: 5,
        firefox_ver: 3.6,
        ie_ver: 7,
        opera_ver: 10,
        safari_ver: 3,
        headline:"Excuse Me",
        message:"It looks like you are using an older browser. Your browser is one of the most important programs you will use on your computer. There are newer browsers that will allow you to experience the web the way it was meant be experienced. <a href=\"choose-browser.html\" class=\"show-options\">To find out more click here.</a>",
        style_choose_browser: {'background':'#FFF284', 'border-bottom':'solid 1px #F5D343', 'display':'none'},
        style_choose_browser_copy: {'width':'990px', 'margin':'0 auto'},
        style_choose_browser_copy_h1: {'font-size':'18px', 'font-weight':'bold', 'text-transform':'uppercase', 'color':'#F58501', 'padding':'5px 0'},
        style_choose_browser_copy_p: {'font-size':'12px', 'line-height':'14px', 'padding':'2px 0', 'margin':'0', 'text-indent':'0'},
        alert_html: "js/util/choosebrowser/alert.html",
        choose_browser_html:"js/util/choosebrowser/choose-browser.html"
    };
    
   $.fn.util_ChooseBrowser = function(options){
        return this.each(function(){
            (new $.util.ChooseBrowser(this, options));
        });
    };
    
    // This function breaks the chain, but returns
    // the util.ChooseBrowser if it has been attached to the object.
    $.fn.getutil_ChooseBrowser = function(){
        this.data("util.ChooseBrowser");
    };

    
    
})(jQuery);
