var columnaVisible = true;
var nuggetVisible = true;
var anchoAnimado;
var slideColumna;

var divActual;

var cuadro;
var fx;

var scrollVentana;
var pestana = "cerrar";

var marcados;
var colorMarcado = '#ccff99';
var colorFondo = '#ffffff';
var colorDia = '#ffffcc'
var estadoMarcar = false;
var estadoRecurrentes = false;
var viendoDia = false;

window.addEvent('domready', function(){
	var infoAgenda = new Tips2($$('a[tooltip]'), { maxTitleChars: 90, showDelay: 500 });
	anchoAnimado = new Fx.Style( $( 'tablaCalendario' ) , 'width' , { duration : 500 } );
	scrollVentana = new Fx.Scroll( window , { wait : false , duration : 400 } );
	
	var lista = $$('tr.hour_cal')
	lista.each( function( fila )
	{
		var columnas = fila.getParent().getParent().getProperty('cl').toInt() + 2;
		
		if( fila.cells.length == columnas)
		{
			var borrar = true;
			for( var i = 1 ; i <= fila.cells.length - 2 ; i ++ )
				{
				if( fila.cells[ i ].innerHTML != '&nbsp;' )
					borrar = false;
				};
				
			if( borrar )
				fila.remove();
		}		

	});
	
	if( $( 'tablaCalendario' ).hasClass( 'day_cal' ) )
		viendoDia = true;
	
	$( 'enlaceMarcar' ).addEvent( 'click' , function(e) {
		e = new Event(e);
		estadoMarcar = !estadoMarcar;
		_checkbox( estadoMarcar );
		e.stop();
	});
	
	$( 'enlaceRecurrentes' ).addEvent( 'click' , function(e) {
		var imagen;
		var estilo;

		e = new Event( e );
		estadoRecurrentes = !estadoRecurrentes;
		
		if( estadoRecurrentes )
			{
				imagen = '_marcado';
				estilo = 'none';
			}
		else
			{
				imagen = '';
				estilo = '';
			}
			
		$( 'imgRecurrentes' ).src = 'imagenes/agenda/cuadrado' + imagen + '.gif';
		var lista = $$('a[recurring=day]').getParent().getParent().setStyle( 'display' , estilo );

		e.stop();
	});

function _checkbox2()
{
	var imagen = '';
	
	if( estadoRecurrentes )
		imagen = '_marcado';
		
	$('imgMarcar').src = 'imagenes/agenda/cuadrado' + imagen + '.gif';		
	marcar( combo.options[ combo.selectedIndex ].value , estadoMarcar );	
}



	
	if( viendoDia )
	{
		var lista = $$('#tablaCalendario a[tooltip]');
		lista.each( function( enlace )
		{
			var div = enlace.getParent().getParent();
			div.setProperty( 'omlBackground' , '#ffcc99' );
			div.setProperty( 'fondoOriginal' , '#ffcc99' );
			
			enlace.addEvent( 'click' , function() {
				var div = enlace.getParent().getParent();
				infoAgenda.end();
				
				if( divActual != null )
					{
						var fondo;
						divActual.getProperty( 'marcado' ) == '1' ? fondo = colorMarcado : fondo = divActual.getProperty( 'fondoOriginal' );
						divActual.setStyle( 'background-color' , String( fondo ) );
						divActual.setStyle( 'color' , '#000000' );
					}
					
				divActual = div;
				
				div.setStyles({
					'background-color' : '#ff6600',
					'color' : '#ffffff'
				});
				enlace.setStyle( 'cursor' , 'default' );				
				div.setProperty( 'actual' , '1' );
				
				animarCuadro( enlace );
			});			
			
		});
	}	
	else
	{
		var lista = $$('#tablaCalendario a[tooltip]');
		lista.each( function( enlace ) {
												 
			var div = enlace.getParent().getParent();

			if( !viendoDia)
			{
				if( div.getParent().hasClass( 'selected_cal' ) ) 
					div.setProperty( 'fondoOriginal' , '#ffffcc' )
				else
					div.setProperty( 'fondoOriginal' , '#ffffff' );

				enlace.addEvent( 'mouseenter' , function() {
					var div = enlace.getParent().getParent();
					
					if( div.getStyle( 'background-color' ) != '#ffcc99' )
						div.setProperty( 'omlBackground' , div.getStyle( 'background-color' ) );
	
					if( div.getStyle( 'background-color' ) == '#ff6600' )
						return;					
					
					div.setStyle( 'background-color' , '#ffcc99' );
				});
				
				enlace.addEvent( 'mouseleave' , function() {
					var div = enlace.getParent().getParent();
					if( div.getStyle( 'background-color' ) == '#ff6600' )
						return;					
						
					div.setStyle( 'background-color' , String( div.getProperty( 'omlBackground' ) ) );
				});

			}
			else
			{
				div.setProperty( 'omlBackground' , '#ffcc99' );
				div.setProperty( 'fondoOriginal' , '#ffcc99' );
			}	
			
			enlace.addEvent( 'click' , function() {
				var div = enlace.getParent().getParent();
				infoAgenda.end();
				
				if( divActual != null )
					{
						var fondo;
						divActual.getProperty( 'marcado' ) == '1' ? fondo = colorMarcado : fondo = divActual.getProperty( 'fondoOriginal' );
						divActual.setStyle( 'background-color' , String( fondo ) );
						divActual.setStyle( 'color' , '#000000' );
					}
					
				divActual = div;
				
				div.setStyles({
					'background-color' : '#ff6600',
					'color' : '#ffffff'
				});
				enlace.setStyle( 'cursor' , 'default' );				
				div.setProperty( 'actual' , '1' );
				
				animarCuadro( enlace );
			});

		});
	}
	
	cuadro = $( 'cuadro' );

	fx = new Fx.Styles( cuadro ,
	{
		duration: 300,
		wait: false,
		onComplete : function()
		{
			cuadro.setStyle( 'visibility' , 'hidden' );
		}
	});
	
	$( 'tablaCalendario' ).setStyle( 'width' , 750 );
	
	var slideCalendario = new Fx.Slide('calendario', { mode : 'vertical' } );

	$('botonCalendario').addEvent('click', function(e){
		e = new Event(e);
		slideCalendario.toggle();
		nuggetVisible = !nuggetVisible;
		actualizarCookie( 'ct-nugget' , nuggetVisible );
		e.stop();
	});
	
	if( ( Cookie.get( 'ct-nugget' ) == '0' ) && ( Cookie.get( 'ct-nugget' ) ) )
	{		
		slideCalendario.hide();
		nuggetVisible = false;
	}

	slideColumna = new Fx.Slide('columnaIzda', {
		mode : 'horizontal',

		onStart : function() {
			columnaVisible = !columnaVisible;
			ajustarCalendario();
		},
		
		onComplete : function() {			
			ajustarCalendario();
			actualizarCookie( 'ct-columnaIzda' , columnaVisible );
		}
	});
	
	if( ( Cookie.get( 'ct-columnaIzda' ) == '0' ) && ( Cookie.get( 'ct-columnaIzda' ) ) )
	{
		slideColumna.hide();
		columnaVisible = false;
		slideColumna.options.onComplete();
	}

	
	$('columnaIzda').getParent().setStyle( 'float' , 'left' );
	$('columnaIzda').getParent().setStyle( 'padding' , '0' );

	$('botonColumna').addEvent('click', function(e){
		e = new Event(e);
		slideColumna.toggle();
		e.stop();
	});	

	if( idPeticion != 0 )
		{
			var elemento = $E('a[eventid=' + idPeticion + ']');
			if( elemento != undefined )
			{
				elemento.fireEvent( 'click' );
				evento( elemento.getProperty( 'eventid' ) );
				scrollVentana.toElement( elemento.getParent().getParent() );
				idPeticion = 0;
			}
		}
	
})


function ajustarCalendario()
{		
	var tabla = $( 'tablaCalendario' );
	var ancho;
	
	if( tabla.getStyle( 'width' ).toInt() == 750 )
		ancho = 950
	else
		ancho = 750;
		
	if( ( columnaVisible ) && ( ancho == 750 ) )
		{
			anchoAnimado.start( ancho );
			pestana = 'cerrar';
			$('imgBotonColumna').getParent().title = 'Cerrar columna de información';
			omlPestana();
		}

	if( ( !columnaVisible ) && ( ancho == 950 ) )
		{
			anchoAnimado.start( ancho );
			pestana = 'abrir';
			$('imgBotonColumna').getParent().title = 'Abrir columna de información';
			omlPestana();
		}
}

function omoPestana()
{
	$('imgBotonColumna').src = 'imagenes/agenda/' + pestana + '_calendario_m.gif';
}

function omlPestana()
{
	$('imgBotonColumna').src = 'imagenes/agenda/' + pestana + '_calendario.gif';
}

function animarCuadro( enlace )
{
	var destino = $('detalles');
	
	if( !columnaVisible )
	{
		slideColumna.toggle();
	}
	
	cuadro.setStyles
	({
		'left' : enlace.getLeft(),
		'top'	: enlace.getTop(),
		'width' : enlace.getCoordinates().width,
		'height' : enlace.getCoordinates().height,
		'visibility' : 'visible',
		'background-color' : '#ff6600'
	});
	
	fx.start
	({
		'left' : destino.getLeft(),
		'top'	: destino.getTop(),
		'width' : destino.getCoordinates().width,
		'height' : destino.getCoordinates().height,
		'background-color' : '#e5e5e5'
	});	

	if( idPeticion == 0 )
		scrollVentana.toElement( 'calendario' );
}

function evento( id )
{
	var url = 'ajax/evento.asp?id=' + id;
	
	var request = new Json.Remote( url , {
		onComplete : function( elemento ) {
			if( elemento  == null )
				return;
			$('evTitulo').innerHTML = elemento.Texto;
			$('evTipoEvento').innerHTML = elemento.TipoEvento;
			$('evFecha').innerHTML = elemento.FechaLarga;
			$('evLugar').innerHTML = elemento.Lugar;
			$('evMunicipio').innerHTML = elemento.Municipio;
			
			( elemento.URL.trim() == '' ) ? $('evURL').setStyle( 'display' , 'none' ) : $( 'evURL' ).setStyle( 'display' , '' );
			
			$('evURL').getFirst().href = elemento.URL.trim();

			var dual = elemento.Descripcion.split('::');
			if (dual.length > 1)
				elemento.Descripcion = dual[1].trim();

			$('evDescripcion').innerHTML = elemento.Descripcion;			
			$('detalles').setStyle( 'display' , '' );
			$('relleno').setStyle( 'display' , 'none' );
		}
	}).send();
}

function actualizarCookie( cookie , valor )
{
	var v;
	
	valor ? v = '1' : v = '0';
	Cookie.set( cookie , v , { duration : 365 } );
}

function marcarEvento()
{	
	estadoMarcar = true;
	_checkbox();
}

function marcar( valor , estado )
{
	var origen;
	var final;
	
	if( ( marcados != null ) && ( estado ) )
	{
		marcados.each( function( evento ) {
			evento.removeProperty( 'marcado' );
			origen = colorMarcado;
			final = evento.getProperty( 'fondoOriginal' );
			_animarColor( evento , origen , final );
		});
	}

	marcados = $$('div.' + valor + ',td.' + valor )
	marcados.each( function( evento ) {
		if( estado )
		{
			origen = evento.getProperty( 'fondoOriginal' );			
			final = colorMarcado;
			evento.setProperty( 'marcado' , '1' )
		}
		else
		{
			origen = colorMarcado;
			final = evento.getProperty( 'fondoOriginal' );
			evento.removeProperty( 'marcado' );
		}
		
		_animarColor( evento , origen , final );		
	})
	
	if( !estado )
		marcados = null;
}

function _animarColor( evento , origen , final )
{
	evento.effect( 'background-color' , { duration : 500 , wait : true } ).start( String( origen ) , String( final ) );
}

function _checkbox()
{
	var imagen = '';
	var combo = $( 'cmbTiposEvento' );
	
	if( estadoMarcar )
		imagen = '_marcado';
		
	$('imgMarcar').src = 'imagenes/agenda/cuadrado' + imagen + '.gif';		
	marcar( combo.options[ combo.selectedIndex ].value , estadoMarcar );	
}

