var $window;
var $contenedor;
var $contenidos;
var indices;
var idiomas;
var $cargando;
var cacheHTML = new Array();
var cargando = false;
var cargada = document.location.href;
var altofijo = 510;
var lang = 'es';
var esie = false;

function quitaFilter100($obj) {
	if (esie) {
		var iestyle = $obj.attr('style').replace(/FILTER: alpha\(opacity\=100\);/g,'');
		$obj.attr('style',iestyle);
	}
}

function centrarEnvoltorio() {
	var mt = Math.round(($window.height()-altofijo)/2);
	if (mt<0) {mt = 0;}
	$contenedor.css('margin-top', mt);
	return false;
}

function ponCargando(activo) {
	if ((activo)&&(!cargando)) {cargando=true;$cargando.fadeIn(250);}
	if ((!activo)&&(cargando)) {cargando=false;$cargando.fadeOut(250);}
}

function actualizaIdiomas(href) {
	jQuery.each(idiomas,function(i,n){
		var opt = n.href.split('?').pop();
		n.href=href+'?'+opt;
	});
}

function actualizaIndices(enlace) {
	jQuery.each(indices,function(i,n){jQuery(n).removeClass('selec');});
	jQuery(enlace).addClass('selec');
}

function actualizaPagina() {
	var al = arguments.length;
	if (al<2) {return false;}
	var enlace = arguments[0];
	var html = arguments[1];
	var actualizaIdx = true; 
	if (al>2) {actualizaIdx = arguments[2];}
	cargada = enlace.href;
	$contenidos.fadeOut(250, function() {
		if (actualizaIdx) {actualizaIndices(enlace);}
		actualizaIdiomas(enlace.href);
		$contenidos.html( $(html).find('#contenidos').html() );
		preProcesar();
		$contenidos.fadeIn(250,initContenidos);
		ponCargando(false);
	});
}

var navegando = false;

function cargaEnlace() {
	var al = arguments.length;
	if (al==0) {return false;}
	navegando = true;
	
	var enlace = arguments[0];
	if (al>1) {var actualizaIdx = arguments[1];}
	
	if (cargada != enlace.href) {
		if (cacheHTML[enlace.href]) {
			actualizaPagina(enlace, cacheHTML[enlace.href]);
		} else {
			ponCargando(true);
			jQuery.ajax({
			    type: "GET",
 			 	url: enlace.href,
			    processData: false,
			    success: function(html){
					cacheHTML[enlace.href] = html;
					actualizaPagina(enlace, html);
		    	},
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert('Error al cargar la página');
					ponCargando(false);
				}
			});
		}
	}
}

var escuchando = -1;
var musica_iframes = new Array();
var escuchar;

function initEscucha() {
	var es = jQuery('.corte',$contenidos);
	//var $seleccione_pista = jQuery('#seleccione_pista');
	if (es.length) {
		escuchar = jQuery('#escuchar_txt').text();
		escuchando = -1;
		jQuery.each(
			es,
			function (i,n) {
				var $n = jQuery(n);
				var $a = jQuery('a',$n);
				var href = $a.attr('href');
				var $i = jQuery('.musica_iframe',$n);
				musica_iframes[i] = $i;
				$n
					.mouseover(function() {
						$n.css({'border-color':'white'});
						$a.css('text-decoration','underline');
						//if (escuchando != i) {$i.html(escuchar);}
					})
					.mouseout(function() {
						$n.attr('style','');
						$a.attr('style','');
						//if (escuchando != i) {$i.html('');}
					})
					.click(function() {
						//if (escuchando == -1) {$seleccione_pista.animate({'opacity':0},1000);}
						if (escuchando == i) {return false;}
						escuchando = i;
						jQuery.each(musica_iframes,function(j,m) {m.html(escuchar);});
						$i.html('<iframe src="'+href+'"></iframe>');
					});
				$a.click(function(e) {e.preventDefault(); $n.click(); return false;});
			}
		)
	}
}

function initIndice() {
	var enlaces = jQuery('#indice a');
	jQuery.each(
		enlaces,
		function(i,n) {
			var $n = jQuery(n);
			$n.click(function(e) {e.preventDefault(); $n.blur(); cargaEnlace(this); return false;});
			if ($n.hasClass('selec')) {
				cacheHTML[n.href] = $('html').html();
			}
		}
	)
}

/*function initVerTrailer() {
	var v = jQuery('#vertrailer');
	if (v.length) {
		v.click(function(e) {
			e.preventDefault();
			v.blur();
			cargaEnlace(this);
			return false;
		});
	}
}*/

var $barra_vertical_anillo;
var pista_altura;
var paradesplazar;
var recuadro_altura;
var contenido_altura;
var desplazando = false;

function desplazaAnillo() {
	var al = arguments.length;
	if (al) {
		var dist = arguments[0];
		var anim = true;
		if (al>1) {anim = arguments[1];}
		if (desplazando) {return false;}
		var o = eval($barra_vertical_anillo.position().top/1);
		var d = o + eval(dist/1);
		if (d<=0) {d=0;}
		if (d>=pista_altura) {d=pista_altura;}
		if (d==o) {return false;}
		if (anim) { 
			$barra_vertical_anillo.animate({'top':d},250);
			paradesplazar.animate({'top':(0-(d*contenido_altura/pista_altura))},250,'linear',function() {desplazando = false;});
		} else {
			$barra_vertical_anillo.css('top',d);
			paradesplazar.css('top',(0-(d*contenido_altura/pista_altura)));
			desplazando = false;
		}
	}
}

function initBarraVertical(adesplazar) {
	$barra_vertical_anillo = jQuery('#barra_vertical_anillo');
	if ($barra_vertical_anillo.length) {
		paradesplazar = jQuery(adesplazar);
		recuadro_altura = paradesplazar.parent().outerHeight();
		contenido_altura = paradesplazar.outerHeight() - recuadro_altura;
		pista_altura = jQuery('#barra_vertical_pista').outerHeight() - $barra_vertical_anillo.outerHeight();
		$barra_vertical_anillo.draggable({
			'axis':'y',
			'containment':'parent',
			'cursor': 'n-resize',
			'start': function(e,ui) {},
			'drag': function(e,ui) {
				var t = ui.position.top;
				paradesplazar.css('top',(0-(t*contenido_altura/pista_altura))+'px');
			}
		});
		//jQuery('#barra_vertical_arriba').click(function() {desplazaAnillo(-60);});
		//jQuery('#barra_vertical_abajo').click(function() {desplazaAnillo(60);});
		var deltaraton = Math.round(10000/contenido_altura);
		jQuery('#barra_vertical_arriba').click(function() {desplazaAnillo(0-deltaraton*6);});
		jQuery('#barra_vertical_abajo').click(function() {desplazaAnillo(deltaraton*6);});
		jQuery('#marco_contenidos').mousewheel(function(e, delta) {
			e.preventDefault();
			desplazaAnillo(0-delta*deltaraton, false);
			return false;
		});
	}
}

var $marco_zoom;
var $zoom;

var cargando_img = false;
var img_actual;
var img_cargada = new Array();
var $fotos_aux;

function centraEnZoom() {
	$fotos_aux = jQuery('#fotos_aux');
	if ($fotos_aux.length) {
		$fotos_aux.borde = {h:($fotos_aux.outerWidth()-$fotos_aux.width()),v:($fotos_aux.outerHeight()-$fotos_aux.height())};
		if ($fotos_aux.css('display')!='none') {
			var osz = $marco_zoom.offset();
			var t = osz.top + Math.round(($marco_zoom.alto - $fotos_aux.height())/2);
			var l = osz.left + Math.round(($marco_zoom.ancho - $fotos_aux.width())/2);
			$fotos_aux.css({'top':t,'left':l});
		}
	}
}

function cargaImagen() {
	if (cargando_img) {return false;}
	cargando_img = true;
	var al = arguments.length;
	if (al>0) {
		var link = arguments[0];
		url = link.attr('href');
		title = '';
		rel = '';
		if (al>1) {title = arguments[1];}
		if (al>2) {rel = arguments[2];}

		if (url == img_actual) {cargando_img = false; return false;}

		var details = document.getElementById('details');

		if (!img_cargada[url])	{
			ponCargando(true);
		}

		if ($cortina.length) {$cortina.fadeIn(250);}

		var img = new Image();
		$(img)
			.load(function (){
				img_cargada[url]=true;
				img_actual = url;
				var osl = link.children().eq(0).offset();
				var osz = $marco_zoom.offset();
				if ((this.height + $fotos_aux.borde.v ) > $marco_zoom.alto) {this.height = $marco_zoom.alto - $fotos_aux.borde.v;}
				if ((this.width + $fotos_aux.borde.h ) > $marco_zoom.ancho) {this.width = $marco_zoom.ancho- $fotos_aux.borde.h;}
				var dt = Math.round(($marco_zoom.alto - (this.height + $zoom.borde.v ))/2);
				var dl = Math.round(($marco_zoom.ancho - (this.width + $zoom.borde.h ))/2);
				var t = osz.top + dt;
				var l = osz.left + dl;
				$zoom.animate({'opacity':0},250);
				$fotos_aux
					.css({
						'top':osl.top,
						'left':osl.left,
						'height':link.outerHeight(),
						'width':link.outerWidth(),
						'opacity':0.33,
						'display':'block'
					})
					.attr('src',url)
					.animate(
						{'top':t,'left':l,'width':this.width,'height':this.height,'opacity':1},
						500,
						'linear',
						function() {
							$zoom.css({'top':dt,'left':dl,'width':this.width,'height':this.height,'background-image':'url('+url+')','opacity':1,'display':'block'});
							quitaFilter100($zoom);
							$fotos_aux.css({'top':0,'left':0,'opacity':0,'height':0,'width':0});
							cargando_img = false;
							ponCargando(false);
						}
					);
			})
			.error(function () {
				cargando_img = false;
				img_cargada[url]=false;
				ponCargando(false);
			})
			.attr('src', url);
	}	
}

var $cortina;

function initMiniaturas() {
	img_actual = '';
	$fotos_aux = jQuery('#fotos_aux');
	if ($fotos_aux.length==0) {
		jQuery('body').append('<img id="fotos_aux" />');
		$fotos_aux = jQuery('#fotos_aux');
	}
	$fotos_aux.borde = {h:($fotos_aux.outerWidth()-$fotos_aux.width()),v:($fotos_aux.outerHeight()-$fotos_aux.height())};
	$fotos_aux.css({'top':0,'left':0,'opacity':0,'height':0,'width':0});
	var $fotos_mini = jQuery('#fotos_mini');
	var $carteles_mini = jQuery('#carteles_mini');
	var $bso_mini = jQuery('#bso_mini');
	var m = jQuery('a', $fotos_mini.add($carteles_mini).add($bso_mini));
	if (m.length) {
		if ($fotos_mini.length) {
			jQuery.each(m, function(i,n) {
				var m = Math.round((150 - jQuery(n.firstChild).outerWidth())/2);
				n.parentNode.style.left = m+'px';
			});
		}
		$marco_zoom = jQuery('#marco_zoom');
		$marco_zoom.alto = $marco_zoom.outerHeight();
		$marco_zoom.ancho = $marco_zoom.outerWidth();
		$zoom = jQuery('#zoom');
		$zoom.borde = {h:($zoom.outerWidth()-$zoom.width()),v:($zoom.outerHeight()-$zoom.height())};
		$cortina = jQuery('div.cortina',$contenidos);
		m.click(function(e) {
			e.preventDefault();
			m.blur();
			cargaImagen(jQuery(this));
			return false;
		});
	}
}

String.prototype.trim = function() {
	return this.replace(/^\s*|\s*$|^\t*|\t*$|^\n*|\n*$|^\r*|\r*$/g,'');
}

var hallovido = false;

function initPortada() {
	var c = jQuery('#cast');
	var cl = jQuery('#cast_lluvia');
	if ((c.length)&&(cl.length)) {
		if (navegando) {
			c.css('display','block');
			cl.css('display','none');			
		}
	}	
}

function initLluvia() {
	var c = jQuery('#cast');
	var cl = jQuery('#cast_lluvia');
	if ((c.length)&&(cl.length)) {
		if (hallovido) {
			c.css('display','block');
			cl.css('display','none');			
		} else {
			c.css('display','none');
			cl.css('display','block');
			var text = new Array();
			c.find('p').each(function(i,n) {
				var t = jQuery(n).text().trim();
				if (t!='') {text.push(t);}
			});
			mtx.init("cast_lluvia", text, 500, 150, [255,255,255], [233,167,6], [255,255,255]);
			hallovido = true;
		}
	}
}

var curvideo = '';
var cambiandovideo = false;

function initVideo() {
	var v = jQuery('#video_marco');
	if (v.length) {
		curvideo = '';
		cambiandovideo = false;
		var idx = jQuery('a',jQuery('#video_indice'));
		idx.click(function(e) {
			e.preventDefault();
			this.blur();
			var href = e.target.href;
			if (href == curvideo) {return false;}
			if (cambiandovideo) {return false;}
			cambiandovideo = true;
			idx.removeClass('selec');
			v.html('');
			var left = v.position().left;
			left += Math.round((v.width()-e.target.rel)/2);
			var $this = $(this);
			v.animate(
				{width:e.target.rel+'px',left:left},
				250,
				'linear',
				function(){
					v.html('<iframe id="video_iframe" src="'+href+'"></src>');
					$this.addClass('selec');
					curvideo = href;
					cambiandovideo = false;
				}
			);
			return false;
		});
	}
}

function initPressbookLink() {
	var l = jQuery('#pressbook_link');
	if (l.length) {
		var href = l.attr('href');
		l.attr('href','#')
		l.click(function(e) {
			e.preventDefault();
			window.open(href,'pressbook','height=640,width=849,status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=no,scrollbars=0');
			return false;
		});
	}
}

function initPressLink() {
	var l = jQuery('#press_link');
	if (l.length) {
		var href = l.attr('href');
		var dim = l.attr('rel');
		l.attr('href','#')
		l.click(function(e) {
			e.preventDefault();
			window.open(href,'press',dim+',status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=yes,scrollbars=1');
			return false;
		});
	}
	
}

function initEFALink() {
	var l = jQuery('#efa a');
	if (l.length) {
		var href = l.attr('href');
		var dim = l.attr('rel');
		l.click(function(e) {
			e.preventDefault();
			e.target.blur();
			window.open(href,'efa',dim+',status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=no,scrollbars=0');
			return false;
		});
	}
}

function initContenidos() {
	initPortada();
	initBarraVertical('#sinopsis_txt,#fotos_mini');
	initMiniaturas();
	initEscucha();
	initVideo();
	initPressbookLink();
	initPressLink();
	initEFALink();
}

var init_marco = false;

function initMarco() {
	if (!init_marco) {
		init_marco = true;
		jQuery.cookie('larinit', 1);
		initIndice();
		initLluvia();
	}
}

function preProcesar() {
	var c = jQuery('#cast');
	var cl = jQuery('#cast_lluvia');
	if ((c.length)&&(cl.length)) {
		if (navegando) {
			c.css('display','block');
			cl.css('display','none');
		} else {
			c.css('display','none');
			cl.css('display','block');
		}
	}
}

jQuery(document).ready(function() {

	$window = jQuery(window);
	$contenedor = jQuery('#contenedor');
	altofijo = 510;
	if (jQuery('#pressbook').length) {altofijo=600;}
	var $envoltorio = jQuery('#envoltorio');
	var $cabecera = jQuery('#cabecera');
	var $presenta = jQuery('#presenta');
	var $lang = jQuery('#lang');
	var $titulo = jQuery('#titulo');
	$contenidos = jQuery('#contenidos');
	$cargando = jQuery('#cargando');
	var $indice = jQuery('#indice');
	indices = jQuery('#indice a');
	idiomas = jQuery('#lang a');
	centrarEnvoltorio();

	/* begin: carga idioma almacenado */
	lang = jQuery.cookie('larlang');
	if ((lang!='es')&&(lang!='en')&&(lang!='fr')) {lang='es';}
	/* end: carga idioma almacenado */

	preProcesar();
	/* begin: fundido incial */
	if (jQuery.cookie('larinit')==1) {
		initMarco();
		initContenidos();
	} else {
		$envoltorio.add($presenta).add($titulo).add($contenidos).add($indice).add($lang).css({'opacity':1,'display':'none'});
		$envoltorio.fadeIn(
			500,
			function() {
				quitaFilter100($envoltorio);
				$presenta.fadeTo(500,1).fadeIn(
					500,
					function() {
						$titulo.fadeTo(500,1).fadeIn(
							500, 
							function() {
								quitaFilter100($titulo);
								$contenidos.add($indice).add($lang).fadeTo(500,1).fadeIn(250, function() {
									quitaFilter100($contenidos);
									initMarco();
									initContenidos();
								});
							}
						);
					}
				);
			}
		);
	}
	/* end: fundido inicial */


});


jQuery(window).resize(function(e){
	centrarEnvoltorio();
	centraEnZoom();
});
