function hasFlash(minVersion) {
	var ua = ' ' + navigator.userAgent.toLowerCase()
	var is_ie = ua.indexOf('msie') > 0;
	var is_win = ua.indexOf('win') > 0;
	var is_webtv = ua.indexOf('webtv') > 0;
	var vNum = 0
	
	if (is_ie && is_win) {  // vbscript-based detection
		with (document) {
			writeln('<script type="text/vbscript" language="VBScript">')
			writeln('	Function vb_detectFlash()')
			writeln('		On Error Resume Next')
			writeln('		Dim vNum, i, theObject')
			writeln('		vNum = 0')
			writeln('		For i = 2 To 20 ') // this will work until flash player v. 20 
			writeln('			Set theObject = CreateObject("ShockwaveFlash.ShockwaveFlash." & i)')
			writeln('			If IsObject(theObject) Then')
			writeln('				vNum = i')
			writeln('			End If')
			writeln('			theObject = null')
			writeln('		Next')
			writeln('		vb_detectFlash = vNum')
			writeln('	End Function')
			writeln('<\/scr', 'ipt>')
		}
		vNum = vb_detectFlash()
	}
	else if (is_webtv) {
		vNum = 2 // note: newer versions of webtv may support higher versions of flash than 2
	} else {
		if (navigator.plugins) { // navigator plugin api
			for (var i = 0; i < navigator.plugins.length; i++) {
				var thePlugin = navigator.plugins[i]
				var name = thePlugin.name
				var desc = thePlugin.description
				if (name.indexOf('Shockwave Flash') != -1) { // flash is installed
					// check mimeTypes to see if it has been disabled
					for (var j = 0; j < thePlugin.length; j++) {
						if ( (thePlugin[j].type == 'application/x-shockwave-flash') && (thePlugin[j].enabledPlugin != null) ) {
							if (name == 'Shockwave Flash 2.0') vNum = 2
							else vNum = parseInt(desc.charAt(desc.indexOf('.')-1))
						}
					}
				}
			}
		}
	}
	return (vNum >= minVersion)
}