/*
	Overlay Player v3.10.3 042011, deployed date: 081211
	NOTE (081211):
		Add ability for toggling between international and domestic player

	Overlay Player v3.9 041311, deployed date: 041411
	Based on Overlay Player v3.8 020311, deployed 031110 (found on testdot)
	
	NOTE (041311):
		Overlay Player v3.8 020311, was found a testdot and not live
		Overlay Player v3.7 031210, was found on live

	Update (041511):
		v3.9 041511b
		Added isSingleVideoSet() to handle both "isSingleVideo" and 
		"singlevideoToggle" variables which can be set by the developer 
		in their local JS file.	

	Update (041311): 
		v3.9 041311
		Updated flash callback handler
	
	Update (041311): 
		v3.8.001 041311
		Update to handle flashvars: "displayBuyLink", "displayShare"
		in conjunction with Universal Flash Player 1.01.02	
*/

/** settings to include with the embed

	//required scripts:
	swfobject2.js
	jquery-1.3.2.min.js (jquery-1.3.2.min.js or higher recommended)

	//this is the only required variable
	feedUrl = "http://www.sonypictures.com/previews/movies/salt.xml";

	//the following need not be defined unless you are enabling them
	singlevideoToggle = false;
	useQAplayer = false; //default is false
	clipName = ""; //default is empty
	parentSwf = "";  //default is flashcontent
	htmlVideoMP4Lo = ""; //html5 video source for iPhone/iPod/Android Browsers in mp4
	htmlVideoMP4Hi = ""; //html5 video source for iPad Browsers in mp4
	htmlVideoMP4 = ""; //depreciated
	isAutoplay //default is true
	isTrackExternal //default is false
	trackSubsection //default is empty string
	displayBuyLink = false; //disables buy link in universal flash player in Universal Flash Player 1.01.02 (or higher), default is true 
	displayShare = false; //disables share link in universal flash player in Universal Flash Player 1.01.02 (or higher), default is true
	
**/

var useQAplayer = false;
var flashVersion = "9.0.115";
var parentSwf = 'flashcontent';
var singlevideoToggle = false;
var isSingleVideo = false;
var isAutoplay = true;
var isTrackExternal = false;
var trackSubsection = '';
var displayBuyLink = true;
var displayShare = true;
var intlPlayer = false;

//HTML5 settings
var htmlVideoMP4Lo = "";
var htmlVideoMP4Hi = "";
var htmlVideoMP4 = "";	//depreciated

function isSingleVideoSet(){
	if (singlevideoToggle == true || isSingleVideo == true){
		return true;
	}else{
		return false;
	}
}

function loadOverlayPlayer(overlaycontrol, embedclipName) {

	universalPlayerURL = "http://flash.sonypictures.com/video/universalplayer/"+(useQAplayer?'qa/':'')+(intlPlayer?'intTheatricalPlayer.swf':'theatricalPlayer.swf');

	if (embedclipName == null && isSingleVideoSet() == true) {
		embedclipName = clipName;		
	}	
	
	var flashvars = {
		feedURL:feedUrl,
		clipName:embedclipName,
		isSingleVideo:isSingleVideoSet(),
		isAutoplay:isAutoplay,
		isTrackExternal:isTrackExternal,
		trackSubsection:trackSubsection,
		displayBuyLink:displayBuyLink,
		displayShare:displayShare
	};

	var params = {
		allowScriptAccess:"always", wmode:"transparent", allowFullScreen:"true"
	};
 
	var attributes = {style:'outline:none;'};
	detectPlayer(universalPlayerURL, "embedOverlay", "676", "396", flashVersion, "", flashvars, params, attributes);
}

function detectPlayer(universalPlayerURL, universalPlayerDiv, embedWidth, embedHeight, flashVersion, expressInstallURL, flashvars, params, attributes){
	if ( is_iPad() || is_iPhone() || is_Android() ) {
		// embed html player
		loadHtmlPlayer(universalPlayerDiv, flashvars.isInline, embedWidth, embedHeight);
		return false;
	}else {		
		// embed flash player
		swfobject.embedSWF( universalPlayerURL, universalPlayerDiv, embedWidth , embedHeight, flashVersion, expressInstallURL, flashvars, params, attributes);	
		return false;
	}
}


function loadHtmlPlayer(universalPlayerDiv, isInline, embedWidth, embedHeight){

	var html5playerid = 'injectedHtmlVideo';
	var universalHtmlPlayerDom = $('#'+universalPlayerDiv);
	var overlayHtmlCloseButton = '<a href="#" id="closeHTMLOverlayPlayer" style="float: right; color: #ffffff; text-decoration: none; font-family: helvetica, arial sans-serif; font-style: italic;">Close [X]</a>';
	var embedHtmlPlayer = '<video id="'+html5playerid+'" controls autoplay width="'+embedWidth+'" height="'+embedHeight+'" src="'+htmlMP4Source()+'"><p>Your browser does not support HTML5 video.</p></video>';
	var htmlVideoNotAvailable = '<p>HTML5 Video is not available at this time.</p><p>To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player. <a href="http://www.adobe.com/go/getflashplayer" rel="external">Get the free Adobe Flash Player.</a></p>';
	var flashNotAvailable = '<p>To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player. <a href="http://www.adobe.com/go/getflashplayer" rel="external">Get the free Adobe Flash Player.</a></p>';
		
	//embeds HTML5 player
	if(htmlVideoMP4Lo == "" && htmlVideoMP4Hi == "" && htmlVideoMP4 == ""){
		
		//fallback text when no path to mp4 was not provided 
		universalHtmlPlayerDom.html(htmlVideoNotAvailable);
		
	}else if( (is_iPhone() || is_Android()) && (htmlVideoMP4Lo == "" && htmlVideoMP4 == "") ){
		
		//fallback text when htmlVideoMP4Lo is not defined for iPhone and Android
		universalHtmlPlayerDom.html(htmlVideoNotAvailable);
		
	}else if( is_iPad() && (htmlVideoMP4Hi == "" && htmlVideoMP4Lo == "") && htmlVideoMP4 == "" ){
		
		//fallback text when neither htmlVideoMP4Hi or htmlVideoMP4Lo and htmlVideoMP4 is not defined for iPad
		universalHtmlPlayerDom.html(htmlVideoNotAvailable);
		
	}else if(isInline){
	
		//embed inline HTML5 Player
		universalHtmlPlayerDom.html(embedHtmlPlayer);
		
	}else{
		
		//embed overlay HTML5 Player
		universalHtmlPlayerDom.html(overlayHtmlCloseButton + embedHtmlPlayer);
		var player = document.getElementById(html5playerid);
		player.addEventListener('ended', function(){
			closeOverlay();
			return false;
		},false);

	}
	
	//enables Android Click
	if(is_Android()){
		universalHtmlPlayerDom.find('#'+html5playerid).click( function(){
			this.play()
		});
	}
	

	return false;
}


function htmlMP4Source(){
	var htmlVideoMP4Default = "";

	//determines video source
	if( (is_iPhone() || is_Android()) && htmlVideoMP4Lo.length){
		
		//sets low resolution video for mobile devices
		htmlVideoMP4Default = htmlVideoMP4Lo;
		
	}else if( is_iPad() && htmlVideoMP4Hi.length){
	
		//sets high resolution video for iPad
		htmlVideoMP4Default = htmlVideoMP4Hi;
		
	}else if( is_iPad() && (htmlVideoMP4Hi == "" && htmlVideoMP4Lo.length) ){
		
		//sets low resolution video for iPad (iPad Alternate)
		htmlVideoMP4Default = htmlVideoMP4Lo;
	
	}else if (htmlVideoMP4.length){
	
		//gracefully handles depreciated variable htmlVideoMP4
		htmlVideoMP4Default = htmlVideoMP4;
		
	}else {
	
		//sets low resolution video by default
		htmlVideoMP4Default = '';
	
	}
	
	return htmlVideoMP4Default;

}


function is_iPad(){
	if( (/iPad/.test(navigator.userAgent)) && (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) && !(/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)) ){
		//if user agent returns iPad 
		return true;
	}else{
		return false;
	}
}

function is_iPhone(){
	//this 
	if( (/iPhone|iPod/.test(navigator.userAgent)) && (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) && !(/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)) ){
		//if user agent returns iPhone and iPod
		return true;
	}else{
		return false;
	}
}


function is_Android(){
	if( (/Android[\/\s](\d+\.\d+)/.test(navigator.userAgent)) ){
		//if user agent returns Android
		return true;
	}else{
		return false;
	}
}
	
function openOverlay(embedclipName) {
	if ($("#overlayPlayer").is(":hidden")) {

		loadOverlayPlayer("embedOverlay", embedclipName);
		
		//fix IE overlay sizing
		jQuery.each(jQuery.browser, function(i) {
			if ($.browser.msie && $.browser.version.substr(0,1)<7) {			 
				$("body").css("width","100%").css("height",$(document).height()+"px").css("position","absolute");
				$("html").css("width","100%").css("height",$(document).height()+"px");
			}
		}); 
		
		toggleOverlayLayer(showPlayer);
	}
}

function toggleOverlayLayer(callback) {
	if ($("#overlayLayer").is(":hidden")) {
		
			$("#overlayLayer").css({"min-height":"100%","height":$(document).height()+"px"})
			$("select").css("visibility","hidden");
			$("#overlayLayer").fadeIn("fast", callback);
			
	} else if ($("#overlayLayer").is(":visible")) {
			
			$("#overlayLayer").fadeOut("fast");
			$("select").css("visibility","visible");
			$("#overlayLayer").css("height","0")
			
	}
}

function closeOverlay() {
	  if ($("#overlayPlayer").is(":visible")) {
		//toggles hidePlayer() or hideHTMLPlayerOverlay() if flash player is detected.
		(swfobject.hasFlashPlayerVersion(flashVersion)) ? $("#overlayPlayer").fadeOut("fast", hidePlayer) : $("#overlayPlayer").fadeOut("fast",hideHTMLPlayer);
		toggleOverlayLayer();
		
			jQuery.each(jQuery.browser, function(i) {//fix IE overlay sizing
				if ($.browser.msie && $.browser.version.substr(0,1)<7) {
					$("body").css("width","auto").removeAttr("style");
					$("html").css("width","auto").removeAttr("style");
				}
			});       
      }
}

function showPlayer() {
	$("#overlayPlayer").fadeIn("fast");
}

function hidePlayer() {
	loadOverlayPlayer("",""); //unload video player

	var theSwf = document.getElementById(parentSwf);
	if(theSwf){
		if(typeof(theSwf.overlayPlayerclosed) == 'function'){
			theSwf.overlayPlayerclosed();
		}
	}
}

function hideHTMLPlayer() {
	$('#embedOverlay').html('');
}

function killAutoPlay(){
	isAutoPlay = false;
}

/** jQuery Functions **/	
$(document).ready(function(){

	/*Insert IDs and */
	$("body").prepend('<div id="overlayLayer"></div><div id="overlayPlayer"><div id="embedOverlay"><p> To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player. <a href="http://www.adobe.com/go/getflashplayer" rel="external">Get the free Adobe Flash Player.</a></p></div></div>');
	$("#overlayLayer").css("display","none").css("position","fixed").css("z-index","100").css("min-width","100%").css("width",$(document).width()+"px").css("opacity","0.7").css("background-color","#000").css("top","0").css("left","0").css("overflow","hidden").css("outline","none");
	$("#overlayPlayer").css("display","none").css("position","fixed").css("z-index","200").css("width","676px").css("height","396px").css("left","50%").css("margin-top","10%").css("margin-left","-338px").css("color","#ffffff").css("outline","none");
	
	jQuery.each(jQuery.browser, function(i) {
		if ($.browser.msie && $.browser.version.substr(0,1)<7) {			 
			$("#overlayLayer").css("display","none").css("position","absolute").css("z-index","100").css("width","100%").css("height",$(document).height()+"px").css("opacity","0.7").css("background-color","#000").css("top","0").css("left","0").css("overflow","hidden");
			$("#overlayPlayer").css("display","none").css("position","absolute").css("z-index","200").css("width","676px").css("height","396px").css("left","50%").css("margin-top","80px").css("margin-left","-338px").css("color","#ffffff");
		}
	});

	//Attach launch to class or ID(s)
	$(".launchOverlay").click(function () {
		openOverlay();
		return false;
		killautoplay = true;
	});

	$("#overlayLayer").click(function () {
		closeOverlay();								 
	});
	
	$("a#closeHTMLOverlayPlayer").live("click", function () {
		closeOverlay();	
	});

});
