
	
	function ItemForm(fieldId, fieldValue) {
		this.fieldId = fieldId;
		this.fieldValue = fieldValue;
		if (arguments.length == 3) {
			this.fieldName = arguments[2];
		}
	}
	
	
	function RelaunchForm(formId) {
		this.fields = new Array();
		this.initFields = new Array();
		this.initPaging = false;
		this.formId = formId;
		this.newFields = new Array();
		this.init();
		this.action = "";
	}
	
	
	RelaunchForm.prototype = {
		
		addField: function(id, value, name) {
			this.newFields[this.newFields.length] = new ItemForm(id,value,name);
		},
		
		setField: function(id, value) {
			this.fields[this.fields.length] = new ItemForm(id,value);
		},
		
		setInitPaging: function(initPaging) {
			this.initPaging = initPaging;
		},
		
		setInitField: function(id, value) {
			this.initFields[this.initFields.length] = new ItemForm(id,value);
		},
		
		setAction: function(action) {
			this.action = action;
		},		
		
		launch: function() {
			
			///////////////////////////7
			for (i=0; i < this.fields.length; i++) {
				elemId = this.fields[i].fieldId;
				elemValue = this.fields[i].fieldValue;
				
				document.getElementById(elemId).setAttribute('value',elemValue);
			}
			
			if (this.initPaging) {
				for (i=0; i < this.initFields.length; i++) {
					elemId = this.initFields[i].fieldId;
					elemValue = this.initFields[i].fieldValue;
					document.getElementById(elemId).setAttribute('value',elemValue);
				}
			}
			
			for (i=0; i < this.newFields.length; i++) {
				var hidden = document.createElement('input') 
				hidden.type='hidden'; 
				hidden.value = this.newFields[i].fieldValue;
				hidden.id = this.newFields[i].fieldId;
				hidden.name = this.newFields[i].fieldName;
				document.getElementById(this.formId).appendChild(hidden);
			}
			
			if (this.action != "") {
				document.getElementById(this.formId).action = this.action;
			}
			
			document.getElementById(this.formId).submit();
		},
		
		
		init: function() {
			
			this.setInitField('item_inicio',1);
		}
	}
	

	
	
	
	function relaunchView(field, value) {		
		view_item = new RelaunchForm('form_link');
		view_item.setField(field,value);
		if (arguments.length == 3) {
			view_item.setAction(arguments[2]);
		}
		view_item.launch();
	}

	
	function relaunchViewAddField(field, value) {		
		view_item = new RelaunchForm('form_link');
		//If exists a field in the form with the same name,
		//we overwrite its value
		if( document.getElementById(view_item.formId)[field] ){
			document.getElementById(view_item.formId)[field].value = value;
		}
		else{
			//If not exists, we add it.
			view_item.addField(field,value,field);
		}
		if (arguments.length == 3) {
			view_item.setAction(arguments[2]);
		}
		view_item.launch();
	}	
	
	
	function relaunchOrder(field, value, canalId, bOwnResults) {
		order_item = new RelaunchForm('form_relaunch');
		order_item.setField(field,value);
		order_item.setInitPaging(true);
		order_item.setField("item_origen_accion",5);
		
		
		order_item.launch();
	}	
	
	
	
	
		
	function relaunchNavigator(navigator, valor) {		
		relaunch = new RelaunchForm('form_relaunch');
		var origenAcccion = 0;
		
		switch(navigator) {
			case 10:
								
				
				if (valor == 0) {
					relaunch.setField(
						getFieldByNavigator(2),
					'0');
				}
				relaunch.setField(
						getFieldByNavigator(1),
						'');
				
				origenAccion = 3010;
				break;
			case 2:
				
				var poblacionIdGeo = document.getElementById("item_poblacionIdGeo");
				if (poblacionIdGeo) { 
					//En el caso de que población GEO tenga el valor por defecto.
					if ( poblacionIdGeo.value == 0) {
						relaunch.setField(				
							getFieldByNavigator(1),
							'');
					}
				}
				
				
				
				
				
				origenAccion = 3002;
				
				break;
			case 3:
				
				if (valor == 0) {

					relaunch.setField(
						getFieldByNavigator(4),
						'0');
				}
				
				origenAccion = 3003;
				
				break;		
			case 4:
				
				if (valor != 0) {
					relaunch.setField(
							getFieldByNavigator(3),
							'0');
				}
				
				origenAccion = 3004;
				
				break;
			case 8:
				//Se deshace remuneración máxima y el formato de salario.
				relaunch.setField(
					"item_remuneracion_maxima",
					getSalarioMaximoFromString(valor));
				
				valor = getSalarioMinimoFromString(valor);		
				
				origenAccion = 3008;
						
				break;		
			case 1:
				relaunch.setField("item_radioGEO",0);
				relaunch.setField("item_poblacionIdGEO",0);
				relaunch.setField("item_poblacionGEO",'');
				
				origenAccion = 3001;
				
				break;
			case 5:
			
				origenAccion = 3005;				
				break;
			case 9:
			
				origenAccion = 3009;				
				break;
			case 7:
			
				origenAccion = 3007;				
				break;
			case 6:
			
				origenAccion = 3006;				
				break;

			case 11:
				if (valor == 1) {
					relaunch.setField("item_upsellings", 63);
				} else {
					relaunch.setField("item_upsellings", -3);
				}
				origenAccion = 3011;				
				break;
		}
		relaunch.setField("item_origen_accion", origenAccion);
		relaunch.setField(getFieldByNavigator(navigator),valor);
		relaunch.setInitPaging(1); //Al lanzar una nueva búsqueda se va a la primera página.
		
		relaunch.launch();
	}
	
	function getSalarioMaximoFromString(valor) {
		var salarioRange = valor.substring(1, valor.length - 1).split(';');
		var salarioMaximo = "0";
 		if (salarioRange.length > 1) {
			if (salarioRange[1] != "") {
				salarioMaximo = salarioRange[1];
			}
		} 		
		return salarioMaximo;
	}
	
	function getSalarioMinimoFromString(valor) {
		var salarioRange = valor.substring(1, valor.length - 1).split(';');
		var salarioMinimo = "0";

		if (salarioRange.length > 0) {
			if (salarioRange[0] != "") {
				salarioMinimo = salarioRange[0];
			}
		} 
		return salarioMinimo;
	}
	
	
		
	function getFieldByNavigator(navigator) { 
		switch (navigator) {
			case 1:
				return "item_poblacion";
			case 2:
				return "item_of_provincia";
			case 3:
				return "item_of_area";
			case 4:
				return "item_subcategoria";
			case 5:
				return "item_nivel_estudios";
			case 6:
				return "item_tipo_contrato";
			case 7:
				return "item_jornada_laboral";
			case 8:
				return "item_remuneracion_minima";
			case 9:
				return "item_experiencia";
			case 10:
				return "item_of_pais"
			case 11:
				return "item_upsellings" 
			default:
				return "";
		}
	}
	
	
	
	function showHide(navigator) {
		var navUl = document.getElementById("nav" + navigator);
		var liParent = navUl.parentNode;
		
		var aDivs = liParent.getElementsByTagName("div"); 
		
		var estado = 1;
		if (aDivs[0].className == 'option-collapsed') {
			aDivs[0].className = 'option-expanded';
			navUl.style.display = 'list-item';
			estado = 1;
		} else {
			aDivs[0].className = 'option-collapsed';
			navUl.style.display = 'none';
			estado = 0;
		}
		
		updateCookieNavigators(navigator, estado);
	}
	
	function initializeCookieNavigators() {
		//Se crea una nueva cookie
		var aNavigators = new Array();
		
		
			var iNavigator = 1;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 2;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 3;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 4;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 5;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 6;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 7;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 8;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 9;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 10;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
			var iNavigator = 11;
			var navDiv = document.getElementById("nav" + iNavigator);		
			if (navDiv) {
				if (navDiv.style.display == 'none') {
					aNavigators[iNavigator-1] = iNavigator + ":" + 0;
				} else {
					aNavigators[iNavigator-1] = iNavigator + ":" + 1;
				}
			} else {
				aNavigators[iNavigator-1] = iNavigator + ":" + 1;
			}
		
		sValue = "";
		for(var i=0; i < aNavigators.length; i++) {		
			if (i > 0) {
				sValue = sValue + ",";
			}
			sValue = sValue + aNavigators[i];
		}
		SetCookie("IJ.BusquedaOfertas.Navigators",sValue,null,"/");
	}
	
	function updateCookieNavigators(navigator,estado) {
		var cookieNavigators = GetCookie("IJ.BusquedaOfertas.Navigators");
		if (!cookieNavigators) {
			initializeCookieNavigators();
		} else {
			var aNavigators = cookieNavigators.split(',');
			
			aNavigators[navigator-1] = navigator + ":" + estado;
		
			sValue = "";
			for(var i=0; i < aNavigators.length; i++) {		
				if (i > 0) {
					sValue = sValue + ",";
				}
				sValue = sValue + aNavigators[i];
			}
			SetCookie("IJ.BusquedaOfertas.Navigators",sValue,null,"/");
		}
		

	}
	
	function initializeShowHideNavigators() {
		var cookieNavigators = GetCookie("IJ.BusquedaOfertas.Navigators");

		if (!cookieNavigators) {
			return;
		}
		var aNavigators = cookieNavigators.split(',');
		for(var i=0; i < aNavigators.length; i++) {		
			var navigator = aNavigators[i].split(':');
			var navigatorId = navigator[0];
			if (navigator[1]==0) {//Si tiene que estar desplegado llamamos a la función showHide para que lo pliegue.
				var navDiv = document.getElementById("nav" + navigatorId);		
				if (navDiv) {
					showHide(navigatorId);
					//navDiv.style.display = 'none';
					//imgNav.src = "//media.infojobs.net/portales/ij//flecha_07_01.gif";		
				}
			}
		}
	}
	
	
	
	
	
	function toggleMasMenos(navegador) {
		
		
		var oNav = document.getElementById("nav" + navegador);
		var oLinkMasMenos = document.getElementById("linkMasMenos" + navegador).getElementsByTagName("a")[0];
		var iDefaultItems = 4
		var bMasOpt = true;
		
		var aItems = oNav.getElementsByTagName("li");
		if (oLinkMasMenos.innerHTML.search("menos") >= 0) {
			
			oLinkMasMenos.innerHTML = "<strong>[Mostrar m&aacute;s]</strong>";
			bMasOpt = false;			
		} else {
			
			oLinkMasMenos.innerHTML = "<strong>[Mostrar menos]</strong>"; 
		}
		
		for (var i=iDefaultItems; i<aItems.length-1; i++) {
			
			if (bMasOpt) {
				aItems[i].className = "";
			} else {
				aItems[i].className = "hide";
			}
		}
	}
	
	
	
	function relaunchBusquedaAvanzada() {	
		relaunch = new RelaunchForm('form_relaunch');
		relaunch.setAction("/jobsearch/jobs-advanced-search/edit.xhtml");				
		relaunch.launch();
	}
	
	function relaunchResults() {
		relaunch = new RelaunchForm('form_relaunch');
		
		
		relaunch.launch();	
	}
	
	
	
	function relaunchResultsNav() {
		relaunch = new RelaunchForm('form_relaunch');
		//Se añade origen acción nueva búsqueda de ofertas dentro del contexto de una navegación.
		relaunch.setField('item_origen_accion','10');
		
		
		relaunch.launch();	
	}
	
	
	
	
	function relaunchGeoSearch(poblacionId,radio,poblacion) {
		relaunch = new RelaunchForm('form_relaunch');
		relaunch.setField("item_radioGEO",radio);
		relaunch.setField("item_poblacionIdGEO",poblacionId);
		relaunch.setField("item_poblacionGEO",poblacion);
		 
		
		relaunch.setField("item_poblacion",poblacion);
		
		if (arguments.length == 4) { // Este cuarto parámetro nos indica si estamos en una nueva búsqueda o no.
			if (arguments[3] == false) {//Si se considera que no es una nueva búsqueda le ponemos origen-accion = navegador.
				var origenAccion = 3001;
				relaunch.setField("item_origen_accion",origenAccion);
			}
		}
		relaunch.launch();	
	}
	
	function relaunchRSS() {
		relaunch = new RelaunchForm('form_relaunch');
		relaunch.setAction("/trabajos.feed");
		relaunch.launch();	
	}

	
	function relauchSaveSearch() {
		relaunch = new RelaunchForm('form_relaunch');
		relaunch.setAction("/candidate/save-search/new_edit_save.xhtml");	
		//relaunch.setAction("candidato_guardar_busqueda_propia.cfm");	
		relaunch.addField("item_accion","SAV","accion");			
		relaunch.launch();	
	}
	
	function getUrlResultadosPropios() {
		return "/candidate/channel/list.xhtml";
	}
	
	function relaunchAlternativa(alternativa) {
		switch (alternativa) {
			case 3:
				relaunchNavigator(3,'0');		
				break;
			case 9:
				relaunchNavigator(9,'0');
				break;
			case 7:
				relaunchNavigator(7,'0');
				break;
			case 5:
				relaunchNavigator(5,'0');
				break;
			case 10:
				relaunchNavigator(10,'0');
				break;
			case 1:			
				relaunchNavigator(1,'');
				break;
			case 2:
				relaunchNavigator(2,'0');
				break;
			case 8:
				relaunchNavigator(8,'0');
				break;
			case 4:	
				relaunchNavigator(4,'0');
				break;
			case 6:					
				relaunchNavigator(6,'0');
				break;
			case 11:					
				relaunchNavigator(11,'0');
				break;
		}
	}
	
	
	function setCookieOrigenInicio(origenInicio) {
		SetCookie("IJ.BusquedaOfertas.OrigenInicio",origenInicio,null,"/");
	}
	
	
	function setCookieQueryId(querId) {
		SetCookie("IJ.BusquedaOfertas.IdBusqueda",querId,null,"/");
	}
