// some constants
var requiredVersion = 9;
var actualVersion   = 0;
/*var useRedirect     = false;*/
var hasRightVersion = false;
var jsVersion       = 1.1;
var flashEnabled    = false; 

var isIE    = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin   = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isHTTPS = (document.URL.indexOf('https:') == 0);

function detectFlash() {  

    if (navigator.mimeTypes && 
		navigator.mimeTypes["application/x-shockwave-flash"] && 
		navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin &&
		navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin["description"])
	{
		flashEnabled = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
		if(flashEnabled["description"].charAt(17)!=".")
			actualVersion = parseInt(flashEnabled["description"].substring(16,18));
		else
			actualVersion = parseInt(flashEnabled["description"].charAt(16));
	}
	else if (isIE)
	{
		// IE Windows only -- check for ActiveX control, have to hide code in eval from Netscape (doesn't like try)
		eval ('try {var xObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if (xObj)	flashEnabled = true; xObj = null; } catch (e)	{}');

		// same way to determine flash version
		eval ('for (var version = 10; version > 0; version--) { try { var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + version); actualVersion = version; break; } catch (e) { } }');
	
	}

  // below this line is only old stuff, but it seems to work, so I'll keep it...

  if(navigator.userAgent.indexOf("WebTV") != -1) actualVersion = 4;  
  
  if (actualVersion >= requiredVersion) {
    hasRightVersion = true;
  }else{
	hasRightVersion = false;
  }
}

function assembleFlash(flashURL, flashWidth, flashHeight, align, theUrl, theTarget, addParams, wmode) {
	var flashCode = '';
	
	if (flashURL != "")
	{
			var insertFlashUrl = '';

			if (theUrl != "") {
				if(flashURL.indexOf("?")==-1){
					
				insertFlashUrl = flashURL + "?theLink=" + theUrl; 
				}
				else
				{
					
					insertFlashUrl = flashURL + "&theLink=" + theUrl; 
				}
				if (theTarget!="") {
					insertFlashUrl += "&theTarget=" + theTarget;

				}
			} else {
				insertFlashUrl = flashURL;
			}


			if (addParams!="") {
				insertFlashUrl += addParams;
			}
			
			var protocol = isHTTPS ? 'https': 'http';
			var windowMode = 'transparent';
			if (wmode!=""&&wmode!=undefined&&wmode!=null)
			{
				windowMode = wmode;
			}
			
			flashCode = '<OBJECT class="nfw" CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="'+flashWidth+'" HEIGHT="'+flashHeight+'" ';
			if (align!="")
			{
				flashCode += 'align="' + align + '" ';
			}		
			flashCode += 'CODEBASE="'+protocol+'://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><PARAM id="moomoo" NAME="MOVIE" VALUE="'+insertFlashUrl+'"><PARAM NAME="PLAY" VALUE="true"><PARAM NAME="LOOP" VALUE="true"><PARAM NAME="QUALITY" VALUE="high"><PARAM NAME="MENU" VALUE="false"><PARAM NAME="scale" VALUE="exactfit"><PARAM NAME="wmode" VALUE="'+windowMode+'"><EMBED SRC="'+insertFlashUrl+'" WIDTH="'+flashWidth+'" HEIGHT="'+flashHeight+'" ';
			if (align!="")
			{
				flashCode += 'align="' + align + '" ';
			}
			flashCode += 'PLAY="true" wmode="'+windowMode+'" LOOP="true" QUALITY="high" scale="exactfit" MENU="false" TYPE="application/x-shockwave-flash" PLUGINSPAGE="'+protocol+'://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"><\/EMBED><\/OBJECT>';
	}
	return flashCode;
}

// Added targetId as a possible parameter - this allows the writing of the swf into a specified
// element based on its ID
// redirectBln allows the page to redirect to redirectLink if the user doesnt have Flash rather than swaping content
function writeSimpleFlash(flashURL, flashWidth, flashHeight, altContext, addParams, targetId, wmode, redirectBln, redirectLink) {
	detectFlash();

	if (hasRightVersion) {
		if(targetId){
			var myTarget = document.getElementById(targetId);
			myTarget.innerHTML = assembleFlash(flashURL, flashWidth, flashHeight, "", "", "", addParams,wmode);
		}
		else{
			document.write(assembleFlash(flashURL, flashWidth, flashHeight, "", "", "", addParams,wmode));
		}
	} else {
		
		if(redirectBln){
			window.location = redirectLink;
		}
		else{
			document.write(altContext);
		}
	}

}

function writeFlash(flashURL, flashWidth, flashHeight, align, theUrl, imgURL, altText, firstpart, linkpart, lastpart, popupwidth, popupheight, theTarget) {

	detectFlash();
	/*if (!useRedirect) {   */

	var textLink = '';
	if (linkpart != ""){
		textLink += firstpart;

		if (theTarget.toString().toLowerCase().indexOf("popup")==-1){
			textLink += ' <a href="'+theUrl+'" target="'+theTarget+'" class="nfw">';
		} else {
			textLink += ' <a class="nfw" href="javascript:void(null)" onClick="javascript:window.open(\''+theUrl+'\',\'win0\',\'width='+popupwidth+',height='+popupheight+',location=1,status=1,menubar=1,toolbar=1,resizable=1, scrollbars=yes\').focus()">';
		}
		textLink += linkpart;
		textLink += '</a> ' + lastpart;
	}

	var flashBit = assembleFlash(flashURL, flashWidth, flashHeight, align, theUrl, theTarget, ""); 
	
	var imgBit = '';
	if (imgURL != "")
	{
		if (theTarget.toString().toLowerCase().indexOf("popup")==-1){
			imgBit = ' <a class="nfw" href="'+theUrl+'" target="'+theTarget+'"><img class="nfw" src="'+imgURL+'" ';
			
		} else {
			imgBit = '<a class="nfw" href="javascript:void(null)" onClick="javascript:window.open(\''+theUrl+'\',\'win0\',\'width='+popupwidth+',height='+popupheight+',location=1,status=1,menubar=1,toolbar=1,resizable=1, scrollbars=yes\').focus()"><img class="nfw" src="'+imgURL+'" ';
		}
		if (align!="")
		{
			imgBit += 'style="float:'+align+';" ';
		}
		imgBit += 'alt="'+altText+'" /></a>';
	}

	var printBuf = '';
	if(hasRightVersion && flashURL != "") { 
			if (align == "")
			{
				printBuf = flashBit;
			}
			if (align.toLowerCase() == "left" || align.toLowerCase() == "right" || align.toLowerCase() == "top")
			{
				printBuf += flashBit + "<br>" + textLink;
			}
			if (align.toLowerCase() == "bottom")
			{
				printBuf += textLink + "<br>" + flashBit;
			}
			if (align.toLowerCase() == "text only" || align.toLowerCase() == "image only")
			{
				printBuf += flashBit;
			}
	} else { 
			if (align == "")
			{
				printBuf = imgBit;
			}
			if (align.toLowerCase() == "text only")
			{
				printBuf += textLink;
			}
			if (align.toLowerCase() == "image only")
			{
				printBuf += imgBit;
			}
			if (align.toLowerCase() == "left" || align.toLowerCase() == "right" || align.toLowerCase() == "top")
			{
				printBuf += imgBit + "<br>" + textLink;
			}
			if (align.toLowerCase() == "bottom")
			{
				printBuf += textLink + "<br>" + imgBit;
			}
	}

	document.write(printBuf);

	/*}*/
}

function writeFlashSecure(flashURL, flashWidth, flashHeight, align, theUrl, isSecure, serverName, imgURL, altText, firstpart, linkpart, lastpart, popupwidth, popupheight, theTarget) {
	detectFlash();

	var theUrlSecured = "";

	

	if (theUrl!="" && theUrl.substring(0,4)=='http') {
		theUrlSecured = theUrl;
		//theTarget="popup";
	} 
	else if (theUrl!="" && theUrl.indexOf('/')==0)
	{
		if (isSecure == 'true') {
			theUrlSecured = "https://" + serverName + theUrl;
		} else if (isSecure == 'false')	{
			theUrlSecured = "http://" + serverName + theUrl;
		} else {
			theUrlSecured = theUrl;
		}
		//theTarget="";
	}
	else
	{	
		if (isSecure == 'true') {
			theUrlSecured = "https://" + theUrl;
		}
		else {
			theUrlSecured = "http://" + theUrl;		
		}
		//theTarget="";
	}

	/* 
		This change got introduced since target page for hyperlinks is controlled by the data in a dedicated column in
		the TCEO_PROMOTIONS_LOCALISED table. So, no need to mock around based on the hyperlinks 
		Kannan Pasupathy	27 June 2009
	*/
	if(theTarget != null && theTarget.toString().toLowerCase() != 'popup'){
		theTarget = "";
	}
	var convertedAlign = align;
	if (align.toLowerCase() == "l") {
		convertedAlign = "left";
	} else if (align.toLowerCase() == "r") {
		convertedAlign = "right";
	} else if (align.toLowerCase() == "t") {
		convertedAlign = "top";
	} else if (align.toLowerCase() == "b") {
		convertedAlign = "bottom";
	} else if (align.toLowerCase() == "to") {
		convertedAlign = "text only";
	} else if (align.toLowerCase() == "io") {
		convertedAlign = "image only";
	} 

	var textLink = '';
	//if (linkpart != ""){
		if (theTarget.toString().toLowerCase().indexOf("popup")==-1){
			textLink += ' <a class="nfw" href="'+theUrlSecured+'" target="'+theTarget+'">';
		} else {
			textLink += ' <a class="nfw" href="'+theUrlSecured+'" target="_blank">';
		}
		textLink += '<span class="promoContent">';
		textLink += '<span class="title">'+ linkpart +'</span>';
		textLink += '<span class="content">'+ firstpart +'</span>'
		textLink += '</span></a>' ;
	//}


	var flashBit = assembleFlash(flashURL, flashWidth, flashHeight, convertedAlign, theUrlSecured, theTarget, ""); 
	
	var imgBit = '';
	if (imgURL != "")
	{
		if (theTarget.toString().toLowerCase().indexOf("popup")==-1){
			imgBit = ' <img class="nfw" src="'+imgURL+'" ';
			
		} else {
			imgBit = '<img class="nfw" src="'+imgURL+'" ';
		}
		
		if (altText!=null && altText!="") {
			imgBit += 'alt="'+altText+'"';
		} 
		imgBit += ' />';
	}

	var printBuf = '';
	if(hasRightVersion && flashURL != "") { 
			if (convertedAlign.toLowerCase() == "left" || convertedAlign.toLowerCase() == "right" || convertedAlign.toLowerCase() == "top") {
				printBuf += textLink + flashBit;
			} else if (convertedAlign.toLowerCase() == "bottom") {
				printBuf += textLink + flashBit;
			} else {
				printBuf = flashBit;
			}
	} else { 
			if (convertedAlign == "")
			{
				printBuf = imgBit;
			}
			if (convertedAlign.toLowerCase() == "text only")
			{
				printBuf += textLink;
			}
			if (convertedAlign.toLowerCase() == "image only")
			{
				printBuf += imgBit;
			}
			if (convertedAlign.toLowerCase() == "left" || convertedAlign.toLowerCase() == "right" || convertedAlign.toLowerCase() == "top")
			{
				printBuf += textLink + imgBit;
			}
			if (convertedAlign.toLowerCase() == "bottom")
			{
				printBuf += textLink + imgBit;
			}
	}
	document.write(printBuf);

/*	}*/
}

function toggleFlashAltContent(flashContainer, altContainer, flashURL, flashWidth, flashHeight, addParams) {
	
	detectFlash();

	var flashContainerObj = document.getElementById(flashContainer);
	var altContainerObj = document.getElementById(altContainer);
	
	if(hasRightVersion) {
		flashContainerObj.className = 'visible';
		altContainerObj.className = 'hidden';
		if(flashURL) flashContainerObj.innerHTML = assembleFlash(flashURL, flashWidth, flashHeight, "", "", "", addParams); 
		
	}else{
		flashContainerObj.className = 'hidden';
		altContainerObj.className = 'visible';	
	}

}

/*
	Similar to 'toggleFlashAltContent', but hides and shows to elements without writing the flash out
*/
function toggleContent(flashContainer, altContainer) {
	
	detectFlash();

	var flashContainerObj = document.getElementById(flashContainer);
	var altContainerObj = document.getElementById(altContainer);
	
	if(hasRightVersion) {
		flashContainerObj.className = 'visible';
		altContainerObj.className = 'hidden';
		
	}else{
		flashContainerObj.className = 'hidden';
		altContainerObj.className = 'visible';	
	}

}

/*
	Similar to 'writeFlashSecure', but returns a javascript variable containing the content, as opposed to writing out the content.
*/
function getFlashSecureHTMLThirdParties(flashURL, flashWidth, flashHeight, align, theUrl, isSecure, serverName, imgURL, altText, firstpart, linkpart, lastpart, popupwidth, popupheight, theTarget) {

	detectFlash();
	var theUrlSecured = "";

	// always want the promo to be in a new window.
	theTarget="blank";

	if (theUrl!="" && theUrl.substring(0,4)=='http') {
		theUrlSecured = theUrl;
	} 
	else if (theUrl!="" && theUrl.indexOf('/')==0)
	{
		if (isSecure == 'true') {
			theUrlSecured = "https://" + serverName + theUrl;
		} else if (isSecure == 'false')	{
			theUrlSecured = "http://" + serverName + theUrl;
		} else {
			theUrlSecured = theUrl;
		}
	}
	else
	{	
		if (isSecure == 'true') {
			theUrlSecured = "https://" + theUrl;
		}
		else {
			theUrlSecured = "http://" + theUrl;		
		}
	}
	

	var convertedAlign = align;
	if (align.toLowerCase() == "l") {
		convertedAlign = "left";
	} else if (align.toLowerCase() == "r") {
		convertedAlign = "right";
	} else if (align.toLowerCase() == "t") {
		convertedAlign = "top";
	} else if (align.toLowerCase() == "b") {
		convertedAlign = "bottom";
	} else if (align.toLowerCase() == "to") {
		convertedAlign = "text only";
	} else if (align.toLowerCase() == "io") {
		convertedAlign = "image only";
	} 

	var textLink = '';
	if (linkpart != ""){
		textLink += firstpart;	
		textLink += ' <a href="'+theUrlSecured+'" target="'+theTarget+'" class="nfw">';
		textLink += linkpart;
		textLink += '</a> ' + lastpart;
	}
	
	// check protocol of the currrent page
	if (flashURL!="" && flashURL.indexOf('/')==0)
	{
		if (isHTTPS) {
			flashURL = "https://" + serverName + flashURL;
		}
		else{
			flashURL = "http://" + serverName + flashURL;
		} 
	}


	var flashBit = assembleFlash(flashURL, flashWidth, flashHeight, convertedAlign, theUrlSecured, theTarget, ""); 
	
	var imgBit = '';
	if (imgURL != "")
	{
		// check protocol of the currrent page
		if (imgURL!="" && imgURL.indexOf('/')==0)
		{
			if (isHTTPS) {
				imgURL = "https://" + serverName + imgURL;
			}
			else{
				imgURL = "http://" + serverName + imgURL;
			} 
		}

		//imgBit = ' <a href="'+theUrlSecured+'" target="'+theTarget+'"><img src="'+imgURL+'" ';
		imgBit = '<a href="'+theUrlSecured+'" target="'+theTarget+'" class="nfw"><img class="nfw" src="'+imgURL+'" ';
		
		if (convertedAlign.toLowerCase() == "left" || convertedAlign.toLowerCase() == "right" || convertedAlign.toLowerCase() == "top" || convertedAlign.toLowerCase() == "bottom")
		{
			imgBit += 'style="float:'+convertedAlign+';" ';
		} 
		if (altText!="" && altText!="") {
			imgBit += 'alt="'+altText+'"';
		} 
		imgBit += ' /></a>';
	}

	var printBuf = '';
	if(hasRightVersion && flashURL != "") { 
			if (convertedAlign.toLowerCase() == "left" || convertedAlign.toLowerCase() == "right" || convertedAlign.toLowerCase() == "top") {
				printBuf += flashBit + "<br>" + textLink;
			} else if (convertedAlign.toLowerCase() == "bottom") {
				printBuf += textLink + "<br>" + flashBit;
			} else {
				printBuf = flashBit;
			}
	} else { 
			if (convertedAlign == "")
			{
				printBuf = imgBit;
			}
			if (convertedAlign.toLowerCase() == "text only")
			{
				printBuf += textLink;
			}
			if (convertedAlign.toLowerCase() == "image only")
			{
				printBuf += imgBit;
			}
			if (convertedAlign.toLowerCase() == "left" || convertedAlign.toLowerCase() == "right" || convertedAlign.toLowerCase() == "top")
			{
				printBuf += imgBit + "<br>" + textLink;
			}
			if (convertedAlign.toLowerCase() == "bottom")
			{
				printBuf += textLink + "<br>" + imgBit;
			}
	}
	return printBuf;
}

function assemblePortletFlash(flashURL, flashWidth, flashHeight, align, theUrl, theTarget, addParams, wmode, flashVars) {
	var flashCode = '';
	if (flashURL != "")
	{
			var insertFlashUrl = '';

			if (theUrl != "") {
				insertFlashUrl = flashURL + "?theLink=" + theUrl; 
				if (theTarget!="") {
					insertFlashUrl += "&theTarget=" + theTarget;
				}
			} else {
				insertFlashUrl = flashURL;
			}

			if (addParams!="") {
				insertFlashUrl += addParams;
			}
			
			var protocol = isHTTPS ? 'https': 'http';
			var windowMode = 'opaque';
			if (wmode!=""&&wmode!=undefined&&wmode!=null)
			{
				windowMode = wmode;
			}
			
			flashCode = '<OBJECT class="nfw" WIDTH="'+flashWidth+'" HEIGHT="'+flashHeight+'" ';
			if (align!="")
			{
				flashCode += 'align="' + align + '" ';
			}		
			flashCode += 'CODEBASE="'+protocol+'://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><PARAM id="moomoo" NAME="MOVIE" VALUE="'+insertFlashUrl+'"><PARAM NAME="PLAY" VALUE="true"><PARAM NAME="LOOP" VALUE="true"><PARAM NAME="QUALITY" VALUE="high"><PARAM NAME="MENU" VALUE="false"><PARAM NAME="scale" VALUE="exactfit"><PARAM NAME="wmode" VALUE="'+windowMode+'"><PARAM NAME="FlashVars" VALUE="'+flashVars+'"><embed SRC="'+insertFlashUrl+'" WIDTH="'+flashWidth+'" HEIGHT="'+flashHeight+'" ';
			if (align!="")
			{
				flashCode += 'align="' + align + '" ';
			}
			flashCode += 'PLAY="true" wmode="'+windowMode+'" LOOP="true" QUALITY="high" QUALITY="high" scale="exactfit" MENU="false" FlashVars="'+flashVars+'" TYPE="application/x-shockwave-flash" PLUGINSPAGE="'+protocol+'://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"><\/embed><\/OBJECT>';
	}
	
    //alert(flashCode);
    
	return flashCode;
}
function writePortletFlash(flashURL, flashWidth, flashHeight, altContext, addParams, targetId, wmode, flashVars) {
	detectFlash();

	if (hasRightVersion) {
		if(targetId){
			var myTarget = document.getElementById(targetId);
			myTarget.innerHTML = assemblePortletFlash(flashURL, flashWidth, flashHeight, "", "", "", addParams, wmode, flashVars);
		}
		else{
			document.write(assemblePortletFlash(flashURL, flashWidth, flashHeight, "", "", "", addParams, wmode, flashVars));
		}
	} else {
		document.write(unescape(altContext));
	}
	
}

// below is the standard altternative content

var standardAltContent = '<h3>Flash Player required</h3><p>To view and use this application you need <a href="http://get.adobe.com/flashplayer/" target="_blank"> Flash ' + requiredVersion.toString() + '.0</a> or higher.</p><p>You can download this software for free at <a href="http://get.adobe.com/flashplayer/" target="_blank">adobe.com</a></p>';






