/*---------------------------------------- APLICACION ----------------------------------------*/
Aplicacion = Class.create({
	initialize:function() 
  {
		this.partesSeleccionadas = false;
		this.transparentImage = "img/transparente.gif";
		this.paginaCargada = false;

		if(typeof(Cargador) != 'undefined')
			this.cargador = new Cargador({
				moverX: false,
				moverRaton: true,
				ajusteAncho: -30,
				ajusteAlto: -10,
				swf: {
					ruta: 'flash/cargador.swf',
					ancho: 21,
					alto: 21,
					params:{
						wmode: 'transparent'
			}}}); 
  	if(typeof(Ventana) != 'undefined') 
  		ventana = new Ventana();
			
  	Event.observe(window, 'resize', this.onSizeUpdate.bind(this));
  	Event.observe(window, 'load', this.onSizeUpdate.bind(this));
  	document.observe('dom:loaded', this.onPagCargada.bind(this));
  },
  pngHack:function()
  {
  	if(!Prototype.Browser.IE || Prototype.Browser.IEVersion > 6)
			return;

  	$$('img').each(this.hackImage.bind(this));
  },
  hackImage:function(element)
  {
  	var src = element.src;

		if (src.indexOf(this.transparentImage) != -1)
			return; // Already fixed

		if(src.indexOf("png") == -1) // There's got to be a better check than this!
		{
			element.runtimeStyle.filter = "";
			return;
		}
		var srcOrig = src;
		element.src = this.transparentImage;
		element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='image')";
		if(!element.src__orig)
		{
			element.src__orig = srcOrig;
			element.observe('load', this.hackImage.bind(this, element));
		}
  },
  onPagCargada:function()
  {
  	if(this.paginaCargada)
  		return;
  	this.paginaCargada = true;
  	
  	this.pngHack();
 
  	this.trompetaRadio = $('trompetaRadio');
		this.trompetaRadio_h = 268; // this.trompetaRadio.getHeight();
		this.cinta = $('cinta');
		this.cinta_h = 120;
		this.celdaIzda = $('celdaIzda');
		this.contenedorCentro = $('contenedorCentro');
		this.ctrlScroll = $('controlScroll');
		this.ctrlScroll_h = 30;
		this.deslizCentro = new Deslizador(this.contenedorCentro, {
			btnMas: 'masDesliz',
			btnMenos: 'menosDesliz',
			margen: 130,
			detector:{
				onConDeslizamiento:this.ctrlScroll.show.bind(this.ctrlScroll),
				onSinDeslizamiento:this.ctrlScroll.hide.bind(this.ctrlScroll)
			}
		});
		
		var fRuedaRaton = this.onRuedaRaton.bindAsEventListener(this);
		document.observe("mousewheel", fRuedaRaton);
  	document.observe("DOMMouseScroll", fRuedaRaton);
		this.onSizeUpdate();
		
		this.decompression = $('decompression');
		this.txtDecompression = this.decompression.down('span');
		this._onMouseOutDecompression();
		this.decompression.observe('mouseover', this._onMouseOverDecompression.bind(this));
		this.decompression.observe('mouseout', this._onMouseOutDecompression.bind(this));
		
		// Google Analytics
		var gaTrackerId = 'UA-503372-5';
		var gaJsHost = (('https:' == document.location.protocol) ? 'https://ssl.'	: 'http://www.') + 'google-analytics.com/ga.js';
		var script = new Element('script', {'src': gaJsHost});
		var gaTrack = function() 
		{
			if(!script.readyState || /loaded|complete/.test(script.readyState)) 
			{
				var pageTracker = _gat._getTracker(gaTrackerId);
				pageTracker._trackPageview();
			}
		};
		script.observe('load', gaTrack);
		script.observe('readystatechange', gaTrack);
		document.body.appendChild(script);
  },
  onSizeUpdate:function()
  {
		if(this.trompetaRadio) 
		{
			var dimensiones = $(window.document.body).getDimensions();
			var anchoCeldaIzda = dimensiones.width/2 - 280;
			
			this.trompetaRadio.setStyle({bottom: '', top: (dimensiones.height - this.trompetaRadio_h) + 'px'});
			this.cinta.setStyle({bottom: '', top: (dimensiones.height - this.cinta_h) + 'px'});
			this.ctrlScroll.setStyle({bottom: '', top: (dimensiones.height - this.ctrlScroll_h - 10) + 'px'});

			this.celdaIzda.setWidth(anchoCeldaIzda);
			this.contenedorCentro.setHeight(dimensiones.height/*document.viewport.getHeight()*/);
			this.deslizCentro.hayDeslizamiento();
			this.deslizCentro.comprobarLimites();
			
			Cookie.set('anchoCeldaIzda', anchoCeldaIzda, 600);
		}
  },
  onRuedaRaton:function(evento)
  {
  	if(Event.wheel(evento) > 0)
  		this.deslizCentro.moverMas(4);
  	else
  		this.deslizCentro.moverMenos(4);
  },
  onProgramacionPagCargada:function()
  {
  	this.selectorAnyo = $('selectorAnyo');
  	this.selectorMes = $('selectorMes');
  	
  	this.selectorAnyo.observe('change', this._onCambioSelectorFecha.bind(this));
  	this.selectorMes.observe('change', this._onCambioSelectorFecha.bind(this));
  	
  	var descProgramacion = $('descProgramacion');
	  if(descProgramacion)
	  {
		  descProgramacion.setHeight(245);
		  
		  var scrollDesc = $('scrollDesc');
		  this.deslizCentro = new Deslizador(descProgramacion, {
			btnMas: 'scrollDescArriba',
			btnMenos: 'scrollDescAbajo',
			margen: 90,
			onResize: true,
			detector:{
				onConDeslizamiento: scrollDesc.show.bind(scrollDesc),
				onSinDeslizamiento: scrollDesc.hide.bind(scrollDesc)
			}
		  });
	  }
	  /**/
	  $$('a.evento').each(function(evento){
	  	var nombreIndice = evento.href.split('/').last();
	  	evento.onclick = function(){ 
	  		pajax.getCtrl().verEvento(nombreIndice);
	  		return false; 
	  	};
	  });
	  /**/
  },
  onArtistasPagCargada:function()
  {
	  var descArtista = $('descArtista');
	  if(descArtista)
	  {
		  descArtista.setHeight(276 - 30 - (descArtista.offsetTop - descArtista.parentNode.offsetTop) - 88);
		  
		  var scrollDesc = $('scrollDesc');
		  this.deslizCentro = new Deslizador(descArtista, {
			btnMas: 'scrollDescArriba',
			btnMenos: 'scrollDescAbajo',
			margen: 10,
			onResize: true,
			detector:{
				onConDeslizamiento: scrollDesc.show.bind(scrollDesc),
				onSinDeslizamiento: scrollDesc.hide.bind(scrollDesc)
			}
		  });
	  }
	  /**/
	  var imgEstrella;
	  var artistaSel;
	  $$('a.artista').each(function(artista){
	  	var nombreIndice = artista.href.split('/').last();
	  	var imgEstrellaArtista = artista.next('img');
	  	if(imgEstrellaArtista)
	  	{
	  		imgEstrella = imgEstrellaArtista;
	  		artistaSel = artista;
	  	}
	  	artista.onclick = function(){ 
	  		pajax.getCtrl().verArtista(nombreIndice);
	  		artista.up().insert(imgEstrella);
	  		return false; 
	  	};
	  });
	  /**/
  },
  onGaleriaPagCargada:function(anchoTodo)
  {
  	var imagenesGaleria = $('imagenesGaleria');
  	if(imagenesGaleria)
  	{
  		var ulImgs = imagenesGaleria.down('ul');
  		if(ulImgs)
  		{
  			ulImgs.setWidth(anchoTodo);
			 
  			var scrollImgs = $('scrollImgs');
  			var deslizImgs = new Deslizador(imagenesGaleria, {
					btnMas: 'scrollImgsIzda',
					btnMenos: 'scrollImgsDcha',
					direccion: 'hrz',
					desplazamiento: 10,
					tpo: 2,
					dimDesliz: anchoTodo,
					onResize: true,
					detector:{
						onConDeslizamiento: scrollImgs.show.bind(scrollImgs),
						onSinDeslizamiento: scrollImgs.hide.bind(scrollImgs)
					}
  			});
  			var idIntervalo = setInterval(function(){
  				clearInterval(idIntervalo);
  				deslizImgs.onTamanoCambiado();
  			}, 200);
  		}
  	}  
  },
  crearCarruselNoticias:function()
  {
  	var carrusel = new UI.Carousel('carruselNoticias', {animating: false});
  	var elementos = carrusel.elements;
  	var ne = elementos.length;
  	var maxAltura = 0;
  	for(var i=0; i<ne; i++)
  		maxAltura = Math.max(maxAltura, elementos[i].getHeight());
  	for(var i=0; i<ne; i++)
  		elementos[i].setHeight(maxAltura);
  	
  	var posCarrusel = Math.aleatorio(0, ne-1);
  	carrusel.container.up().setHeight(maxAltura);
  	carrusel.scrollTo(posCarrusel);
  	//carrusel.updateSize();
  	
  	var fSiguienteNoticia = function(){
  		if(++posCarrusel >= ne)
  			posCarrusel = 0;
  		carrusel.scrollTo(posCarrusel);
  	}; 
  	new PeriodicalExecuter(fSiguienteNoticia, 5);
  },
  onConcursoMaquetasPagCargada:function()
  {
  	var descMaquetas = $('descMaquetas');
	  if(descMaquetas)
	  {
	  	descMaquetas.setHeight(245);
		  
		  var scrollDesc = $('scrollDesc');
		  this.deslizCentro = new Deslizador(descMaquetas, {
			btnMas: 'scrollDescArriba',
			btnMenos: 'scrollDescAbajo',
			margen: 90,
			onResize: true,
			detector:{
				onConDeslizamiento: scrollDesc.show.bind(scrollDesc),
				onSinDeslizamiento: scrollDesc.hide.bind(scrollDesc)
			}
		  });
	  }
  },
	verVentanaEntradas:function()
	{
		ventana.abrirHTML('Tus Entradas', $('tusEntradas').innerHTML, 260, 110, true);
	},
	verImagenArticuloPrensa:function(ruta, ancho, alto)
	{
		var tamanoPantalla = Placom.tamanyoPantalla();
		var altoVentana = ((alto > tamanoPantalla.alto) ? tamanoPantalla.alto - 20 : alto) - 80;
		var contenido = '<div align=\'center\'><img src=\''+ruta+'\' width=\''+ancho+'\' height=\''+alto+'\' /></div>';
		
		ventana.abrirHTML('', contenido, ancho + 20, altoVentana, true);
	},
	
	_onCambioSelectorFecha:function()
	{
		Placom.saltarA('programacion/fecha/anyo/' + this.selectorAnyo.getValue() + '/mes/' + this.selectorMes.getValue());
	},
	_onMouseOverDecompression:function()
	{
		this.txtDecompression.show();
		this.decompression.setOpacity(100);
	},
	_onMouseOutDecompression:function()
	{
		this.txtDecompression.hide();
		this.decompression.setOpacity(20);
	}
});
var app = new Aplicacion();
