/**
 * Om brukeren har rett versjon av flash
 * @var	boolean
 */
var hasRightVersion = false;
/**
 * Om brukeren har installert versjon 4 av flash
 * @var	boolean
 */
var flash4Installed = false;
/**
 * Om brukeren har installert versjon 5 av flash
 * @var	boolean
 */
var flash5Installed = false;
/**
 * Om brukeren har installert versjon 6 av flash
 * @var	boolean
 */
var flash6Installed = false;
/**
 * Om brukeren har installert versjon 7 av flash
 * @var	boolean
 */
var flash7Installed = false;
/**
 * Hvilken flashversjon som er påkrevd, kan overstyres i funksjonen printFlashXHTML()
 * @var	integer
 */
var requiredFlashVersion = 6;
/**
 * Maks versjoner av flash som er laget
 * @var	integer
 */
var maxVersion 			= 7;
/**
 * Installert versjon av flash hos brukeren
 * @var	integer
 */
var installedVersion	= 0;
/**
 * Om brukeren bruker Internet Explorer eller ikke
 * @var	boolean
 */
var isIE 	= (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
/**
 * Om brukeren sitter på Windows eller ikke
 * @var	boolean
 */
var isWin 	= (navigator.appVersion.indexOf("Windows") != -1) ? true : false;

/**
 * Om brukeren har internet explorer og sitter på windows, skriv ut vbscript som sjekker flashversjon
 */
if ((isIE) && (isWin)) {
	document.write('<scr' + 'ipt language="VBScript"\>\n');
	document.write('on error resume next \n');
	document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
	document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');
	document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');
	document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');
	document.write('</scr' + 'ipt\> \n');
}


/**
 * Sjekker om brukeren har rett flash versjon
 *
 * @access public
 * @param integer	intRequired	Hvilken flashversjon som er påkrevd
 * @return boolean	Returnerer verdien av variablen hasRightVersion
 * @see printFlashXHTML()
 * @since 1.0.2
 */
function checkForFlash(intRequired){
	hasRightVersion = false;
	if(!isIE){
		flash4Installed = false;
		flash5Installed = false;
		flash6Installed = false;
		flash7Installed = false;
	}
	requiredFlashVersion = (intRequired) ? intRequired : requiredFlashVersion;
	if(navigator.plugins){
		if(navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]){
			var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
			var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
			flash4Installed = flashVersion == 4;
			flash5Installed = flashVersion == 5;
			flash6Installed = flashVersion >= 6;
			flash7Installed = flashVersion >= 7;
		}
	}
	for(var i = 4; i <= maxVersion; i++){
		if (eval("flash" + i + "Installed") == true){
			installedVersion = i;
		}
	}
	if (installedVersion >= requiredFlashVersion){
		hasRightVersion = true;
	}
	return hasRightVersion;
}

/**
 * Skriver ut object tag som er XHTML kompatibel for å sette inn flash element
 *
 * @access public
 * @param integer	intRequired			Hvilken flashversjon brukeren må ha
 * @param string	strFlashSwfUrl		URL til flash elementet
 * @param integer	intWidth			Bredde på flashelementet
 * @param integer	intHeight			Høyde på flashelementet
 * @param string	strFallbackImageUrl	URL til fallbackbilde
 * @param string	strLink				Link som blir lagt til fallbackbildet om det er satt
 * @param string	strSitemapUrl		Eventuellt imagemap som skal legges på fallbackbildet
 * @param string	strFallbackHTML		Alternativ HTML for å legge inn om ikke bruker har rett flashversjon
 * @param string	strColor			Bakgrunnsfarge på flashen (ink #), default satt til ingenting, dvs ingen param sendes til flash
 * @return void
 * @see checkForFlash()
 * @since 1.0.2
 */
function printFlashXHTML(intRequired,strFlashSwfUrl,intWidth,intHeight,strFallbackImageUrl,strLink,strSitemapUrl,strFallbackHTML,strColor){
	var str = '';
	var sitemap = (strSitemapUrl) ? ' usemap="#'+strSitemapUrl+'" ':''; 
	var strColorUse = (strColor) ? '<param name="bgcolor" value="'+strColor+'">' : '';
	if(checkForFlash(intRequired)){
		str += '<object type="application/x-shockwave-flash" data="' + strFlashSwfUrl + '" width="' + intWidth + '" height="' + intHeight + '">';
		str += '<param name="movie" value="' + strFlashSwfUrl + '" />';
		str += '<param name="menu" value="false" />';
		str += '<param name="quality" value="high" />';
		str += strColorUse;
		str += '</object>';
	}else{
		if(strFallbackImageUrl){
			if(strLink){
				str += '<div><a href="'+strLink+'"><img src="' + strFallbackImageUrl + '" width="' + intWidth + '" height="' + intHeight + '" alt="" '+sitemap+'/></a></div>';
			}else{
				str += '<div><img src="' + strFallbackImageUrl + '" width="' + intWidth + '" height="' + intHeight + '" alt="" '+sitemap+'/></div>';
			}
		} else if (strFallbackHTML) {
			str += strFallbackHTML;
		}
	}
	document.write(str);	
}