/** Flash Detection * */
var flashMinVer = 6;

/** error handling
function stopError() { return true; }
window.onerror = stopError;
 **/

var ua = navigator.userAgent.toLowerCase();

var isMac   = (ua.indexOf('mac')>-1)?1:0;
var isWin   = (ua.indexOf('win')>-1)?1:0;

var isGecko   = (ua.indexOf('gecko')>-1)?1:0;
var isSafari   = (ua.indexOf('safari')>-1)?1:0;

var isOpera = (ua.indexOf('opera')>-1)?1:0;

var isIE    = (ua.indexOf('msie')>-1 && !isOpera)?1:0;

var isIEWin = (isIE && isWin && !isOpera)?1:0;
var isIEMac = (isIE && isMac && !isOpera)?1:0;
var isIEWinCE  = (isIE && ua.indexOf('windows ce')>-1)?1:0;

var isWPrint   = (window.print)?1:0;

var isDOM   = (document.getElementById)?1:0;
var isIE4   = (isIE && !isDOM)?1:0;
var isNS4   = (document.layers)?1:0;

if(!window.Node && isDOM){
  var Node = {
    ELEMENT_NODE: 1,
    ATTRIBUTE_NODE: 2,
    TEXT_NODE: 3,
    COMMENT_NODE: 8,
    DOCUMENT_NODE: 9,
    DOCUMENT_FRAGMENT_NODE: 11
    }
}


/** Flash Detection **/

function detectFlash(){
  return detectFlashVersion(6);
}

function detectFlashVersion(version){
  isFlashVersion = false;
  var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
  if ( plugin ) {
     var words = navigator.plugins["Shockwave Flash"].description.split(" ");
     for (var i = 0; i < words.length; ++i){
    if (isNaN(parseInt(words[i])))
    continue;
    var wsPluginVersion = words[i];
     }
     isFlashVersion = wsPluginVersion >= version;
  }
  /*@cc_on @*/
  /*@
  isFlashVersion = detect_ie_flash(version);
  @*/
  return isFlashVersion;
}

/** Plugin Detection **/
function detectPlugin(wsMime,wsClassId){
  wsPlugCanPlay = false;
  plugin = (navigator.mimeTypes && navigator.mimeTypes[wsMime]) ? navigator.mimeTypes[wsMime].enabledPlugin : 0;
  if (plugin) { wsPlugCanPlay = true; }
  /*@cc_on @*/
  /*@
  wsPlugCanPlay = detect_ie_plugin(wsClassId);
  @*/
  return wsPlugCanPlay;
}

/* FlashOutput mit Fallback (inv) */

function getSimpleFlash(movie, w, h) {
	return getFlash(movie, w, h, '', '', '', '', '', '', 'inv');
}

function getBaseFlash(movie, w, h, base) {
	return getFlash(movie, w, h, base, '', '', '', '', '', 'inv');
}

function getSimpleTransFlash(movie, w, h) {
	return getFlash(movie, w, h, '', '', '', '', 'transparent', '', 'inv');
}

function getBaseTransFlash(movie, w, h, base) {
	return getFlash(movie, w, h, base, '', '', '', 'transparent', '', 'inv');
}

/* FlashOutput ohne Fallback */

function getSimpleFlashOnly(movie, w, h) {
	return getFlashOnly(movie, w, h, '', '', '', '', '', '');
}

function getBaseFlashOnly(movie, w, h, base) {
	return getFlashOnly(movie, w, h, base, '', '', '', '', '');
}

function getSimpleTransFlashOnly(movie, w, h) {
	return getFlashOnly(movie, w, h, '', '', '', '', 'transparent', '');
}

function getBaseTransFlashOnly(movie, w, h, base) {
	return getFlashOnly(movie, w, h, base, '', '', '', 'transparent', '');
}

/* FlashOutput ohne Fallback mit _root.Variablen (Flashvars) */

function getSimpleVarsFlashOnly(movie, w, h, vars) {
	return getFlashOnly(movie, w, h, '', '', '', '', '', vars);
}

function getBaseVarsFlashOnly(movie, w, h, base, vars) {
	return getFlashOnly(movie, w, h, base, '', '', '', '', vars);
}

function getSimpleVarsTransFlashOnly(movie, w, h, vars) {
	return getFlashOnly(movie, w, h, '', '', '', '', 'transparent', vars);
}

function getBaseVarsTransFlashOnly(movie, w, h, base, vars) {
	return getFlashOnly(movie, w, h, base, '', '', '', 'transparent', vars);
}

/* Basisfunktion */
function getFlashOnly(movie, w, h, base, version, bgcolor, scale, mode,
		flashvars) {

	var ieParms = '';
	var embParms = '';

	var dim = '';
	dim += ' width="' + w + '" height="' + h + '"';
	dim += ' style="width: ' + w / 16 + 'em; height: ' + h / 16 + 'em;"';

	if (version == null || version == '') {
		version = flashMinVer;
	}
	if (version != null && base != '') {
		movie = base + movie;
		ieParms += '<param name="base" value="' + base + '" />';
		embParms += ' base="' + base + '"';
	}
	if (bgcolor != null && bgcolor != '') {
		ieParms += '<param name="bgcolor" value="' + bgcolor + '" />';
		embParms += ' bgcolor="' + bgcolor + '"';
	}
	if (scale != null && scale != '') {
		ieParms += '<param name="scale" value="' + scale + '" />';
		embParms += ' scale="' + scale + '"';
	}
	if (mode != null && mode != '') {
		ieParms += '<param name="wmode" value="' + mode + '" />';
		embParms += ' wmode="' + mode + '"';
	}
	if (flashvars != null && flashvars != '') {
		ieParms += '<param name="flashvars" value="' + flashvars + '" />';
		embParms += ' flashvars="' + flashvars + '"';
	}

	var str = '';
	if (isIE) {
		str += '<object ';
		str += 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
		str += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=';
		str += version;
		str += ',0,0,0"';
		str += dim;
		str += '">';
		str += '<param name="movie" value="';
		str += movie;
		str += '" />';
		str += ieParms;

		str += '<param name="quality" value="autolow" />';
		str += '<param name="menu" value="true" />';
		str += '<param name="wmode" value="opaque" />';		
		str += '</object>';
	} else {
		str += '<embed src="';
		str += movie;
		str += '"';
		str += dim;
		str += embParms;
		str += ' quality="autolow" menu="true" ';
		str += ' type="application/x-shockwave-flash"';
		str += ' pluginspace="http://www.adobe.com/go/getflashplayer_de" \/>';
		str += '<param name="wmode" value="opaque" />';		
	}

	return str;
}

function getFlash(movie, w, h, base, version, bgcolor, scale, mode, flashvars,
		klasse) {

	var htmlUrl = location.href.split('#')[0];
	htmlUrl += (location.search.indexOf('?') == -1) ? '?noflash' : '&noflash';

	var str = '';
	str = getFlashOnly(movie, w, h, base, version, bgcolor, scale, mode,
			flashvars);
	str += '<p class="' + klasse + '"><a href="' + htmlUrl
			+ '">HTML-Version</a></p>';

	return str;
}

function getFlashLink(loc) {
	var flashUrl = loc.href;
	if (loc.search && loc.search == '?noflash') {
		flashUrl = flashUrl.replace(/\?noflash/i, '');
	} else if (loc.search && loc.search != '?noflash') {
		flashUrl = flashUrl.replace(/&noflash/i, '');
	}
	return flashUrl;
}

function getImgFallback(src, w, alt, url) {
	var str = '';
	str += '<a title="Link öffnet in neuem Fenster" href="' + url + '"><img src="' + src + '" alt="' + alt + '" class="wsFallback wsIMG' + w + 'b"  /></a>';
	str += '<p class="inv"><a href="' + getFlashLink(location) + '">Flash-Version</a></p>';

	return str;
}

function getMapFallback(src, w, h, alt, map) {
	var str = '';
	str += '<img src="' + src + '" width="' + w + '" height="' + h + '" alt="'
			+ alt + '" usemap=#"' + map + '"  />';

	str += '<p class="inv"><a href="' + getFlashLink(location) + '">Flash-Version</a></p>';

	return str;
}

