/*
* Gestion player
*
*/

// Routage

function WATPlayerInstance_DoFSCommand(command, args) {
	switch(command) {

		case			'debug' :
		return Try.these(

		// If FFox's firebug 2.0
		function() {return console.debug(args);},
		// Autre navigateurs ?
		function() {return xmlNode.textContent;}
		);
		break;
	}
}


/**
* VBScript pour IE (!)
*/
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
	document.write('<script language=VBScript\> \n');
	document.write('on error resume next \n');
	document.write('Sub WATPlayerInstance_FSCommand(ByVal command, ByVal args)\n');
	document.write(' call WATPlayerInstance_DoFSCommand(command, args)\n');
	document.write('end sub\n');
	document.write('</script\> \n');
}


var permalink='';

var WATPlayer =
{



	// Get flash container
	'getFlash' : function() {
		if (navigator.appName.indexOf("Microsoft") != -1) {
			return (window['WATPlayerInstance']);
		} else {
			return (document['WATPlayerInstance']);
		}

	},


	// Permet de changer le média d'un lecteur de fichier unique
	'swapMedia' :	function(numId) {
		WATPlayer.getFlash().swapMedia(numId);
	},


	// Permet de changer le média d'un lecteur de fichier unique
	'userAuthorisationGranted' :	function() {
		WATPlayer.getFlash().userAuthorisationGranted();
	},

	// Changer la requete du player
	'setCustomPlaylistId' :	function(request) {
		WATPlayer.getFlash().setCustomPlaylistId(request);
	},


	// Changer la requete du player
	'setContiniousPlayMode' :	function(state) {
		WATPlayer.getFlash().setContiniousPlayMode(state);
	},

	'closeMod' :	function() {
		WATPlayer.getFlash().closeMod();
	},


	'setPlay' :	function() {
		WATPlayer.getFlash().setPlay();
	},


	'setPause' :	function() {
		WATPlayer.getFlash().setPause();
	},


	// Check version of flash player
	'isUp2Date' :	function() {
		try {
			var so = swfobject.getFlashPlayerVersion();
			if (so.major > 9 || (so.major == 9 && so.release >= 115)){
				return(true);
			}else return(false);
		} catch(err) {
			return(false);
		}
	},


	// Mode player unique - permet de passer un referer
	'setPermalink' :	function(value)
	{
		if(WATPlayer.getFlash())
		{
			WATPlayer.getFlash().setPermalink(value);
		}
		else
		{
			permalink = value;
		}

	},


	// Mode player unique - permet de repcupérer la variable permaLink
	'getPermalink' :	function()
	{
		if(permalink != '')
		{
			WATPlayer.getFlash().setPermalink(permalink);
		}
	},

	'detectbrowser' : function () {

		var userAgent = navigator.userAgent.toLowerCase();
		var browser = {
			safari: /webkit/.test( userAgent ),
			opera: /opera/.test( userAgent ),
			msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
			firefox: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
		};

		if (browser.safari) return 'safari';

		if (browser.opera) return 'opera';

		if (browser.firefox) return 'firefox';

		if (browser.msie) return 'ie';

		return 'other';
	},

	'detectdevice' : function() {
		if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
			 return 'iphone';
		}
		else if ((navigator.userAgent.match(/iPad/i))) {
			return 'ipad';
		}
		else if ((navigator.userAgent.match(/Android/i))) {
			return 'android';
		}
		else if ((navigator.userAgent.match(/Bada/i))) {
			return 'bada';
		}
		return false;
	},

	// Install Wat player
	'showPlayer' :		function(args)
	{
		// -------------------------------
		// Container Flash properties
		// -------------------------------
		var revision = (args.revision) ? args.revision : Math.floor( Math.random() * 10000 );
		var container = (args.container) ? args.container : 'FlashPlayer';
		var updateContainer = (args.updateContainer) ? args.updateContainer : '';
		var width = (args.width) ? args.width : 680;
		var height = (args.height) ? args.height : 430;

		// -------------------------------
		// Player variables
		// -------------------------------
		var baseURL = (args.baseURL) ? args.baseURL : 'www.wat.tv';
		var request = (args.request) ? args.request : '/';
		var startIndex = (args.startIndex) ? args.startIndex : 0;
		var playerType = (args.playerType) ? args.playerType : 'watPlayer';
		var showExplicit = (args.showExplicit) ? args.showExplicit : 'false';
		var browser = (args.browser) ? args.browser : WATPlayer.detectbrowser();
		var memberID = (args.memberID) ? args.memberID : '';
		var videoId = (args.videoId) ? args.videoId : '';
		var skin = (args.skin) ? args.skin : '';

		// -------------------------------
		// Incrémente flash variables
		// -------------------------------
		var flashvars = {
			baseUrl: baseURL,
			startIndex: startIndex,
			playerType: playerType,
			showExplicit: showExplicit,
			browser: browser,
			memberID: memberID,
			videoId: videoId,
			revision: revision,
			embedMode : 'direct'
		};

		for (x in args) {
			flashvars[x] = escape(args[x]); // on escape car swfobject ne le fera pas
		}

		// ----------------------------------------
		// Incrémente flash paramètres et attibuts
		// ----------------------------------------

		var params = {
			allowScriptAccess: "always",
			allowFullScreen: "true",
			wmode: "opaque"
		};

		var attributes = {
			id : "WATPlayerInstance",
			name : "WATPlayerInstance"
		};

		// ----------------------------------------
		// Put player or upgrade flash design
		// ----------------------------------------
		if (WATPlayer.isUp2Date()) {
			swfobject.embedSWF("/images/v30/PlayerWat.swf?revision=" + revision, container , width, height, "9.0.115", "http://www.wat.tv/images/v30/playerProductInstall.swf", flashvars, params, attributes);
		} else {
			swfobject.embedSWF("/images/v30/updatePlayer.swf?version=9.0.115&browser="+browser+"&revision="+revision+"&curLocation="+encodeURIComponent(window.location.href), container, width, height, "4");
		}


		// ----------------------------------------
		// Message d'infos
		// ----------------------------------------

		if(!WATPlayer.isUp2Date()) {
			if ($(updateContainer))
			$(updateContainer).style.display = "inline";
			else
			new Insertion.Bottom($(container), '<br /><div style="width: 100%; font-family:Arial,Helvetica,sans-serif;font-size:14px; color: white; ">Pour profiter pleinement des fonctionnalités de ce lecteur,<br />Wat te recommande de <a style="color:blue;text-decoration:underline; color: white;" href="http://www.adobe.com/go/getflashplayer">mettre à jour ta version de Flash</a></div>');
		}
	},

	'showSyndicated' : function(args)
	{
		var flashvars = {
				embedMode : 'direct'
		};

		for (x in args) {
			flashvars[x] = escape(args[x]); // on escape car swfobject ne le fera pas
		}

		if (args.PWpreroll && args.PWpreroll != '')
		{
			flashvars.isStartAd = 'true';
		}
		var params = {
			allowScriptAccess: "always",
			allowFullScreen: "true"
		};

		var regExp = new RegExp("\/swfap\/", 'i');
		if (args.url.match(regExp))
		{
			params.wmode = "opaque";
			flashvars.autoStart = "true";
		}
		// gestion du mode opaque
		if(args.wmode && args.wmode != '')
		{
			params.wmode = args.wmode;
		}

		var attributes = {
			id : "WATPlayerInstance",
			name : "WATPlayerInstance"
		};

		var divContainer = document.getElementById(args.container);
		var parentDivContainer = divContainer.parentNode;
		var htmlParent = parentDivContainer.innerHTML;

		/*
		Code pour gérer le html5 en natif
		if (WATPlayer.detectdevice() == 'iphone' && args['mediaId']) {
				// on fout la preview
				injectVideo = function() {
					document.getElementById(args.container).innerHTML = '';
					document.getElementById(args.container).innerHTML = '<video controls autoplay="true" id="playerVideo" webkit-playsinline style="width: 100%; height: 100%;"><source id="sourcePlayer" type="video/mp4" src="http://www.wat.tv/get/'+WATPlayer.detectdevice()+'/'+args['mediaId']+'.m3u8"></source></video>';
					if (args['previewMedia']) {
						document.getElementById('playerVideo').poster = args['previewMedia'];
					}
					document.getElementById('playerVideo').load();
					document.getElementById('playerVideo').play();
				}
				injectVideo();
				return;
		}else if (WATPlayer.detectdevice() == 'ipad' && args['mediaId']) {
			var head= document.getElementsByTagName('head')[0];
			var script= document.createElement('script');
			script.type= 'text/javascript';
			script.onreadystatechange= function () { }
			script.onload= function () {new WatVideoJs(args.container,args['mediaId'],{defaultVolume: 1,autoStart: true,IE9button: false});}
			script.src= 'http://s.wat.fr/js/Engine/v3/Html5.js?80';
			head.appendChild(script);
			var cssNode = document.createElement('link');
			cssNode.type = 'text/css';
			cssNode.rel = 'stylesheet';
			cssNode.href = 'http://s.wat.fr/css/Engine/v3/Html5.css?80';
			head.appendChild(cssNode);
			return;
		}
		else if (WATPlayer.detectdevice() == 'android' && !WATPlayer.isUp2Date() && args['mediaId']) {
			var head= document.getElementsByTagName('head')[0];
			var script= document.createElement('script');
			script.type= 'text/javascript';
			script.onreadystatechange= function () { }
			script.onload= function () {new WatVideoJs(args.container,args['mediaId'],{defaultVolume: 1,autoStart: true,IE9button: false});}
			script.src= 'http://s.wat.fr/js/Engine/v3/Html5.js?80';
			head.appendChild(script);
			var cssNode = document.createElement('link');
			cssNode.type = 'text/css';
			cssNode.rel = 'stylesheet';
			cssNode.href = 'http://s.wat.fr/css/Engine/v3/Html5.css?80';
			head.appendChild(cssNode);
			return;
		}
		*/
		var i = 0;
		getVarsPlayer = function() {
			if (i == 2) return;
			// comme on a déjà injecté le player on n'a plus le container... so on le rajoute dans le dom
			parentDivContainer.innerHTML = htmlParent;
			swfobject.embedSWF(args.url, args.container , args.width, args.height, "9.0.115", "http://www.wat.tv/images/v30/playerProductInstall.swf",flashvars,params, attributes);
			i++;
		}

		swfobject.embedSWF(args.url, args.container , args.width, args.height, "9.0.115", "http://www.wat.tv/images/v30/playerProductInstall.swf",flashvars,params, attributes);
		
	},


	// Hack to avoid browser popup
	'openURL' :	function(url, target)
	{
		try
		{
			var popup = window.open( url, target );

			if ( popup == null || typeof(popup)=="undefined" )
			return false;
			if ( window.opera )
			if (!popup.opera)
			return false;
		}
		catch(err)
		{
			return false;
		}
		return true;
	},

	'cleanScreen' : function()
	{
		$$('a.lkCloseSceen').each(function(e){e.onclick()});
	},

	// Who knows
	'lastButNotLeast' : 0
}

