window._flashConst_MaxFlashVersion = 14;
/*
 * FlashDetector object is used to detect flash version
 */
FlashDetector = Class.create();
FlashDetector.prototype =
{
	info: null,
	initialize: function(){
		this.info = this._getInfo();
	},
	testFor:function(major, minor, revision){
		if(this.info.majVer <  major) return false;
		if(this.info.majVer == major && this.info.minVer < minor) return false;
		if(this.info.majVer == major && this.info.minVer == minor && this.info.rev < revision) return false;
		return true;
	},
	_getInfo:function(){
		var nfo = {majVer:-1,minVer:0,rev:0}
		for(var j = 0; j < navigator.plugins.length; j++){
			if(navigator.plugins[j].description){
				var pos = navigator.plugins[j].description.indexOf("Shockwave Flash");
				if(pos >= 0){
					var descr = navigator.plugins[j].description.substr(pos + 16);
					var descrArr = descr.split(".");
					if(descrArr.length > 1){
						nfo.majVer = parseInt(descrArr[0]);
						var descrArr2 = descrArr[1].split(" r");
						if(descrArr2.length > 1){
							nfo.minVer = parseInt(descrArr2[0]);
							nfo.rev = parseInt(descrArr2[1]);
						}
					}
					return nfo;
				}
			}
		}
		if(nfo.majVer <= 0){
			var flash = null;
			for (var i = window._flashConst_MaxFlashVersion; i >= 6; i--) {
				try {
					var flash = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + i + "');");
					if(flash){ break; }
				}catch(e){}
			}
			if(flash){
				var vers = flash.getVariable("$version");
				var versArr = vers.split("WIN ").join("").split(",")
				if(versArr.length > 3){
					nfo.majVer = parseInt(versArr[0]);
					nfo.minVer = parseInt(versArr[1]);
					nfo.rev = parseInt(versArr[2]);
				}
			}
		}
		return nfo;
	}
};
FlashDetector.hasVersion = function(major, minor, revision){
    var detector = new FlashDetector();
    return detector.testFor(major, minor, revision);
}
