var NavHeaderTop = {
	initialize: function(){
		var ref = document.id('nav_header_top');
		if(ref){
			ref.getElements('ul').each(function(ul){
				var li = ul.getParent();
				if(li.get('tag')=='li'){
					ul.setStyle('display','none').getPrevious().addClass('more');
					li.addEvents({
						mouseenter: function(){
							var ul = this.addClass('hover').getElement('ul');
							if(this.getParent().getParent().get('tag')=='li'){
								ul.setStyle('margin-top','-'+this.getFirst().getHeight()+'px');
							}
							ul.setStyle('display','block');
						},
						mouseleave: function(){this.removeClass('hover').getElement('ul').setStyle('display','none');}
					});
				}else{
					ul.className = '';
				}
			});
		}
	}
};
NavHeaderTop.initialize();

var CalendarioActividades = {
	initialized: false,
	meses: ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
	dias: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'],

	initialize: function(){
		this.initialized = true;
		if(this.data && this.data.length>0){
			this.container = new Element('div',{'id':'act_calendar','style':'display:none'}).inject(document.body);
			this.dragger = new Element('span',{'class':'cal_drag'}).inject(this.container);

			var handles = new Element('p',{'class':'handles'}).inject(this.container);
			this.previous = new Element('span',{'class':'cal_prev'}).addEvent('click',this.previous.bind(this)).inject(handles);
			this.month = new Element('span',{'class':'cal_month'}).inject(handles);
			this.next = new Element('span',{'class':'cal_next'}).addEvent('click',this.next.bind(this)).inject(handles);

			this.days = [];
			var table = new Element('table').inject(this.container);
				var thead = new Element('thead').inject(table);
					tr = new Element('tr').inject(thead);
						var day = 0;
						for(var i=0;i<7;i++){
							new Element('th').set('html',this.dias[day].substr(0,1)).inject(tr);
							day += day>5?-6:1;
						}
				var tbody = new Element('tbody').inject(table);
					var i = 0;
					for(var y=0;y<6;y++){
						tr = new Element('tr').inject(tbody);
						for(var x=0;x<7;x++){
							this.days[i] = new Element('td').addEvents({
								'mouseenter': this.displayInfo.bind(this,[i,false]),
								'mouseleave': this.hideInfo.bind(this),
								'click': this.displayInfo.bind(this,[i,true])
							}).inject(tr);
							i += 1;
						}
					}

			this.info = new Element('div',{'class':'cal_info','style':'display:none'}).inject(document.body);
			this.container.makeDraggable({handle:this.dragger});
		}
	},

	previous: function(){
		this.current--;
		if(this.current<0){
			this.current = this.data.length-1;
		}
		this.build(this.current);
	},

	next: function(){
		this.current++;
		if(this.current>this.data.length-1){
			this.current = 0;
		}
		this.build(this.current);
	},

	build: function(block){
		var current = this.data[block].associate(['year','month','days']);
		this.month.set('html',this.meses[current.month]+', '+current.year);

		var date = {y:current.year,m:current.month,d:0};
		var x0 = new Date(date.y,date.m,1).getDay();
		var x1 = new Date(date.y,date.m+1,0).getDate();
		var day, info;

		x0 += x0<0 ? 7 : 0;

		for(i=0;i<42;i++){
			day = i-x0+1;
			if(day>0 && day<=x1){
				info = false;
				for(var j=0;j<current.days.length;j++){
					if(current.days[j][0]==day){
						info = current.days[j][1];
						break;
					}
				}
				if(info){
					this.days[i].set('html',day).className = 'checked';
				}else{
					this.days[i].set('html',day).className = '';
				}
			}else{
				this.days[i].set('html','').className = '';
			}
		}
	},

	show: function(){
		this.build(this.current);
		this.container.setStyle('display','block');
	},

	hide: function(){
		this.container.setStyle('display','none');
		this.hideInfo();
	},

	//info
	displayInfo: function(j,mode){
		if(this.days[j].hasClass('checked')){
			var info = false;
			var day = this.days[j].innerHTML.toInt();
			for(var i=0;i<this.data[this.current][2].length;i++){
				if(this.data[this.current][2][i][0]==day){
					info = this.data[this.current][2][i][1];
					break;
				}
			}
			if(info){
				if(mode){
					this.hideInfo();
					var url = info[0].url;
					if(info.length>1){
						url = this.url.replace('$',this.data[this.current][0]).replace('#',this.data[this.current][1]);
					}
					/** Aqui es donde debo dar una opcion*/
					window.location=url;
					/**fin*/
				}else{
					var info_html = '';
					info.each(function(el){info_html += '- '+el.nombre+'<br />';});

					var pos = this.days[j].getPosition();
					this.info.set('html','<p>'+info_html+'</p>').setStyles({
						'left': (pos.x+24)+'px',
						'top': (pos.y+2)+'px',
						'display': 'block'
					});

					this.days[j].addClass('active');
				}
			}
		}
	},

	hideInfo: function(){
		for(i=0;i<42;i++){
			this.days[i].removeClass('active');
		}
		this.info.setStyle('display','none');
	}
};

var Reloj = {
	initialize: function(){
		this.meses = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
		this.dias = ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'];

		this.el = document.id('site_datetime');
		this.date = new Date(this.now[0],this.now[1]-1,this.now[2],this.now[3],this.now[4],this.now[5]);
		this.walker = this.walk.periodical(1000,this);
	},

	fill: function(n){
		return n < 10 ? '0'+n : n;
	},

	walk: function(){
		this.date.setSeconds(this.date.getSeconds()+1);
		this.el.innerHTML =
			'<strong>'+
			this.dias[this.date.getDay()]+' '+
			this.fill(this.date.getDate())+' de '+
			this.meses[this.date.getMonth()]+' de '+
			this.date.getFullYear()+
			'</strong> - <span>'+
			this.fill(this.date.getHours())+':'+
			this.fill(this.date.getMinutes())+':'+
			this.fill(this.date.getSeconds())+
			'</span>';
	}
};

(function(){
	var link = document.id('nhbi_link04');
	if(link){
		var hideCalendar = false;
		link.getElement('a').addEvents({
			'mouseenter': function(){
				$clear(hideCalendar);
				if(!CalendarioActividades.initialized){
					CalendarioActividades.initialize();
					CalendarioActividades.container.addEvents({
						'mouseenter': function(){
							$clear(hideCalendar);
						},
						'mouseleave': function(){
							hideCalendar = CalendarioActividades.hide.delay(200,CalendarioActividades);
						}
					});
				}
				var pos = this.getPosition();
				CalendarioActividades.container.setStyles({
					'left': (pos.x)+'px',
					'top': (pos.y+30)+'px'
				});
				CalendarioActividades.show();
			},
			'mouseleave': function(){
				hideCalendar = CalendarioActividades.hide.delay(200,CalendarioActividades);
			}
		});
	}
})();