var FORMULARIOS = {};
FORMULARIOS.datosCitasPrevias = Array();
FORMULARIOS.citas_id_seccion = '';
FORMULARIOS.calendario_cargado = false;

/******************************************************************/
/************************ INSCRIPCIONES ***************************/
/******************************************************************/
FORMULARIOS.enviarInscripcion = function(frm, action) {
	
	var fecha_submit = new Date();
	
	if(typeof(action) == 'undefined')
		frm.action = '/backend/FORMULARIOS.inscripciones.php';
	else
		frm.action = action;

	frm.target = 'ifr_ajax_post';
	frm.submit_time.value = fecha_submit.getTime()

	FORMULARIOS.ajaxPost(
		frm,
		function(datos) {
			eval("var salida = " + datos);
			switch(salida.estado) {
				case 'OK':
					alert(salida.msg);
					$('#formulario_inscripcion').replaceWith(salida.msg);
					break;
				case 'ERROR_DATOS': 
					alert(salida.msg);
					if($('#formulario_inscripcion').html().indexOf(salida.msg) == -1) {
						$('#formulario_inscripcion').find('h3').append('<p><strong>' + salida.msg + '</strong></p>');
					}
					break;
				case 'ERROR':
					$('#formulario_inscripcion').replaceWith('<h3 class="titulo"><strong>' + salida.msg + '</strong></h3>');
					break;
				case 'KO':
					$('#formulario_inscripcion').replaceWith('<h3 class="titulo"><strong>' + salida.msg + '</strong></h3>');
					break;				
			}
		}
	);
};


/******************************************************************/
/************************ CITAS PREVIAS ***************************/
/******************************************************************/
FORMULARIOS.calendarioCitaPrevia = function(id_seccion) {	
	FORMULARIOS.citas_id_seccion = id_seccion;
	pathJson = '/includes/modulos/citas-previas/calendario-citas-' + id_seccion + '.json';
	$.ajax(
		{
			url: pathJson,
			async: false,
			dataType: "json",
			success:
				function(datosJson) {
					FORMULARIOS.datosCitasPrevias = datosJson;
					FORMULARIOS.marcaDias();
					FORMULARIOS.enlacesCalendario();
				}
		}
	);
};

FORMULARIOS.marcaDias = function() {

	for(i=0; i<FORMULARIOS.datosCitasPrevias.length; i++) {
		if(FORMULARIOS.datosCitasPrevias[i].mes + "-" + FORMULARIOS.datosCitasPrevias[i].annio == $(".mes").attr("id") && FORMULARIOS.datosCitasPrevias[i].horarios != '') {
			$("#dia-" + FORMULARIOS.datosCitasPrevias[i].dia).addClass("pra");
			$("#dia-" + FORMULARIOS.datosCitasPrevias[i].dia).html("<a title=\"día " + FORMULARIOS.datosCitasPrevias[i].dia + " disponible\" href=\"javascript:;\" onclick=\"FORMULARIOS.seleccionDia(this);\">" + FORMULARIOS.datosCitasPrevias[i].dia + "</a>");
		}
	}	
	
	if($(".pra").length == 0) {
		FORMULARIOS.cargaCalendario(FORMULARIOS.datosCitasPrevias[0].mes, FORMULARIOS.datosCitasPrevias[0].annio);
		
	}
};

FORMULARIOS.cargaCalendario = function(mes, annio) {
	if(FORMULARIOS.calendario_cargado) return;

//	if(mes.indexOf("0") == -1 && mes < 10) mes = '0' + mes;

//	mes = mes.replace('00', '0');

	var pathCalendario = '/includes/modulos/citas-previas/calendario.' + annio + '.' + mes + '.html';
	$.ajax({
		url: pathCalendario,
		async: false,
		success:
			function(data) {
				FORMULARIOS.calendario_cargado = true;
				$('.calendario table').replaceWith(data);
				//console.log("MES_ID=" + $(".mes").attr("id"));
				FORMULARIOS.marcaDias();
				$('#leyenda_dia').html('');
				$('[id*=hora_]').each(function () {
					if($(this).find("a").html() != null) {
						$(this).replaceWith("<td id=\"hora_" + $(this).find("a").html() + "\" class=\"ocupado\" title=\"no disponible\">" + $(this).find("a").html() + "</td>");
					} else {
						$(this).replaceWith("<td id=\"hora_" + $(this).html() + "\" class=\"ocupado\" title=\"no disponible\">" + $(this).html() + "</td>");
					}
				});
				FORMULARIOS.enlacesCalendario();
			}
	});
};

FORMULARIOS.marcaHorarios = function(dia) {
	var horarios = null;
	var ocupados = null;

	for(i=0; i<FORMULARIOS.datosCitasPrevias.length; i++) {
		if(FORMULARIOS.datosCitasPrevias[i].mes + "-" + FORMULARIOS.datosCitasPrevias[i].annio == $(".mes").attr("id") && FORMULARIOS.datosCitasPrevias[i].dia == dia) {
			dia = i;
			break;
		}
	}		
	$.ajax(
		{
			type: "GET",
			dataType: "json",
			url: '/backend/CALENDARIO.horarios.php?id_seccion=' + FORMULARIOS.citas_id_seccion + '&dia=' + FORMULARIOS.datosCitasPrevias[i].dia + '&mes=' + FORMULARIOS.datosCitasPrevias[i].mes + '&annio=' + FORMULARIOS.datosCitasPrevias[i].annio + '&r=' + Math.random(),
			async: false,				
			success:
				function(horariosJson) {
					if(horariosJson.horarios.length > 0) {
						horarios = horariosJson.horarios.split(",");
					} else {
						horarios = FORMULARIOS.datosCitasPrevias[dia].horarios.split(",");
					}
					var ocupados = FORMULARIOS.datosCitasPrevias[dia].ocupados.split(",");

					$('[id*=hora_]').each(function () {
						if($(this).find("a").html() != null) {
							$(this).replaceWith("<td id=\"hora_" + $(this).find("a").html() + "\" class=\"ocupado\" title=\"no disponible\">" + $(this).find("a").html() + "</td>");
						} else {
							$(this).replaceWith("<td id=\"hora_" + $(this).html() + "\" class=\"ocupado\" title=\"no disponible\">" + $(this).html() + "</td>");
						}
					});

					$(".horario .ocupado").each(function() {
						id = $(this).attr("id").replace("hora_", "");
						id = id.replace("9:00", "09:00");
						id = id.replace("9:30", "09:30");
						if(FORMULARIOS.in_array(id, horarios) && !FORMULARIOS.in_array(id, ocupados)) {
							$(this).replaceWith("<td id=\"hora_" + $(this).html() + "\"><a title=\"seleccionar horario disponible\" href=\"javascript:;\" onclick=\"FORMULARIOS.seleccionHora(this);\">" + $(this).html() + "</a></td>");
						}
					});

				}
		}
	);
};



FORMULARIOS.seleccionDia = function(obj) {
	var dia = $(obj).html();
	var datosMes = $(".calendario .mes").html().split(" ");
	$("#leyenda_dia").html("Día " + dia + " de " + datosMes[0] + " de " + datosMes[1]);
	$('[id*=dia-]').each(function () {
		$(this).removeClass("hoy");
		if($(this).find("a").html() != null)
			$(this).addClass("pra");
	});
	$("#dia-" + dia).removeClass("pra");
	$("#dia-" + dia).addClass("hoy");

	FORMULARIOS.marcaHorarios(dia);
};

FORMULARIOS.seleccionHora = function(obj) {
	var hora = $(obj).html();
	$('[id*=hora_]').each(function () {
		$(this).removeClass("hoy");
		if($(this).attr("id") == "hora_" + hora) {
			$(this).addClass("hoy");
		}
	});
};


FORMULARIOS.enlacesCalendario = function() {
	var mesSeleccionado = $(".mes").attr("id");
	//console.log("MES SELECCIONADO " + mesSeleccionado);
	var datos = mesSeleccionado.split("-");
	var mes = datos[0];
	var annio = datos[1];

	var mesSigu = parseInt(mes, 10) + 1;
	if(mesSigu < 10 && mesSigu.length == 1) mesSigu = '0' + mesSigu;
	var annioSigu = annio;

	var mesAnt = parseInt(mes, 10) - 1;
	if(mesAnt < 10 && mesAnt.length == 1) mesAnt = '0' + mesAnt;
	var annioAnt = annio;


	if(mes == 12) {
		mesSigu = 1;
		annioSigu = parseInt(annio, 10) + 1;
	}
	if(mes == '01') {
		mesAnt = 12;
		annioAnt = parseInt(annio, 10) - 1;
	}

	$(".siguientem a").attr({href: "javascript:void(0)"});
	$(".siguientem a").click(function() {
		FORMULARIOS.calendario_cargado = false;
		FORMULARIOS.cargaCalendario(mesSigu, annioSigu);
	});

	$(".anteriorm a").attr({href: "javascript:void(0)"});
	$(".anteriorm a").click(function() {
		FORMULARIOS.calendario_cargado = false;
		FORMULARIOS.cargaCalendario(mesAnt, annioAnt);
	});

	
	annioInicial = FORMULARIOS.datosCitasPrevias[0].annio;
	mesInicial = FORMULARIOS.datosCitasPrevias[0].mes;

	annioFinal = FORMULARIOS.datosCitasPrevias[FORMULARIOS.datosCitasPrevias.length - 1].annio;
	mesFinal = FORMULARIOS.datosCitasPrevias[FORMULARIOS.datosCitasPrevias.length - 1].mes;

//	console.log("ANIO_SIGUIENTE=" + annioSigu + " MES_SIGUIENTE=" + mesSigu + " ANNIO_FINAL=" + annioFinal + " MES_FINAL=" + mesFinal);

	if(annioInicial == annioAnt && mesAnt < mesInicial) {
		$(".anteriorm a").hide();
	}
	if(annioFinal == annioSigu && mesSigu == mesFinal) {
		$(".siguientem a").hide();
	}
	
	if($('#' + mesSeleccionado).html().indexOf(annio) == -1) {
		$('#' + mesSeleccionado).append(" " + annio);
	}
};

FORMULARIOS.enviarCitaPrevia = function(frm) {

	
	if($(".calendario .hoy").html() == null) {
		alert("Tienes que seleccionar un día y una hora para enviar la solicitud de cita previa");
		return false;
	} else {
		var dia = $(".calendario .hoy a").html();
	}

	if($(".horario .hoy").html() == null) {
		alert("Tienes que seleccionar una hora para enviar la solicitud de cita previa");
		return false;
	} else {
		frm.hora.value = $(".horario .hoy a").html();
	}

	frm.fecha.value = $("#leyenda_dia").html();

	var fecha_submit = new Date();

	frm.action = '/backend/FORMULARIOS.citas-previas.php';
	frm.target = 'ifr_ajax_post';
	frm.submit_time.value = fecha_submit.getTime();

	FORMULARIOS.ajaxPost(
		frm,
		function(datos) {
			eval("var salida = " + datos);
			switch(salida.estado) {
				case 'OK':
					alert(salida.msg);
					$('#formulario_Cita_Previa').replaceWith(salida.msg);
					break;
				case 'ERROR_DATOS': 
					alert(salida.msg);
					if($('#formulario_Cita_Previa').html().indexOf(salida.msg) == -1) {
						$('#formulario_Cita_Previa').find('h3').append('<p><strong>' + salida.msg + '</strong></p>');
					}
					break;
				case 'ERROR':
					$('#formulario_Cita_Previa').replaceWith('<h3 class="titulo"><strong>' + salida.msg + '</strong></h3>');
					break;
				case 'KO':
					$('#formulario_Cita_Previa').replaceWith('<h3 class="titulo"><strong>' + salida.msg + '</strong></h3>');
					break;				
			}
		}
	);
};

/******************************************************************/
/*************************** CONTACTAR ****************************/
/******************************************************************/
FORMULARIOS.enviarContacto = function(frm) {
	
	var fecha_submit = new Date();
	frm.action = '/backend/FORMULARIOS.contactar.php';
	frm.target = 'ifr_ajax_post';
	frm.submit_time.value = fecha_submit.getTime()

	FORMULARIOS.ajaxPost(
		frm,
		function(datos) {
			eval("var salida = " + datos);
			switch(salida.estado) {
				case 'OK':
					alert(salida.msg);
					$('#formulario_inscripcion').replaceWith(salida.msg);
					break;
				case 'ERROR_DATOS': 
					alert(salida.msg);
					if($('#formulario_inscripcion').html().indexOf(salida.msg) == -1) {
						$('#formulario_inscripcion').find('h3').append('<p><strong>' + salida.msg + '</strong></p>');
					}
					break;
				case 'ERROR':
					$('#formulario_inscripcion').replaceWith('<h3 class="titulo"><strong>' + salida.msg + '</strong></h3>');
					break;
				case 'KO':
					$('#formulario_inscripcion').replaceWith('<h3 class="titulo"><strong>' + salida.msg + '</strong></h3>');
					break;				
			}
		}
	);
};

/******************************************************************/
/*************************** DOCUMENTOS ***************************/
/******************************************************************/
FORMULARIOS.abrirDoc = function(id_contenido) {
	
	var frm = document.frmDocumentacion;
	frm.action = '/backend/DOCUMENTOS.documento.php';
	frm.target = 'ifr_ajax_post';
	frm.id_contenido.value = id_contenido;

	FORMULARIOS.ajaxPost(
		frm,
		function(datos) {
			eval("var salida = " + datos);
			if(salida.estado == 'KO') {
				alert(salida.msg);
			}
		}
	);
};


/******************************************************************/
/*************************** COMUNES ******************************/
/******************************************************************/
FORMULARIOS.ajaxPost = function(frm,funRespuesta,respuesta) {
	funRespuesta = ($.isFunction(funRespuesta)) ? funRespuesta : function() {void(0)};
	var target = frm.target;
	$("#ifr_ajax_post").remove();
	//var iframeObj = $('<iframe name="ifr_ajax_post" id="ifr_ajax_post" src="about:blank" width="600" height="200" frameborder="1" scrolling="yes"/>');
	var iframeObj = $('<iframe name="ifr_ajax_post" id="ifr_ajax_post" src="about:blank" width="0" height="0" frameborder="0" scrolling="yes"/>');
	$("body").append(iframeObj);
	$(iframeObj).load(
		function() {
			respuesta = (respuesta != null) ? respuesta : $(this).get(0).contentWindow.document.body.innerHTML;
			frm.target = target;
			
			funRespuesta(respuesta);
		}
	);
	frm.target = "ifr_ajax_post";
	frm.submit();
};

FORMULARIOS.in_array = function(needle, haystack, argStrict) {
    var key = '', strict = !!argStrict; 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;            
			}
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {                
				return true;
            }
        }
    }
	return false;
};

