// Variables
var respuesta = '';
var urlPrincipal = 'rtmp://unknownhost/app';
var urlPrincipalTunel = 'rtmpt://unknownhost/app';
var urlBackup = 'rtmp://unknownhost/app';
var urlBackupTunel = 'rtmpt://unknownhost/app';
var stream = 'unknown';
var username = '';
var nBuffering = 0;
var statsInterval = 0;
var testTimeout = 0;
var avisoHtml = '';
var playerMode = '';

//http://wpc.1197.edgecastcdn.net/001197/player4.6.swf?&type=rtmp&streamer=rtmpt://fml.0116.edgecastcdn.net/200116&file=livestream?db054c680cfe299a2e0477b61b4d&rtmp.subscribe=true&autostart=true

// Funciones y variables que deben ir siempre
// Comun
// Funcion que gestiona el fullscreen
function setFullscreen(){

	// Algo que hacer al pasar a full screen?
	
}
// Funcion que gestiona va vuelta del fullscreen
function setNormalscreen(){			
		
	// Algo que hacer al volver a pantalla normal?
	
}

// Funcion que contabiliza los cortes por fallo de buffer
function countBufferEmpty(){
	nBuffering++;
}

// Funcion que registra las estadisticas de cortes
function recordStats(){

	// Leo url y stream
	var miRatio = nBuffering;
	nBuffering = 0;
	$.post("/internacional/statsinternacional.php", { usuario: userName, ratio: miRatio },
	function(data){
		var result = data.split('=');
		
		// Puedo analizar el resultado
	});

}
// Funcion que finaliza el tiempo de test
function endTest(){

	// Leo url y stream
	var miRatio = nBuffering;
	nBuffering = 0;
	$.post("/internacional/testinginternacional.php", { usuario: userName, accion: 'caducar'},
	function(data){
		var result = data.split('=');
		
		// Puedo analizar el resultado
	});
	
	// Paro la reproduccion
	$f('playerOnlineInternacional').stop();
	
	// Muestro el mensaje
	$f('playerOnlineInternacional').getPlugin('aviso').setHtml('<p>Estimado usuario:</p><p></p><p>El tiempo de test de la Señal Internacional ha finalizado.</p><p></p><p>Si quiere volver a probar nuestro servicio, deberá esperar 24 horas. Si necesita más información contacte con nosotros en:</p><p></p><h3>atencioncliente@chilevision.cl</h3>');
	$f('playerOnlineInternacional').getPlugin('aviso').show();
	
}
// Funcion que gestiona el inicio del video principal
function startVideo(){
	// Redimensiono player
	/*
	var wrap = jQuery(this.getParent());
	var miAncho = parseInt($f('playerOnlineInternacional').getPlaylist()[0].metaData.width);
	var miAlto = parseInt($f('playerOnlineInternacional').getPlaylist()[0].metaData.height) + 24;
	wrap.css({width: miAncho, height: miAlto});
	*/
}
 // Funcion que se llama cuando el player se ha cargado
 function completePlayer(){
 
	// Hay errores de usuario?
	var aviso = $f('playerOnlineInternacional').getPlugin('aviso'); 
	var playBtn = $f('playerOnlineInternacional').getPlugin('play'); 
	switch(respuesta){
		case 'ack':
			// Reproduzco el stream
			$f('playerOnlineInternacional').play();
			// Pongo en marcha intervalo de registro de estadisticas o el timeout para fin de test
			if (playerMode == 'real'){
				statsInterval = setInterval("recordStats()", 240000);
			}
			else{
				testTimeout = setTimeout("endTest()", 300000);
			}
			break;
		case 'no_existe':
		case 'comprar':	
		case 'suscripcion_caducada':
		case 'evento_futuro':
		case 'evento_caducado':
		case 'test_caducado':
			// Muestro el mensaje
			aviso.show();				
			break;
	}
			
	
 }
				
function playerOnlineInternacional(yo, modo){
	var testUrl = '';
	// Almaceno el nombre de usuario y el modo
	userName = yo;
	playerMode = modo;
	
	if(playerMode == 'real'){
		testUrl = '/internacional/checkinternacional.php';
		var data = { usuario: yo };
	}
	else{
		testUrl = '/internacional/testinginternacional.php';
		var data = { usuario: yo, accion: 'test' };
	}
	
	// Leo url y stream
	$.post(testUrl, data,
	function(data){
		var result = data.split('&');
		i = 0;
		while(i < result.length){
			var tmp = result[i].split('=');
			if (tmp[0] == 'respuesta'){
				respuesta = tmp[1];
				
				
				switch(respuesta){
					case 'ack':
						// Algo que hacer?
						break;
					case 'no_existe':
						avisoHtml = '<p>Estimado usuario:</p><p></p><p>La cuenta con la que se ha conectado no está habilitada para reproducir la Señal Internacional.</p><p></p><p>Confirme que se ha logeado correctamente o contacte con:</p><p></p><h3>atencioncliente@chilevision.cl</h3>';						
						break;
					case 'comprar':
						avisoHtml = '<p>Estimado usuario:</p><p></p><p>La cuenta con la que se ha conectado no está habilitada para reproducir la Señal Internacional.</p><p></p><p>Confirme que se ha logeado correctamente o contacte con:</p><p></p><p></p><h3>atencioncliente@chilevision.cl</h3>';
						break;
					case 'suscripcion_caducada':
						avisoHtml = '<p>Estimado usuario:</p><p></p><p>Su suscripción a la Señal Internacional de Chilevisión ha caducado.</p><p></p><p>Si necesita más información de lo ocurrido, acceda a su cuenta PayPal o contacte con nosotros en:</p><p></p><h3>atencioncliente@chilevision.cl</h3>';
						break;
					case 'evento_futuro':
						avisoHtml('<p>Estimado usuario:</p><p></p><p>El evento que ha adquirido aún no ha comenzado.</p><p></p><p>Revise el horario de nuestra programación y si tiene alguna duda contacte con nosotros en:</p><p></p><h3>atencioncliente@chilevision.cl</h3>');			
						break;
					case 'evento_caducado':
						avisoHtml = '<p>Estimado usuario:</p><p></p><p>El evento que adquirió ya ha finalizado.</p><p></p><p>Revise el horario de nuestra programación y si tiene alguna duda Si necesita más información de lo ocurrido, acceda a su cuenta PayPal o contacte con nosotros en:</p><p></p><h3>atencioncliente@chilevision.cl</h3>';		
						break;
					case 'test_caducado':
						avisoHtml = '<p>Estimado usuario:</p><p></p><p>El tiempo de test de la Señal Internacional ha finalizado.</p><p></p><p>Si quiere volver a probar nuestro servicio, deberá esperar 24 horas. Si necesita más información contacte con nosotros en:</p><p></p><h3>atencioncliente@chilevision.cl</h3>';		
						break;
				}				
			}
			if (tmp[0] == 'url'){
			var urls = tmp[1].split(escape('|'));
				urlPrincipal = 'rtmp://' + urls[0];
				urlPrincipalTunel = 'rtmpt://' + urls[0];
				urlBackup = 'rtmp://' + urls[1];
				urlBackupTunel = 'rtmp://' + urls[1];
			}
			if (tmp[0] == 'stream'){
				stream = tmp[1];
			}			
			i++;
		}

		// Cargo el player basico
		flowplayer('playerOnlineInternacional', {src: 'http://videos.chilevision.cl/players/flowplayer.commercial-3.1.5.swf', cachebusting: jQuery.browser.msie},{
			key: '#$2c6929c7c6e35634270',
			onLoad: completePlayer,
			onFullscreen: setFullscreen,
			onFullscreenExit: setNormalscreen,			
			clip: {
				url: stream,
				live: true, 
				autoPlay: false,
				autoBuffering: false,
				provider: 'streamingchv' ,
				connectionProvider: 'clustering',
				onStart: startVideo,
				onBufferEmpty: countBufferEmpty,
				linkUrl: '',  
				bufferLength: '1', 
				onBeforePause: function() { return false; } 
			},       
			// Boton play oculto
			play: { 
				opacity: 1, 
				label: 'Conectando', 
				replayLabel: null
			},
			/*
			log: {
				level: 'debug',
				filter: 'org.flowplayer.cluster.*'
			},
			*/
			plugins: {
				streamingchv: { 
					url: 'flowplayer.rtmp-3.1.3.swf'
				}, 
				clustering: { 
					url: 'flowplayer.cluster-3.1.2-dev.swf', 
					connectTimeout: 7500,
 
					// Hosts disponibles
					hosts: [ 
						{host: "rtmp://fml.0116.edgecastcdn.net/200116"}, 
						{host: "rtmpt://fml.0116.edgecastcdn.net/200116"}, 
						{host: urlBackup},
						{host: urlBackupTunel}
					],
					// Callbacks
					onConnect: function(host, index) { 
						console.log("Conectando a " + host);
					}, 
					onConnectFailed: function(host, index) { 
						console.log("Error al conectar con " + host);
					},
					onFailed: function(){
						console.log("No se pudo conectar con ningun host");
					}
					
				} ,
				// Avisos
				aviso: {
					url: 'flowplayer.content-3.1.0.swf',
					borderRadius: 10, 
					backgroundColor: '#777777',
					height: '80%',
					display: 'none',
					opacity: 1,
					html: avisoHtml,
					style: { 
						'p': { 
							fontSize: 14, 
							fontFamily: 'verdana,arial,helvetica',
							color: '#ffffff'
						},
						'h3': { 
							fontSize: 18, 
							fontFamily: 'verdana,arial,helvetica',
							color: '#aa0000',
							width: '100%',
							textAlign: 'center'
						}
					}
				},
				// Controles principales
				controls: {
					backgroundGradient: 'medium',
					borderRadius: '0',
					buttonColor: '#000000',
					volumeSliderColor: '#000000',
					buttonOverColor: '#f0000b',
					backgroundColor: '#333333',
					tooltipColor: '#5F747C',
					durationColor: '#ffffff',
					volumeSliderGradient: 'none',
					tooltipTextColor: '#ffffff',
					opacity: 1.0,
					left: 0,
					width: '90%',
					all: false,
					volume: true,
					mute: true,
					zIndex: 3
				},
				// Otros controles
				screencontrol: { 
					url: 'flowplayer.controls-3.1.5.swf', 
					backgroundGradient: 'medium',
					buttonColor: '#000000',
					buttonOverColor: '#f0000b',
					backgroundColor: '#333333',
					bottom:0,
					opacity: 1.0,
					all: false,
					fullscreen: true,  
					right:0,
					width: '10%',
					zIndex: 4
				}			
			}
		});
	
	});
}
