/*
.........................
:: Javascript a medida. ::
.........................
*/

/*-------------------------------
::  MENU DESPLEGABLE  ::
--------------------------------*/

function preparaEventosMenu() {
    objNav = document.getElementById("nav");
    hijosLI = objNav.getElementsByTagName("LI");
    for (i = 0; i < hijosLI.length; i++) {
        if (hijosLI[i].getElementsByTagName("UL").length) {
            eventAssign(hijosLI[i], "mouseover", function() {despliega(this);});
            eventAssign(hijosLI[i], "mouseout", function() {pliega(this);});
        }
    }
}

function despliega(padre) {
    hijos = padre.getElementsByTagName("UL");
    hijos[0].style.display = "block";
}

function pliega(padre) {
    hijos = padre.getElementsByTagName("UL");
    hijos[0].style.display = "none";
}

window.onload = preparaEventosMenu;

function eventAssign(obj,event,func){
	if( obj.addEventListener ) {
		obj.addEventListener(event,func,false);
	}else if (obj.attachEvent) {
		obj['e'+event+func]=func;
		obj[event+func]=function(){
		    obj['e'+event+func]( window.event );
		}
		obj.attachEvent('on'+event,obj[event+func]);
	}else {
		alert('Este navegador no es soportado!!');
	}
}

/*
function init() {
	var x = $('nav').getElementsByTagName('li');
	for (var i=0;i<x.length;i++)
	{
        Event.observe(x[i],"click",mostrarSubNav);
        Event.observe(x[i],"focus",mostrarSubNav);
		Event.observe(x[i],"blur",ocultarSubNavs);
		Event.observe(x[i],"mouseover",anularHover);
	}
    Event.observe($('header'),"mouseover",ocultarSubNavs);
    Event.observe($('closemenu'),"mouseover",ocultarSubNavs);
}
Event.observe(window, "load", init);

function mostrarSubNav(e) {
    alert(e);
    ocultarSubNavs();
    this.className = this.className += ' over';
}

function ocultarSubNav(e) {
	if (this.className.indexOf('over')!=-1) this.className = this.className.replace(/over/g,'');
}

function ocultarSubNavs() { 
    var x = $('nav').getElementsByTagName('li');
    for (var i=0;i<x.length;i++)
    {
        if (x[i].className.indexOf('point')!=-1) {
            if (x[i].className.indexOf('over')!=-1) x[i].className = x[i].className.replace(/over/g,'');
        }
    }
}

function anularHover(e)
{
    if (this.className.indexOf('nohover')==-1) this.className += ' nohover';
}
*/
/*------------------
::   detectar IE  ::
---------------------*/
function isIE()
{
    var userAgent   =   navigator.userAgent.toLowerCase();
    return (document.all && userAgent.indexOf('msie')!=-1);
}

/*-------------------------------
::   prototype in ARRAY  ::
--------------------------------*/

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};	

/*-------------------------------
::   control de EVENTOS   ::
--------------------------------*/

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);

/*--------------------------------
::        CALENDARIO         ::
--------------------------------*/

function abre(n){
	posicionaCalendarios();

	var cal=$('cal'+n);
	if(n==1)
		cal.src='calendario.php?n=1&fecha='+document.getElementById('f1h-'+n).value; /*no ponemos ftope, porque será el dia de hoy */
	else if(n==2)
		cal.src='calendario.php?n=2&fecha='+document.getElementById('f1h-'+n).value+'&ftope='+document.getElementById('f1h-1').value;
	fadeCalendar(n,0,100,20);
	/*cal.style.display="block";*/
}

function fadeCalendar(num,ini,fin,salto){
	id='cal'+num;
	if((salto>0 && ini<=fin) || (salto<0 && ini>=fin)){
		if(ini==0)
			$(id).style.display="none";
		else
			$(id).style.display="block";
			
		if (window.ActiveXObject) $(id).style.filter="alpha(opacity="+(ini)+")";
		$(id).style.opacity=ini/100;
		setTimeout('fadeCalendar('+num+','+(ini+salto)+','+fin+','+salto+')' ,50);
	}
}




function setData(n,data,humana){
	fadeCalendar(n,80,0,-20);

/*	for(i=1;i<=2;i++){
		if($('cal'+i)){
			$('cal'+i).style.display="none";
		}
	}
	*/
	document.getElementById('f1h-'+n).value=data;
	document.getElementById('f1-'+n).innerHTML=humana;
	
	if(n==1)
		abre(2);

	if(n==2 && $('f1h-1').value!='' && $('f1h-2').value!=''){
		marcaBoton('222','fff',1);
	}	
}

function marcaBoton(ini,fin,salto){
	ini=ini.toLowerCase();
	fin=fin.toLowerCase();
	$('botonVer').style.background="#"+ini;
	if(ini!=fin){
		if(ini.substr(0,1)!=fin.substr(0,1))	siguienteR=(parseInt(ini.substr(0,1),16)+salto).toString(16);
		else									siguienteR=ini.substr(0,1);
		if(ini.substr(1,1)!=fin.substr(1,1))	siguienteG=(parseInt(ini.substr(1,1),16)+salto).toString(16);
		else									siguienteG=ini.substr(1,1);
		if(ini.substr(2,1)!=fin.substr(2,1))	siguienteB=(parseInt(ini.substr(2,1),16)+salto).toString(16);
		else									siguienteB=ini.substr(2,1);

		setTimeout('marcaBoton("'+siguienteR+siguienteG+siguienteB+'","'+fin+'",'+salto+')' ,20);
	}else{
    $('botonVer').style.color='#222';
    }
}


function posicionaCalendarios(){
	/*Calendario1*/
	posicion= new Position.cumulativeOffset($('f1-1'));
	posxBase=posicion.first();
	posyBase=posicion.last();
	cal=$('cal1');
    cal.style.left=posxBase+"px";
	cal.style.top=(posyBase-144)+"px";

	/*Calendario1*/
	posicion= new Position.cumulativeOffset($('f1-2'));
	posxBase=posicion.first();
	posyBase=posicion.last();
	cal=$('cal2');
	cal.style.left=posxBase+"px";
	cal.style.top=(posyBase-144)+"px";
}					


/************/
/* RESERVA */
/**********/

function abreReserva(idioma){
	if($('f1h-1').value.length>1 && $('f1h-2').value.length>1){
		window.open('http://www.husa.es/'+idioma+'/gen_fichaHotel.php?id=100&f1fEnter='+$('f1h-1').value+'&f1fExit='+$('f1h-2').value,'reserva');
	}
}

function abreReservaNew(){
	if($('f1h-1').value.length>1 && $('f1h-2').value.length>1){
		return true;
	}
	else return false;
}


/***************/
/* Google Maps */
/***************/

function load() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("mymap"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(43.466695, -3.782502), 14);

    function crearMarcador(punto, mensaje) {
        marcador = new GMarker(punto);
        GEvent.addListener(marcador, "click", function () {
            marcador.openInfoWindowHtml(mensaje);
        });
        return marcador;
    }
    map.addOverlay(crearMarcador(new GLatLng(43.466695, -3.782502), "<p><b>Hotel Real</b></p><p>*****</p>"));
  }
}
