﻿(function($){$.browserTest=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(' '));}};$.browserTest(navigator.userAgent);})(jQuery);

(function($)
{  
	$.browserBar = function(options)
	{ 
		var defaults	= 
		{	
			firefoxVersion		: 3.0,
			firefoxName			: 'Mozilla Firefox',
			firefoxUpdateUrl	: 'http://www.mozilla.com/en-US/',
			firefoxImageUrl		: '/Images/browsers/firefox_logo',
			ieVersion			: 7.0,
			ieName				: 'Microsoft Internet Explorer',
			ieUpdateUrl			: 'http://www.microsoft.com/ie/',
			ieImageUrl			: '/Images/browsers/ie_logo',
			safariVersion		: 4.0,
			safariName			: 'Apple Safari',
			safariUpdateUrl		: 'http://www.apple.com/safari/',
			safariImageUrl		: '/Images/browsers/safari_logo',
			operaVersion		: 9.0,
			operaName			: 'Opera',
			operaUpdateUrl		: 'http://www.opera.com/browser/',
			operaImageUrl		: '/Images/browsers/opera_logo',
			chromeVersion		: 2.0,
			chromeName			: 'Google Chrome',
			chromeUpdateUrl		: 'http://www.google.com/chrome/',
			chromeImageUrl		: '/Images/browsers/chrome_logo'
		};
		
		options	= $.extend(defaults, options);
		
		return $('body').each(function()
		{
			var obj	= $(this);
			
			var version	= $.browser.version;
			var first	= true;
			var index	= 0;
			var indexOf	= version.indexOf('.', index);
			var originalVersion;
						
			while(indexOf > -1)
			{
				if (first)
				{
					index = indexOf + 1;
					first = false;
				}
				else
				{
					index = indexOf;
					originalVersion	= version;
					version = originalVersion.substring(0, index);
					version = version + originalVersion.substring(index + 1);
				}
				
				indexOf	= version.indexOf('.', index);
			}
			var browserVersion	= parseFloat(version);
			var browserName;
			var browserUpdateUrl;
			var browserImageUrl;
			
			var update				= false;
			
			if ($.browser.firefox && browserVersion < options.firefoxVersion)
			{
				browserName			= options.firefoxName;
				browserUpdateUrl	= options.firefoxUpdateUrl;
				browserImageUrl		= options.firefoxImageUrl;
				update				= true;
			}
			else if ($.browser.msie && browserVersion < options.ieVersion)
			{
				browserName			= options.ieName;
				browserUpdateUrl	= options.ieUpdateUrl;
				browserImageUrl		= options.ieImageUrl;
				update				= true;
			}
			else if ($.browser.safari && browserVersion < options.safariVersion)
			{
				browserName			= options.safariName;
				browserUpdateUrl	= options.safariUpdateUrl;
				browserImageUrl		= options.safariImageUrl;
				update				= true;
			}
			else if ($.browser.opera && browserVersion < options.operaVersion)
			{
				browserName			= options.operaName;
				browserUpdateUrl	= options.operaUpdateUrl;
				browserImageUrl		= options.operaImageUrl;
				update				= true;
			}
			else if ($.browser.chrome && browserVersion < options.chromeVersion)
			{
				browserName			= options.chromeName;
				browserUpdateUrl	= options.chromeUpdateUrl;
				browserImageUrl		= options.chromeImageUrl;
				update				= true;
			}
			
			if (update)
			{
				obj.prepend('<div id="jQueryBrowserBar"></div><div id="jQueryBrowserBarMore"></div>');
				
				var browserBar			= $('#jQueryBrowserBar');
				var browserBarMore		= $('#jQueryBrowserBarMore');
				
				var browserBarContent	= '<a href="' + browserUpdateUrl + '" target="_blank" style="display: block; float: left; padding: 5px 0 5px 20px; height: 34px;">';
				browserBarContent		= browserBarContent + '<img class="small" src="' + browserImageUrl + '_small.png" alt="' + browserName + '" style="height: 34px; width: 34px; float: left;" />';
				browserBarContent		= browserBarContent + '<span class="updateText" style="float: left; display: block; display: inline; padding: 3px 0 3px 20px; cursor: pointer;">You are currently running an out of date version of ' + browserName + '.<br />For an optimal browsing experience click here to update.</span>';
				browserBarContent		= browserBarContent + '</a>';
				browserBarContent		= browserBarContent + '<a href="#" class="more" style="display: block; float: right; padding: 15px 20px 15px 0;">Click Here for more browser options.</a>';
				
				var browserBarMoreContent	= '<div style="width: 900px; margin: auto; overflow: auto;">';
				browserBarMoreContent		= browserBarMoreContent + '<a href="' + options.firefoxUpdateUrl + '" target="_blank" style="background: url(' + options.firefoxImageUrl + '.png) no-repeat center 5px; display: block; float: left; display: inline; margin: 10px 25px 10px 25px; width: 125px; padding-top: 135px; text-align: center;">';
				browserBarMoreContent		= browserBarMoreContent + options.firefoxName;
				browserBarMoreContent		= browserBarMoreContent + '</a>';
				browserBarMoreContent		= browserBarMoreContent + '<a href="' + options.ieUpdateUrl + '" target="_blank" style="background: url(' + options.ieImageUrl + '.png) no-repeat center 5px; display: block; float: left; display: inline; margin: 10px 25px 10px 25px; width: 130px; padding-top: 135px; text-align: center;">';
				browserBarMoreContent		= browserBarMoreContent + options.ieName;
				browserBarMoreContent		= browserBarMoreContent + '</a>';
				browserBarMoreContent		= browserBarMoreContent + '<a href="' + options.safariUpdateUrl + '" target="_blank" style="background: url(' + options.safariImageUrl + '.png) no-repeat center 5px; display: block; float: left; display: inline; margin: 10px 25px 10px 25px; width: 130px; padding-top: 135px; text-align: center;">';
				browserBarMoreContent		= browserBarMoreContent + options.safariName;
				browserBarMoreContent		= browserBarMoreContent + '</a>';
				browserBarMoreContent		= browserBarMoreContent + '<a href="' + options.operaUpdateUrl + '" target="_blank" style="background: url(' + options.operaImageUrl + '.png) no-repeat center 5px; display: block; float: left; display: inline; margin: 10px 25px 10px 25px; width: 130px; padding-top: 135px; text-align: center;">';
				browserBarMoreContent		= browserBarMoreContent + options.operaName;
				browserBarMoreContent		= browserBarMoreContent + '</a>';
				browserBarMoreContent		= browserBarMoreContent + '<a href="' + options.chromeUpdateUrl + '" target="_blank" style="background: url(' + options.chromeImageUrl + '.png) no-repeat center 5px; display: block; float: left; display: inline; margin: 10px 25px 10px 25px; width: 130px; padding-top: 135px; text-align: center;">';
				browserBarMoreContent		= browserBarMoreContent + options.chromeName;
				browserBarMoreContent		= browserBarMoreContent + '</a>';
				browserBarMoreContent		= browserBarMoreContent + '</div>';
				
				browserBar.attr('style', 'display: none; min-width: 1000px; background-color: #ff9; width: 100%; font-size: 12px; line-height: 14px; margin-bottom: 10px; overflow: auto; border-bottom: 1px solid #000;');
				browserBarMore.attr('style', 'display: none; min-width: 1000px; background-color: #fff; width: 100%; font-size: 12px; line-height: 14px overflow: auto; position: absolute; top: 45px; left: 0px; z-index: 1000; border-bottom: 1px solid #000; padding: 10px 0 10px 0;');
				
				browserBar.html(browserBarContent);
				browserBarMore.html(browserBarMoreContent);
								
				browserBar.find('a.more').click(function(event)
				{
					event.preventDefault();
					browserBarMore.slideToggle(1000);
				});
				
				browserBar.slideDown(1000);
			}
		});
	};  
	
})(jQuery); 
