/**
 * Muestra un error en modo depurado (si estamos en host local)
 * @param error - excepción lanzada
 * @param funcion - nombre de la función que cogió la excepción
 */
function show_error(error,funcion)
{
	var vDebug = "";
	
	vDebug += error.number+': ';
	vDebug += error.name+" en la función ";
	vDebug += funcion+"\n";
	vDebug += error.description;
	//error.message; // el contenido es un popurrí de los anteriores
	
	if(location.host=='www.tocalasam.lk') alert(vDebug);
}


/**
 * Si estamos en modo depuración, añade una capa para añadir códigos de depurado y trazas de ejecución
 */
function devel()
{
	if(location.host!='www.tocalasam.lk') return;
	$('body').append('<div id="devel" style="text-align:left;padding:0px;padding-left:5px;margin:0px;position:fixed;top:0px;left:0px;width:250px;height:20%;overflow-y:scroll;background-color:rgba(255,255,255,0.7);color:red;font-size:10px;z-index:200000000;"></div>');
}


/**
 * Añade una traza o texto informativo a la capa de depurado
 * @param text
 */
function devel_text(text)
{
	if(location.host!='www.tocalasam.lk') return;
	$('#devel').append('<br/>'+text);
}


/**
 * Almacena la url del vídeo que se haya detectado al cargar la página para su inmediata reproducción 
 */
var initial_video_show = null;


/**
 * Al cargar la página, inicializar todo lo necesario
 */
$(document).ready(function documentonready()
{
	try
	{
			
		// añade la capa para las trazas
		devel();
			
		// inicializa la sala de proyecciones
		sala_proyecciones_init();
		
		// inicializa los menús principal e inferior de la página 
		menus_init();
		
		// inicializa las flechas e navegación
		next_prev_init();
		
		// deshabilitar la selección en todo el documento
		$('body').disableSelection();
		
		// deshabilitar el menú derecho
		$(document).bind("contextmenu",function(e){return false;});
		
		// carga directamente una url de sección
		direct_load();
	} 
	catch(error) {show_error(error,'documentonready');}
});


/**
 * Al reescalar la página, ajusta las posiciones de los diferentes elementos
 */
$(window).resize(function documentonresize(){
	try
	{
		sala_proyecciones_colocar();
		next_prev_fixed();
	} 
	catch(error) {show_error(error,'documentonresize');}
});



/**
 * Comprueba inicialmente la url a cargar, ya que si tiene un # hay que mostrar una sección concreta
 */
function direct_load()
{
	try
	{
		// localiza el #
		var sostenido = location.href.indexOf('#');
		
		if(sostenido>=0)
		{
			url_ = location.href.substring(sostenido+1, location.href.length);
			
			a_level_1 = $("#menu a[linkto='"+url_+"'],.menu.alegal a[linkto='"+url_+"']");
			
			// si hay un elemento del menú principal que coincide con la url
			if(a_level_1.length)
			{
				$('.page.visible').addClass('hidden');
				$('.page.visible').removeClass('visible');
				page_show(a_level_1.first());
			}
			
			// si la url no está en el menú principal, pero pertenece a la sección de trabajos
			else if(url_.substring(0, 10)=='/trabajos/')
			{
				a_level_1 = $("#menu a[linkto='/trabajos/']");
				$('.page.visible').addClass('hidden');
				$('.page.visible').removeClass('visible');
				page_show(a_level_1.first());
			}
			
			// si lo que hay que mostrar es un vídeo
			else if(url_.substring(0, 7)=='/video/')
			{
				$('.page.visible').addClass('hidden');
				$('.page.visible').removeClass('visible');
				
				initial_video_show = url_;
				
				a_level_1 = $("#menu a[linkto='/trabajos/']").first();
				menu_ajax_load (a_level_1.attr('linkto'),a_level_1.attr('page'),false);
			}
			
			// en otro caso, mostrar la primera sección
			// <---------- TMP HASTA TENER HOME
			else
			{
				a_level_1 = $("#menu a");
				$('.page.visible').addClass('hidden');
				$('.page.visible').removeClass('visible');
				page_show(a_level_1.first());
			}
		}
		else
		{
			if($('#vimeo').length)
			{
				sala_proyecciones_mostrar(true,true);
				href_back = location.href+'#/trabajos/';
			}
		}
	}
	catch(error) {show_error(error,'direct_load');}
}




/*
 * Fijado de las flechas de navegación si el tamaño de la ventana es menor que 940
 */
function next_prev_fixed()
{
	try
	{
		if ($(window).width()<=940)		
			$('#next-page,#last-page').addClass('fixed');
		else
			$('#next-page,#last-page').removeClass('fixed');
	} 
	catch(error) {show_error(error,'next_prev_fixed');}
}


/*
 * Crea las flechas de navegación e inicializa su comportamiento 
 */
function next_prev_init()
{
	try
	{
		// añade las capas
		$('body').append('<div id="next-page"></div>');
		$('body').append('<div id="last-page"></div>');
		
		// asigna comportamiento al click
		$('#next-page').unbind('click');
		$('#next-page').click(function(){next();});
		$('#last-page').unbind('click');
		$('#last-page').click(function(){prev();});
		
		// efectos de rollover
		$('#next-page,#last-page').mouseover(function(){ if($(this).hasClass('visor')) $(this).addClass('visorhover'); else $(this).addClass('hover');});
		$('#next-page,#last-page').mouseout(function(){ $(this).removeClass('hover'); $(this).removeClass('visorhover');});
		
		// inicializa el fijado
		next_prev_fixed();
		
		// ajusta la visualización de las flechas en el momento de la inicialización
		next_prev_check();
	} 
	catch(error) {show_error(error,'next_prev_init');}
}


/**
 * Tiempo para las transiciones de página
 */
var page_transition_time = 300;


/**
 * Efecto easing de las transiciones de página
 */
var page_transition_easing = 'linear';


/**
 * Añade la funcionalidad a los menús principal e inferior
 */
function menus_init()
{
	try
	{
		$('#realContent .page').addClass('visible');
		
		// elimina acciones previas
		$('#menu a,.menu.alegal a').unbind('click');
		
		// configurar cada uno de los enlaces de los menús
		$('#menu a,.menu.alegal a').each(function menu_ajax_each()
		{
			try{
				// guardar el href en otra propiedad
				linkto = $(this).attr('href');
				$(this).attr('linktofull',linkto);
				
				// elimina el rectángulo de onclick
				$(this).removeAttr('href');
				
				// crear la url limpia para el #
				linkto = linkto.replace('http://www.tocalasam.lk','');
				linkto = linkto.replace('http://www.tocalasam.net','');
				$(this).attr('linkto',linkto);
				
				// configurar el evento click del elemento
				$(this).click(function menu_ajax_click()
				{
					try
					{
						// trackear la página
						ga_trace_from_menu($(this).attr('linktofull'));
						
						// mostrar la página
						page_show($(this));
						
						// eliminar el link normal
						return false;
					} 
					catch(error) {show_error(error,'menu_ajax_click');}
				});
			} 
			catch(error) {show_error(error,'menu_ajax_each');}
		});
		
		// LOGOTIPO
		$('#logo').css('cursor','pointer'); // le añade el estilo de cursor
		$('#logo').unbind('click'); // elimina acciones previas
		$('#logo').removeAttr('href'); // quita el enlace
		$('#logo').click(function logoclick()
		{
			// si no está visible la sala de proyecciones mostrar la página de inicio
			if (!sala_proyecciones_visible)
				$("#menu a[page=index]").click();
			
			return false; 
		});
		
		// inicializa el registro de eventos en los elementos del menú inferior
		$('a.siguenoslink').click(function(){ ga_event('links','siguenos',$(this).attr('href')); });
		$('a.disenoweb').click(function(){ ga_event('links','diseño-web',$(this).attr('href')); });
	} 
	catch(error) {show_error(error,'menus_init');}
}


/**
 * Muestra la página identificada con el enlace pasado
 * @param a_item 
 */
function page_show($a_item)
{
	try
	{
		// si hay una transición de página en curso, salir
		if ($('.page.transition').length>0) return false;
		
		// limpiar los elementos del menú seleccionados
		$('#menu a.selected').removeClass('selected');
		
		// marcar el elemento actual como seleccionado
		$a_item.addClass('selected');
		
		// obtiene el identificador de la página
		var page = $a_item.attr('page');
		
		// cambia la url localmente
		location.href = '#'+$a_item.attr('linkto');	
		
		// buscar si la página está cargada
		if ($('#page-'+page).length==1)
		{
			// si está cargada previamente y no es la que se está visualizando actualmente, mostrar
			if (!$('#page-'+page).hasClass('visible'))
				menu_page_show(page);
		}
		else
		{
			// si no se ha cargado previamente la página solicitada, cargar con ajax con la url real
			menu_ajax_load ($a_item.attr('linktofull'),page,true);
		}
		
		// actualizar la visibilidad de las flechas de navegación
		next_prev_check();
	} 
	catch(error) {show_error(error,'page_show');}
}


/**
 * Click en el botón next
 */
function next()
{
	try
	{
		if (sala_proyecciones_visible)
		{
			// SALA DE PROYECCIONES VISIBLE
			
			// buscar el trabajo siguiente del visualizado en este momento
			$trabajo = $('.trabajo.visualizando').nextAll('.trabajo:not(.hidden)');
			
			// si se ha encontrado
			if ($trabajo.length>0)
			{
				// quitar la anterior selección de trabajo
				$('.trabajo.visualizando').removeClass('visualizando');
				
				// marcar el trabajo que se está visualizando
				$trabajo.first().addClass('visualizando');
				
				// cargar el trabajo en la sala de proyecciones
				sala_proyecciones_cargar_trabajo();
				
				// registrar el click en la flecha
				ga_event('next','click','#'+$('.trabajo.visualizando span.titulo a,.trabajohome.visualizando span.titulo a').first().attr('linkto'));
			}
		}
		else
		{
			// SALA DE PROYECCIONES NO VISIBLE
			
			// localiza el siguiente elemento del menú principal
			a_item = $('#menu a.selected').parent().next().find('a.menu');
			
			// si no se ha encontrado seleccionar el primero 
			// NOTA: actualmente esto no funciona, ya que la flecha se oculta al llegar al último
			if (a_item.length==0)
				a_item = $('#menu a').first();
			
			// trackear la página
			ga_trace_from_next(a_item.attr('linktofull'));
			
			// mostrar la página
			page_show(a_item);
		}
		
		// actualizar la visibilidad de las flechas de navegación
		next_prev_check();
	} 
	catch(error) {show_error(error,'next');}
}


/**
 * Click en el botón prev
 */
function prev()
{
	try
	{
		if (sala_proyecciones_visible)
		{
			// SALA DE PROYECCIONES VISIBLE
			
			// buscar el trabajo anterior del visualizado en este momento
			$trabajo = $('.trabajo.visualizando').prevAll('.trabajo:not(.hidden)');
			
			// si se ha encontrado
			if ($trabajo.length>0)
			{
				// quitar la anterior selección de trabajo
				$('.trabajo.visualizando').removeClass('visualizando');
				
				// marcar el trabajo que se está visualizando
				$trabajo.first().addClass('visualizando');
				
				// cargar el trabajo en la sala de proyecciones
				sala_proyecciones_cargar_trabajo();
				
				// registrar el click en la flecha
				ga_event('prev','click','#'+$('.trabajo.visualizando span.titulo a,.trabajohome.visualizando span.titulo a').first().attr('linkto'));
			}
		}
		else
		{
			// SALA DE PROYECCIONES NO VISIBLE
			
			// localiza el siguiente elemento del menú principal
			a_item = $('#menu a.selected').parent().prev().find('a.menu');
			
			// si no se ha encontrado seleccionar el último 
			// NOTA: actualmente esto no funciona, ya que la flecha se oculta al llegar al último
			if (a_item.length==0)
				a_item = $('#menu a').last();
			
			// trackear la página
			ga_trace_from_next(a_item.attr('linktofull'));
			
			// mostrar la página
			page_show(a_item);
		}
		
		// actualizar la visibilidad de las flechas de navegación
		next_prev_check();
	} 
	catch(error) {show_error(error,'prev');}
}

/**
 * Actualizar la visibilidad de las flechas de navegación
 */
function next_prev_check()
{
	try
	{
		if (sala_proyecciones_visible)
		{
			if ($('.trabajo.visualizando').prevAll('.trabajo:not(.hidden)').length==0) 
				$('#last-page').hide();
			else
				$('#last-page').show();
			
			if ($('.trabajo.visualizando').nextAll('.trabajo:not(.hidden)').length==0) 
				$('#next-page').hide();
			else
				$('#next-page').show();
		}
		else
		{
			if($('#menu a.selected').parent().prev().find('a.menu').length==0)
				$('#last-page').hide();
			else
				$('#last-page').show();
			
			if($('#menu a.selected').parent().next().find('a.menu').length==0)
				$('#next-page').hide();
			else
				$('#next-page').show();
		}
	} 
	catch(error) {show_error(error,'next_prev_check');}
}


/**
 * Cargar una página con ajax
 * @param load_url - url a cargar
 * @param page_id - identificador de la página 
 * @param show - mostrar o simplemente cargar
 */
function menu_ajax_load (url,page_id,show)
{
	try
	{
		// adecúa la url para la petición ajax
		load_url = url;
		if(load_url.indexOf('ajax=1')==-1) load_url += (load_url.indexOf('?')==-1) ? '?ajax=1' : '&ajax=1';
		if(load_url.indexOf('json=1')==-1) load_url += (load_url.indexOf('?')==-1) ? '?json=1' : '&json=1';
	
		
		$.ajax({
			type: 'GET', 
			url: load_url,
			dataType: "json", // dataType:  xml,html,script,json,jsonp,text
			error: function ()
			{
				ga_event('error','menu_ajax_load',load_url);
				// alert("Upsss!! Se ha producido un error al cargar la información solicitada.\n\n Por favor, vuelve a intentarlo y si el problema persiste ponte en contacto con el administrador de la página.");
				location.href = url;
			},
			success: function ajax_success (data) 
			{
				try
				{
					// localizar el elemento siguiente para insertar en orden
					var $a_items = $('#menu a');
					var a_item_actual_i = $a_items.index($('a[page='+page_id+']'));
					var j=a_item_actual_i;
					var ubicada = false;
					while(j>=0 && !ubicada)
					{
						prev_page = $($a_items.get(j)).attr('page');
						
						if ($('#page-'+prev_page).length==1)
							ubicada = true;
						else
							j--;
					}
					var $page_anterior = ubicada ? $('#page-'+prev_page).next() : $('.page').first();
		
					// insertar la página cargada en la posición correcta
					$page_anterior.before('<div class="page hidden" id="page-'+page_id+'" pagetitle="'+data.title+'"><div class="container"></div></div>');
					
					// añadir el contenido de la página
					$('#page-'+page_id+' .container').html(data.html);
					
					// si hay que mostrarlo directamente, pues eso....
					if(show) menu_page_show(page_id);
				
					// por si es la sección de trabajos (o bien contiene trabajos), configurar el comportamiento
					sala_proyecciones_config_trabajos();
				} 
				catch(error) {show_error(error,'ajax_success');}
			}
		});
	} 
	catch(error) {show_error(error,'menu_ajax_load');}
}



function menu_page_show(page_id)
{
try{
	$('.page.visible').addClass('transition');
	$('#page-'+page_id).addClass('transition');
	
	$('.page.visible').animate({width:0},page_transition_time,page_transition_easing,function menu_page_show_animate1(){
	try{
		$('.page.visible').addClass('hidden');
		$('.page.visible').removeClass('transition');
		$('.page.visible').removeClass('visible');
	} catch(error) {show_error(error,'menu_page_show_animate1');}
	});

	$('#page-'+page_id).css('width','0');
	$('#page-'+page_id).removeClass('hidden');
	
	$('#page-'+page_id).animate({width:940},page_transition_time,page_transition_easing,function menu_page_show_animate2(){
	try{
		$('#page-'+page_id).addClass('visible');
		$('#page-'+page_id).removeClass('transition');
		
		if(page_id=='trabajos')
		{
			// volver a mostrar TODOS (si no es lo que se está viendo)
			$first_a = $('#submenutrabajos a').first();
			if(!$first_a.is('.selected'))
				$first_a.click();
		}
	} catch(error) {show_error(error,'menu_page_show_animate2');}
	});

	show_page_title($('#page-'+page_id).attr('pagetitle'));
	
} catch(error) {show_error(error,'menu_page_show');}
}


function show_page_title(title)
{
	if (title)
	{
		title = title.replace('tócalasam · ','');
		title = title.replace(/"/g,'-');
		title = title.replace(/'/g,'');
		document.title = 'tócalasam · '+title;
	}
	else
		document.title = 'tócalasam';
}


function ga_trace_from_menu(link)
{
	ga_trace(link);
}
function ga_trace_from_prev(link)
{
	ga_trace(link);
	ga_event('prev','click',link);
}
function ga_trace_from_next(link)
{
	ga_trace(link);
	ga_event('next','click',link);
}

function ga_trace(link)
{
	link = link.replace('/#','');
	
	try
	{
		_gaq.push(['_trackPageview', link]); 
		devel_text('trackPageview: '+link);
	} 
	catch(e) 
	{ 
		// alert("trackPageview: "+link);
	}
}

function ga_auto_trace()
{
	ga_trace(location.href);
}

function ga_event(categoria,accion,etiqueta)
{
	try
	{
		track_array = new Array();
		track_array[track_array.length] = '_trackEvent';
		if(categoria) track_array[track_array.length] = categoria;
		if(accion) track_array[track_array.length] = accion;
		if(etiqueta) track_array[track_array.length] = etiqueta;
		
		_gaq.push(track_array); 
		devel_text('_trackEvent: '+categoria+' / '+accion+' / '+etiqueta);
	} 
	catch(error) 
	{ 
		show_error(error,"ga_event");
	}
}




/* *****************************************************************************************
 * FUNCIONES Y UTILIDADES DE LA SALA DE PROYECCIONES
 * ***************************************************************************************** */

var sala_proyecciones_visible = false;

var visor_transition_time = 500;
var visor_transition_easing = 'linear';
var visor_fade_time = 250;
var visor_hide_elements_time = 100;

/**
 * Inicializa el visor
 */
function sala_proyecciones_init()
{
try{
	$('#pageVisor').removeClass('hidden');
	$('#pageVisor').hide();
	sala_proyecciones_config_trabajos();
	sala_proyecciones_colocar();
} catch(error) {show_error(error,'sala_proyecciones_init');}
}

function sala_proyecciones_config_trabajos()
{
try{
	$('#page-trabajos .trabajo,#page-index .trabajohome').each(function(){
		var linkto = $('span.titulo a',this).attr('ajaxhref');
		$('span.titulo a',this).attr('linktofull',linkto);
		
		linkto = linkto.replace('http://www.tocalasam.lk','');
		linkto = linkto.replace('http://www.tocalasam.net','');
		$('span.titulo a',this).attr('linkto',linkto);
		
		$('span.titulo a',this).removeAttr('href');
	});
	
	$('#page-trabajos .trabajo').unbind('click');
	$('#page-trabajos .trabajo').click(function(){
		$('.visualizando').removeClass('visualizando');
		$(this).addClass('visualizando');
		sala_proyecciones_mostrar(); 
	});
	
	$('#page-index .trabajohome').unbind('click');
	$('#page-index .trabajohome').click(function(){
		$('.visualizando').removeClass('visualizando');
		$(this).addClass('visualizando');
		sala_proyecciones_mostrar(); 
	});
	
	$('#submenutrabajos a').each(function(){ 
		if($(this).attr('href')==undefined) return;
		
		var linkto = $(this).attr('href');
		$(this).attr('linktofull',linkto);
		
		linkto = linkto.replace('http://www.tocalasam.lk','');
		linkto = linkto.replace('http://www.tocalasam.net','');
		$(this).attr('linkto',linkto);
		
		$(this).removeAttr('href');
	});
	
	$('#submenutrabajos a').unbind('click');
	$('#submenutrabajos a').click(function(){
		$('#submenutrabajos a.selected').removeClass('selected');
		$(this).addClass('selected');
		listado_proyectos_filter();
		trabajos_paginado_init();
		
		location.href = '#'+$(this).attr('linkto');
		ga_auto_trace();
		
		return false;
	});
	
	trabajos_paginado_init();
	
	if(initial_video_show!=null)
	{
		location.href = 'http://'+location.host+'/#/trabajos/';
		
		$atrabajo = $("#page-trabajos .trabajo span.titulo a[linkto='"+initial_video_show+"']").first();
		$atrabajo.parents('.trabajo').addClass('visualizando');
		
		sala_proyecciones_mostrar(true);
		$('#videoVisor').animate({opacity: 1},visor_fade_time);
		
		initial_video_show = null;
		
		$("#page-trabajos").removeClass('hidden');
		$("#page-trabajos").addClass('visible');
		
		$('#menu a[page=trabajos]').addClass('selected');
	}
} catch(error) {show_error(error,'sala_proyecciones_config_trabajos');}
}

function trabajos_paginado_init()
{
try{
	$('#trabajosPaginado').html('');
	
	var numtrabajos = $('.trabajo:not(.hidden)').length;
	var numpaginas = Math.ceil(numtrabajos/9);
	
	if (numpaginas>1)
	{
		for(var i=1;i<=numpaginas;i++)
		{
			var indexini = (i-1)*9;
			var indexfin = (i)*9-1;
			$('#trabajosPaginado').append('<a class="pagina" page="'+i+'" indexini="'+indexini+'" indexfin="'+indexfin+'">'+i+'</a>');
		}
		
		$('a.pagina').unbind('click');
		$('a.pagina').click(function(){
			if ($(this).hasClass('selected')) return;
			
			$('a.pagina').removeClass('selected');
			$(this).addClass('selected');
			
			var indexini = parseInt($(this).attr('indexini'));
			var indexfin = parseInt($(this).attr('indexfin'));
			
			var $primero = $('.trabajo:not(.hidden)').get(indexini);
			var $ultimo = $('.trabajo:not(.hidden)').get(indexfin);
			
			$('.trabajo:not(.hidden)').show();
			$($primero).prevAll('.trabajo:not(.hidden)').hide();
			$($ultimo).nextAll('.trabajo:not(.hidden)').hide();
			
			return false;
		});
		
		$('a.pagina').first().click();
	}
	else
		$('.trabajo:not(.hidden)').show();
} catch(error) {show_error(error,'trabajos_paginado_init');}
}




function listado_proyectos_filter()
{
try{
	var categoria = $('#submenutrabajos a.selected').attr('categoria');

	if (categoria)
	{
		$('.trabajo.hidden.'+categoria+'').removeClass('hidden');
		$('.trabajo:not(.'+categoria+')').addClass('hidden');
	}	
	else
		$('.trabajo.hidden').removeClass('hidden');
} catch(error) {show_error(error,'listado_proyectos_filter');}
}





/**
 * Realiza el efecto de ocultar el visor mostrando a su vez el contenido
 */
function sala_proyecciones_ocultar()
{
try{
	sala_proyecciones_visible = false;
	location.href = href_back;
	ga_auto_trace();
	show_page_title(title_back);
	
	$('#logo').css('cursor','pointer');
	
	// ocultar el video
	$('#vimeoLoader').remove();
	$('#videoPlayer').html('');
	$('#videoVisor').animate({opacity: 0},visor_fade_time,function(){
		
		$('#next-page,#last-page').removeClass('visor');
		$('#next-page,#last-page').removeClass('visorhover');
		
		$('#last-page').animate({opacity:1},visor_hide_elements_time);
		$('#next-page').animate({opacity:1},visor_hide_elements_time);
		
		// ocultar el visor
		$('#pageVisor').slideUp({duration:visor_transition_time-100,easing:visor_transition_easing});
		
		// mostrar el contenido
		$('#pageContent').slideDown({
			duration:visor_transition_time,
			easing:visor_transition_easing,
			complete: function()
			{
				$('#pageContent').css('overflow','visible');
			}
		});
		
		next_prev_check();
	});
} catch(error) {show_error(error,'sala_proyecciones_ocultar');}
}

var href_back = '';
var title_back = '';

/**
 * Realiza el efecto de mostrar el visor ocultando el contenido
 */
function sala_proyecciones_mostrar(sindeslizar,nocrearnicargar)
{
	devel_text('sala_proyecciones_mostrar('+(sindeslizar?'sindeslizar=true':'')+')');
try{
	href_back = location.href;
	title_back = document.title;
	
	$('#logo').css('cursor','default');
	sala_proyecciones_visible = true;
	
	if(!nocrearnicargar)
	{
		sala_proyecciones_crear_reproductor();
		sala_proyecciones_cargar_trabajo();
		$('#videoVisor').css('opacity',0);
	}
	else
	{
		
	}
		
	sala_proyecciones_colocar();
	
	$('#cerrar,#cerrar span.texto').removeClass('hidden');
	$('#cerrar span.texto').hide();
	$('#cerrar span.icon').click(function(){ sala_proyecciones_ocultar(); ga_event('sala-proyecciones','cerrar'); });
	$('#cerrar span.icon').mouseover(function(){ $('#cerrar span.texto').fadeIn(100); });
	$('#cerrar span.icon').mouseout(function(){ $('#cerrar span.texto').fadeOut(100); });
	
	$('#next-page,#last-page').addClass('visor');
	
	if(sindeslizar)
	{
		$('#pageContent').hide();
		$('#pageVisor').show();
		sala_proyecciones_colocar();
	}
	else
	{
		// ocultar el contenido
		$('#pageContent').slideUp({duration:visor_transition_time-100,easing:visor_transition_easing,complete: function() {}});
		
		// mostrar el visor
		$('#pageVisor').slideDown({
			duration:visor_transition_time,
			easing:visor_transition_easing,
			complete: function()
			{
				sala_proyecciones_colocar();
				$('#videoVisor').animate({opacity: 1},visor_fade_time);
			}
		});
	}
	
	next_prev_check();
} catch(error) { show_error(error,'sala_proyecciones_mostrar'); }
}


var vimeo_alternative = '<div id="vimeoAlternative" class="hidden">Lo sentimos, el vídeo que quieres ver no se puede mostrar.<br/>Tu navegador no dispone de reproductor Flash.<br/>Si quieres puedes verlo directamente en <a href="http://vimeo.com/" id="vimeo_link" target="_blank">vimeo</a><br/></div>';

function sala_proyecciones_crear_reproductor()
{
try{
	if($('#videoPlayer').length==0)
	{
		// crear el visualizador
		$('#pageVisor').append('<div id="cerrar" class="hidden"><span class="icon"></span><span class="texto hidden">cerrar la sala de proyecciones</span></div>');
		$('#videoVisor').append(''
								+'<div id="videoShare"></div>'
								+'<div id="videoPlayer"><div id="vimeo">'+vimeo_alternative+'</div><div id="vimeoLoader" class="hidden"></div></div>'
								+'<div id="videoTitle"></div>'
								+'<div id="videoDescription"></div>'
								);
		
		sala_proyecciones_colocar();
	}
} catch(error) {show_error(error,'sala_proyecciones_crear_reproductor');}
}


function urlencode(str) 
{
	str = escape(str);
	str = str.replace('+', '%2B');
	str = str.replace('%20', '+');
	str = str.replace('*', '%2A');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	return str;
}

function urldecode(str) 
{
	str = str.replace('+', ' ');
	str = unescape(str);
	return str;
}

function sala_proyecciones_cargar_trabajo()
{
try{
	devel_text("sala_proyecciones_cargar_trabajo()");
	
	$visualizando = $('.trabajo.visualizando,.trabajohome.visualizando');
	
	if ($visualizando.length>0)
	{
		$('#vimeo').remove();
		
		$('#videoTitle').animate({opacity: 0},visor_fade_time);
		$('#videoDescription').animate({opacity: 0},visor_fade_time);
		$('#videoShare').animate({opacity: 0},visor_fade_time);
		
		$('#videoPlayer').animate({opacity: 0},visor_fade_time,function(){
			
			location.href = '#'+$('.trabajo.visualizando span.titulo a,.trabajohome.visualizando span.titulo a').first().attr('linkto');
			ga_auto_trace();
			
			$trabajo = $visualizando.first();

			$('#videoShare').html('');
			
			titulo = $('.info .titulo',$trabajo).html();
			fecha = $('.info .fecha',$trabajo).html();
			categoria = $('.info .categoria',$trabajo).html();
			$('#videoTitle').html('<h1>'+titulo+'</h1>'+'<p class="categoria">'+categoria+'</p>'+'<p>'+fecha+'</p>');

			show_page_title(titulo);
			
			descripcion = $('.info .descripcion',$trabajo).html();
			$('#videoDescription').html(descripcion);
			
			// linkto = $('span.titulo a',$trabajo).attr('linkto');
			
			$('#videoPlayer').html('<div id="vimeo">'+vimeo_alternative+'</div><div id="vimeoLoader" class="hidden"></div>');
			vimeo_id = $('.info .vimeo_id',$trabajo).html();
			//setTimeout('vimeo_player('+vimeo_id+')',400);
			vimeo_player(vimeo_id);
			$('#vimeo_link').attr('href','http://vimeo.com/'+vimeo_id);
			
			$('#videoShare').animate({opacity: 1},visor_fade_time);
			$('#videoPlayer').animate({opacity: 1},visor_fade_time);
			$('#videoTitle').animate({opacity: 1},visor_fade_time);
			$('#videoDescription').animate({opacity: 1},visor_fade_time);
			
			sala_proyecciones_colocar();
		});
		
		sala_proyecciones_colocar();
		
		mostrar_video_info();
	}
} catch(error) {show_error(error,'sala_proyecciones_cargar_trabajo');}
}




function trabajo_share()
{
	$visualizando = $('.trabajo.visualizando,.trabajohome.visualizando');
	if ($visualizando.length>0)
	{
		$trabajo = $visualizando.first();
		
		titulo = $('.info .titulo',$trabajo).html();
		linkto = 'http://www.tocalasam.net/#'+$('span.titulo a',$trabajo).attr('linkto');
		fblinkto = urlencode('http://www.tocalasam.net'+$('span.titulo a',$trabajo).attr('linkto'));
		
		$('#videoShare').css('opacity',0);
		
		// facebook
		$('#videoShare').append('<div id="fbshare"><iframe src="http://www.facebook.com/plugins/like.php?href='+fblinkto+'&amp;layout=button_count&amp;show_faces=false&amp;width=88&amp;action=recommend&amp;font=trebuchet+ms&amp;colorscheme=light&amp;height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:88px; height:20px;" allowTransparency="true"></iframe></div>');
		//$('#videoShare').append('<a name="fb_share" type="button" href="http://www.facebook.com/sharer.php?u=http://www.google.es/&t=prueba google">Share</a>');
		//$('#videoShare').append('<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>');
		// twitter
		$('#videoShare').append('<div id="twshare"><a href="http://twitter.com/share" class="twitter-share-button" data-count="none" data-url="'+linkto+'" data-text="Qué guapo este vídeo de Tócalasam! '+titulo+'">Tweet</a></div>');
		$('#videoShare').append('<script src="http://platform.twitter.com/widgets.js"></script>');
		
		setTimeout("$('#videoShare').animate({opacity:1},visor_hide_elements_time);",500);
	}
}





/**
 * Coloca el visor centrado según el tamaño de la ventana en ese momento
 */
function sala_proyecciones_colocar()
{
try{
	// calcular el height del visor
	var min_height = $('#videoVisor').height();
	var centro_height = $(window).height()-$('#pageTitle').height();
	if (centro_height<min_height+20) centro_height = min_height+20;
	$('#pageVisor .centro').height( centro_height+'px' );
	
	// centrar verticalmente el video
	var video_top = ($('#pageVisor .centro').height() - $('#videoVisor').height())/2;
	$('#videoVisor').css('top',video_top+'px');
} catch(error) {show_error(error,'sala_proyecciones_colocar');}
}










function vimeo_player(video_id)
{
	devel_text("vimeo_player("+video_id+")");
	
	var flashvars = {
		clip_id: video_id,
		show_portrait: 0,
		show_byline: 0,
		byline: 0,
		show_title: 0,
		title: 0,
		color: 'd80073',
		js_api: 1, // required in order to use the Javascript API
		js_onLoad: 'vimeo_player_loaded', // moogaloop will call this JS function when it's done loading (optional)
		js_swf_id: 'moogaloop' // this will be passed into all event methods so you can keep track of multiple moogaloops (optional)
	};
	var params = {
		allowscriptaccess: 'always',
		allowfullscreen: 'true',
		bgcolor: '#000000'
	};
	var attributes = {};

	if(!swfobject.hasFlashPlayerVersion('6.0.0'))
		$('#vimeoAlternative').removeClass('hidden');
	else
	{
		//$('#vimeoLoader').hide().removeClass('hidden').fadeIn();
		$('#vimeoLoader').removeClass('hidden');
		$('#vimeoLoader').show();
		
		// For more SWFObject documentation visit: http://code.google.com/p/swfobject/wiki/documentation
		swfobject.embedSWF("http://vimeo.com/moogaloop.swf", 'vimeo', "800", "460", "9.0.0","expressInstall.swf", flashvars, params, attributes);
		
		$('#vimeo').css('visibility','hidden');
	}
}


function vimeo_player_loaded () 
{
	setTimeout("$('#vimeoLoader').fadeOut(function(){$('#vimeo').css('visibility','visible');});",300);
	
	var player = $('#vimeo').get(0);

	player.api_addEventListener('onFinish', 'vimeo_player_on_finish');
	player.api_addEventListener('onPlay', 'vimeo_player_on_play');
	player.api_addEventListener('onPause', 'vimeo_player_on_pause');

	trabajo_share();
}

function vimeo_player_on_play ()
{
	ocultar_video_info();
	ga_event('sala-proyecciones','play',location.href);
}

function vimeo_player_on_pause ()
{
	mostrar_video_info();
	ga_event('sala-proyecciones','pause',location.href);
}

function vimeo_player_on_finish ()
{
	mostrar_video_info();
	ga_event('sala-proyecciones','finish',location.href);
}

function ocultar_video_info()
{
	$('#videoTitle').animate({opacity:0},visor_hide_elements_time);
	$('#videoDescription').animate({opacity:0},visor_hide_elements_time);
	$('#videoShare').animate({opacity:0},visor_hide_elements_time);
	$('#last-page').animate({opacity:0},visor_hide_elements_time);
	$('#next-page').animate({opacity:0},visor_hide_elements_time);
}

function mostrar_video_info()
{
	$('#videoTitle').animate({opacity:1},visor_hide_elements_time);
	$('#videoDescription').animate({opacity:1},visor_hide_elements_time);
	$('#videoShare').animate({opacity:1},visor_hide_elements_time);
	$('#last-page').animate({opacity:1},visor_hide_elements_time);
	$('#next-page').animate({opacity:1},visor_hide_elements_time);
}


