var jimAuld = window.jimAuld || {};
jimAuld.utils = jimAuld.utils || {};
jimAuld.utils.flashsniffer = {
	lastMajorRelease: 9,
	installed: null,
	version: null,
	detect: function(){
		var fPlugin,fPluginDesc,flashAX;
		if (navigator.plugins && navigator.plugins.length){
		fPlugin = navigator.plugins["Shockwave Flash"];
			if (fPlugin){
				jimAuld.utils.flashsniffer.installed = true;
				if (fPlugin.description){
					fPluginDesc = fPlugin.description;
					jimAuld.utils.flashsniffer.version = fPluginDesc.charAt(fPluginDesc.indexOf('.')-1);
				}
			}
			else {
				jimAuld.utils.flashsniffer.installed = false;
			}
			if (navigator.plugins["Shockwave Flash 2.0"]){
				jimAuld.utils.flashsniffer.installed = true;
				jimAuld.utils.flashsniffer.version = 2;
			}
		}
		else if (navigator.mimeTypes && navigator.mimeTypes.length){
			fPlugin = navigator.mimeTypes['application/x-shockwave-flash'];
			if (fPlugin && fPlugin.enabledPlugin){
				jimAuld.utils.flashsniffer.installed = true;
			}
			else{
				jimAuld.utils.flashsniffer.installed = false;
			}
		}
		else {
			for(var i = jimAuld.utils.flashsniffer.lastMajorRelease;i>=2;i--){
				try{
					flashAX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);
					jimAuld.utils.flashsniffer.installed = true;
					jimAuld.utils.flashsniffer.version = i;
					break;
				}
				catch(e){
				}
			}
			if(jimAuld.utils.flashsniffer.installed == null){
				try{
					flashAX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
					jimAuld.utils.flashsniffer.installed = true;
					jimAuld.utils.flashsniffer.version = 2;
				}
				catch(e){
				}
			}
			if(jimAuld.utils.flashsniffer.installed == null){
				jimAuld.utils.flashsniffer.installed = false;
			}
			flashAX = null;
		}
	},
	isVersion: function(exactVersion){
		return (jimAuld.utils.flashsniffer.version!=null && jimAuld.utils.flashsniffer.version==exactVersion);
	},
	isLatestVersion: function(){
		return (jimAuld.utils.flashsniffer.version!=null && jimAuld.utils.flashsniffer.version==jimAuld.utils.flashsniffer.lastMajorRelease);
	},
	meetsMinVersion: function(minVersion){
		return (jimAuld.utils.flashsniffer.version!=null && jimAuld.utils.flashsniffer.version>=minVersion);
	}
};
jimAuld.utils.flashsniffer.detect();