/*	Browser Detection - you can access the info through $USER	*/
		IPC.BrowserDetect = Class.create();
		IPC.BrowserDetect.prototype = {
			initialize : function () {
				this.browser = this.searchString( this.dataBrowser ).identity || "An unknown browser";
				this.version = this.searchVersion( navigator.userAgent )
					|| this.searchVersion( navigator.appVersion )
					|| "an unknown version";
				this.OS = this.searchString( this.dataOS ).identity || "an unknown OS";
				this.activex =  this.activeXCheck();
				this.flash = this.flashCheck();
			},
			searchString: function ( data ) {
				return data.find( function( datum ) {
					var dataString = datum.string;
					var dataProp = datum.prop;
					this.versionSearchString = datum.versionSearch || datum.identity;
					if ( dataString ) {
						if ( dataString.indexOf( datum.subString ) != -1 )
							return datum.identity;
					}
					else if (dataProp)
						return datum.identity;
				}.bind( this ) );
			},
			searchVersion: function ( dataString ) {
				var index = dataString.indexOf( this.versionSearchString );
				if ( index == -1 ) return;
				return parseFloat( dataString.substring( index + this.versionSearchString.length + 1 ) );
			}, 
			activeXCheck : function()
			{
				return { 
					msie : ( window.ActiveXObject && this.OS == 'Windows' ) ? true : false, 
					gecko : ( window.GeckoActiveXObject ) ? true : false
				};
			}, 
			flashCheck : function()
			{
				flashPlayer = testPluginsArray("Shockwave Flash");
				if(!flashPlayer.installed) {
					if(testForPluginMimeType('application/x-shockwave-flash')) flashPlayer.installed = true;
					else {
						for(var i=8; i>0; i--) {
							if(this.activex.msie) {
								try {
									new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i);
									flashPlayer.installed = true;
									flashPlayer.version = i;
									return flashPlayer;
								}
								catch(e) { flashPlayer.installed = false; }
							}
							else flashPlayer.installed = false;
						}
					}
				}
				return flashPlayer;
			}, 
			dataBrowser: [
				{ string: navigator.vendor, subString: "Apple", identity: "Safari" },
				{ prop: window.opera, identity: "Opera" },
				{ string: navigator.userAgent, subString: "Firefox", identity: "Firefox" },
				{ string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE" }
			],
			dataOS : [
				{ string: navigator.platform, subString: "Win", identity: "Windows" },
				{ string: navigator.platform, subString: "Mac", identity: "Mac" },
				{ string: navigator.platform, subString: "Linux", identity: "Linux" }
			]
		};
		var $USER = new IPC.BrowserDetect();
		
//	care of my pal si@jeffwad.com
		function testForPluginMimeType(mimeType)
		{
			try	{
				if(navigator.mimeTypes)	return navigator.mimeTypes[mimeType].enabledPlugin;
			} catch (e) { return false;	}
		}
		function testPluginsArray(pluginType)
		{
			var pl = { };
			pl.installed = false;
			if(navigator.plugins && navigator.plugins.length) {
				for(var i in navigator.plugins)	{
					plugin = navigator.plugins[i];
					if(plugin.name)	{
						if(plugin.name.indexOf(pluginType) !== -1) {
							pl.installed = true;
							if(plugin.description) pl.version = plugin.description.charAt(plugin.description.indexOf('.')-1);
							return pl;
						}
					}
				}
			}
			return pl;
		}
		function createActiveXObject(controlType)
		{
			try { return new ActiveXObject(controlType); }
			catch ( e ) { return false; }
		}