//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

var plugin_c = plugincheck() ;
var erforderliche_Flashversion=8;

var fehler_ausgabe 	= false;

function flash_OB()
{
 /*
  Beispiel:  	onload="flash_OB( '/Bodenbelaege/media/bodenbelaege.swf' , this , {width:80,height:120, scale:'noscale', bgcolor:'#FFFF00'}  );"
  						onload="flash_OB( '/Bodenbelaege/media/bodenbelaege.swf' , this , 12 , false , {width:80,height:120,scale :'noscale', bgcolor:'#FFFF00'} );"
  						
	werte die hier ankommen dürfen
	1. swf_pfad					: muss an erster Stelle stehen!!!! Pfad zur SWF kann auch relativ sein. 
	2. bild_ob					: muss an erster Stelle stehen!!!! Diese ist das Bild selbst welches in einem "div" oder "td" plaziert ist.
	
	An dritter, vierter und fünfter Stelle können die Flashattribute, die Version des Flashplayers oder/und anzeige des fehlendem Flashplayers(textliche Flashdownload-Link) stehen.
	3. flash_attribute	: Ein OB mit den Werten die geändert werden sollen, Formatierung: { width:80, height:120 , bgcolor:'#FFFF00' , .... } 
	   version					: Eine INT Zahl die angibt, welche Flashplayer-Version benutz werden soll.
		 fehler_ausgabe		: Ein Boolean der angibt, ob eine Fehlermeldung bei der Überprüfung des Flashplayers angezeigt werden soll, ansonsten bleibt das Bild stehen.
		 									  Standart auf True gesetzt
 */
 
 
  // varibalen auslesen und setzen
	var swf_pfad				= arguments[0];
	var bild_ob					= arguments[1];
	
	for(var d=2; d < arguments.length ; d++ )
	{
	 if( typeof( arguments[d] ) == "object" )
	 {
	 	var flash_attribute	= arguments[d];
	 }
	 if( typeof( arguments[d] ) == "number" )
	 {
	  var version					= arguments[d] ;
	 }
	 if( typeof( arguments[d] ) == "boolean" )
	 {
	  fehler_ausgabe 	= arguments[d];
	 }
  }
  //--------------------------------
  
  
 // div finden
 if( bild_ob.tagName != "DIV" )
 var _parent = bild_ob.parentNode;
 else
 var _parent = bild_ob;
 //--------------------------------
 
 //hier wird die flashversion bestimmt. standart = flashversion 5
 if( version != "undefined" && version != null )
 {
  erforderliche_Flashversion=version;
 }
 
 
 //flash einbindung mit variablen angaben!!!!
 if( flash_attribute != "undefined" && flash_attribute != null )
 {
 	var attribute = new Array();
 	
 	// standart werte
  var flash_attribute_standart = {
    codebase : 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+erforderliche_Flashversion+',0,0,0' ,
    src : swf_pfad  ,
    width : bild_ob.width ,
    height : bild_ob.height ,
    quality :'high' ,
    pluginspage :'http://www.macromedia.com/go/getflashplayer' ,
    align :'middle' ,
    play :'true' ,
    loop :'true' ,
    scale :'showall' ,
    wmode :'window' ,
    devicefont :'false' ,
    id :'anwendung' ,
    name :'anwendung' ,
    menu :'false' ,
    allowScriptAccess :'sameDomain' ,
    movie : swf_pfad  ,
    salign : '' 
   };
  
  //neue attribute dem OB hinzufügen
  var keys_standart = new Array();
  for( var d in flash_attribute )
  {
   keys_standart.push( d );
  }
  for( var d = 0; d < keys_standart.length ; d++  )
  {
   flash_attribute_standart[ keys_standart[d] ] = flash_attribute[ keys_standart[d] ] ;
  }
  //--------------------------------
 
  //alle attribute aus dem OB kommen in ein array
  var keys_standart = new Array();
  for( var d in flash_attribute_standart )
  {
   keys_standart.push( d );
  }
  for( var d = 0; d < keys_standart.length ; d++  )
  {
   attribute.push( ""+keys_standart[d]+"") ;
   attribute.push( ""+ flash_attribute_standart[ keys_standart[d] ] +"" ) ;
  }
  //----------------------------------
  
  // flash OB erzeugen und in das übergeordnete div einbinden
  var flash_text = AC_FL_RunContent( attribute ); //end AC code
  
 if( flash_text != null )
  {
	 _parent.innerHTML = flash_text;
	}
	//------------------------------------
	
 }
 else
 {
  //flash einbindung ohne variablen angaben!!!!
  // hier werden die werte unten eingesetzt und die Höhe und Breite aus dem Bild gelesen
  var flash_text = AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+erforderliche_Flashversion+',0,0,0',
			'src', swf_pfad ,
			'width', bild_ob.width ,
			'height', bild_ob.height ,
			'quality', 'high',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', 'middle',
			'play', 'true',
			'loop', 'true',
			'scale', 'showall',
			'wmode', 'window',
			'devicefont', 'false',
			'id', 'anwendung',
			'name', 'anwendung',
			'menu', 'false',
			'allowScriptAccess','sameDomain',
			'movie', swf_pfad ,
			'salign', ''
			); //end AC code
			
	//einbindung in das div
	if( flash_text != null )
  {
	 _parent.innerHTML = flash_text;
	}
	//------------------------
	
 }
 
}



function ControlVersion()
{
	var version;
	var axo;
	var e;
	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}
	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";
			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";
			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}


// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}


// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];						// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}
function AC_AddExtension( src, ext )
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }
  //hier wird das Object als Text zurück gegeben
  return (str);
  
}
function AC_FL_RunContent()
{
  if( plugin_c >= erforderliche_Flashversion )
  {
   if( typeof( arguments[0] ) == "object" )
   {
    arguments=arguments[0];
   }
   var ret = AC_GetArgs(  arguments, "", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" , "application/x-shockwave-flash" );
   return AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
  }
  else if( fehler_ausgabe )
  {
   return  '<br/><br/><center><b>Sie haben leider keinen oder eine ältere Version des Flashplayers.<br/>\nBitte aktualisieren Sie Ihren Browser unter dem folgendem Link: <br/>\n<a href="http://get.adobe.com/de/flashplayer/?promoid=COYSZ" target="_blank">http://get.adobe.com/de/flashplayer/?promoid=COYSZ</a></b></center>';
  }
  else
  {
   return  null;
  }
}

function AC_SW_RunContent()
{
 var ret = AC_GetArgs(  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000" , null );
 AC_Generateobj( ret.objAttrs, ret.params, ret.embedAttrs );
}

function AC_GetArgs( args, ext, srcParamName, classid, mimeType)
{
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

function plugincheck()
  {
   var hexziffern = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
   function hex(x)
     {
      var dwert = Number(x)
      if (isNaN(dwert))
        {
         return 0;
        }
      var wert = ""
      while (dwert>0)
        {
         zf = dwert % 16
         wert = hexziffern[zf] + wert
         dwert-= zf
         dwert/= 16
        }
      return wert
     }
   quicktime=-1;
   flash=-1;
   flash3=0;
   flash4=0;
   flash5=0;
   flash6=0;
   flash7=0;   
   flash8=0;
   flash9=0;
   flash10=0;
   flash11=0;
   flash12=0;
   var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
     if ( plugin )
       {
        df = plugin.description.substring( plugin.description.indexOf(".")-2 , plugin.description.indexOf(".") );
       	reg = /[^0-9]/g;
			  if ( reg.exec( df ) )
       	 {
       	  df = df.replace( /[^0-9]/g , "" );
       	 }       	
        flash=parseInt( df );
        
        if (flash>=8)
				 {
				 	flash_f=true;
				 }
       }
     else
       if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.userAgent.indexOf("Windows 95")>=0 || navigator.userAgent.indexOf("Windows 98")>=0 || navigator.userAgent.indexOf("Windows NT")>=0))
         {
          document.write('<script language="VBScript"\> \n');
          document.write('on error resume next \n');
          document.write('flash3=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
          document.write('flash4=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
          document.write('flash5=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');
          document.write('flash6=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');
          document.write('flash7=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');
          document.write('flash8=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8"))) \n');
          document.write('flash9=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.9"))) \n');
          document.write('flash10=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.10"))) \n');
          document.write('flash11=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.11"))) \n');
          document.write('flash12=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.12"))) \n');
          document.write('On Error  goto 0 \n');
          document.write('</script\> \n');
         }
   if (flash3) {flash=3;}
   if (flash4) {flash=4;}
   if (flash5) {flash=5;}
   if (flash6) {flash=6;}
   if (flash7) {flash=7;}
   if (flash8) {flash=8;}
   if (flash9) {flash=9;}
   if (flash10) {flash=10;}
   if (flash11) {flash=11;}
   if (flash12) {flash=12;}
 return flash;
}

