﻿// 
// Detects if the user has flash installed on their machine
// 
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 isMac = (navigator.appVersion.indexOf("Mac") != -1) ? true : false;
var isActiveXDetectable = detectPlugin('Mozilla ActiveX control');

var reqMajorVer = 9;
var reqMinorVer = 0;
var reqRevision = 28;

function BrowserCleanup() {
    if(!isWin || !isIE) {
        var buttonCnt = document.getElementById('buttons2');
        if(buttonCnt)
            buttonCnt.innerHTML = '';
    }
}

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];
			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;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer() {
	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;
	}
}

// 
// Detects if the user has the Windows Media Player plugin
// 
function detectPlugin() {
	var daPlugins = detectPlugin.arguments;
	var isPluginFound = false;

	if(navigator.plugins && navigator.plugins.length > 0) {
		var pluginsArrayLength = navigator.plugins.length;
		for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
			var numFound = 0;
			for(namesCounter=0; namesCounter < daPlugins.length; namesCounter++){
				if(navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) > -1){
					return true; // we have found the ActiveX plugin
				}
			}
		}
	}else {
		// Check to see if we can create an object, IE doesn't support 'navigator.plugins' (always empty)
		try {
			var check = new ActiveXObject('MediaPlayer.MediaPlayer.1');
			if(check)
				isPluginFound = true;
		}catch(e){}
	}

	return isPluginFound;
}

// 
// Outputs the Windows Media Player Object
// 
function WriteWMPObject(url, height, width, replacementDiv) {
    if(!isActiveXDetectable && !isMac) {
        // redirect to an error page
        return;
    }
    var str = '';
    var objectId = 'video1';
/*
        str += '<object type="video/x-ms-wmv" id="' +objectId +'" data="' +url +'" width="' +width +'" height="' +height +'"> ';
        str += ' <param name="src" value="' +url +'" />';
        str += ' <param name="AutoStart" value="true"> ';
        str += ' <param name="ShowControls" value="false"> ';
        str += ' <param name="qtsrcdontusebrowser" value="true" /> ';
        str += ' <param name="EnableJavascript" value="true" /> ';
        str += ' <param name="InvokeURLs" value="true"> ';
        str += '</object>\n';
        
        document.getElementById(replacementDiv).innerHTML = str;
        BrowserCleanup();
*/
        
    if(isWin) {
        str += '<object id="' +objectId +'" width="' +width +'" height="' +height +'" ';
		str += ' classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"';
		str += ' codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" ';
		str += ' align="baseline" border="0" ';
		str += ' standby="Loading Microsoft Windows Media Player components..." ';
		str += ' type="application/x-mplayer2"> ';
		str += ' <param name="FileName" VALUE="' +url +'" ';
		str += ' <param name="ShowControls" value="false"> ';
		str += ' <param name="ShowPositionControls" value="false"> ';
		str += ' <param name="ShowAudioControls" value="false"> ';
		str += ' <param name="ShowTracker" value="false"> ';
		str += ' <param name="ShowDisplay" value="false"> ';
		str += ' <param name="ShowStatusBar" value="false"> '; 
		str += ' <param name="ShowGotoBar" value="false"> ';
		str += ' <param name="ShowCaptioning" value="false"> ';
		str += ' <param name="AutoSize" value="true"> ';
		str += ' <param name="AutoStart" value="true"> ';
		str += ' <param name="AnimationAtStart" value="true"> ';
		str += ' <param name="TransparentAtStart" value="false"> ';
		str += ' <param name="AllowScan" value="false"> ';
		str += ' <param name="EnableContextMenu" value="false"> ';
		str += ' <param name="ClickToPlay" value="false"> '; 
		str += ' <param name="InvokeURLs" value="true"> ';
		str += ' </object> ';
    } else {
        str += '<EMBED SRC="' +url +'" WIDTH="' +width +'" HEIGHT="' +height +30 +'" ';
		str += ' PLUGINSPAGE="http://www.microsoft.com/windows/windowsmedia/player/wmcomponents.mspx" AUTOSTART="TRUE" /> ';
		//str += ' <NOEMBED>';
		//str += ' <a href="/common/mediacenterV2/includes/faq.aspx">Click for help viewing video on a Mac OS system.</a>';
		//str += '</NOEMBED>';
		//str += '</EMBED>';
    }
    
    // HACK for firefox
    if(!isIE) {
        document.getElementById('divVideo1').style.visibility = 'visible';
        document.getElementById('preLoad').style.display = 'none';
		document.getElementById('preLoad').style.visibility = 'hidden';
    }
    
    document.getElementById(replacementDiv).innerHTML = str;
    BrowserCleanup();
    
    // hide those controls
	if(isWin && isIE)
		document.getElementById(objectId).ShowControls = false;
}

// 
// Outputs the Flash Object
// 
function WriteSWFObject(height, width, replacementDiv, flashVars, owner) {
    var str = '';
    var player = "VideoPlayerV2.swf"; //"VideoPlayer.swf";
//    
//    if(owner == "Scripps")
//        player = "VideoPlayerV2.swf";
//    else
//        player = "VideoPlayer.swf";

    str += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
    str += 'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ';
    str += 'width="' +width +'" ';
    str += 'height=299';
    str += 'id="VideoPlayer" ';
    str += 'align="middle"> ';
    str += '<param name="allowScriptAccess" value="sameDomain" /> ';
    str += '<param name="movie" value="' +player +'" /> ';
    str += '<param name="quality" value="high" /> ';
    str += '<param name="bgcolor" value="#ffffff" /> ';
    str += '<param name="Flashvars" value="' +flashVars +'" />';
    str += '<param name="allowFullScreen" value="true" />';
    str += '<embed src="' +player +'" ';
    str += 'quality="high" ';
    str += 'bgcolor="#ffffff" ';
    str += 'width="' +width +'" ';
    str += 'height=299';
    str += 'name="VideoPlayer" ';
    str += 'align="middle" ';
    str += 'allowScriptAccess="sameDomain" ';
    str += 'type="application/x-shockwave-flash" ';
    str += 'allowFullScreen="true" ';
    str += 'FlashVars="' +flashVars +'" ';
    str += 'pluginspage="http://www.macromedia.com/go/getflashplayer" /> ';
    str += '</object> ';
    
    document.getElementById(replacementDiv).innerHTML = str;
    
    //var test = document.getElementById('currentVideoInfo');
    //test.style.visibility = 'hidden';
}


function updateBannerAd(contractDefId, contractId){
	window.parent.playerAd.location = '/mediacenter/videoad/dayportVideoAd.aspx?contractDefId=' +contractDefId +'&contractId=' +contractId;
}

function trackStats(section, title){
	// TODO: track video play
}

function email(videoId, toEmail, fromEmail, title){
	var url = "/mediacenter/videodetails/dayportdetails.aspx?videoId=" +videoId +"&currentVideoTitle=" +title +"&from=" +fromEmail +"&to=" +toEmail ;
	var currentVideoInfo = document.getElementById('currentVideoInfo');

	if(currentVideoInfo != null)
	    currentVideoInfo.src = url;
}
