	// Manejandor de eventos  ( by Scott Andrew: www.scottandrew.com):
	var e = {
		addEvent : function(obj, evType, fn, useCapture){
			if (obj.addEventListener){
				obj.addEventListener(evType, fn, useCapture);
				return true;
			}else if (obj.attachEvent){
				var r = obj.attachEvent("on"+evType, fn);
				return r;
			}else {
				return false; 
			}
		}
	}

	formManager.prototype.cargarData = function(xml)
	{
		if (xml.getElementsByTagName('DatosUsuario').length)
		{
			var xml_data = xml.getElementsByTagName('DatosUsuario')[0];

			/*** FORMULARIO PASO 1 ***/

			// Nombre y apellidos
			if (xml_data.getElementsByTagName('NombreCompleto').length)
				document.getElementById('nombreApellidos').value = xml_data.getElementsByTagName('NombreCompleto')[0].firstChild.nodeValue;
			else document.getElementById('nombreApellidos').value = '';

			// DNI
			if (xml_data.getElementsByTagName('DNI').length)
				document.getElementById('DNI').value = xml_data.getElementsByTagName('DNI')[0].firstChild.nodeValue;
			else document.getElementById('DNI').value = '';

			// Fecha de nacimiento
			if (xml_data.getElementsByTagName('FechaNacimiento').length)
				document.getElementById('fechaNacimiento').value = xml_data.getElementsByTagName('FechaNacimiento')[0].firstChild.nodeValue;
			else document.getElementById('fechaNacimiento').value = '';
			
			// Nacionalidad
			if (xml_data.getElementsByTagName('Nacionalidad').length)
				document.getElementById('nacionalidad').value = xml_data.getElementsByTagName('Nacionalidad')[0].getElementsByTagName('Descripcion')[0].firstChild.nodeValue;
			else document.getElementById('nacionalidad').value = '';
			
			// Permiso de trabajo
			if (xml_data.getElementsByTagName('PermisoTrabajo').length)
				document.getElementById('permisoTrabajo').selectedIndex = getOptionIndex('permisoTrabajo',xml_data.getElementsByTagName('PermisoTrabajo')[0].firstChild.nodeValue);
			else document.getElementById('permisoTrabajo').selectedIndex = -1;
			
			// Estado civil
			if (xml_data.getElementsByTagName('EstadoCivil').length)
				document.getElementById('estadoCivil').value = xml_data.getElementsByTagName('EstadoCivil')[0].getElementsByTagName('Estado')[0].firstChild.nodeValue;
			else document.getElementById('estadoCivil').value = '';				
			
			if (xml_data.getElementsByTagName('Vivienda').length)
			{
				var xml_viv = xml_data.getElementsByTagName('Vivienda')[0];
				
				// Direccion
				if (xml_viv.getElementsByTagName('Direccion').length)
					document.getElementById('direccion').value = xml_viv.getElementsByTagName('Direccion')[0].firstChild.nodeValue;
				else document.getElementById('direccion').value = '';				
				
				// Codigo postal
				if (xml_viv.getElementsByTagName('CP').length)
					document.getElementById('cp').value = xml_viv.getElementsByTagName('CP')[0].firstChild.nodeValue;
				else document.getElementById('cp').value = '';		
				
				// Codigo postal
				if (xml_viv.getElementsByTagName('Ciudad').length)
					document.getElementById('ciudad').value = xml_viv.getElementsByTagName('Ciudad')[0].firstChild.nodeValue;
				else document.getElementById('ciudad').value = '';		

				// Pais
				if (xml_viv.getElementsByTagName('Pais').length)
					document.getElementById('pais').selectedIndex = getOptionIndex('pais',xml_viv.getElementsByTagName('Pais')[0].getElementsByTagName('Codigo')[0].firstChild.nodeValue);
				else document.getElementById('pais').selectedIndex = -1;
			}
			else
			{
				document.getElementById('direccion').value = '';
				document.getElementById('cp').value = '';	
				document.getElementById('ciudad').value = '';		
				document.getElementById('pais').selectedIndex = -1;
			}

			// Email
			if (xml_data.getElementsByTagName('Email').length)
				document.getElementById('email').value = xml_data.getElementsByTagName('Email')[0].firstChild.nodeValue;
			else document.getElementById('email').value = '';			

			if (xml_data.getElementsByTagName('Telefonos').length)
			{
				var xml_tel = xml_data.getElementsByTagName('Telefonos')[0];

				// Telefono 1
				if (xml_tel.getElementsByTagName('Numero').length)
					document.getElementById('telefono1').value = xml_tel.getElementsByTagName('Numero')[0].firstChild.nodeValue;
				else document.getElementById('telefono1').value = '';

				// Telefono 2
				if (xml_tel.getElementsByTagName('Numero').length > 1)
					document.getElementById('telefono2').value = xml_tel.getElementsByTagName('Numero')[1].firstChild.nodeValue;
				else document.getElementById('telefono2').value = '';
			}
			else
			{
				document.getElementById('telefono1').value = '';
				document.getElementById('telefono2').value = '';
			}


			/*** FORMULARIO PASO 2 ***/

			// Titulacion
			if (xml_data.getElementsByTagName('Titulacion').length)
			{
				var xml_car = xml_data.getElementsByTagName('Titulacion')[0];
			
				document.getElementById('titulacion').selectedIndex = -1;
				document.getElementById('indicarTitulacion').value = '';
				
				// Carrera
				if (xml_car.getElementsByTagName('Carrera').length)
				{
					var selectIndex = getOptionIndex('titulacion',xml_car.getElementsByTagName('Carrera')[0].firstChild.nodeValue);
					
					if (selectIndex != -1) document.getElementById('titulacion').selectedIndex = selectIndex;
					else
					{
						document.getElementById('titulacion').selectedIndex = getOptionIndex('titulacion','Otras');
						document.getElementById('indicarTitulacion').value = xml_car.getElementsByTagName('Carrera')[0].firstChild.nodeValue;
					}
				}
				
				// Anyo fin de carrera
				if (xml_car.getElementsByTagName('FechaCarrera').length)
					document.getElementById('fechaCarrera').value = xml_car.getElementsByTagName('FechaCarrera')[0].firstChild.nodeValue;
				else document.getElementById('fechaCarrera').value = '';
				
				// Pais
				if (xml_car.getElementsByTagName('Pais').length)
					document.getElementById('paisCarrera').selectedIndex = getOptionIndex('paisCarrera',xml_car.getElementsByTagName('Pais')[0].getElementsByTagName('Codigo')[0].firstChild.nodeValue);
				else document.getElementById('paisCarrera').selectedIndex = -1;
				
				// Detalle lugar
				if (xml_car.getElementsByTagName('DetalleLugar').length)
					document.getElementById('lugar').value = xml_car.getElementsByTagName('DetalleLugar')[0].firstChild.nodeValue;
				else document.getElementById('lugar').value = '';
			}
			
			// Idiomas
			if (xml_data.getElementsByTagName('Idiomas').length)
			{
				var xml_lang = xml_data.getElementsByTagName('Idiomas')[0];
				
				var idioma = 0;
				while (idioma < xml_lang.getElementsByTagName('Idioma').length && idioma < 3) {
					document.getElementById('idioma'+(idioma+1)).selectedIndex = getOptionIndex('idioma'+(idioma+1),xml_lang.getElementsByTagName('Idioma')[idioma].getElementsByTagName('Descripcion')[0].firstChild.nodeValue);
					document.getElementById('nivel'+(idioma+1)).selectedIndex = getOptionIndex('nivel'+(idioma+1),xml_lang.getElementsByTagName('Idioma')[idioma].getElementsByTagName('Nivel')[0].firstChild.nodeValue);
					idioma++;
				}
				
				while (idioma < 3) {
					document.getElementById('idioma'+(idioma+1)).selectedIndex = -1;
					document.getElementById('nivel'+(idioma+1)).selectedIndex = -1;
					idioma++;
				}
			}
			else
			{
				for (var x = 1; x < 4; x++) {
					document.getElementById('idioma'+x).selectedIndex = -1;
					document.getElementById('nivel'+x).selectedIndex = -1;
				}
			}


			/*** FORMULARIO PASO 3 ***/

			// Empresa
			if (xml_data.getElementsByTagName('Empresa').length)
				document.getElementById('ultimaEmpresa').value = xml_data.getElementsByTagName('Empresa')[0].firstChild.nodeValue;
			else document.getElementById('ultimaEmpresa').value = '';

			// Sector empresa
			if (xml_data.getElementsByTagName('EmpresaSector').length)
				document.getElementById('sectorEmpresa').value = xml_data.getElementsByTagName('EmpresaSector')[0].firstChild.nodeValue;
			else document.getElementById('sectorEmpresa').value = '';

			// Anio incorporacion
			if (xml_data.getElementsByTagName('EmpresaDesde').length)
				document.getElementById('incorporacion').value = xml_data.getElementsByTagName('EmpresaDesde')[0].firstChild.nodeValue;
			else document.getElementById('incorporacion').value = '';

			// Anio finalizacion
			if (xml_data.getElementsByTagName('EmpresaHasta').length)
				document.getElementById('finalizacion').value = xml_data.getElementsByTagName('EmpresaHasta')[0].firstChild.nodeValue;
			else document.getElementById('finalizacion').value = '';

			// Puesto ocupado
			if (xml_data.getElementsByTagName('PuestoOcupado').length)
				document.getElementById('puestoOcupado').value = xml_data.getElementsByTagName('PuestoOcupado')[0].firstChild.nodeValue;
			else document.getElementById('puestoOcupado').value = '';

			// Disponibilidad cambiar residencia
			document.getElementById('cambiarResidencia1').checked = '';
			document.getElementById('cambiarResidencia2').checked = '';
			
			if (xml_data.getElementsByTagName('CambioResidencia').length) {
				if (xml_data.getElementsByTagName('CambioResidencia')[0].firstChild.nodeValue == 'true') document.getElementById('cambiarResidencia1').checked = 'checked';
				else document.getElementById('cambiarResidencia2').checked = 'checked';
			}

			// Donde trabajarias
			if (xml_data.getElementsByTagName('LugaresPreferidos').length) {
				
				var xml_lpr = xml_data.getElementsByTagName('LugaresPreferidos')[0];
			
				for (var x = 0; x < document.getElementById('lugares').options.length; x++) document.getElementById('lugares').options[x].selected = '';
				for (var x = 0; x < xml_lpr.getElementsByTagName('Pais').length; x++) {
					document.getElementById('lugares').options[getOptionIndex('lugares',xml_lpr.getElementsByTagName('Pais')[x].getElementsByTagName('Codigo')[0].firstChild.nodeValue)].selected = 'selected';
				}
				for (var x = 0; x < xml_lpr.getElementsByTagName('Provincia').length; x++) {
					document.getElementById('lugares').options[getOptionIndex('lugares',xml_lpr.getElementsByTagName('Provincia')[x].getElementsByTagName('Codigo')[0].firstChild.nodeValue)].selected = 'selected';
				}
			}
			
			// Disponibilidad viajar
			document.getElementById('viajar1').checked = '';
			document.getElementById('viajar2').checked = '';
			
			if (xml_data.getElementsByTagName('PuedoViajar').length) {
				if (xml_data.getElementsByTagName('PuedoViajar')[0].firstChild.nodeValue == 'true') document.getElementById('viajar1').checked = 'checked';
				else document.getElementById('viajar2').checked = 'checked';
			}

			// Jornada
			if (xml_data.getElementsByTagName('Jornada').length)
				document.getElementById('jornada').selectedIndex = getOptionIndex('jornada',xml_data.getElementsByTagName('Jornada')[0].getElementsByTagName('Codigo')[0].firstChild.nodeValue);
			else document.getElementById('jornada').selectedIndex = -1;

			// Salario actual
			if (xml_data.getElementsByTagName('Salario').length)
				document.getElementById('salario').value = xml_data.getElementsByTagName('Salario')[0].firstChild.nodeValue;
			else document.getElementById('salario').value = '';


			for(var zz in way){
				arrayWayObj[arrayWayObj.length]=document.getElementById(way[zz])
			}				
		
			TheForms.actual=2;
			TheForms.next();
		}
		else
		{
			alert('Sus datos no coinciden con ningun usuario registrado en el servidor');
		}
	}		


	function validaViajar()
	{
		if (document.getElementById('cambiarResidencia1').checked)
			if (document.getElementById('PortalControlPlaceHolder4$ctl00$lugares').selectedIndex == -1) return false;
		return true;
	}
	
	function validaTitulacion()
	{
		if (document.getElementById('PortalControlPlaceHolder4$ctl00$titulacion').options[document.getElementById('PortalControlPlaceHolder4$ctl00$titulacion').selectedIndex].value == '-1')
			if (document.getElementById('indicarTitulacion').value == '') return false;
		return true;
	}
	
	function validaDeps(d1, d2)
	{
		if (document.getElementById(d1).selectedIndex != -1) {
			if (document.getElementById(d1).options[document.getElementById(d1).selectedIndex].value != '') {
				if (document.getElementById(d2).selectedIndex == -1) return false;
				else if (document.getElementById(d2).options[document.getElementById(d2).selectedIndex].value == '') return false;
			}
			else document.getElementById(d2).selectedIndex = -1;
		}
		else document.getElementById(d2).selectedIndex = -1;
		return true;
	}
	
	function updatePaso(form)
	{
		if (form == 'iForm2' || form == 'iForm3' || form == 'iForm4' || form == 'iForm5')
		{
			document.getElementById('botonera_pasos').style.display = 'block';
			
			var p_item = parseInt(form.charAt(form.length-1)) - 2;
			var pasos = document.getElementById('botonera_pasos').getElementsByTagName('li');
			for (var x = 0; x < document.getElementById('botonera_pasos').getElementsByTagName('li').length; x++) {
				pasos[x].className = 'noactivo';
				pasos[x].style.backgroundImage = '';
			}
			pasos[pasos.length - 1].className = 'noactivo_fin';
			pasos[p_item].className = (p_item != (pasos.length - 1))? 'activo' : 'activo_fin';
			if (p_item > 0) pasos[p_item - 1].style.backgroundImage = 'url(images/botonMenuBOff.gif)';
		}
		else document.getElementById('botonera_pasos').style.display = 'none';
	}
	
	function submitForm()
	{
		var formStr = '';	
		var formStrSelect = '';	
		var check_e='';
		var radio_e='';
		var paisesCiudades ='';
		var textoComboMultiple='';
		var valorComboMultiple='';
		
		for (var x in way)
			if (way[x] == 'iForm0' || way[x] == 'iForm2' || way[x] == 'iForm3' || way[x] == 'iForm4' || way[x] == 'iForm5' || way[x] == 'iForm6' || way[x] == 'iForm7')
			{
				
				var input_element = document.getElementById(way[x]).getElementsByTagName('input');
				var select_element = document.getElementById(way[x]).getElementsByTagName('select');
				
				
				for (var y = 0; y < input_element.length; y++)
				{
				
			    	if(input_element[y].type == "checkbox")
                    {
                        
                        if (input_element[y].checked)
                        {check_e = check_e + input_element[y].value + ","}
                    
                    }else	
                    if(input_element[y].type == "radio")
                    {
                        if (input_element[y].checked)
                        {
                         
                                radio_e += input_element[y].name + "~~" + input_element[y].value + "~~"}
                           
                    }else							    	
					if (input_element[y].name && input_element[y].type != 'button' && input_element[y].type != 'submit'&& input_element[y].type != 'checkbox'&& input_element[y].type != 'hidden' && input_element[y].type != 'radio')
					{formStr += input_element[y].name + "~~" + input_element[y].value + "~~";}
			    }
			    
				for (var y = 0; y < select_element.length; y++)
			    {
			     	   
			     	   if(select_element[y].multiple)
			     	   {
			     	         for (var s = 0; s < select_element[y].length;s++)
			     	         {
			     	         
			     	            if (select_element[y].options[s].selected)
			     	            {
			     	             
			     	              valorComboMultiple +=  select_element[y].options[s].value +"|"
			     	              textoComboMultiple +=  select_element[y].options[s].text  +"|"
			     	            }
			     	         
			     	         }
			     	         
			     	         textoComboMultiple =  textoComboMultiple.substring(0,textoComboMultiple.length-1) +"~~"
			     	         valorComboMultiple =  valorComboMultiple.substring(0,valorComboMultiple.length-1) +"~~"
			     	         
			     	         formStrSelect += select_element[y].name + "_value~~" + valorComboMultiple + select_element[y].name + "_text~~" + textoComboMultiple
			     	   }
			     	   else{
			     	    formStrSelect += select_element[y].name + "_value~~" + select_element[y].value + "~~"+select_element[y].name+"_text~~"+ select_element[y].options[select_element[y].selectedIndex].text + "~~";
			     	    }
			    }
		}	
		
if (check_e!=""){
document.getElementById('fData').getElementsByTagName('input')[1].value ="Puestos :";
document.getElementById('fData').getElementsByTagName('input')[2].value = check_e.substring(0,check_e.length-1)
check_e = "puesto ~~" + check_e.substring(0,check_e.length-1) +"~~"
formStr = check_e + formStr + formStrSelect + radio_e

}
else
{
    if(document.getElementById("Otros").checked)
    {
    campo4=document.createElement("input")
    campo4.type="text"
    campo4.style.display='none';
    campo4.name="Otros"
    campo4.value ='1';
    document.getElementById('fData').appendChild(campo4)
    }

formStr = formStr + formStrSelect + radio_e
}

formStr = formStr.substring(0,formStr.length-2)

//alert(formStr)
//alert(document.getElementById('fData').getElementsByTagName('input')[1].value)
		document.getElementById('fData').getElementsByTagName('input')[0].value = formStr;
		//document.getElementById('fData').appendChild(document.getElementById('cv0'));
		document.getElementById('fData').submit();
	}
	
	function xmlRequest(path)
	{
		if (window.XMLHttpRequest) xml_obj = new XMLHttpRequest();
		else if(window.ActiveXObject) xml_obj = new ActiveXObject("Msxml2.XMLHTTP");
			
		if(xml_obj) {
			xml_obj.onreadystatechange = xmlProcessChange;
			xml_obj.open('GET', path, true);
			xml_obj.send('');
		}
	}
	
	function xmlProcessChange()
	{
		if (xml_obj.readyState == 4)
			if (xml_obj.status == 200) TheForms.cargarData(xml_obj.responseXML);
			else alert("There was a problem retrieving the XML data:\n" + xml_obj.statusText);
	}
	
	function getOptionIndex(select_field, value) {
		var x = document.getElementById(select_field);
		
		for (var y = 0; y < x.options.length; y++)
			if (x.options[y].value == value) return y;
			
		return -1;
	}