
// Flash Player Version Detection - Rev 1.5
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	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 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];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
			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;
}
function ControlVersion(){
	var versionStr;
	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");
		versionStr = axo.GetVariable("$version");
	} 
	catch (e) {
	}
	if (!versionStr){
		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
			versionStr = "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
			versionStr = axo.GetVariable("$version");
		}
		catch (e) {
		}
	}

	if (!versionStr) {
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			versionStr = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!versionStr){
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			versionStr = "WIN 3,0,18,0";
		} 
		catch (e) {
		}
	}

	if (!versionStr){
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			versionStr = "WIN 2,0,0,11";
		} 
		catch (e) {
			versionStr = "-1";
		}
	}
	return versionStr;
}
var flashVersion = (GetSwfVer()+"").replace(/^([^0-9]*)([0-9]+)[\.\,]*([0-9]*)([^0-9]).*$/,'$2.$3')*1;
// Version check based upon the values entered above in "Globals"
var fl = flashVersion>=8; 

/*/////////////////////////////////////////////////////////////
                     Draw Flash Funktion
/////////////////////////////////////////////////////////////*/
/*
Aufruf:
drawFlash(pfad, width, height, wmode, bgcolor, id, alt, rw);

pfad = der Pfad zur .swf Datei
width,height = Breite und Höhe
wmode = wmode-Eigenschaf des Flash Objekts
bgcolor = Hintergrundfarbe
id = die id des <object> Tag
alt = HTML-Code der zurückgegeben wird wenn Flash nicht aktiv ist
rw = true wenn das Flash object per document.write geschrieben werden soll.
*/
/**
 * @projectDescription giebt den Quellcode für ein Flash-Object zurück oder schreibt es per document.write ins Dokument.
 * @param {String} pfad
 * @param {Int} width
 * @param {Int} height
 * @param {String} wmode
 * @param {String} bgcolor
 * @param {String} id
 * @param {String} alt
 * @param {Boolean} rw
 * @return {String}
 */
function drawFlash(pfad, width, height, wmode, bgcolor, id, alt, rw){
	ausgabe = "";
	if(fl){
		params = false;
		if(pfad.indexOf("?") != -1){
			params = pfad.split("?")[1];
			pfad = pfad.split("?")[0];
		}
		ausgabe += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" name="flash" width="' + width + '" id="' + id + '" height="' + height + '" align="middle">';
		ausgabe += '<param name="allowScriptAccess" value="sameDomain" />';
		if(wmode!=""){ausgabe += '<param name="wmode" value="' + wmode + '" />';}
		if(bgcolor!=""){ausgabe += '<param name="bgcolor" value="' + bgcolor + '" />';}
		if(params){ausgabe += '<param name="flashvars" value="' + params + '" />';}
		ausgabe += '<param name="movie" value="' + pfad + '" /><param name="menu" value="false" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />';
		ausgabe += '<embed src="' + pfad + '" width="' + width + '" height="' + height + '"';
		if(wmode!=""){ausgabe += ' wmode="' + wmode + '"';}
		if(bgcolor!=""){ausgabe += ' bgcolor="' + bgcolor + '"';}
		if(params){ausgabe += ' flashvars="' + params + '"';}
		ausgabe += ' menu="false" align="middle" quality="high" bgcolor="#ffffff" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" name="flash" />';
		ausgabe += '</object>';
	}
	else{
		ausgabe += alt;
	}
	if(rw){
		document.write(ausgabe);
	}
	return ausgabe;
}


/*/////////////////////////////////////////////////////////////
                      Flash Headlines
/////////////////////////////////////////////////////////////*/
/*
aus:
<h1>Headline</h1>
wird
<div class="classname">//Flash-headline//</div>

Aufruf:
parseHeadline(tag, fhsrc, cssclass, rotations, bgcolor, bordercolor, object);

tag = Tagname der durchgeparst wird
fhsrc = Flash-File für Headline
cssclass = CSS-Klasse für den Div-Layer der um das Flash liegt
width,height,color,fsize => werden aus den CSS-Styles ausgelesen
rotation = Rotationswinkel
bgcolor = Hintergrundfarbe ("" für keine)
bordercolor = Rahmenfarbe ("" für keine)
object = das Objekt in dem die Headlines ersetzt werden
*/
/**
 * @projectDescription ersetzt alle angegebenen Tags durch eine Flash-Headline die sich im object befinden.
 * @param {String} tag
 * @param {String} fhsrc
 * @param {String} cssclass
 * @param {Int} rotations
 * @param {color} bgcolor
 * @param {color} bordercolor
 * @param {HTMLElement} object
 * @return {true}
 */
function parseHeadline(tag, fhsrc, cssclass, rotations, bgcolor, bordercolor, object){
	if(fl){
	zwarr = object.getElementsByTagName(tag);
	for(i=0; i<zwarr.length; i++){
		if(zwarr[i].className=="flashh"){
		akth1 = zwarr[i];
		zw = document.createElement("div");
		zw.className = cssclass;
		fh_content = akth1.innerHTML;
		var from = new Array('&','&amp;','\n','\t','	','"','&qout;','&mdash;','—','&ndash;','–','&sup2;','²');
		var to = new Array('&amp;','%26','','','','%22','%22','%e2%80%93','%e2%80%93','%e2%80%94','%e2%80%94','%C2%B2','%C2%B2');
		for (i=0; i<from.length; i++) {
			fh_content = fh_content.split(from[i]).join(to[i]);
		}
//		fh_content = akth1.innerHTML.replace(/&/g, "&amp;").replace(/&amp;/g, "%26").replace(/\n/g, "").replace(/\t/g, "").split('"').join('%22').split('&quot;').join('%22');
		akth1.parentNode.replaceChild(zw, akth1);
		color = getCurrentStyle(zw, 'color');
		if(color.indexOf('#')==0 && color.length==7){
			color = color.substr(1, 6);
		}
		else if(color.indexOf('#')==0 && color.length==4){
			color = color.substr(1, 1)+color.substr(1, 1)+color.substr(2, 1)+color.substr(2, 1)+color.substr(3, 1)+color.substr(3, 1);
		}
		else if(color.indexOf('rgb')==0){
			zwcolor = color.substr(4,color.length-5).split(",");
			zwcolor[0] = (zwcolor[0]*1).toString(16);
			zwcolor[1] = (zwcolor[1]*1).toString(16);
			zwcolor[2] = (zwcolor[2]*1).toString(16);
			if(zwcolor[0].length<2){zwcolor[0] = '0' + zwcolor[0];}
			if(zwcolor[1].length<2){zwcolor[1] = '0' + zwcolor[1];}
			if(zwcolor[2].length<2){zwcolor[2] = '0' + zwcolor[2];}
			color = zwcolor[0]+zwcolor[1]+zwcolor[2];
		}
		height = zw.offsetHeight-((getCurrentStyle(zw, 'padding-top').replace(/px/g,'')*1)+(getCurrentStyle(zw, 'padding-bottom').replace(/px/g,'')*1));
		width = zw.offsetWidth-((getCurrentStyle(zw, 'padding-left').replace(/px/g,'')*1)+(getCurrentStyle(zw, 'padding-right').replace(/px/g,'')*1));
		if((getCurrentStyle(zw, 'border-top-width').replace(/px/g,'')*1)+""!="NaN"){		
			height = height-(getCurrentStyle(zw, 'border-top-width').replace(/px/g,'')*1);
		}
		if((getCurrentStyle(zw, 'border-bottom-width').replace(/px/g,'')*1)+""!="NaN"){		
			height = height-(getCurrentStyle(zw, 'border-bottom-width').replace(/px/g,'')*1);
		}
		if((getCurrentStyle(zw, 'border-left-width').replace(/px/g,'')*1)+""!="NaN"){		
			width = width-(getCurrentStyle(zw, 'border-left-width').replace(/px/g,'')*1);
		}
		if((getCurrentStyle(zw, 'border-right-width').replace(/px/g,'')*1)+""!="NaN"){		
			width = width-(getCurrentStyle(zw, 'border-right-width').replace(/px/g,'')*1);
		}
		fsize = getCurrentStyle(zw, 'font-size').replace(/px/g,'');
		zw.innerHTML = drawFlash(fhsrc + "?txt=" + fh_content + "&txtmaxwidth=" + width + "&txtcolor=" + color + "&fsize=" + fsize + "&txtrotation=" + rotations + "&txtbgcolor=" + bgcolor + "&txtbordercolor=" + bordercolor, width, height, "transparent", "", "", "", false);
		}
	}
	return true;
	}
	return false;
}
function getCurrentStyle(obj, prop){  // Gibt den Wert des abgefragten CSS-Wertes zurück
	if(document.defaultView && document.defaultView.getComputedStyle){
		if(document.defaultView.getComputedStyle(obj,"").getPropertyValue(prop)){
			return document.defaultView.getComputedStyle(obj,"").getPropertyValue(prop);
		}
		return "";
	}
	else if(window.getComputedStyle){
		if(window.getComputedStyle(obj,"").getPropertyValue(prop)){
			return window.getComputedStyle(obj,"").getPropertyValue(prop);
		}
		return "";
	}
	else if(obj.currentStyle){
		if(obj.currentStyle.getAttribute(prop.replace(/\-/g, ""))){
			return obj.currentStyle.getAttribute(prop.replace(/\-/g, ""));
		}
		return "";
	}
	else{
		if(obj.style.getAttribute(prop.replace(/\-/g, ""))){
			return obj.style.getAttribute(prop.replace(/\-/g, ""));
		}
		return "";
	}
}


parseHeadline('h1', '/flash/achen.swf', 'flashh1', 0, '', '', document.getElementById('content'));
parseHeadline('h2', '/flash/achen.swf', 'flashh2', 0, '', '', document.getElementById('content'));

