/*

.........................

:: 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>"));

  }

}


