var delta = 1;
var tipo_inscripcion;
var txt_cargando = "<img src='images/loading.gif' width='16' height='16'>&nbsp;<span style='font-size: 12px'>Cargando...</span>";
var txt_enviando = "<img src='images/loading.gif' width='16' height='16'>&nbsp;<span style='font-size: 12px'>Enviando datos...</span>";
var grupo = 0;

function reg_empezar(ti, _grupo)
//inicializa el arreglo y carga el primer modulo
{
	tipo_inscripcion = ti;
	reg_limpiar_arr_datos();
	grupo = _grupo;
	reg_cargar(1);
}

function reg_sig()
//siguiente pantalla de carga
{
	document.getElementById("msj_resultado").innerHTML = txt_cargando;
	reg_guardar_campos();
	if ((arr_datos['ptipo_participacion'] == "I") && 
		(arr_datos['ptipo_entidad'] == 'I') && (indice == 2)) {
		delta = 3;
	} else if ((arr_datos['ptipo_entidad'] == 'I') && (indice == 2)) {
		delta = 2;
	} else if ((arr_datos['ptipo_participacion'] == "I") && (indice == 3)) {
		delta = 2;
	} else {
		delta = 1;
	}
	
	if (indice < pantallas) {
		reg_validar_formulario();
	}
}

function reg_ant()
//anterior pantalla de carga
{
	document.getElementById("msj_resultado").innerHTML = txt_cargando;
	reg_guardar_campos();
	if ((arr_datos['ptipo_participacion'] == "I") && (indice == 5)) {
		indice--;
	}
	if ((arr_datos['ptipo_entidad'] == 'I') && (indice == 4)) {
		indice--;
	}
	if (indice > 1) {
		reg_cargar(--indice);
	}
}

function reg_ir(ind)
//va a la pantalla ind
{
	reg_guardar_campos();
	indice = ind;
	reg_cargar(ind);
}

function reg_cargar(ind)
//carga la pantalla ind
{
	document.getElementById("div_modulo").style.visibility = "hidden";
	window.scrollTo(0,0);
	//document.getElementById("div_modulo").innerHTML = "Cargando...";
	document.getElementById("boton_reg_ant").style.visibility = ((ind == 1) ? "hidden": "visible");
	document.getElementById("boton_guardar").style.visibility = ((ind == pantallas) ? "visible": "hidden");
	document.getElementById("boton_reg_sig").style.visibility = ((ind == pantallas) ? "hidden": "visible");
	var url = "form_nuevo_" + indice + ".php?d=" + new Date();
	if ((arr_datos['ptipo_participacion'] == "I") && (indice == 5)) {
		var url = "form_nuevo_5b.php?d=" + new Date();
	} else {
		var url = "form_nuevo_" + indice + ".php?d=" + new Date();
	}
	HTML_AJAX.replace('div_modulo', url);
}

function reg_callback_cargar()
//funcion que se llama cuando se carga el modulo ;)
{
	document.getElementById("div_modulo").style.visibility = "visible";
	if (grupo > 0) {
		arr_datos['pid_grupo'] = grupo;
	}
	reg_actualizar_campos();
	document.getElementById("msj_resultado").innerHTML = "";
}

function reg_get_campo(nom)
//obtiene el valor de un campo
{
	if (reg_campo_existe(nom)) {
		if (reg_campo_es_option(nom)) {
			return reg_get_campo_option(nom);
		} else {
			return document.getElementById(nom).value;
		}
	} else {
		return "";
	}
}

function reg_set_campo(nom, valor)
//modifica el valor de un campo
{
	if (reg_campo_existe(nom)) {
		if (reg_campo_es_combo(nom)) {
			reg_set_campo_combo(nom, valor);
		} else if (reg_campo_es_option(nom)) {
			reg_set_campo_option(nom, valor);
		} else {
			if (nom == 'prlocalizacion') {
				reg_set_campo_localizacion(valor);
			} else {
				document.getElementById(nom).value = valor;
			}
		}
	}
}

function reg_set_campo_combo(nom, valor)
//elige un elemento del combo box
{
	if (nom == 'pprovincia') {
		reg_cargar_provincia('pprovincia', Util.get("pid_pais").value);
	} else if (nom == 'oprovincia') {
		reg_cargar_provincia('oprovincia', Util.get("oid_pais").value);
	}
	var obj = document.getElementById(nom);
	for (var i = 0; i < obj.length; i++) {
		if (obj.options[i].value == valor) {
			obj.options[i].selected = true;
		} else {
			obj.options[i].selected = false;
		}
	}
	try {
		if (document.getElementById('oid_tipo_org').value == "0") {
			document.getElementById("sp_otro_tipo_org").style.visibility = "visible";
			document.getElementById("sp_otro_tipo_org2").style.visibility = "visible";
		}
	} catch(e) {};	
	try {
		if (document.getElementById('op_juridica').value == "S") {
			document.getElementById("sp_pj_desde_anyo").style.visibility = "visible";
		} else {
			document.getElementById("sp_pj_desde_anyo").style.visibility = "hidden";
		}
	} catch(e) {};
	try {
		if (document.getElementById('pentera').value == "0") {
			document.getElementById('pentera_span').style.display = "block";
		} else {
			document.getElementById('pentera_span').style.display = "none";
		}
	} catch(e) {};	
}

function reg_get_campo_option(nom)
//obtiene el valor de un campo de opcion
{
	switch(nom) {
		case 'ptipo_participacion':
			if (document.getElementById('ptipo_participacion_1').checked) {
				return "D";
			} else if (document.getElementById('ptipo_participacion_2').checked) {
				return "I";
			} else {
				return "";
			}
			break;
		case 'ptipo_entidad':
			if (document.getElementById('ptipo_entidad_1').checked) {
				return "I";
			} else if (document.getElementById('ptipo_entidad_2').checked) {
				return "O";
			} else {
				return "";
			}
			break;
	}
}

function reg_set_campo_option(nom, valor)
//selecciona una opcion
{
	switch(nom) {
		case 'ptipo_participacion':
			if (valor == 'D') {
				document.getElementById('ptipo_participacion_1').checked = true;
				document.getElementById('ptipo_participacion_2').checked = false;
				document.getElementById('A11').checked = true;
				document.getElementById('A12').checked = false;
			} else if (valor == 'I') {
				document.getElementById('ptipo_participacion_2').checked = true;
				document.getElementById('ptipo_participacion_1').checked = false;
				document.getElementById('A11').checked = false;
				document.getElementById('A12').checked = true;
			} else {
				document.getElementById('ptipo_participacion_2').checked = false;
				document.getElementById('ptipo_participacion_1').checked = false;
				document.getElementById('A11').checked = false;
				document.getElementById('A12').checked = false;
			}
			break;
		case 'ptipo_entidad':
			if (valor == 'I') {
				document.getElementById('ptipo_entidad_1').checked = true;
				document.getElementById('ptipo_entidad_2').checked = false;
			} else if (valor == 'O') {
				document.getElementById('ptipo_entidad_2').checked = true;
				document.getElementById('ptipo_entidad_1').checked = false;
			} else {
				document.getElementById('ptipo_entidad_1').checked = false;
				document.getElementById('ptipo_entidad_2').checked = false;
			}
			break;
	}
}

function reg_campo_existe(nom)
//devuelve true o false dependiendo si el campo existe
{
	switch(nom) {
		case 'ptipo_participacion':
			return (document.getElementById("ptipo_participacion_1") != null);
		case 'ptipo_entidad':
			return (document.getElementById("ptipo_entidad_1") != null);
	}
	return (document.getElementById(nom) != null);
}

function reg_campo_es_combo(nom)
//devuelve true si el campo es un desplegable
{
	switch(nom) {
		case 'oid_pais': case 'oid_tipo_org': case 'op_juridica': case 'pid_pais': case 'pprovincia':
		case 'oprovincia': case 'prid_ambito_cobertura': case 'prid_organizacion': case 'pentera':
		case 'pid_grupo': case 'psexo':
			return true;
		default: 
			return false;
	}
}

function reg_campo_es_option(nom)
//devuelve true si el campo es un campo de opcion o checkbox
{
	switch(nom) {
		case 'ptipo_participacion':  case 'ptipo_entidad':
			return true;
		default: 
			return false;
	}
}

function reg_actualizar_campos()
//actualiza todos los campos con los valores del arreglo
{
	for (var i in arr_datos) {
		reg_set_campo(i, arr_datos[i]);
	}
	reg_set_dif_fort();
}

function reg_guardar_campos()
//actualiza todos los valores del arreglo con los valores de los campos
{
	if (indice == 4) {
		pr_agregar_loc();
	}
	for (var i in arr_datos) {
		if (reg_campo_existe(i)) {
			arr_datos[i] = reg_get_campo(i);
		}
	}
	reg_get_dif_fort();
}

function reg_limpiar_arr_datos()
//pone en blanco los elementos del arreglo de datos
{
	arr_datos['oid_tipo_org'] = "";	arr_datos['ootro_tipo'] = ""; arr_datos['onombre'] = ""; arr_datos['oanyo_inicio'] = "";
	arr_datos['op_juridica'] = ""; arr_datos['oanyo_p_juridica'] = ""; arr_datos['odomicilio'] = ""; arr_datos['olocalidad'] = "";
	arr_datos['ocp'] = ""; arr_datos['oid_pais'] = ""; arr_datos['oprovincia'] = "";
	arr_datos['otel_fijo_a'] = "54"; arr_datos['otel_fijo_b'] = ""; arr_datos['otel_fijo_c'] = "";
	arr_datos['otel_celular_a'] = "54"; arr_datos['otel_celular_b'] = ""; arr_datos['otel_celular_c'] = ""; 
	arr_datos['oemail'] = ""; arr_datos['oweb'] = "";
	
	arr_datos['papellido'] = ""; arr_datos['pnombre'] = ""; arr_datos['pusuario'] = ""; arr_datos['psexo'] = ""; 
	arr_datos['pprofesion'] = ""; 
	arr_datos['pprofesion_otra'] = ""; arr_datos['pcalle'] = "";
	arr_datos['pid_pais'] = ""; arr_datos['pprovincia'] = ""; arr_datos['plocalidad'] = ""; arr_datos['pcp'] = ""; 
	arr_datos['pfecha_nacimiento'] = "";
	arr_datos['ptel_fijo_a'] = "54"; arr_datos['ptel_fijo_b'] = ""; arr_datos['ptel_fijo_c'] = "";
	arr_datos['ptel_celular_a'] = "54"; arr_datos['ptel_celular_b'] = ""; arr_datos['ptel_celular_c'] = "";
	arr_datos['pemail'] = "";
	arr_datos['ptipo_participacion'] = ""; arr_datos['ptipo_entidad'] = ""; arr_datos['paceptacion_uso'] = "S";
	arr_datos['pid_grupo'] = "";
	
	arr_datos['prnombre'] = ""; arr_datos['pranyo_inicio'] = ""; arr_datos['probjetivo'] = ""; arr_datos['prtipo_poblacion'] = ""; 
	arr_datos['prcant_poblacion'] = ""; arr_datos['prbarrio'] = ""; arr_datos['prlocalizacion'] = ""; 
	arr_datos['prid_ambito_cobertura'] = ""; arr_datos['prexiste_hoy'] = ""; 
	arr_datos['prid_organizacion'] = "";
	
	arr_datos['potras_dificultades'] = "";
	arr_datos['potras_fortalezas'] = "";
	
	arr_datos['pdificultades'] = new Array();
	arr_datos['pfortalezas'] = new Array();
	arr_datos['pentera'] = "";
	arr_datos['pentera_otro'] = "";
	
	arr_datos['pcaportes'] = ""; arr_datos['pcnecesidades'] = ""; arr_datos['pccomentarios'] = "";
}

function reg_get_dif_fort()
//carga los arreglos de fortalezas y dificultades
{
	var obj_d = document.getElementById('pdificultades');
	var obj_f = document.getElementById('pfortalezas');
	var j = 0;
	if (obj_d != null) {
		arr_datos['pdificultades'] = new Array();
		for(var i = 0; i < obj_d.length; i++) {
			if (obj_d.options[i].selected) {
				arr_datos['pdificultades'][j] = obj_d.options[i].value;
				j++;
			}
		}
	}
	j = 0;
	if (obj_f != null) {
		arr_datos['pfortalezas'] = new Array();
		for(var i = 0; i < obj_f.length; i++) {
			if (obj_f.options[i].selected) {
				arr_datos['pfortalezas'][j] = obj_f.options[i].value;
				j++;
			}
		}
	}
}

function reg_in_array(elem, arr)
//dice si un elemento está en un arreglo
{
	for(var i = 0; i < arr.length; i++) {
		if (arr[i] == elem) {
			return true;
		}
	}
	return false;
}

function reg_set_dif_fort()
//descarga los arreglos de fortalezas y dificultades
{
	var obj_d = document.getElementById('pdificultades');
	var obj_f = document.getElementById('pfortalezas');
	if (obj_d != null) {
		for(var i = 0; i < obj_d.length; i++) {
			if (reg_in_array(obj_d.options[i].value, arr_datos['pdificultades'])) {
				obj_d.options[i].selected = true;
			} else {
				obj_d.options[i].selected = false;
			}
		}
	}
	if (obj_f != null) {
		for(var i = 0; i < obj_f.length; i++) {
			if (reg_in_array(obj_f.options[i].value, arr_datos['pfortalezas'])) {
				obj_f.options[i].selected = true;
			} else {
				obj_f.options[i].selected = false;
			}
		}
	}
}

function reg_enviar_formulario()
//envia el formulario
{
	document.getElementById("boton_guardar").style.visibility = "hidden";
	document.getElementById("msj_resultado").innerHTML = txt_enviando;
	reg_guardar_campos();
	reg_set_campo_localizacion_ex();
	var arr_datos2 = new Array();
	for (var i in arr_datos) {
		arr_datos2[i] = escape(arr_datos[i]);
	}
	arr_datos2["tipo_inscripcion"] = tipo_inscripcion;
	var jsr = new HTML_AJAX_Serialize_PHP();
	var s_arr_datos = jsr.serialize(arr_datos2);
	HTML_AJAX.defaultEncoding = "JSON";
	HTML_AJAX.call('test', 'ajx_registrar_formulario', reg_callback_enviar_formulario, s_arr_datos);
}

function reg_callback_enviar_formulario(res)
{
	if (res[0] == 0) {
		var msj = "<span style='color: #0000AA; font-size: 13px'>Los datos han sido enviados."+
			"<br>Pronto recibir&aacute; un email de info@reprasis.org</font>";
		document.getElementById("msj_resultado").innerHTML = msj;
		window.setTimeout("location.href = 'index.php'", 5000);
	} else {
		var msj = HTML_AJAX.call('test', 'ajx_msj', false, res[0]);
		msj = "<font color='red'>" + msj + "</font>";
		document.getElementById("msj_resultado").innerHTML = msj;
		document.getElementById("boton_guardar").style.visibility = "visible";
		window.setTimeout('reg_ir('+res[1]+')', 2000);
	}
}

function reg_validar_formulario()
//valida el formulario
{
	reg_guardar_campos();
	var arr_datos2 = new Array();
	for (var i in arr_datos) {
		arr_datos2[i] = escape(arr_datos[i]);
	}
	var jsr = new HTML_AJAX_Serialize_PHP();
	var s_arr_datos = jsr.serialize(arr_datos2);
	HTML_AJAX.defaultEncoding = "JSON";
	HTML_AJAX.call('test', 'ajx_validar_formulario', reg_callback_validar_formulario, s_arr_datos);
}

function reg_callback_validar_formulario(res)
{
	if (indice >= res[1]) {
		var msj = HTML_AJAX.call('test', 'ajx_msj', false, res[0]);
		msj = "<font color='red'>" + msj + "</font>";
		if (document.getElementById("msj_resultado")) {
			document.getElementById("msj_resultado").innerHTML = msj;
		}
	} else {
		indice += delta;
		reg_cargar(indice);
	}
}

function reg_cargar_provincia(opr, idp)
{
	Util.delSelect(opr, 0);
	Util.selectAddOption(opr, 0, 'Cargando...');
	Util.get(opr).disabled = true;
	var arr = HTML_AJAX.call('test', 'ajx_obtener_provincias', null, idp);
	if (arr) {
		if (arr.length) {
			Util.get(opr).disabled = false;
			Util.delSelect(opr, 0);
			Util.selectAddOption(opr, 0, '');
			for (var i = 0; i < arr.length; i++) {
				Util.selectAddOption(opr, arr[i].id_provincia, arr[i].provincia);
			}
		}
	}
}

function reg_cargar_codarea(opr1, opr2, idp)
{
	var ca = HTML_AJAX.call('test', 'ajx_obtener_codarea', null, idp);
	if (opr1 != "") {
		Util.get(opr1).value = ca;
	}
	if (opr2 != "") {
		Util.get(opr2).value = ca;
	}
}

function reg_set_campo_localizacion(valor)
{
	var obj = Util.get("prlocalizacion");
	if (obj) {
		obj.value = valor;
		var arr = obj.value.split('%');
		var tpa, tpr, tloc, codpr, latlng;
		for (var i = 0; i < arr.length; i++) {
			tpa = arr[i].split('|')[0];
			tpr = arr[i].split('|')[1];
			tloc = arr[i].split('|')[2];
			codpr = arr[i].split('|')[4];
			latlng = arr[i].split('|')[3];
			pr_agregar_loc_ex(tpa, tpr, tloc, codpr, latlng);
		}
	}
}

function reg_set_campo_localizacion_ex()
{
	var loc = arr_datos["prlocalizacion"];
	var tmp = "";
	var arr = loc.split('%');
	var tloc, codpr, latlng;
	for (var i = 0; i < arr.length; i++) {
		tloc = arr[i].split('|')[2];
		if (Util.isIE()) {
			codpr = arr[i].split('|')[4];
			latlng = arr[i].split('|')[3];
		} else {
			codpr = arr[i].split('|')[3];
			latlng = arr[i].split('|')[4];
		}
		if (i > 0) {
			tmp += "%";
		}
		tmp += tloc + "|" + codpr + "|" + latlng;
	}
	arr_datos["prlocalizacion"] = tmp;
}
