/*
	Overlay Player v3.8alpha 033111, deployed date: none
	Based on Overlay Player v3.7 031210, deployed 031110
	
	Update: 
		v3.8beta 040411
		To incorporate a simple html5 video player if flash is not available.
		
		v3.82beta 040711
		Detect Safari iPad (use htmlVideoMP4Hi) or iPhone/Android (htmlVideoMP4Lo).
		Defaults Android to html5 video (even if flash is present).
		
		v3.83beta 040811
		Flash for Desktop Browsers or Unspecified Devices
		
		v3.84beta 052611
		updated overlay layer css width and height to $(document).height() and $(document).width()
		
		v3.85beta 060111
		added var htmlVideoScreenshot for html5 video poster
		
		
*/

/** 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
	autocloseToggle = false;
	singlevideoToggle = false;
	callbackToggle = false; //if TRUE, parentSwf must be correct
	useQAplayer = false; //default is false
	clipName = ""; //default is empty
	parentSwf = "";  //default is flashcontent
	var htmlVideoScreenshot = ""; //absolute path to img src for video poster
	htmlVideoMP4Lo = ""; //html5 video source for iPhone/iPod/Android Browsers in mp4
	htmlVideoMP4Hi = ""; //html5 video source for iPad Browsers in mp4
	htmlVideoMP4 = ""; //depreciated
**/

var useQAplayer;
var callbackToggle;
var parentSwf;
var autocloseToggle;
var singlevideoToggle;
var flashVersion = "9.0.115";
var htmlVideoMP4Lo = "";
var htmlVideoMP4Hi = "";
var htmlVideoScreenshot = "";
var htmlVideoMP4 = "";	//depreciated

if(useQAplayer != true || useQAplayer == "" || useQAplayer == null){
	QAswitch = ""
} else {
	QAswitch = "qa/"
}

if (autocloseToggle != true || autocloseToggle == "" || autocloseToggle == null) {
	autocloseToggle = false;
}
	
if (singlevideoToggle != true || singlevideoToggle == "" || singlevideoToggle == null) {
	singlevideoToggle = false;
}

if(callbackToggle != true || callbackToggle == "") {
	callbackToggle = false;
}

if (parentSwf == "" || parentSwf == null) {
	parentSwf = "flashcontent";
}

universalPlayerURL = "http://flash.sonypictures.com/video/universalplayer/"+QAswitch+"theatricalPlayer.swf";

function loadOverlayPlayer(overlaycontrol, embedclipName) {
	if (embedclipName == null && singlevideoToggle == true) {
		embedclipName = clipName;		
	}	
		
	
	var flashvars = {
		feed:feedUrl,
		clip:embedclipName,
		autoclose:autocloseToggle,
		singlevideo:singlevideoToggle
	};

	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 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="injectedHtmlVideo" controls autoplay width="'+embedWidth+'" height="'+embedHeight+'" src="'+htmlMP4Source()+'" poster="'+htmlVideoScreenshot+'"><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);
		
	}
	
	//enables Android Click
	if(is_Android()){
		universalHtmlPlayerDom.find('#injectedHtmlVideo').click( function(){
			this.play()
		});
	}
}


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;
	}
}

/** 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({
			'background': '#000',
			'display': 'none',
			'left': '0',
			'opacity': '0.7',
			'outline': 'none',
			'overflow': 'hidden',
			'position': 'fixed',
			'top': '0',
			'width': $(document).width() + 'px',
			'z-index': '100'
		});
		
		$("#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",$(document).width() + "px").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();	
		});

	});
	
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("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

	if (callbackToggle == true){ //comm. to main swf
		var theSwf = document.getElementById(parentSwf);
		theSwf.overlayPlayerclosed();
	}
}

function hideHTMLPlayer() {
	$('#embedOverlay').html('');
}
