/*--------------------------------------------------------------------------*  
 *	Funciones utilizadas en buscador										*
 *--------------------------------------------------------------------------*/
var cal1;
var over_cal = false;
var cal2;
var over_cal2 = false;
function init() {
    cal1 = new YAHOO.widget.Calendar("cal1","cal1Container");
    cal1.selectEvent.subscribe(getDate, cal1, true);
    cal1.renderEvent.subscribe(setupListeners, cal1, true);
    YAHOO.util.Dom.setStyle('cal1Container', 'display', 'none');
    YAHOO.util.Event.addListener('cal1Date', 'blur', hideCal);
    YAHOO.util.Event.addListener('cal1Date', 'focus', showCal);
    cal1.render();

    cal2 = new YAHOO.widget.Calendar("cal2","cal2Container");
    cal2.selectEvent.subscribe(getDate2, cal2, true);
    cal2.renderEvent.subscribe(setupListeners2, cal2, true);
    YAHOO.util.Dom.setStyle('cal2Container', 'display', 'none');
    YAHOO.util.Event.addListener('cal2Date', 'blur', hideCal2);
    YAHOO.util.Event.addListener('cal2Date', 'focus', showCal2);
    cal2.render();
}
function setupListeners() {
    YAHOO.util.Event.addListener('cal1Container', 'mouseover', overCal);
    YAHOO.util.Event.addListener('cal1Container', 'mouseout', outCal);
}
function getDate() {
        var calDate = this.getSelectedDates()[0];
		if (calDate.getDate()<10){dia= "0"+calDate.getDate();} else {dia=calDate.getDate();}
		if ((calDate.getMonth() + 1)<10){mes= "0"+(calDate.getMonth() + 1);} else {mes=calDate.getMonth() + 1;}
        calDate = dia + '/' + mes + '/' + calDate.getFullYear();
        YAHOO.util.Dom.get('cal1Date').value = calDate;
        over_cal = false;
        hideCal();
}
function showCal() {
    var xy = YAHOO.util.Dom.getXY('cal1Date');
	var date = $('cal1Date').value.substring(3,5)+"/"+$('cal1Date').value.substring(0,2)+"/"+$('cal1Date').value.substring(6,10);
    //var date = YAHOO.util.Dom.get('cal1Date').value;
    if (date) {
        cal1.cfg.setProperty('selected', date);
        cal1.cfg.setProperty('pagedate', new Date(date), true);
        cal1.render();
    }
    YAHOO.util.Dom.setStyle('cal1Container', 'display', 'block');
    xy[1] = xy[1] + 20;
    xy[0] = xy[0] - 30;
    YAHOO.util.Dom.setXY('cal1Container', xy);
}
function hideCal() {
    if (!over_cal) {
        YAHOO.util.Dom.setStyle('cal1Container', 'display', 'none');
    }
}
function overCal() {
    over_cal = true;
}
function outCal() {
    over_cal = false;
}
 
function setupListeners2() {
    YAHOO.util.Event.addListener('cal2Container', 'mouseover', overCal2);
    YAHOO.util.Event.addListener('cal2Container', 'mouseout', outCal2);
}
function getDate2() {
        var calDate = this.getSelectedDates()[0];
		if (calDate.getDate()<10){dia= "0"+calDate.getDate();} else {dia=calDate.getDate();}
		if ((calDate.getMonth() + 1)<10){mes= "0"+(calDate.getMonth() + 1);} else {mes=calDate.getMonth() + 1;}
        calDate = dia + '/' + mes + '/' + calDate.getFullYear();
        YAHOO.util.Dom.get('cal2Date').value = calDate;
        over_cal2 = false;
        hideCal2();
}
function showCal2() {
    var xy = YAHOO.util.Dom.getXY('cal2Date');
	var date = $('cal2Date').value.substring(3,5)+"/"+$('cal2Date').value.substring(0,2)+"/"+$('cal2Date').value.substring(6,10);
    //var date = YAHOO.util.Dom.get('cal1Date').value;
    if (date) {
        cal2.cfg.setProperty('selected', date);
        cal2.cfg.setProperty('pagedate', new Date(date), true);
        cal2.render();
    }
    YAHOO.util.Dom.setStyle('cal2Container', 'display', 'block');
    xy[1] = xy[1] + 20;
    xy[0] = xy[0] - 30;
    YAHOO.util.Dom.setXY('cal2Container', xy);
}
function hideCal2() {
    if (!over_cal2) {
        YAHOO.util.Dom.setStyle('cal2Container', 'display', 'none');
    }
}
function overCal2() {
    over_cal2 = true;
}
function outCal2() {
    over_cal2 = false;
}

YAHOO.util.Event.addListener(window, 'load', init);

function mostrarUrgente() {
	// mostrar el div que contiene el desplegable con las profesiones
	$("buscar_urgente_c").show();
}
function ocultarUrgente() {
	// ocultar el div que contiene el desplegable con las profesiones
	$("buscar_urgente_c").hide();
	$("input-urgente").selectedIndex=0;
	//$("buscar_categoria").innerHTML="<a href='javascript: mostrarCategoria()' title=''>Categoria</a> Criterio: "+$("input-categoria").options[$("input-categoria").selectedIndex].text;
}

function mostrarCategoria() {
	// mostrar el div que contiene el desplegable con las profesiones
	$("buscar_categoria_c").show();
}
function ocultarCategoria() {
	// ocultar el div que contiene el desplegable con las profesiones
	$("buscar_categoria_c").hide();
	$("input-categoria").selectedIndex=0;
	//$("buscar_categoria").innerHTML="<a href='javascript: mostrarCategoria()' title=''>Categoria</a> Criterio: "+$("input-categoria").options[$("input-categoria").selectedIndex].text;
}
function mostrarProvincia() {
	// mostrar el div que contiene el desplegable con las profesiones
	$("buscar_provincia_c").show();
}
function ocultarProvincia() {
	// ocultar el div que contiene el desplegable con las profesiones
	$("buscar_provincia_c").hide();
	$("input-provincia").selectedIndex=0;
	//$("buscar_provincia").innerHTML="<a href='javascript: mostrarProvincia()' title=''>Provincia</a> Criterio: "+$("input-provincia").options[$("input-provincia").selectedIndex].text;
}
function mostrarLocalidad() {
	// mostrar el div que contiene el desplegable con las profesiones
	$("buscar_localidad_c").show();
}
function ocultarLocalidad() {
	// ocultar el div que contiene el desplegable con las profesiones
	$("buscar_localidad_c").hide();
	$("input-localidad").value="";
	//$("buscar_localidad").innerHTML="<a href='javascript: mostrarLocalidad()' title=''>Localidad</a> Criterio: "+$("input-localidad").value;
}
function mostrarDireccion() {
	// mostrar el div que contiene el desplegable con las profesiones
	$("buscar_direccion_c").show();
}
function ocultarDireccion() {
	// ocultar el div que contiene el desplegable con las profesiones
	$("buscar_direccion_c").hide();
	$("input-direccion").value="";
	//$("buscar_direccion").innerHTML="<a href='javascript: mostrarDireccion()' title=''>Dirección</a> Criterio: "+$("input-direccion").value;
}
function mostrarCP() {
	// mostrar el div que contiene el desplegable con las profesiones
	$("buscar_cp_c").show();
}
function ocultarCP() {
	// ocultar el div que contiene el desplegable con las profesiones
	$("buscar_cp_c").hide();
	$("input-cp").value="";
	//$("buscar_cp").innerHTML="<a href='javascript: mostrarCP()' title=''>Código postal</a> Criterio: "+$("input-cp").value;
}
function mostrarRadio() {
	// mostrar el div que contiene el desplegable con las profesiones
	$("buscar_radio_c").show();
}
function ocultarRadio() {
	// ocultar el div que contiene el desplegable con las profesiones
	$("buscar_radio_c").hide();
	$("slider-converted-value").value="";
	//$("buscar_radio").innerHTML="<a href='javascript: mostrarRadio()' title=''>Radio de acción</a> Criterio: "+$("input-radio").value;
}
function mostrarDisponibilidad() {
	// mostrar el div que contiene el desplegable con las profesiones
	$("buscar_disponibilidad_c").show();
}
function ocultarDisponibilidad() {
	// ocultar el div que contiene el desplegable con las profesiones
	$("buscar_disponibilidad_c").hide();
	$("input-disponibilidad").value="";
	//$("buscar_disponibilidad").innerHTML="<a href='javascript: mostrarDisponibilidad()' title=''>Disponibilidad</a> Criterio: "+$("input-disponibilidad").value;
}

function mostrarFechas() {
	// mostrar el div que contiene el desplegable con las profesiones
	$("buscar_fechas_c").show();
}
function ocultarFechas() {
	// ocultar el div que contiene el desplegable con las profesiones
	$("buscar_fechas_c").hide();
	$("cal1Date").value="";
	$("cal2Date").value="";
	//$("buscar_disponibilidad").innerHTML="<a href='javascript: mostrarDisponibilidad()' title=''>Disponibilidad</a> Criterio: "+$("input-disponibilidad").value;
}

function inicializaMensaje(){
	//$("msg-").hide();
	//$("msg-").hide();
	$("msg-cal1Date").hide();
	$("msg-cal2Date").hide();
}

function checkCampos () {
	inicializaMensaje();
	var fin=1;
	if (! esFechaValida("cal1Date","La fecha no es válida","msg-cal1Date")){
		fin=fin*0;
	}
	if (! esFechaValida("cal2Date","La fecha no es válida","msg-cal2Date")){
		fin=fin*0;
	}
	if (esMenor("cal1Date","cal1Date",1))
	{
		muestraMensaje("msg-cal1Date","La fecha no puede ser anterior al día actual");
		fin=fin*0;
	}
	if (esMenor("cal1Date","cal2Date",0))
	{
		muestraMensaje("msg-cal2Date","La fecha de fín no puede ser anterior a la fecha de inicio");
		fin=fin*0;
	}

	/*if (!checkNumero("slider-converted-value","El radio de acción debe ser un número","msg-radio"))
	{
		fin=fin*0;
	}*/


	return fin;
}

function realizarBusqueda() {
	// ocultar el div que contiene el desplegable con las profesiones
	if (checkCampos()) {
		var letra= $F("input-texto");
		var cat= $F("input-categoria");
		var prv= $F("input-provincia");
		var loc= $F("input-localidad");
		var dir= $F("input-direccion");
		var cp= $F("input-cp");
		var rac= $F("slider-converted-value");
		var fini= $F("cal1Date");
		var ffin= $F("cal2Date");
		var urgente= $F("input-urgente");
		var idt= $F("input-idt");


			if (!$F("input-disp")){
			fini= "";
			ffin= "";
		}

		// llamar a funcion que calcule coordenadas de los parámetros relativos a ubicacion loc, dir, cp
		if ((loc) || (cp)){
			dir_coordenadas=dir+", "+cp+", "+loc+", España";
			// Calcular coordenadas de dir_coordenadas
			showAddress(dir_coordenadas);
		} else {
			if (dir){
				alert ("Debes introducir el nombre de la localidad o el código postal");
			} else {
				/*if (cp){
					alert ("Debes introducir el nombre de la localidad");
				}*/
			}

			var pars = "cat="+cat+"&prv="+prv+"&loc="+loc+"&dir="+dir+"&cp="+cp+"&rac="+rac+"&cor=0"+"&fini="+fini+"&ffin="+ffin+"&letra="+letra+"&urg="+urgente+"&idt="+idt;
			var url = "../profesionales-buscador/";
			var aj = new Ajax.Request(  
				url, 
				{
					method:"post",  
					parameters: pars,
					onComplete: obtenerResultadoBusqueda 
				}  
			);  
		}
	} else {
		alert ("Revisa los valores de la configuración de la búsqueda");
	}
}

function obtenerResultadoBusqueda(oReq) {  
	$("listado_profesionales").innerHTML = oReq.responseText;
	// for j=0 to numero profesionales -> layerValoracionesProfesionales(j)
	var j;
	for (j=0;j<$F("num-profesionales") ;j++)
	{
		layerValoracionesProfesionales(j);
	}
}  

function layerValoracionesProfesionales(i) {  
	new Tip('detalle_valoraciones'+i, $('detalle_valoraciones_tip'+i).cloneNode(true), {
		title: "Detalle de Valoraciones",
		target: $('detalle_valoraciones'+i),
		closeButton: true,
		showOn: 'click',
		hook: { tip: 'topLeft', mouse: true },
		hideOn: { element: 'closeButton', event: 'click'},
		stem: 'bottomMiddle',
		hook: { target: 'topMiddle', tip: 'bottomMiddle' },
		offset: { x: 0, y: 0 },
		width: '180px',
		height: 'auto',
		hideAfter: 3
	});
}  

var geocoder = new GClientGeocoder();

function showAddress(address) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        alert(address + " no encontrado");
	 return 0;
      } else {
		if (checkCampos()) {
			var letra= $F("input-texto");
			var cat= $F("input-categoria");
			var prv= $F("input-provincia");
			var loc= $F("input-localidad");
			var dir= $F("input-direccion");
			var cp= $F("input-cp");
			var rac= $F("slider-converted-value");
			var fini= $F("cal1Date");
			var ffin= $F("cal2Date");
			var urgente= $F("input-urgente");
			var idt= $F("input-idt");

			// Cambiar la "," de point por una "z"
			var cor = "" + point + "";
			var cor = cor.replace(/\./g,"z");
			if (!$F("input-disp")){
				fini= "";
				ffin= "";
			}

			var pars = "cat="+cat+"&prv="+prv+"&loc="+loc+"&dir="+dir+"&cp="+cp+"&rac="+rac+"&cor="+cor+"&fini="+fini+"&ffin="+ffin+"&letra="+letra+"&urg="+urgente+"&idt="+idt;
			var url = "../profesionales-buscador/";
			var aj = new Ajax.Request(  
				url, 
				{
					method:"post",  
					parameters: pars,
					onComplete: obtenerResultadoBusqueda 
				}  
			);  
		
			return 1;
		} else {
			return 0;
			alert ("Revisa los valores de la configuración de la búsqueda");
		}
      }
    }
  );
}

function asignarTrabajo(trabajo_id,profesional,profesional_id) {
	// Funcion que asigna un trabajo al profesional seleccionado
	if (confirm('Desea asignar el trabajo al profesional ' + profesional + '?')){
		var pars = "idt="+trabajo_id+"&idp="+profesional_id;
		var url = "../trabajos-asignar/";
		var aj = new Ajax.Request(  
			url, 
			{
				method:"post",  
				parameters: pars,
				onComplete: obtenerAsignarTrabajo 
			}  
		);  
	}
}

function obtenerAsignarTrabajo(oReq) {  
	// Resultado de la asignación del profesional al trabajo guardado en $_SESSION["trabajo_id"]
	$("listado_profesionales").innerHTML = oReq.responseText;
}

function mostrarTrabajos(i,n,texto,texto2) {  
	//$("trabajos_profesional" + i).innerHTML = "<p><strong>"+ n +" trabajos realizados:</strong> " + texto + "</p>";
	$("trabajos_profesional" + i).innerHTML = "<p><strong>"+ n +" trabajos realizados:</strong> " + texto + 
		" <a href=\"javascript:ocultarTrabajos("+i+","+n+",'"+texto+"','"+texto2+"')\" title='Mostrar todos los trabajos'>Reducir info</a></p>";
}

function ocultarTrabajos(i,n,texto,texto2) {  
	$("trabajos_profesional" + i).innerHTML = "<p><strong>"+ n +" trabajos realizados:</strong> " + texto2 + 
		" <a href=\"javascript:mostrarTrabajos("+i+","+n+",'"+texto+"','"+texto2+"')\" title='Mostrar últimos trabajos'>Ampliar info</a></p>";
}

function mostrarPendiente() {  
	$("enlace_pendiente").innerHTML='<h4 class="accordion_toggle_active" style="color:#ffffff;" onclick="ocultarPendiente()">Trabajos pendientes</h1>';
	$("contenido_pendiente").show();
}

function ocultarPendiente() {  
	$("enlace_pendiente").innerHTML='<h4 class="accordion_toggle" style="color:#330000;" onclick="mostrarPendiente()">Trabajos pendientes</h1>';
	$("contenido_pendiente").hide();
}

/*  Para el slide */

/* Para el layer "loading" mientras se realiza la búsqueda */
/*var globalCallbacks = {
	onCreate: function(){
		alert ("onCreate");
		$("listado_profesionales").innerHTML = "demo";
	},
    onComplete: function() {
		alert ("onComplete");
		$("listado_profesionales").innerHTML = "demo";
    }
};*/

var globalCallbacks = {
	onCreate: function(){$('status').style.display = 'block';},
	onComplete : function(){
		if (Ajax.activeRequestCount == 0){
			$('status').style.display = 'none';
		}
	}
}
/* Se registran los callbacks en Ajax.Responders - No funciona aquí, poner en header de la página*/
//Ajax.Responders.register(globalCallbacks);