/******************************************************************************
	AUTENTIFICACI?N DE USUARIOS
******************************************************************************/
function autentifyUser()
{

	//Mostramos el loader
	Element.show('login_loader');
	Element.hide('check_error');

	//Enviamos el codigo del pais

	var parms = $('login').serialize();
	var url   = './files/checkAcces.php';

	var myAjax = new Ajax.Request(
	url,
	{
		method: 'post',
		parameters: parms,
		onComplete: fautentifyUser
	});

	return false;
}

function fautentifyUser(originalRequest,result)
{

	//Generamos el vector JSON
	var response = eval('(' + originalRequest.responseText + ')');

	switch(response.status)
	{
		case 'true':
			location.reload();

		break;
		case 'false':
			$('check_error').innerHTML=response.value;
			Element.show('check_error');
		break;
	}

	Element.hide('login_loader');
}
function logout()
{
	$('login_loader_txt').innerHTML='cerrando sesion';

	Element.show('login_loader');

	var parms = '';
	var url   = './files/logout.php';

	var myAjax = new Ajax.Request(
	url,
	{
		method: 'post',
		parameters: parms,
		onComplete: function () { location.reload(); }
	});

	return false;
}

/******************************************************************************
	FORMULARIO DE B??SQUEDA - CARGA DE DESTINOS
******************************************************************************/
function loadDestination(country_code)
{
	$('destination_code').disabled=true;
	$('zone_code').disabled=true;
	//Mostramos el loader
	var parms = 'country_code='+country_code;
	var url 	=	'./files/loadDestination.php';

	var myAjax = new Ajax.Request(
	url,
	{
		method: 'get',
		parameters: parms,
		onComplete: fLoadDestination
	});
}

function fLoadDestination(originalRequest,result)
{

	//Generamos el vector JSON
	var destinos = eval('(' + originalRequest.responseText + ')');

	//Vaciamos los destinos
	$$('#destination_code option').each(function(node){ node.remove(); });
	//Vaciamos todas las zonas
	$$('#zone_code option').each(function(node){ node.remove(); });

	//A?adimos los nuevos destinos
	destinos.each(function(node){
			noption=document.createElement("option");
			noption.innerHTML=node.description;
			noption.value=node.code;
			$('destination_code').appendChild(noption);
        });

	//Cargamos las zona del destino por defecto
	loadZone($('country_code').value,$('destination_code').value)
}

function loadZone(country_code,destination_code)
{
	if ($('zone_code').disabled==false) $('zone_code').disabled=true;
	//Mostramos el loader
	//Element.show('zoneLoader');

	//Enviamos el codigo del pais

	var parms = 'country_code='+country_code+'&destination_code='+destination_code;
	var url 	=	'./files/loadDestination.php';

	var myAjax = new Ajax.Request(
	url,
	{
		method: 'get',
		parameters: parms,
		onComplete: fLoadZone
	});
}

function fLoadZone(originalRequest,result)
{

	//$('debug').innerHTML=originalRequest.responseText;
	//Generamos el vector JSON
	var destinos = eval('(' + originalRequest.responseText + ')');
	//Vaciamos los destinos

	//Vaciamos todas las zonas
	$$('#zone_code option').each(function(node){ node.remove(); });

	noption=document.createElement("option");
	noption.innerHTML="todas las zonas";
	noption.value="";
	$('zone_code').appendChild(noption);

	//A?adimos los nuevos destinos
	destinos.each(function(node){
			noption=document.createElement("option");
			noption.innerHTML=node.description;
			noption.value=node.code;
			$('zone_code').appendChild(noption);
        });

	//Ocultamos los loaders
	//Element.hide('zoneLoader');

	$('destination_code').disabled=false;
	$('zone_code').disabled=false;

}

function loadEstablishment(destination_code,zone_code)
{
	alert('Cargando establecimientos destino '+destination_code+' zona '+zone_code);

	if ($('establishment_code').disabled==false) $('establishment_code').disabled=true;


	var parms = 'destination_code='+destination_code+'&zone_code='+zone_code;
	var url 	=	'./files/loadEstablishments.php';

	var myAjax = new Ajax.Request(
	url,
	{
		method: 'get',
		parameters: parms,
		onComplete: floadEstablishment
	});
}

function floadEstablishment(originalRequest,result)
{
	var establishments = eval('(' + originalRequest.responseText + ')');


	//Vaciamos todos los establecimientos
	$$('#establishment_code option').each(function(node){ node.remove(); });

	noption=document.createElement("option");
	noption.innerHTML="todos los establecimientos";
	noption.value="";
	$('establishment_code').appendChild(noption);

	//A?adimos los nuevos destinos
	establishments.each(function(node){
			noption=document.createElement("option");
			noption.innerHTML=node.description;
			noption.value=node.code;
			$('establishment_code').appendChild(noption);
        });

	//Ocultamos los loaders
	//Element.hide('zoneLoader');

	$('establishment_code').disabled=false;

}
/******************************************************************************
	FORMULARIO DE B??SQUEDA - FECHAS
******************************************************************************/


function createDate()
{
	var day=0;
	var month=0;
	var year=0;

	date_array=document.search.check_in_date.value.split("/");
	day=date_array[0];
	month=date_array[1];
	year=date_array[2];

	month=month-1;

	//Creamos la fecha de hoy
	var hoy = new Date();
	hoy.setHours(0);
	hoy.setMinutes(0);
	hoy.setSeconds(0);

	//Creamos la fecha seleccionala

	var current = new Date(year,month,day,0,0,0);
	var nDate = new Date();
	//Obtenemos las noches
	nights=parseInt($('nights').value);

	if (isNaN(nights))
	{
		alert('El número de noches debe ser un entero');
	}
	else {

		foo=current.getTime()+(24*60*59*1000);
		var nTime = 0 ;
		//alert(current+' '+hoy);

		//Comprovamos q la fecha seleccionada es una fecha futura
		if (foo>=hoy.getTime())
		{
			//Generamos la nueva fecha

			milisegundos=parseInt(nights*24*60*60*1000);
			nTime=parseInt(current.getTime()+milisegundos);
			total=nDate.setTime(nTime);

			//Obtenemos el dia,mes y a?o de la nueva fechas
			nDay=nDate.getDate();
			nMonth=parseInt(nDate.getMonth());
			nYear=nDate.getFullYear();


			nMonth=parseInt(nMonth)+1;

			//Nos aseguramos q la fecha tiene dos d?gitos
			//nMonth=nMonth+1;
			if (parseInt(nDay)<10) 	nDay="0"+nDay;
			if (nMonth<10) 			nMonth="0"+ nMonth;

			//Creamos la nueva fecha
			nTextDate=nDay+"/"+nMonth+"/"+nYear;

			//La guardamos
			document.search.check_out_date.value=nTextDate;
			$('check_out_date_text').innerHTML=nTextDate;
		}
		else {
			alert("La fecha seleccionada debe ser una fecha futura");
		}
	}
}
/******************************************************************************
	FORMULARIO DE B??SQUEDA - FECHAS
******************************************************************************/

function activarHabitacion(n,ocupacion,indice)
{

	select_tipo_hab=document.getElementById('ocupacion'+n);
	select_num_hab=document.getElementById('habitaciones'+n);


	for(i=0;i<3;i++)
		{
			if ((i!=n)&&(document.getElementById('ocupacion'+n+'_code').value!=''))
			{

				//texto ocupacion
				switch (document.getElementById('ocupacion'+n+'_code').value)
				{
					case '1a':		txt_ocu='1 Adulto';	indice=1; 	break;
					case '2a':		txt_ocu='2 Adultos';indice=2;	 break;
					case '3a':		txt_ocu='3 Adultos';indice=3;	 break;
					case '4a':		txt_ocu='4 Adultos';indice=4;	 break;

					case '1a1n':	txt_ocu='1 Adulto 1 niño';indice=5;	 break;
					case '2a1n':	txt_ocu='2 Adultos 1 niño';	indice=6; break;
					case '2a2n':	txt_ocu='2 Adultos 2 niños';indice=7;	 break;
					case '3a1n':	txt_ocu='3 Adultos 1 niño';indice=8;	 break;

					case '5a':		txt_ocu='5 Adulto';	 indice=9;break;

					case '4a1n':	txt_ocu='4 Adulto 1 niño';indice=10;	 break;
					case '3a2n':	txt_ocu='3 Adulto 2 niños';	indice=11; break;
					case '2a3n':	txt_ocu='2 Adulto 3 niños';	indice=12; break;
					case '3a1n':	txt_ocu='3 Adulto 1 niño';	indice=13; break;

					case '6a':		txt_ocu='6 Adultos';indice=14;	 break;

					case '5a1n':	txt_ocu='5 Adulto 1 niño';indice=15;	 break;
					case '4a2n':	txt_ocu='4 Adulto 2 niño';	indice=16; break;
					case '3a3n':	txt_ocu='3 Adulto 3 niño';	indice=17; break;
					case '2a4n':	txt_ocu='2 Adulto 4 niño';indice=18; break;


				}

				padre=document.getElementById('ocupacion'+i);
				//Cramos el nodo
				newOption=document.createElement("option");
				newOption.value=document.getElementById('ocupacion'+n+'_code').value;
				newOption.id="ocupacion"+i+"_"+document.getElementById('ocupacion'+n+'_code').value;

				newOption.innerHTML=txt_ocu;
				try {

					var navegador = navigator.appName;
					if (navegador == "Microsoft Internet Explorer")
					{
						indice=indice+2;
					}
				} catch (e) {};

				//indice_tmp=parseInt(document.getElementById('ocupacion'+n+'_index').value);

				antecesor=padre.childNodes[indice];
				padre.insertBefore(newOption,antecesor);

				//padre.appendChild(newOption);

			}
		}

	if (select_tipo_hab.value=='')
	{
		select_num_hab.selectedIndex=0;
		select_num_hab.disabled=true;

		//A?adimos el antiguo nodo
		//Comprovamos que no es el select

	}
	else {

		if (select_num_hab.selectedIndex==0) {


			select_num_hab.options[select_num_hab.selectedIndex].selected=false;
			select_num_hab.options[1].selected=true;

		}

		select_num_hab.disabled=false;

		//Eliminamos la opci?n seleccionada de los otros selects
		for(i=0;i<3;i++)
		{

			//Comprovamos que no es el select
			if (i!=n)
			{
				nodo=document.getElementById('ocupacion'+i+'_'+ocupacion);
				//Eliminamos el nodo
				padre=nodo.parentNode;
				padre.removeChild(nodo);
			}
		}
	}

	document.getElementById('ocupacion'+n+'_code').value=ocupacion;

}

function agregarEdades(id,room_code,hab)
{

	a='';
	n='';
	a=room_code.substring(0,1);
	n=room_code.substring(2,3);

	alert(a);
	alert(n);
}

function showChildAges(id,room_code,hab)
{

	a='';
	nin='';
	a=room_code.substring(0,1);
	nin=room_code.substring(2,3);
	if (nin=='') nin=0;
	a=parseInt(a);
	nin=parseInt(nin);

	var html='';
	if (nin!='')
	{
		for(j=0;j<hab;j++)
		{
			tmp=j+1;
			html+="<span><b>Edades Niños Habitación "+tmp+"</b> : <br/>";
			for(i=0;i<nin;i++)
			{
				num_nin=i+1;
				html+="Niño "+num_nin+"<select  name=\"ocupacion["+id+"][2]["+j+"]["+i+"]><option value=\"1\">1</option><option value=\"2\">2</option><option value=\"3\">3</option><option value=\"4\">4</option><option value=\"5\">5</option><option value=\"6\">6</option><option value=\"7\">7</option><option value=\"8\">8</option><option value=\"9\">9</option><option value=\"10\">10</option><option value=\"11\">11</option><option value=\"12\">12</option></select>";
			}
			html+="<br/>";
		}

		Element.show("roomAges_"+id);
	}
	else {
		html='';
		Element.hide("roomAges_"+id);
	}

	if (hab==0) Element.hide("roomAges_"+id);

	$("roomAges_"+id).innerHTML=html;
}


function sendSearchForm()
{
	error='';
	total_hab=0;

	$$('.select_habitaciones').each(function(node){
		if (node.value!='')	total_hab=total_hab+parseInt(node.value);
	});

	if (total_hab>5)
	{
		error= "- El total de habitaciones seleccionas no puede ser mayor que 5";
	}

	if (total_hab==0)
	{
		error= "- Debe seleccionar al menos una habitación";
	}

	if (document.search.country_code.value=='')
	{
		error= "- Debe seleccionar un destino";
	}

	if (error=='')  {
		document.search.submit();
	}
	else alert(error);

	return false;
}

function sendSearchFormOffers()
{
	error='';
	total_hab=0;


	if (document.search.country_code.value=='')
	{
		error= "- Debe seleccionar un destino";
	}

	if (error=='')  {
		document.search.submit();
	}
	else alert(error);

	return false;
}

function sendEstablismentSearchForm() {

	var error='';

	if (document.search.country_code.value=='')
	{
		error= "- Debe seleccionar un destino";
	}

	if (error=='')  {
		Element.hide("establisment_results");
		Element.show("search_loading");

		var pars = $('search').serialize();

		var ajax = new Ajax.Updater(
			'establisment_results',
			'./files/search_establisments.php',
			{
				method: 'post',
				parameters: pars,
				evalScripts: true,
				onComplete: function() { Element.hide("search_loading"); Element.show("establisment_results");}
			}
		);
	}
	else alert(error);
}

function selectEstablisment(code,zone_code)
{
	$('search').establishment_code.value=code;
	$('search').establishment_zone_code.value=zone_code;
	$('search').submit();
}

/******************************************************************************
	RESULTADOS DE LA BÚSQUEDA
****************************************************************************/

function sendSearch()
{
	var pars=$('search').serialize();

	var ajax = new Ajax.Updater(
		'search_results',
		'./files/search_avalilability.php',
		{
			method: 'post',
			parameters: pars,
			evalScripts: true,
			onComplete: function() { Element.hide("search_loading"); Element.show("search_results");}
		}
	);
	return false;
}

function sendSearchPag(pag)  {

	Element.hide("search_results");

	Element.show("search_loading");
	$('search').pag.value=pag;

	sendSearch();

	return false;
}
function sendRapidSearch() {
	Element.hide("search_results");
	Element.show("search_loading");
	sendSearch();

	return false;
}

function redondear(cantidad, decimales) {
	var cantidad = parseFloat(cantidad);
	var decimales = parseFloat(decimales);
	decimales = (!decimales ? 2 : decimales);
	return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
}


function refreshPrice(id,pension)
{
	formulario=$(id);

	precio_total=parseFloat(0);

	var reg = new RegExp(pension, "i");
	for(i=0;i<formulario.elements.length;i++)
	{

		if ((formulario.elements[i].name.search(reg)>0)&&(formulario.elements[i].checked))
		{



			price=formulario.elements[i].getAttribute("price").replace(',','.');

			precio_total=precio_total+parseFloat(price);

		}

	}

	precio_redondeado=String(redondear(precio_total,2)).replace('.',',');

	$(id+"_precio").innerHTML=precio_redondeado+" &euro;";

}

/******************************************************************************
	CONFIRMACIÓN DE LA RESERVA
****************************************************************************/

function checkForm(id) {

	var error = false;
	var error_txt = '';



        $$('form#'+id+' .required').each(function(node){

			 node.removeClassName('form_required');

            if (node.value == "") {
                error = true;
                error_txt+="- "+node.getAttribute("description")+" es un campo obligatorio\n";
                node.addClassName('form_required');
            }

        });

        $$('form#'+id+' .email').each(function(node){

            if (!validEmail(node.value)) {
                error = true;
                error_txt+="- "+node.getAttribute("description")+" no es un email v??lido\n";
              	 node.addClassName('form_required');
            }

        });

        if (error) {
            alert('Asegurate de rellenar todos los campos requeridos:\n'+error_txt);
            return false;

        } else {
			 return true;
        }

}

function validEmail(email) {
  var emailReg = "^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$";
  var regex = new RegExp(emailReg);
  return regex.test(email);
}

function sendConfirmForm()
{
	if (checkForm('booking_data'))
	{
		if ($('accept').checked)
			$('booking_data').submit();
		else
			alert("Deba aceptar las condiciones para poder realizar su reserva");
	}
}
function sendConfirm()
{
	var pars = $('booking_data').serialize();

	var ajax = new Ajax.Updater(
		'debug',
		'./files/makeBooking.php',
		{
			method: 'post',
			parameters: pars,
			evalScripts: true,
			onComplete: fsendConfirm
		}
	);
	return false;
}

function fsendConfirm(originalRequest,result) {

//	var retorno = eval('(' + originalRequest.responseText + ')');
	if (result.status=='true')
	{
		$('booking_data').action="./invoice.php";
		$('booking_data').submit();
	}
	else {
		$('error_txt').innerHTML=result.error;
		Element.hide('search_loading');
		Element.show('booking_error');
	}
}
/******************************************************************************
	FORMULARIO ALTA AGENCIA
****************************************************************************/

function guardarAgencia() {


	if (checkForm('alta_agencia'))
	{

		Element.hide('box_new_agency');
		Element.show('search_loading');

		var pars = Form.serialize($('alta_agencia'));
		$('alta_agencia').reset();
		var url 	=	'./files/saveNewAgency.php';
		var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: fguardarAgencia
		});
	}
}

function fguardarAgencia(originalRequest,result) {

	//var retorno = eval('(' + originalRequest.responseText + ')');

	if (result.status=='true')
	{

		Element.hide('search_loading');
		Element.show('msg');

	}
	else {
		Element.show('box_new_agency');
		Element.hide('search_loading');
		Element.show('error');
	}
}

/******************************************************************************
	FORMULARIO ALTA AGENCIA
****************************************************************************/
function cambiarPassword()
{
	var error=""

	if (document.new_pass_form.old_pass.value=='')
	{
		error= error + "- Debe introducir su antigua contraseña\n";
	}
	if (document.new_pass_form.new_pass.value=='')
	{
		error= error + "- Debe introducir su nueva contraseña\n";
	}
	if (document.new_pass_form.new_pass_r.value=='')
	{
		error= error + "- Debe repetir su nueva contraseña\n";
	}
	if (document.new_pass_form.new_pass_r.value!=document.new_pass_form.new_pass.value)
	{
		error= error + "- Las contraseñas no coinciden\n";
	}

	if (error=='')
	{
		Element.hide('box_new_agency');
		Element.show('search_loading');

		var pars = Form.serialize($('new_pass_form'));
		$('new_pass_form').reset();
		var url 	=	'./files/changePassword.php';
		var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: fcambiarPassword
		});
	}
	else {
		alert(error);
	}
}

function fcambiarPassword(originalRequest,result) {

	if (result.status=='true')
	{

		Element.hide('search_loading');
		Element.show('msg');

	}
	else {
		Element.show('box_new_agency');
		Element.hide('search_loading');
		Element.show('error');
	}
}
/******************************************************************************
	varios
****************************************************************************/
function windowOpen(enlace,alto,ancho)
{
	window.open(enlace,'popup','toolbar=no,location=no, status=no,menubar=no,scrollbars=yes, resizable=no, width='+alto+',height='+ancho);
}

function priceDetailPopUp(form,board_code)
{
	window.open('','detailPricePopUp','toolbar=no,location=no, status=no,menubar=no,scrollbars=yes, resizable=no, width=568,height=400');

	$(form).target='detailPricePopUp';
	$(form).method='POST';
	//$(form).board_code.value=board_code;
	$(form).action="./files/priceDetail.php";
	$(form).submit();
}
function imprimir() {
  parent.window.frames[0].focus();
  parent.window.frames[0].print();
}
