var siteRoot = "http://www.laborand.net/";

// extensió de indexof per treballar amb arrays per navegadors que no ho soprten
if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

function log(err) {
	var message = '';
	if (err.description) {
		message = err.description;
	} else {
		message = err.lineNumber + ": " + err.message;
	}
	var data = "message="+message;
	$.ajax({
		type: "POST",
		url: siteRoot + "master.php?page=ajax_log",
		data: data
	});
	throw err;
}

var tools = {
	// Returns array with page width, height and window width, height
	// Core code from - quirksmode.org
	// Edit for Firefox by pHaez
	getPageSize: function() {
		var xScroll, yScroll;
		
		if (window.innerHeight && window.scrollMaxY) {	
			xScroll = document.body.scrollWidth;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		
		var windowWidth, windowHeight;
		if (self.innerHeight) {	// all except Explorer
			windowWidth = self.innerWidth;
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		
		// for small pages with total height less then height of the viewport
		if(yScroll < windowHeight){
			pageHeight = windowHeight;
		} else { 
			pageHeight = yScroll;
		}
	
		// for small pages with total width less then width of the viewport
		if(xScroll < windowWidth){	
			pageWidth = windowWidth;
		} else {
			pageWidth = xScroll;
		}
	
	
		arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
		return arrayPageSize;
	},
	
	getPageScroll: function() {
	
		var yScroll;
	
		if (self.pageYOffset) {
			yScroll = self.pageYOffset;
		} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
			yScroll = document.documentElement.scrollTop;
		} else if (document.body) {// all other Explorers
			yScroll = document.body.scrollTop;
		}
	
		arrayPageScroll = new Array('',yScroll) 
		return arrayPageScroll;
	}
};

var decorate = {
	lblCurrentElement: "Seleccionats actualment",
	lblLeftAll: "<-- TOT",
	navByArrows: false,
	rtSearch: false,
	navByButtons: false,
	lblInstruccions: "Seleccioneu fent doble clic"
};

var globals = {
	ajaxGet: function(page, idioma) {
		var data = '';

		/*
		if (idioma != null && idioma) {
			if ($("input[@name=idioma]").val() != "") {
				data+= "&idioma="+$("input[@name=idioma]").val();
			}
		}
		*/

		var result;
		$.ajax({
			type: "POST",
			url: siteRoot + "master.php?page="+page,
			data: data,
			async: false,
			success: function(msg) {
				//alert (msg);
				var json = eval('(' + msg + ')');
				result = json.result;
			}
		});
		
		return result;
	},
	
	sortRemove: function(arrList, fn, source, destination) {
		source.empty();
		
		if (arrList[0] == null) {
			arrList[0] = fn.apply();
		}
		list = arrList[0];

		var html = "";
		for (var i=0;i<list.length;i++) {
			values = list[i];
			var found = false;
			destination.children('option').each(function(i) {
				if ($(this).val() == values[0]) {
					found = true;
				}
			});
			if (!found) {
				html+= "<option value='"+values[0]+"'>"+values[1]+"</option>";
			}
		}
		source.append(html);
	}
};

var buscadorFn = {
	llistaLlocsTreball: null,
	
	// lloc treball no especific seleccionat
	llocTreball: null,
	
	llistaResultatColor: true,

	statusExperiencia: function(val) {
		//var checked = $(this).val();
		var checked = val;
		if ($("input.experiencia:checked").size() == 0) {
			if (checked == 1) {
				$("#experienciaAnterior").attr("checked", "checked");
			} else {
				$("#experienciaActual").attr("checked", "checked");
			}
		}
	},
	
	buscaLlocs: function() {
		if (!$("input[@name=llocTreballTexte]").mandatory(labels["a_Lloc de treball"])) return false;
		
		var data = "llocTreball="+escape($("input[@name=llocTreballTexte]").val())+"&max=50";
		/*
		if ($("input[@name=idioma]").val() != "") {
				data+= "&idioma="+$("input[@name=idioma]").val();
		}
		*/
		$.ajax({
			type: "POST",
			url: siteRoot + "master.php?page=ajax_getLlocsTreballByNom",
			data: data,
			success: function(msg) {
				//alert (msg);
				var json = eval('(' + msg + ')');
				var result = json.result;
				var html = "";
				$("#llistaLlocsTreball").empty();
				$("#llistaLlocsTreball").show();
				if (result.length != 0) {
					var txt;
					if (result.length == 1) {
						txt = "1 lloc de treball cont&eacute; el criteri '"+$("input[@name=llocTreballTexte]").val()+"'"
					} else {
						txt = result.length+" llocs de treball contenen el criteri '"+$("input[@name=llocTreballTexte]").val()+"'"
					}
					html = "<p class='important'>"+txt+"</p>";
					html+= "<table class='resultats'>";
					for (var i=0;i<result.length;i++) {
						values = result[i];
						var trClass = (i%2==0) ? 'parell' : 'imparell';
						html+="\
						<tr class='"+trClass+"'>\
							<td class='checkbox'><input type='radio' name='llocTreball' id='llocTreball"+values[0]+"' value='"+values[0]+"' class='checkbox' /></td>\
							<td class='llocTreballNom'><label for='llocTreball"+values[0]+"'>"+values[1]+"</label></td>\
						</tr>";
					}
					html+= "</table>";
					html+= "\
				<button id='seleccionarLloc'>Seleccionar</button>&nbsp;&nbsp;&nbsp;\
				<button id='altra_recerca'>Nova recerca</button>";
					$.llistaLlocsTreball = result;
					$("p#ajudaDirecta").hide();
					$("#buscarLloc").hide();
				} else {
					html+= "<p>No s'ha trobat cap lloc de treball</p>";
				}
				$("#llistaLlocsTreball").append(html);
			}
		});
	},
	
	seleccionarLloc: function() {
		if ($("input[@name=llocTreball]:checked").size() == 0) {
			alert (labels["a_Cal seleccionar com a minim un lloc de treball"]);
			return false;
		}
		
		var val = $("input[@name=llocTreball]:checked").val();
		var found = false;
		$(".llocTreballSeleccionat").each(function() {
			if ($(this).val() == val) {
				found = true;
			}
		});
		
		if (!found) {
			for (var i=0;i<$.llistaLlocsTreball.length;i++) {
				values = $.llistaLlocsTreball[i];
				if (values[0] == val) {
					// es un lloc de treball d'un sector especific?
					if (values[2]) {
						$.addLlocTreball(values);
					} else {
						$.llocTreball = values;
						$.openOverlay();
					}
					break;
				}
			}
		}
	},
	
	openOverlay: function() {
		var arrayPageSize = tools.getPageSize();
		$("#overlay").css('height', arrayPageSize[1]+"px");
		var arrayPageScroll = tools.getPageScroll();
		var t = arrayPageScroll[1] + (arrayPageSize[3] / 15);
		$("#sectorSelector").css('top', t+"px");
		var w = $("#sectorSelector").css('width').split('px');
		var l = (arrayPageSize[2] - w[0]) / 2;
		$("#sectorSelector").css('left', l+"px");

		if ($.browser.msie && $.browser.version == '6.0') {
			// workaround per ie6: el select passen per sobre d'una capa amb un z-index superior
			$("select").css('visibility', 'hidden');
		}
		$("#overlay").show();
		$("#sectorSelector").show();
		$("#sectorSelector select").css('visibility', 'visible');
	},
	
	closeOverlay: function() {
		if ($.browser.msie && $.browser.version == '6.0') {
			// workaround per ie6: el select passen per sobre d'una capa amb un z-index superior
			$("select").css('visibility', 'visible');
		}

		$("#overlay").hide();
		$("#sectorSelector").hide();
	},
	
	inicialitzar: function() {
		// moure el overlay (per no tenir de modificar header.php i footer.php)
		$("body").append($("#overlay"));
		
		$("#sector_div").decorate({
			lblTitle  : "Sector",
			lblCurrentElement : decorate.lblCurrentElement,
			lblLeftAll: decorate.lblLeftAll,
			width: "250px",
			sortRemove: function() {
				var arrList = new Array($.sectors);
				globals.sortRemove(arrList, $.getSectors, $("select[@name=sectors_src]"), $('#sectors'));
				$.sectors = arrList[0];
			},
			navByArrows: decorate.navByArrows,
			rtSearch: decorate.rtSearch,
			navByButtons: decorate.navByButtons,
			lblInstruccions: decorate.lblInstruccions
		});
	},
	
	validarSector: function() {
		$.closeOverlay();
		var sectors = new Array();
		$("#sectors option").each(function(i) {
			sectors[i] = new Array($(this).val(), $(this).text());
		});
		$.addLlocTreball($.llocTreball, sectors);
		$("#sectors").empty();	
	},
	
	addLlocTreball: function(values, sectors) {
		if (!$("#llistaResultats table.resultats").is(":visible")) {
			var html = "\
			<table class='resultats'>\
				<thead>\
					<tr>\
						<td class='llocTreballNom'>Lloc de treball seleccionat</td>\
						<td class='sector'>Sector</td>\
					</tr>\
				</thead>\
				<tbody>\
				</tbody>\
			</table>";
			$("#llistaResultats").append(html);
			$("#submitResultats").show();
		}
		var value = values[0];
		var str = "";
		if (sectors != null) {
			value+= "-";
			for (var i=0;i<sectors.length;i++) {
				value+= sectors[i][0] + ",";
				str+= sectors[i][1] + "<br />";
			}
			value = value.substr(0, value.length - 1);
			str = str.substr(0, str.length - 6);
		}
		var trClass = ($.llistaResultatColor) ? (($("#llistaResultats table.resultats tbody tr").size()%2==0) ? 'parell' : 'imparell') : '';
		var html = "\
		<tr class='"+trClass+"'>\
			<td><input type='hidden' name='llocsTreball[]' class='llocTreballSeleccionat' value='"+value+"'>"+values[1]+"</td>\
			<td>"+str+"</td>\
		</tr>";
		$("#llistaResultats table.resultats tbody").append(html);
		$("#llistaLlocsTreball").hide();
		$("input#llocTreballTexte").val("");
		$("input.sector").check('off');
		if (!$("#nova_recerca").is(":visible")) {
			html = "<button id='nova_recerca'>"+labels["a_Afegir altre lloc"]+"</button>";
			$("#submitResultats").append(html);
		}
	},
	
	getSectors: function() {
		return globals.ajaxGet('ajax_getAltresSectors', true);
	}

};

$(document).ready(function() {
	//if ((BrowserDetect.browser == "Explorer") && (BrowserDetect.version == 6)) {
	if ($.browser.msie && $.browser.version == '6.0') {
		// ie6 no soporta "attribute selectors". En lloc de ficar clases per aquests elements 
		// únicament per ie6, s'afegeix dinamicament una clase. Aquestes clases estan definides
		// a ie-6.css
		$("input[@type=text]").addClass("text");
		$("input[@type=checkbox]").addClass("checkbox");
		$("input[@type=radio]").addClass("radio");
		$("input[@type=submit]").addClass("submit");
	}
	
	// dispatch init event
	switch (page) {
		case "formCandidatPas1":
			formCandidatPas1();
			break;
		case "formCandidat":
			formCandidat();
			break;
		case "login":
			login();
			break;
		case "contrasenyaOblidada":
			contrasenyaOblidada();
			break;
		case "buscadorSeleccioLloc":
			buscadorSeleccioLloc();
			break;
		case "buscador":
			buscador();
			break;
		case "form_cand":
			form_cand();
			break;
		case "infoAlta":
			infoAlta();
			break;
		case "candidaturesRebudes":
			candidaturesRebudes();
			break;
		case "dadesCandidat":
			dadesCandidat();
			break;
		case "home":
			home();
			break;
	}
});

function formCandidatPas1() {
	$("form").bind("submit",function() {
		if (!$("input[@name=nom]").mandatory(labels["a_Nom"])) return false;
		if (!$("input[@name=cognom1]").mandatory(labels["a_1r Cognom"])) return false;
		if (!$("input[@name=email]").mandatory("e-mail")) return false;
		if (!$("input[@name=email]").validateEmail()) return false;
		if (!$("input.telefon_contacte").mandatory(labels["a_Telèfon de Contacte"])) return false;
		if (!$("input[@name=telefon1]").validateNumber(labels["a_Telèfon de Contacte"])) return false;
		if (!$("input[@name=telefon2]").validateNumber(labels["a_Telèfon de Contacte"])) return false;
		if (!$("input[@name=accepto]").mandatory(labels["a_Acceptar la cláusula de privacitat i de protecció de dades"])) return false;
		if ($("input[@name=email]").getCandidatIdByEmail() != "") {
			$("input[@name=email]").formError(labels["a_L'adreça d'email ja existeix"]);
			return false;
		}
	});
}

function formCandidat() {
	$.extend({
		// llista de estudis seleccionada
		estudisSeleccionats: null, 
		
		// llista de titulacions seleccionada
		titulacionsSeleccionats: null, 
		
		// dades d'estudis que s'estàn editant
		estudisEnEdicio: new Array(),
		
		// dades de referencies que s'estàn editant
		referenciesEnEdicio: new Array(),
		
		// dades de experiencies que s'estàn editant
		experienciesEnEdicio: new Array(),

		// total pàgines recerca feina actual per nom
		totalPaginesFeinaActual: null,
		
		// es fa servir pel array d'estudis
		index_estudis: $("input[@name=index_estudis]").val(),
		
		// es fa servir pel array d'experiències
		index_experiencies: $("input[@name=index_experiencies]").val(),
		
		// contador de página pel resultats de la recerca d'una feina
		pagina_llistat_feines: 0,
		
		// llista d'altres sectors. En cache per no fer crides ajax innecessaries
		altresSectors: null,
		
		// llista de sectors especifics. En cache per no fer crides ajax innecessaries
		sectorsEspecifics: null,
		
		// llista de departaments. En cache per no fer crides ajax innecessaries
		departaments: null,
		
		// nom del lloc de treball pel que s'està fent una recerca
		llocTreballBuscar: null,
		
		// nom del lloc de treball pel que s'està fent una recerca
		sectionBuscar: null,
		
		// extensions de fitxer permeses per fer un upload
		allowedExtension: new Array("doc", "rtf", "xls", "wps", "html", "htm", "pdf", "jpeg", "jpg", "gif", "bmp"),
		
		resetSelect: function (field) {
			field.empty();
			html = "<option value='' selected='selected'>["+labels["escollir"]+"]</option>";
			field.append(html);
		},
		
		getSectionFeina: function (field) {
			// determinar a quin bloc pertany la llista de feines
			if (field.parents("#feina_actual").is("#feina_actual")) {
				section = "#feina_actual";
			} else if (field.parents("#feina_anterior").is("#feina_anterior")) {
				if (field.parents('.fila').attr('id') != null) {
					section = " #"+field.parents('.fila').attr('id');
				} else {
					section = "#feina_anterior #dades_experiencies_add";
				}
			} else if (field.parents("#altres_activitats").is("#altres_activitats")) {
				section = "#altres_activitats";
			}
			
			return section;
		},
		
		mostrarLlistaFeines: function () {
			//alert ($.pagina_llistat_feines);
			
			$("#llocTreballSelector .llistat_feines .seleccionar img").show();
			// borrar contingut actual
			$("#llocTreballSelector .llistat_feines .fila").remove();
			$("#llocTreballSelector .llistat_feines").show();
			// crida ajax per recuperar dades. El id del ahref es la referencia del lloc de treball. Es farà
			// servir per carregar les dades un cop que s'hagi seleccionat.
			if ($.totalPaginesFeinaActual == null) {
				// cacheig del numero de pàgines per que quan es façi anterior o següent no façi falta fer la crida ajax
				var data = "llocTreball="+$.llocTreballBuscar;
				if ($("input[@name=idioma]").val() != "") {
						data+= "&idioma="+$("input[@name=idioma]").val();
				}
				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=ajax_getTotalPaginesLlocsTreballByNom",
					data: data,
					async: false,
					success: function(msg) {
						//alert (msg);
						var json = eval('(' + msg + ')');
						$.totalPaginesFeinaActual = json.result;
					}
				});
			}
			
			var data = "llocTreball="+escape($.llocTreballBuscar)+"&numPag="+$.pagina_llistat_feines;
			if ($("input[@name=idioma]").val() != "") {
					data+= "&idioma="+$("input[@name=idioma]").val();
			}
			$.ajax({
				type: "POST",
				url: siteRoot + "master.php?page=ajax_getLlocsTreballByNom",
				data: data,
				success: function(msg) {
					//alert (msg);
					var json = eval('(' + msg + ')');
					var result = json.result;
					var html = "";
					if (result.length != 0) {
						for (var i=0;i<result.length;i++) {
							values = result[i];
							html+= "\
										<div class='fila'>\
											<div class='lloc_treball'>"+values[1]+"</div>\
											<div class='seleccionar'><a href='' class='seleccionar_lloc_treball' id='lloc_treball"+values[0]+"'>seleccionar</a></div>\
										</div>";
						}
						if (($.pagina_llistat_feines != 0) || ($.pagina_llistat_feines != $.totalPaginesFeinaActual - 1)) {
							html+= "\
										<div class='fila'>\
											<div class='nav'>";
							if ($.pagina_llistat_feines != 0) {
								html+= "<a href='' class='anterior'>&lt; "+labels["anterior"]+"</a>";
							} else {
								html+= "&lt; "+labels["anterior"];
							}
							html+= " | ";
							if ($.pagina_llistat_feines != $.totalPaginesFeinaActual - 1) {
								html+= "<a href='' class='seguent'>"+labels["següent"]+" &gt;</a>";
							} else {
								html+= labels["següent"]+" &gt;";
							}
							html+= "\
											</div>\
										</div>";
						}
					}
					
					$("#llocTreballSelector .llistat_feines .head").after(html);
				
					// un cop recuperades les dades, s'amaga el loading
					$("#llocTreballSelector .llistat_feines .seleccionar img").hide();
				}
			});
		},
		
		getSectionFeina: function (field) {
			// determinar a quin bloc pertany la llista de feines
			if (field.parents("#feina_actual").is("#feina_actual")) {
				section = "#feina_actual";
			} else if (field.parents("#feina_anterior").is("#feina_anterior")) {
				if (field.parents('.fila').attr('id') != null) {
					section = " #"+field.parents('.fila').attr('id');
				} else {
					section = "#feina_anterior #dades_experiencies_add";
				}
			} else if (field.parents("#altres_activitats").is("#altres_activitats")) {
				section = "#altres_activitats";
			}
			
			return section;
		},

		getSectionEstudis: function (field) {
			// determinar a quin bloc pertany la llista de estudis
			if (field.parents('.fila').attr('id') != null) {
				section = " #"+field.parents('.fila').attr('id');
			} else {
				section = "#dades_estudis_add";
			}
			
			return section;
		},
		
		// visible determina si el bloc es visble i permet controlar blocs que no es veuen pel
		// cas de formularis existents amb dades obligatories sense entrar
		controlEstudis: function (section, visible) {
			if (!$(section + " select.sistema_educatiu").mandatory(labels["a_Sistema educatiu"], visible)) return false;
			
			if ($(section + " select.sistema_educatiu").val() <= 3) {
				if (!$(section + " select.s_estudis").mandatory(labels["a_Estudis"], visible)) return false;
				if (!$(section + " select.s_titulacio").mandatory(labels["a_Titulació"], visible)) return false;
			} else {
				if (!$(section + " input.estudis_texte").mandatory(labels["a_Estudis"], visible)) return false;
				if (!$(section + " input.titulacio_texte").mandatory(labels["a_Titulació"], visible)) return false;
			}
			
			if (!$(section + " select.mes_finalitzacio").mandatory(labels["a_Data finalització"], visible)) return false;
			if (!$(section + " select.any_finalitzacio").mandatory(labels["a_Data finalització"], visible)) return false;
			
			var dataFinalitzacio = new Date($(section + " select.mes_finalitzacio").val()+"/01/"+$(section + " select.any_finalitzacio").val());
			var today = new Date();
			if (!$(section + " select.mes_finalitzacio").validateDateRange(dataFinalitzacio, null, today, labels["a_Data finalització ha de ser anterior a la data actual"], visible)) return false;
			
			return true;
		},
		
		controlExperiencies: function (section, visible) {
			if (!$(section + " input.empresa").mandatory(labels["a_Empresa"], visible)) return false;

			/*
			if (visible) {
				if (!$("#feina_actual_dades").is(":visible")) {
					// solament es obligatori si no s'ha buscat algun lloc de treball
					if (!mandatory($(section + " input.buscador_lloc_treball_empresa"), "Lloc de treball")) return false;
					
					if ($(section + " .llistat_feines").is(":visible")) {
						formError($(section + " input.buscador_lloc_treball_empresa"), "Seleccionar un un lloc de treball es obligatori");
					} else {
						formError($(section + " input.buscador_lloc_treball_empresa"), "Buscar un lloc de treball es obligatori");
					}
					return false;
				}
			}
			*/
			if (!$(section + " input.sector_empresa_determinat").mandatory(labels["a_Sector de l'empresa"], visible)) return false;
			if ($(section + " input.sector_empresa_determinat:checked").val() == 0) { // altre
				if (!$(section + " select.altre_sector_empresa").mandatory(labels["a_Altre sector"], visible)) return false;
				if (!$(section + " select.departament_empresa").mandatory(labels["a_Departament"], visible)) return false;
			}
			
			if ((!($(section + " input.lloc_treball_empresa_texte").is(":disabled")) & ($(section + " input.lloc_treball_empresa_texte").val() == "")) || ($(section + " select.lloc_treball_empresa:selected").val() == "")) {
				// si el lloc de treball texte està enabled significa que no s'ha seleccionat res de la llista
				$(section + " select.lloc_treball_empresa").formError(labels["a_Lloc de treball es obligatori"]);
				return false;
			}
			$("#buscador_lloc_treball_empresa_anterior").formClearError();
			if (!$(section + " select.mes_entrada").mandatory(labels["a_Data d'entrada"], visible)) return false;
			if (!$(section + " select.any_entrada").mandatory(labels["a_Data d'entrada"], visible)) return false;
			if (!$(section + " select.mes_sortida").mandatory(labels["a_Data de sortida"], visible)) return false;
			if (!$(section + " select.any_sortida").mandatory(labels["a_Data de sortida"], visible)) return false;
			var dataEntrada = new Date($(section + " select.mes_entrada").val()+"/01/"+$(section + " select.any_entrada").val());
			var dataSortida = new Date($(section + " select.mes_sortida").val()+"/01/"+$(section + " select.any_sortida").val());
			if (!$(section + " select.mes_entrada").validateDateRange(dataEntrada, null, dataSortida, labels["a_Data entrada ha de ser anterior a la data de sortida"], visible)) return false;

			return true;
		},
		
		controlReferencies: function (section) {
			if (section == '#dades_referencies_add') {
				// solament es te que controlar al afegir. Al modificar empresa no es una dada modificable
				if (!$(section + " select.empresa_referencia").mandatory(labels["a_Empresa"])) return false;
			}
			if (!$(section + " input.persona_contacte").mandatory(labels["a_Persona de contacte"])) return false;
			if (!$(section + " select.s_carrec").mandatory(labels["a_Càrrec"])) return false;
			if (!$(section + " input.telefon_referencia").validateNumber(labels["a_Telèfon de Contacte"])) return false;
			if (!$(section + " input.email_referencia").validateEmail()) return false;
			
			return true;
		},
		
		controlAltresActivitats: function () {
			if ($("input[@name=altres_activitats]:checked").val() == 1) {
				/*
				if (!$("input[@name=sector_empresa_preferent_determinat]").parents(".row").is(":visible")) {
					// solament es obligatori si no s'ha buscat algun lloc de treball
					if (!mandatory($("input[@name=buscador_lloc_treball_empresa_preferent]"), "Lloc de treball")) return false;
					
					if ($("#altres_activitats .llistat_feines").is(":visible")) {
						formError($("input[@name=buscador_lloc_treball_empresa_preferent]"), "Seleccionar un un lloc de treball es obligatori");
					} else {
						formError($("input[@name=buscador_lloc_treball_empresa_preferent]"), "Buscar un lloc de treball es obligatori");
					}
					return false;
				}
				*/
			
				if ($("#feina_preferent_dades").is(":visible")) {
					if ($("#sector_empresa_preferent").parents(".row").is(":visible")) {
						if (!$("select[@name=sector_empresa_preferent]").mandatory(labels["a_Sector de l'empresa"])) return false;
						if (!$("select[@name=departament_empresa_preferent]").mandatory(labels["a_Departament"])) return false;
					} else { // determinat es visible
						if (!$("input[@name=sector_empresa_preferent_determinat]").mandatory(labels["a_Sector de l'empresa"])) return false;
						if ($("input[@name=sector_empresa_preferent_determinat]:checked").val() == 0) { // altre sector seleccionat
							if (!$("select[@name=altre_sector_empresa_preferent]").mandatory(labels["a_Altre sector"])) return false;
							if (!$("select[@name=departament_empresa_preferent]").mandatory(labels["a_Departament"])) return false;
						}
					}
					/*
					//if ((!($("input[@name=lloc_treball_empresa_preferent_texte]").is(":disabled")) && ($("input[@name=lloc_treball_empresa_preferent_texte]").val() == "")) | ($("select[@name=sector_empresa_preferent]").val() == "")) {
					if ($("input[@name=lloc_treball_empresa_preferent]").val() == "") {
						// si el lloc de treball texte està enabled significa que no s'ha seleccionat res de la llista
						$("select[@name=lloc_treball_empresa_preferent]").formError(labels["a_Lloc de treball es obligatori"]);
						return false;
					}
					*/
					if (!$("select[@name=lloc_treball_empresa_preferent]").mandatory(labels["a_Lloc de treball"])) return false;
					$("#buscador_lloc_treball_empresa_preferent").formClearError();
				} else {
					$("input[@name=altres_activitats]").formError(labels["a_Altres activitats"] + labels["a_ és obligatori"]);
					return false;
				}
			}
			
			return true;
		},
		
		loadProvincia: function (paisid) {
			var data = "paisid="+paisid;
			$.ajax({
				url: siteRoot + "master.php?page=ajax_getProvincies",
				type: "POST",
				data: data,
				success: function(msg) {
					//alert (msg);
					$("select[@name=parroquia]").empty();
					var json = eval('(' + msg + ')');
					var result = json.result;
					var html = "<option value=''>["+labels["escollir"]+"]</option>";
					for (var i=0;i<result.length;i++) {
						values = result[i];
						html+= "<option value='"+values[0]+"'>"+values[1]+"</option>";
					}
					$("select[@name=parroquia]").append(html);
					$("select[@name=parroquia] option:first").attr("selected", "selected");
					// NOTA: no es fa un reset per problemes de layout amb ie6
					// quan es carregui ja es resetejarà
					//$.resetSelect($("select[@name=localitat]"));
				}
			});
		},

		sistemaEducatiuChanged: function () {
			var section = $.getSectionEstudis($(this));
			if ($(this).val() != '') {
				if ($(this).val() != 4) {
					var name = $(this).attr("name");
					$(section + " .sistemaEducatiuAltreSeleccionat").hide();
					$(section + " .sistemaEducatiuDeterminatSeleccionat").show();
			
					// crida ajax per carregar el select de estudis academics
					var data = "sistemaEducatiuid="+$(this).val();
					if ($("input[@name=idioma]").val() != "") {
						data+= "&idioma="+$("input[@name=idioma]").val();
					}
					$.ajax({
						type: "POST",
						url: siteRoot + "master.php?page=ajax_getEstudisAcademics",
						data: data,
						success: function(msg) {
							//alert (msg);
							$(section + " select.s_estudis").empty();
							var json = eval('(' + msg + ')');
							var result = json.result;
							var html = "<option value=''>["+labels["escollir"]+"]</option>";
							for (var i=0;i<result.length;i++) {
								values = result[i];
								html+= "<option value='"+values[0]+"'>"+values[1]+"</option>";
							}
							$(section + " select.s_estudis").append(html);
							$(section + " select.s_estudis").children("option:first").attr("selected", "selected");
							// solament guardar llista si s'està afegint un element
							if (name == "sistema_educatiu_add") {
								$.estudisSeleccionats = html;
							}
							// reset llista titulacions
							$.resetSelect($(section + " select.s_titulacio"));
						}
					});
				} else {
					$(section + " .sistemaEducatiuAltreSeleccionat").show();
					$(section + " .sistemaEducatiuDeterminatSeleccionat").hide();
				}
			} else {
				// reset llista estudis
				$.resetSelect($(section + " select.s_estudis"));
				// reset llista titulacions
				$.resetSelect($(section + " select.s_titulacio"));
			}
		},
		
		estudiAcademicChanged: function () {
			var section = $.getSectionEstudis($(this));
			if ($(this).val() != '') {
				var name = $(this).attr("name");
				// crida ajax per carregar el select de titulacions
				var data = "sistemaEducatiuid="+$(section + " select.sistema_educatiu").val()+"&estudiAcademicid="+$(this).val();
				if ($("input[@name=idioma]").val() != "") {
					data+= "&idioma="+$("input[@name=idioma]").val();
				}
				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=ajax_getTitulacions",
					data: data,
					success: function(msg) {
						//alert (msg);
						$(section + " select.s_titulacio").empty();
						var json = eval('(' + msg + ')');
						var result = json.result;
						var html = "<option value=''>["+labels["escollir"]+"]</option>";
						for (var i=0;i<result.length;i++) {
							values = result[i];
							html+= "<option value='"+values[0]+"'>"+values[1]+"</option>";
						}
						if (name == "estudis_add") {
							$.titulacionsSeleccionats = html;
						}
						$(section + " select.s_titulacio").append(html);
						$(section + " select.s_titulacio").children("option:first").attr("selected", "selected");
					}
				});
			} else {
				$.resetSelect($(section + " select.s_titulacio"));
			}
		},
		
		paisResidenciaChanged: function(load) {
			var paisid = $("select[@name=pais_residencia]").val();
			if (paisid == 1 || paisid == 2) {
				if (paisid == 1) {
					$("label[@for=parroquia]").html(labels["Parròquia"]+" (*)");
					$("label[@for=localitat]").html(labels["Localitat"]+" (*)");
					$("#div_esp_localitat_texte").hide();
				} else {
					$("label[@for=parroquia]").html(labels["Província"]+" (*)");
					$("label[@for=localitat]").html(labels["Municipi"]+" (*)");
					$("#div_esp_localitat_texte").show();
				}
				
				$("select[@name=parroquia]").show();
				$("input[@name=parroquia_texte]").hide();
				$("select[@name=localitat]").show();
				$("input[@name=localitat_texte]").hide();
				$("select[@name=parroquia]").removeClass("mandatory");
				// crida ajax per carregar el select de provincies
				if (load) {
					$.loadProvincia(paisid);
					$.resetSelect($("select[@name=localitat]"))
				}
			} else if (paisid == 3) {
				$("label[@for=parroquia]").html(labels["Département"]+" (*)");
				$("label[@for=localitat]").html(labels["Commune"]);
				$("select[@name=parroquia]").show();
				$("input[@name=parroquia_texte]").hide();
				$("select[@name=localitat]").hide();
				$("input[@name=localitat_texte]").show();
				$("select[@name=parroquia]").removeClass("mandatory");
				// crida ajax per carregar el select de provincies
				if (load) {
					$.loadProvincia(paisid);
					$.resetSelect($("select[@name=localitat]"))
				}
				$("#div_esp_localitat_texte").hide();
			} else if (paisid == "") {
				$("label[@for=parroquia]").html(labels["Parròquia"]+" (*)");
				$("label[@for=localitat]").html(labels["Localitat"]+" (*)");
				$("select[@name=parroquia]").show();
				$("input[@name=parroquia_texte]").hide();
				$("select[@name=localitat]").show();
				$("input[@name=localitat_texte]").hide();
				$.resetSelect($("select[@name=parroquia]"));
				$.resetSelect($("select[@name=localitat]"));
				$("#div_esp_localitat_texte").hide();
			} else {
				$("label[@for=parroquia]").html(labels["Província"]);
				$("label[@for=localitat]").html(labels["Localitat"]);
				$("select[@name=parroquia]").hide();
				$("input[@name=parroquia_texte]").show();
				$("select[@name=localitat]").hide();
				$("input[@name=localitat_texte]").show();
				// reset
				$("select[@name=parroquia] option:first").attr("selected", "selected");
				$("select[@name=localitat] option:first").attr("selected", "selected");
				$("#div_esp_localitat_texte").hide();
			}
		},
		
		autoritzacioTreballChanged: function() {
			if ($("select[@name=autoritzacio_treball]").val() == 3) {
				$("select[@name=mes_caducitat]").attr("disabled", "");
				$("select[@name=any_caducitat]").attr("disabled", "");
				
				$("label[@for=mes_caducitat]").html(labels["Data caducitat"]+" (*)");
			} else {
				$("select[@name=mes_caducitat]").attr("disabled", "disabled");
				$("select[@name=any_caducitat]").attr("disabled", "disabled");
				
				$("label[@for=mes_caducitat]").html(labels["Data caducitat"]);
			}		
		},
		
		loadLlocsTreball: function(sectorid, especific, section, areaid, classname, callback) {
			if ((areaid == null & sectorid != '') | (areaid != null & areaid != '')) {
				var data;
				var cmd;
				if (sectorid != 0) {
					data = "sectorid="+sectorid+"&especific="+especific;
					cmd = "ajax_getLlocsTreballBySector";
				} else {
					data = "areaid="+areaid;
					cmd = "ajax_getLlocsTreballByAreaFuncional";
				}
				if ($("input[@name=idioma]").val() != "") {
					data+= "&idioma="+$("input[@name=idioma]").val();
				}
				
				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=" + cmd,
					data: data,
					success: function(msg) {
						//alert (msg);
						$(section + " select."+classname).empty();
						var json = eval('(' + msg + ')');
						var result = json.result;
						var html = "<option value=''>["+labels["escollir"]+"]</option>";
						for (var i=0;i<result.length;i++) {
							values = result[i];
							html+= "<option value='"+values[0]+"'>"+values[1]+"</option>";
						}
						$(section + " select."+classname).append(html);
						$(section + " select."+classname+" option:first").attr("selected", "selected");
						if (callback != null) {
							callback.apply();
						}
					}
				});
			} else {
				$.resetSelect($(section + " select."+classname));
			}
		},
		
		sectorChanged: function(section, callback) {
			var sectorid = $(section + " input.sector_empresa_determinat:checked").val();
			var areaid = null;
			if (sectorid == 0) { // altres sectors
				// :first funciona tant en el cas de llista com no
				$(section + " select.departament_empresa").parents(".row:first").show();
				$(section + " select.altre_sector_empresa").attr("disabled", "");
				sectorid = '';
				areaid = $(section + " select.departament_empresa").val();
			} else {
				$(section + " select.departament_empresa").parents(".row:first").hide();
				$(section + " select.altre_sector_empresa").attr("disabled", "disabled");
			}
			$(section + " input.lloc_treball_empresa_texte").attr("disabled", "");
			$.loadLlocsTreball(sectorid, 1, section, areaid, "lloc_treball_empresa", callback);
		},
		
		llocTreballDblClicked: function(field) {
			var lloc;
			var section = $.sectionBuscar; // si no quan s'executa el callback $.sectionBuscar val null
			if (field.is(".lloc_treball_empresa_per_sector_size")) {
				var lloesp = field.val();
				if (lloesp != '') {
					var sector = $("select[@name=sector_empresa_actual_size] option:selected").val();
					$(section + " input.sector_empresa_determinat[@value="+sector+"]").attr("checked","checked");
					lloc = lloesp;
				}
			} else {
				var llotre = field.val();
				if (llotre != "") {
					var area = $("select[@name=departament_empresa_actual_size] option:selected").val();
					$(section + " select.altre_sector_empresa option:first").attr("selected", "selected");
					$(section + " input.sector_empresa_determinat[@value=0]").attr("checked","checked");
					$(section + " select.departament_empresa option[@value="+area+"]").attr("selected", "selected");
					lloc = llotre;
				}
			}
			if (lloc != "") {
				$.sectorChanged(section, function() {
					if ($.browser.msie && $.browser.version == '6.0') { // ie6 workaround per evitar el error "Could not set the selected property"
						$(section + " select.lloc_treball_empresa option").each(function(i) {
							if ($(this).val() == lloc) {
								this.setAttribute('selected', true);
							}
						});
					} else {
						$(section + " select.lloc_treball_empresa option[@value="+lloc+"]").attr("selected", "selected");
					}					
					$(section + " input.lloc_treball_empresa_texte").attr("disabled", "disabled");
				});
				$.closeOverlay();
				$(section + " .feina_dades").show();
				$(".buscador_lloc_treball_empresa").val('');
				
				// amagar el buscador
				$(section + " .buscador").hide();
				// mostrar pregunta
				$(section + " div.pregunta_buscador").show();
				$(section + " input.pregunta_buscador").check('off');
			}
		},
		
		loadAltresSectors: function (field) {
			if ($.altresSectors == null) {
				var data = '';
				if ($("input[@name=idioma]").val() != "") {
					data = "idioma="+$("input[@name=idioma]").val();
				}
				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=ajax_getAltresSectors",
					data: data,
					async: false,
					success: function(msg) {
						//alert (msg);
						var json = eval('(' + msg + ')');
						$.altresSectors = json.result;
					}
				});
			}
			field.empty();
			var html = "<option value=''>["+labels["escollir"]+"]</option>";
			for (var i=0;i<$.altresSectors.length;i++) {
				values = $.altresSectors[i];
				html+= "<option value='"+values[0]+"'>"+values[1]+"</option>";
			}
			field.append(html);
			field.children("option:first").attr("selected", "selected");
		},
		
		/*
		loadSectorsEspecifics: function (field) {
			if ($.sectorsEspecifics == null) {
				var data = '';
				if ($("input[@name=idioma]").val() != "") {
					data = "idioma="+$("input[@name=idioma]").val();
				}
				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=ajax_getSectorsEspecifics",
					data: data,
					async: false,
					success: function(msg) {
						//alert (msg);
						var json = eval('(' + msg + ')');
						$.sectorsEspecifics = json.result;
					}
				});
			}
			field.empty();
			var html = "<option value=''>["+labels["escollir"]+"]</option>";
			for (var i=0;i<$.sectorsEspecifics.length;i++) {
				values = $.sectorsEspecifics[i];
				html+= "<option value='"+values[0]+"'>"+values[1]+"</option>";
			}
			field.append(html);
			field.children("option:first").attr("selected", "selected");
		},		
		
		loadDepartaments: function (field) {
			if ($.departaments == null) {
				var data = '';
				if ($("input[@name=idioma]").val() != "") {
					data = "idioma="+$("input[@name=idioma]").val();
				}
				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=ajax_getAreesFuncionals",
					data: data,
					async: false,
					success: function(msg) {
						//alert (msg);
						var json = eval('(' + msg + ')');
						$.departaments = json.result;
					}
				});
			}
			field.empty();
			var html = "<option value=''>["+labels["escollir"]+"]</option>";
			for (var i=0;i<$.departaments.length;i++) {
				values = $.departaments[i];
				html+= "<option value='"+values[0]+"'>"+values[1]+"</option>";
			}
			field.append(html);
			field.children("option:first").attr("selected", "selected");
		},
		*/
		
		departamentChanged: function(section) {
			var sectorid = $(section + " input.sector_empresa_determinat:checked").val();
			var areaid = $(section + " select.departament_empresa").val();
			$.loadLlocsTreball(sectorid, null, section, areaid, "lloc_treball_empresa");
		},
		
		closeOverlay: function() {
			//if ((BrowserDetect.browser == "Explorer") && (BrowserDetect.version == 6)) { // problemes de layout amb ie6
			if ($.browser.msie && $.browser.version == '6.0') {
				// workaround per ie6: el select passen per sobre d'una capa amb un z-index superior
				$("select").css('visibility', 'visible');
			}
			$("#overlay").hide();
			$("#llocTreballSelector").hide();
			$.sectionBuscar = null;
		},
		
		openOverlay: function() {
			//if ((BrowserDetect.browser == "Explorer") && (BrowserDetect.version == 6)) { // problemes de layout amb ie6
			if ($.browser.msie && $.browser.version == '6.0') {
				// workaround per ie6: el select passen per sobre d'una capa amb un z-index superior
				$("select").css('visibility', 'hidden');
				$("select[@name=sector_empresa_actual_size]").css('visibility', 'visible');
				$("select[@name=departament_empresa_actual_size]").css('visibility', 'visible');
				$("select[@name=lloc_treball_actual_per_sector_size]").css('visibility', 'visible');
				$("select[@name=lloc_treball_actual_per_departament_size]").css('visibility', 'visible');
			}
			var arrayPageSize = tools.getPageSize();
			$("#overlay").css('height', arrayPageSize[1]+"px");
			var arrayPageScroll = tools.getPageScroll();
			var t = arrayPageScroll[1] + (arrayPageSize[3] / 15);
			$("#llocTreballSelector").css('top', t+"px");
			var w = $("#llocTreballSelector").css('width').split('px');
			var l = (arrayPageSize[2] - w[0]) / 2;
			$("#llocTreballSelector").css('left', l+"px");
			
			$("#overlay").show();
			$("#llocTreballSelector").show();
		},

		init: function() {
			$.paisResidenciaChanged(false);
			$.autoritzacioTreballChanged();
			if ($.index_estudis != 0) {
				for (i=0;i<$.index_estudis;i++) {
					if (($("#filaEstudis"+i).find("select.sistema_educatiu").children("option:selected").val()) > 3) {
						$("#filaEstudis"+i+" .sistemaEducatiuAltreSeleccionat").show();
						$("#filaEstudis"+i+" .sistemaEducatiuDeterminatSeleccionat").hide();
					} else {
						$("#filaEstudis"+i+" .sistemaEducatiuAltreSeleccionat").hide();
						$("#filaEstudis"+i+" .sistemaEducatiuDeterminatSeleccionat").show();
					}
				}
				$("#mes_estudis").show();
				$("#dades_estudis_add").hide();
			} else {
				$("#mes_estudis").hide();
				$("#dades_estudis_add").show();
			}
			
			if($("input[@name=estudis_acabats]:checked").val() == 1) {
				$("#dades_estudis").show();
			}
			
			if ($("input[@name=treball_actual]:checked").val() != null) {
				// mostrar pregunta feina anterior
				$("#pregunta_feina_anterior").show();

				if($("input[@name=treball_actual]:checked").val() == 1) {
					$("#feina_actual").show();	
					$("#feina_actual_dades").show();

					var sectorid = $("input[@name=sector_empresa_actual_determinat]:checked").val();
					if (sectorid == 0) { // altre sector seleccionat
						$("select[@name=altre_sector_empresa_actual]").attr("disabled", "");
						$("select[@name=departament_empresa_actual]").parents(".row").show();
					} else {
						$("select[@name=altre_sector_empresa_actual]").attr("disabled", "disabled");
						$("select[@name=departament_empresa_actual]").parents(".row").hide();
					}
					
					// amagar el buscador
					$("#feina_actual .buscador").hide();
					// mostrar pregunta
					$("#feina_actual div.pregunta_buscador").show();
					$("#feina_actual input.pregunta_buscador").check('off');
				}
			}
			
			if($("input[@name=treball_anterior]:checked").val() == 1) {
				$("#feina_anterior").show();
			}
			
			if($("input[@name=altres_activitats]:checked").val() == 1) {
				$("#altres_activitats").show();	
				$("#feina_preferent_dades").show();
				
				var sectorid = $("input[@name=sector_empresa_preferent_determinat]:checked").val();
				if (sectorid == 0) { // altre sector seleccionat
					$("select[@name=altre_sector_empresa_preferent]").attr("disabled", "");
					$("select[@name=departament_empresa_preferent]").parents(".row").show();
				} else {
					$("select[@name=altre_sector_empresa_preferent]").attr("disabled", "disabled");
					$("select[@name=departament_empresa_preferent]").parents(".row").hide();
				}
				
				// amagar el buscador
				$("#altres_activitats .buscador").hide();
				// mostrar pregunta
				$("#altres_activitats div.pregunta_buscador").show();
				$("#altres_activitats input.pregunta_buscador").check('off');
			}
			
			if ($.index_experiencies != 0) {
				for (var i=0;i<$.index_experiencies;i++) {
					var sectorid = $("#filaExperiencies"+i+" input.sector_empresa_determinat:checked").val();
					if (sectorid == 0) { // altres sectors
						$("#filaExperiencies"+i+" select.departament_empresa").parents(".row:first").show();
						$("#filaExperiencies"+i+" select.altre_sector_empresa").attr("disabled", "");
					} else {
						$("#filaExperiencies"+i+" select.departament_empresa").parents(".row:first").hide();
						$("#filaExperiencies"+i+" select.altre_sector_empresa").attr("disabled", "disabled");
					}
					
					// amagar el buscador
					$("#filaExperiencies"+i+" .buscador").hide();
					// mostrar pregunta
					$("#filaExperiencies"+i+" div.pregunta_buscador").show();
					$("#filaExperiencies"+i+" input.pregunta_buscador").check('off');
				}
				$("#mes_experiencies").show();
				$("#dades_experiencies_add").hide();
				
				// mostrar la pregunta de referencies 
				$("#pregunta_referencies_professionals").show();
			} else {
				$("#mes_experiencies").hide();
				$("#dades_experiencies_add").show();
			}
			
			$("select[@name=altre_sector_empresa_anterior_add]").attr("disabled", "disabled");
			$("select[@name=departament_empresa_anterior_add]").parents(".row").hide();
			
			// moure el overlay (per no tenir de modificar header.php i footer.php)
			$("body").append($("#overlay"));
			
			if ($("input[@name=index_referencies]").val() != 0) {
				$("input[@name=referencies][@value=1]").attr("checked","checked");
				$("#referencies_professionals").show();
				
				if ($.index_experiencies > $("input[@name=index_referencies]").val()) {
					// mostrar la pregunta de afegir referencies en el cas que se'n pugui afegir
					$("#mes_referencies").show();
				}
			}
		}
	});
	
	$.init();
	
	// event canvi pais de residència
	$("select[@name=pais_residencia]").bind('change',function() {
		$.paisResidenciaChanged(true);
	});
	
	// event canvi provincia
	$("select[@name=parroquia]").bind('change',function() {
		var paisid = $("select[@name=pais_residencia]").val();
		if (paisid == 1 || paisid == 2) {
		//if ($("select[@name=pais_residencia]").val() == 1) {
			if ($(this).val() != "") {
				// crida ajax per carregar el select de localitats
				//var data = "parroquiaid="+$(this).val()+"&paisid="+$("select[@name=pais_residencia]").val();
				var data = "parroquiaid="+$(this).val();
				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=ajax_getLocalitats",
					data: data,
					success: function(msg) {
						//alert (msg);
						var localitat = $("select[@name=localitat]");
						localitat.empty();
						var json = eval('(' + msg + ')');
						var result = json.result;
						var html = "<option value=''>["+labels["escollir"]+"]</option>";
						for (var i=0;i<result.length;i++) {
							values = result[i];
							html+= "<option value='"+values[0]+"'>"+values[1]+"</option>";
						}
						localitat.append(html);
						localitat.children("option:first").attr("selected", "selected");
					}
				});
			} else {
				$.resetSelect($("select[@name=localitat]"));
			}
		}
	});
	
	// event canvi autorització treball
	$("select[@name=autoritzacio_treball]").bind('change',function() {
		$.autoritzacioTreballChanged();
	});
	
	// event canvi estudis acabats
	$("input[@name=estudis_acabats]").bind("click",function() {
		if($("input[@name=estudis_acabats]:checked").val() == 1) {
			$("#dades_estudis").show();
		} else {
			$("#dades_estudis").hide();
		}
	});
	
	// event canvi sistema educatiu
	$("select.sistema_educatiu").bind('change', $.sistemaEducatiuChanged);
	
	// event canvi estudis
	$("select.s_estudis").bind('change', $.estudiAcademicChanged);
	
	// event canvi feina actual
	$("input[@name=treball_actual]").bind("click",function() {
		if($("input[@name=treball_actual]:checked").val() == 1) {
			$("#feina_actual").show();
			//$("#referencies_professionals").show();
		} else {
			$("#feina_actual").hide();
			if ($("input[@name=treball_anterior]:checked").val() != 1) {
				// si no está seleccionat treball anterior, s'amaga
				//$("#referencies_professionals").hide();
			}
		}
		// mostrar pregunta feina anterior
		$("#pregunta_feina_anterior").show();
	});
	
	// event click buscar lloc de treball
	$("a.buscar_lloc_treball").livequery("click",function() {
		if ($.sectionBuscar == null) {
			var section = $.getSectionFeina($(this));
			if (!$(section + " input.buscador_lloc_treball_empresa").mandatory(labels["a_Lloc de treball"])) return false;
	
			$.openOverlay();
			$("#llocTreballSelector .seleccionar_buscar").hide();
			$("#llocTreballSelector .per_sector").hide();
			$("#llocTreballSelector .per_departament").hide();
			$.sectionBuscar = section;
			// cal codificar el string per que es passe per url i pot tenir accents
			$.llocTreballBuscar = escape($(section + " input.buscador_lloc_treball_empresa").val());
		} else {
			if (!$("#llocTreballSelector input.buscador_lloc_treball_empresa").mandatory(labels["a_Lloc de treball"])) return false;
			
			// cal codificar el string per que es passe per url i pot tenir accents
			$.llocTreballBuscar = escape($("#llocTreballSelector input.buscador_lloc_treball_empresa").val());
		}

		$.pagina_llistat_feines = 0;
		$.totalPaginesFeinaActual = null;
		
		$.mostrarLlistaFeines();

		return false;
	});
	
	// event click afegir més estudis
	$("#afegir_estudi").bind("click",function() {
		if (!$.controlEstudis("#dades_estudis_add", true)) return false;
		$("#llistat_estudis").removeClass("mandatory");
		
		// carregar dades amb dades del estudi afegit
		var pais_estudi = '';
		if ($("select[@name=pais_estudi_add] option:selected").val() != '') {
			pais_estudi = $("select[@name=pais_estudi_add] option:selected").text()
		}

		if ($("select[@name=sistema_educatiu_add] option:selected").val() == 4) { // altre
			estudi = $("input[@name=estudis_texte_add]").val();
			titulacio = $("input[@name=titulacio_texte_add]").val();
		} else {
			estudi = $("select[@name=estudis_add] option:selected").text();
			titulacio = $("select[@name=titulacio_add] option:selected").text();
		}
		
		var html = "\
						<div class='fila' id='filaEstudis"+$.index_estudis+"'>\
							<div class='sistema'>"+$("select[@name=sistema_educatiu_add] option:selected").text()+"</div>\
							<div class='estudis'>"+estudi+"</div>\
							<div class='titulacio'>"+titulacio+"</div>\
							<div class='data'>"+$("select[@name=mes_finalitzacio_add] option:selected").text()+"/"+$("select[@name=any_finalitzacio_add] option:selected").text()+"</div>\
							<div class='editar'><a href='' class='editar'><img src='imatges/page_edit.png' alt='"+labels["Modificar"]+"' title='"+labels["Modificar"]+"' /></a></div>\
							<div class='eliminar'><a href='' class='eliminar'><img src='imatges/page_delete.png' alt='"+labels["Eliminar"]+"' title='"+labels["Eliminar"]+"' /></a></div>\
							<fieldset class='editar_estudis'>\
								<div class='row'>\
									<div class='column1'><label for='sistema_educatiu"+$.index_estudis+"'>"+labels["a_Sistema educatiu"]+" (*)</label></div>\
									<div class='column2'>\
										<select name='sistema_educatiu["+$.index_estudis+"]' id='sistema_educatiu"+$.index_estudis+"' class='sistema_educatiu'>\
										</select>\
									</div>\
								</div>\
								<div class='row sistemaEducatiuDeterminatSeleccionat'>\
									<div class='column1'><label for='estudis"+$.index_estudis+"'>"+labels["a_Estudis"]+" (*)</label></div>\
									<div class='column2'>\
										<select name='estudis["+$.index_estudis+"]' id='estudis"+$.index_estudis+"' class='s_estudis'>\
										</select>\
									</div>\
								</div>\
								<div class='row sistemaEducatiuAltreSeleccionat'>\
									<div class='column1'><label for='estudis_texte"+$.index_estudis+"'>"+labels["a_Estudis"]+" (*)</label></div>\
									<div class='column2'><input name='estudis_texte["+$.index_estudis+"]' type='text' id='estudis_texte"+$.index_estudis+"' size='30' maxlength='40' class='estudis_texte' /></div>\
								</div>\
								<div class='row sistemaEducatiuDeterminatSeleccionat'>\
									<div class='column1'><label for='titulacio"+$.index_estudis+"'>"+labels["Titulació"]+" (*)</label></div>\
									<div class='column2'>\
										<select name='titulacio["+$.index_estudis+"]' id='titulacio"+$.index_estudis+"' class='s_titulacio'>\
										</select>\
									</div>\
								</div>\
								<div class='row sistemaEducatiuAltreSeleccionat'>\
									<div class='column1'><label for='titulacio_texte"+$.index_estudis+"'>"+labels["Titulació"]+" (*)</label></div>\
									<div class='column2'><input name='titulacio_texte["+$.index_estudis+"]' type='text' id='titulacio_texte"+$.index_estudis+"' size='30' maxlength='40' class='titulacio_texte' /></div>\
								</div>\
								<div class='row'>\
									<div class='column1'><label for='especialitat"+$.index_estudis+"'>"+labels["Especialitat"]+"</label></div>\
									<div class='column2'><input name='especialitat["+$.index_estudis+"]' type='text' id='especialitat"+$.index_estudis+"' size='30' maxlength='40' class='i_especialitat' /></div>\
								</div>\
								<div class='row'>\
									<div class='column1'><label for='mes_finalitzacio"+$.index_estudis+"'>"+labels["Data finalització"]+" (*)</label></div>\
									<div class='column2'>\
										<select name='mes_finalitzacio["+$.index_estudis+"]' id='mes_finalitzacio"+$.index_estudis+"' class='mes_finalitzacio'>\
										</select>\
										<select name='any_finalitzacio["+$.index_estudis+"]' id='any_finalitzacio"+$.index_estudis+"' class='any_finalitzacio'>\
										</select>\
									</div>\
								</div>\
								<div class='row'>\
									<div class='column1'><label for='pais_estudi"+$.index_estudis+"'>"+labels["País d'estudi"]+"</label></div>\
									<div class='column2'>\
										<select name='pais_estudi["+$.index_estudis+"]' id='pais_estudi"+$.index_estudis+"' class='s_pais_estudi' >\
										</select>\
									</div>\
								</div>\
								<div class='row'>\
									<div class='column1'><label for='centre_docent"+$.index_estudis+"'>"+labels["Centre docent"]+"</label></div>\
									<div class='column2'>\<input name='centre_docent["+$.index_estudis+"]' type='text' id='centre_docent"+$.index_estudis+"' size='30' maxlength='40' class='i_centre_docent' /></div>\
								</div>\
								<div class='row'>\
									<div class='column1'>&nbsp;</div>\
									<a href='' class='acceptar'>"+labels["Acceptar"]+"</a>&nbsp;<a href='' class='cancelar'>"+labels["Cancel·lar"]+"</a>\
								</div>\
							</fieldset>\
						</div>";
						
		$("#llistat_estudis").append(html);
		
		// afegir llista al select sistema educatiu
		$("#filaEstudis"+$.index_estudis+" select[@name^=sistema_educatiu]").append($("select[@name=sistema_educatiu_add] option").clone());
		// seleccionar element
		var sistemaEducatiuValue = $("select[@name=sistema_educatiu_add]").val();
		$("#filaEstudis"+$.index_estudis+" select[@name^=sistema_educatiu] option[@value="+sistemaEducatiuValue+"]").attr("selected", "selected");
		// event canvi
		$("#filaEstudis"+$.index_estudis+" select[@name^=sistema_educatiu]").bind('change', $.sistemaEducatiuChanged);

		if ($("select[@name=sistema_educatiu_add] option:selected").val() == 4) { // altre
			$("#filaEstudis"+$.index_estudis+" .sistemaEducatiuAltreSeleccionat").show();
			$("#filaEstudis"+$.index_estudis+" .sistemaEducatiuDeterminatSeleccionat").hide();			
			
			$("#filaEstudis"+$.index_estudis+" input[@name^=estudis_texte]").val($("input[@name=estudis_texte_add]").val());
			$("#filaEstudis"+$.index_estudis+" input[@name^=titulacio_texte]").val($("input[@name=titulacio_texte_add]").val());
		} else {
			// afegir llista al select estudis
			$("#filaEstudis"+$.index_estudis+" select[@name^=estudis]").append($.estudisSeleccionats);
			// seleccionar element
			var estudiValue = $("select[@name=estudis_add]").val();
			$("#filaEstudis"+$.index_estudis+" select[@name^=estudis] option[@value="+estudiValue+"]").attr("selected", "selected");
			// event canvi
			$("#filaEstudis"+$.index_estudis+" select[@name^=estudis]").bind('change', $.estudiAcademicChanged);
			
			// afegir llista al select titulacions
			$("#filaEstudis"+$.index_estudis+" select[@name^=titulacio]").append($.titulacionsSeleccionats);
			// seleccionar element
			var titulacioValue = $("select[@name=titulacio_add]").val();
			$("#filaEstudis"+$.index_estudis+" select[@name^=titulacio] option[@value="+titulacioValue+"]").attr("selected", "selected");

			$("#filaEstudis"+$.index_estudis+" .sistemaEducatiuAltreSeleccionat").hide();
			$("#filaEstudis"+$.index_estudis+" .sistemaEducatiuDeterminatSeleccionat").show();
		}
		
		// especialitat
		$("#filaEstudis"+$.index_estudis+" input[@name^=especialitat]").val($("input[@name=especialitat_add]").val());
		
		// data
		$("#filaEstudis"+$.index_estudis+" select[@name^=mes_finalitzacio]").append($("select[@name=mes_finalitzacio_add] option").clone());
		// seleccionar element
		var mesFinalitzacioValue = $("select[@name=mes_finalitzacio_add]").val();
		$("#filaEstudis"+$.index_estudis+" select[@name^=mes_finalitzacio] option[@value="+mesFinalitzacioValue+"]").attr("selected", "selected");
		
		$("#filaEstudis"+$.index_estudis+" select[@name^=any_finalitzacio]").append($("select[@name=any_finalitzacio_add] option").clone());
		// seleccionar element
		var anyFinalitzacioValue = $("select[@name=any_finalitzacio_add]").val();
		$("#filaEstudis"+$.index_estudis+" select[@name^=any_finalitzacio] option[@value="+anyFinalitzacioValue+"]").attr("selected", "selected");

		// pais
		$("#filaEstudis"+$.index_estudis+" select[@name^=pais_estudi]").append($("select[@name=pais_estudi_add] option").clone());
		// seleccionar element
		var paisValue = $("select[@name=pais_estudi_add]").val();
		if (paisValue != '') {
			$("#filaEstudis"+$.index_estudis+" select[@name^=pais_estudi] option[@value="+paisValue+"]").attr("selected", "selected");
		} else {
			$("#filaEstudis"+$.index_estudis+" select[@name^=pais_estudi] option:first").attr("selected", "selected");
		}
		
		// centre
		$("#filaEstudis"+$.index_estudis+" input[@name^=centre_docent]").val($("input[@name=centre_docent_add]").val());

		// es resetejen els camps de dades estudis 
		$("select[@name=sistema_educatiu_add] option:first").attr("selected", "selected");
		$.resetSelect($("select[@name=estudis_add]"));
		$.resetSelect($("select[@name=titulacio_add]"));
		$("input[@name=especialitat_add]").val("");
		$("select[@name=mes_finalitzacio_add] option:first").attr("selected", "selected");
		$("select[@name=any_finalitzacio_add] option:first").attr("selected", "selected");
		$("select[@name=pais_estudi_add] option:first").attr("selected", "selected");
		$("input[@name=centre_docent_add]").val("");
		$("input[@name=estudis_texte_add]").val("");
		$("input[@name=titulacio_texte_add]").val("");
		$("#dades_estudis_add .sistemaEducatiuAltreSeleccionat").hide();
		$("#dades_estudis_add .sistemaEducatiuDeterminatSeleccionat").show();
		
		// s'amaga els camps de dades estudis 
		$("#dades_estudis_add").hide();
		
		// i es mostra la pregunta si vol afegir més estudis
		$("#mes_estudis").show();
		
		//$(this).html(labels["&Afegir_estudi"]);
		
		$.index_estudis++;
		
		return false;
	});
	
	// event canvi lloc de treball
	$("select.lloc_treball_empresa").bind('change',function() {
		var section = $.getSectionFeina($(this));
		if ($(this).val() != "") {
			// disable lloc de treball texte
			$(section + " input.lloc_treball_empresa_texte").attr("disabled", "disabled");
		} else {
			// enable lloc de treball texte
			$(section + " input.lloc_treball_empresa_texte").attr("disabled", "");
		}
	});
	
	// utilitzar livequery perque al moment de carregar la pàgina encara no están creats
	$("a.eliminar").livequery("click", function() {
		var fila = $(this).parents(".fila");

		if (fila.parents("#llistat_experiencies").is("#llistat_experiencies")) {
			// eliminar experiencia de llista de referencies (si existeix)
			var index = fila.index();
			$("#filaReferencies"+index).remove();
			// eliminar empresa de llistat referencies
			$("#empresa_referencia_add option[@value="+index+"]").remove();
		}
		
		fila.remove();
		
		return false;
	});
	
	$("a.editar").livequery("click", function() {
		var fila = $(this).parents(".fila");
		if (fila.children("fieldset.editar_estudis").is(".editar_estudis")) {
			// editar estudis
			fila.children("fieldset.editar_estudis").show();
			// guardar dades per si es cancel·la la edició
			var index = fila.index();
			$.estudisEnEdicio[index] = fila.children("fieldset.editar_estudis").clone();
		} else if (fila.children("fieldset.editar_experiencies").is(".editar_experiencies")) {
			fila.children("fieldset.editar_experiencies").show();
			// guardar dades per si es cancel·la la edició
			var index = fila.index();
			$.experienciesEnEdicio[index] = fila.children("fieldset.editar_experiencies").clone();
		} else if (fila.children("fieldset.editar_referencies").is(".editar_referencies")) {
			fila.children("fieldset.editar_referencies").show();
			// guardar dades per si es cancel·la la edició
			var index = fila.index();
			$.referenciesEnEdicio[index] = fila.children("fieldset.editar_referencies").clone();
		}
		return false;
	});
	
	$("a.acceptar").livequery("click", function() {
		var fila = $(this).parents(".fila");
		if (fila.children("fieldset.editar_estudis").is(".editar_estudis")) {
			// acceptar editar estudis
			if (!$.controlEstudis("#llistat_estudis", true)) return false;
			
			fila.children("fieldset.editar_estudis").hide();
			// actualitzar fila de dades amb dades entrades
			fila.children("div.sistema").html(fila.find("select.sistema_educatiu").children("option:selected").text());
			if (fila.find("select.sistema_educatiu").children("option:selected").val() == 4) { // altre
				estudi = fila.find("input.estudis_texte").val();
				titulacio = fila.find("input.titulacio_texte").val();
			} else {
				estudi = fila.find("select.s_estudis").children("option:selected").text();
				titulacio = fila.find("select.s_titulacio").children("option:selected").text();
			}
			fila.children("div.estudis").html(estudi);
			fila.children("div.titulacio").html(titulacio);
			fila.children("div.especialitat").html(fila.find("input.i_especialitat").val());
			fila.children("div.data").html(fila.find("select.mes_finalitzacio").children("option:selected").text()+"/"+fila.find("select.any_finalitzacio").children("option:selected").text());
			var pais_estudi = '';
			if (fila.find("select.s_pais_estudi").children("option:selected").val() != '') {
				pais_estudi = fila.find("select.s_pais_estudi").children("option:selected").text();
			}
			fila.children("div.pais_estudi").html(pais_estudi);
			fila.children("div.centre_docent").html(fila.find("input.i_centre_docent").val());
		} else if (fila.children("fieldset.editar_experiencies").is(".editar_experiencies")) {
			// acceptar editar experiencies
			var section = $.getSectionFeina($(this));
			if (!$.controlExperiencies(section, true)) return false;
			
			fila.children("fieldset.editar_experiencies").hide();
			// actualitzar fila de dades amb dades entrades
			fila.children("div.empresa").html(fila.find("input.empresa").val());
			if (fila.find("select.lloc_treball_empresa").children("option:selected").val() == '') { // lloc de treball texte
				fila.children("div.lloc_treball").html(fila.find("input.lloc_treball_empresa_texte").val());
			} else {
				fila.children("div.lloc_treball").html(fila.find("select.lloc_treball_empresa").children("option:selected").text());
			}
			fila.children("div.entrada").html(fila.find("select.mes_entrada").children("option:selected").text()+"/"+fila.find("select.any_entrada").children("option:selected").text());
			fila.children("div.sortida").html(fila.find("select.mes_sortida").children("option:selected").text()+"/"+fila.find("select.any_sortida").children("option:selected").text());
		} else if (fila.children("fieldset.editar_referencies").is(".editar_referencies")) {
			// acceptar editar referencies
			if (!$.controlReferencies("#llistat_referencies")) return false;
			
			fila.children("fieldset.editar_referencies").hide();
			// actualitzar fila de dades amb dades entrades
			fila.children("div.nom").html(fila.find("input.persona_contacte").val());
			fila.children("div.carrec").html(fila.find("select.s_carrec").children("option:selected").text());
			fila.children("div.telefon").html(fila.find("input.telefon_referencia").val());
			fila.children("div.email").html(fila.find("input.email_referencia").val());
		}
		return false;
	});
	
	$("a.cancelar").livequery("click", function() {
		var fila = $(this).parents(".fila");
		if (fila.children("fieldset.editar_estudis").is(".editar_estudis")) {
			// cancel·lar editar estudis
			var index = fila.index();
			fila.children("fieldset.editar_estudis").remove();
			fila.append($.estudisEnEdicio[index]);
			$.estudisEnEdicio[index].hide();
		} else if (fila.children("fieldset.editar_experiencies").is(".editar_experiencies")) {
			// cancel·lar editar experiencia
			var index = fila.index();
			fila.children("fieldset.editar_experiencies").remove();
			fila.append($.experienciesEnEdicio[index]);
			$.experienciesEnEdicio[index].hide();
		} else if (fila.children("fieldset.editar_referencies").is(".editar_referencies")) {
			fila.children("fieldset.editar_referencies").hide();
			// cancel·lar editar referencies
			var index = fila.index();
			fila.children("fieldset.editar_referencies").remove();
			fila.append($.referenciesEnEdicio[index]);
			$.referenciesEnEdicio[index].hide();
		}
		return false;
	});
	
	$("a.seleccionar_lloc_treball").livequery("click", function() {
		var llocid = $(this).attr("id").substring(12);
		
		// amb el id de la feina seleccionada ($(this).attr("id")), fer una crida ajax per recuperar
		// les dades de departament i de lloc de treball
		var llocid = $(this).attr("id").substring(12);
		//  crida ajax per recuperar el lloc de treball seleccionat
		var data = "llocTreballId="+llocid;
		var section = $.sectionBuscar; // si no quan s'executa el callback $.sectionBuscar val null
		$.ajax({
			type: "POST",
			url: siteRoot + "master.php?page=ajax_getLlocTreballV2",
			data: data,
			success: function(msg) {
				//alert (msg);
				var json = eval('(' + msg + ')');
				var result = json.result;
				var sector = result[0];
				var area = result[1];
				var lloesp = result[2];
				var llotre = result[3];
				if (area != "") {
					$(section + " select.altre_sector_empresa option:first").attr("selected", "selected");
					$(section + " input.sector_empresa_determinat[@value=0]").attr("checked","checked");
					$(section + " select.departament_empresa option[@value="+area+"]").attr("selected", "selected");
					var lloc = llotre;
				} else {
					$(section + " input.sector_empresa_determinat[@value="+sector+"]").attr("checked","checked");
					var lloc = lloesp;
				}
				$.sectorChanged(section, function() {
					//alert (lloc);
					if ($.browser.msie && $.browser.version == '6.0') { // ie6 workaround per evitar el error "Could not set the selected property"
						$(section + " select.lloc_treball_empresa option").each(function(i) {
							if ($(this).val() == lloc) {
								this.setAttribute('selected', true);
							}
						});
					} else {
						$(section + " select.lloc_treball_empresa option[@value="+lloc+"]").attr("selected", "selected");
					}
					$(section + " input.lloc_treball_empresa_texte").attr("disabled", "disabled");
				});
				// amagar el buscador
				$(section + " .buscador").hide();
				// mostrar pregunta
				$(section + " div.pregunta_buscador").show();
				$(section + " input.pregunta_buscador").check('off');
			}
		});
		$.closeOverlay();
		$(section + " .feina_dades").show();
		$(".buscador_lloc_treball_empresa").val('');
		
		return false;
	});

	$(".llistat_feines a.seguent").livequery("click", function() {
		$.pagina_llistat_feines++;
		$.mostrarLlistaFeines();
		return false;
	});
	
	$(".llistat_feines a.anterior").livequery("click", function() {
		$.pagina_llistat_feines--;
		$.mostrarLlistaFeines();
		return false;
	});
	
	$(".llistat_feines a.buscar_sector").livequery("click", function() {
		$("#llocTreballSelector .seleccionar_buscar").show();
		
		return false;
	});
	
	$("a.buscar_per_sector").livequery("click", function() {
		$("#llocTreballSelector .per_sector").show();
		$("#llocTreballSelector .per_departament").hide();
		
		return false;
	});
	
	$("a.buscar_per_departament").livequery("click", function() {
		$("#llocTreballSelector .per_sector").hide();
		$("#llocTreballSelector .per_departament").show();
		
		return false;
	});
	
	// event canvi sector determinat
	$("input.sector_empresa_determinat").livequery('change',function() {
		var section = $.getSectionFeina($(this));
		$.sectorChanged(section, null);
	});
	
	// event canvi departament
	$("select.departament_empresa").livequery('change',function() {
		var section = $.getSectionFeina($(this));
		$.departamentChanged(section);
	});

	// event canvi feina anterior
	$("input[@name=treball_anterior]").bind("click",function() {
		if($("input[@name=treball_anterior]:checked").val() == 1) {
			$("#feina_anterior").show();
			
			// solament es mostra si hi han experiencies entrades
			if ($("#llistat_experiencies .fila").size() != 0) {
				$("#pregunta_referencies_professionals").show();
			}
		} else {
			$("#feina_anterior").hide();
			if ($("input[@name=treball_actual]:checked").val() != 1) {
				// si no está seleccionat treball actual, s'amaga
				$("#pregunta_referencies_professionals").hide();
			}
		}
	});
	
	// event click afegir més experiències
	$("#afegir_experiencia").bind("click",function() {
		var section = $.getSectionFeina($(this));
		if (!$.controlExperiencies(section,true)) return false;
		
		var empresa = $("input[@name=empresa_anterior_add]").val();
		
		var lloc_treball;
		if ($("select[@name=lloc_treball_empresa_anterior_add] option:selected").val() != '') {
			lloc_treball = $("select[@name=lloc_treball_empresa_anterior_add] option:selected").text()
		} else { // texte
			lloc_treball = $("input[@name=lloc_treball_empresa_anterior_texte_add]").val();
		}

		var html = "\
					<div class='fila' id='filaExperiencies"+$.index_experiencies+"'>\
						<div class='empresa'>"+empresa+"</div>\
						<div class='lloc_treball'>"+lloc_treball+"</div>\
						<div class='data entrada'>"+$("select[@name=mes_entrada_empresa_anterior_add] option:selected").text()+"/"+$("select[@name=any_entrada_empresa_anterior_add] option:selected").text()+"</div>\
						<div class='data sortida'>"+$("select[@name=mes_sortida_empresa_anterior_add] option:selected").text()+"/"+$("select[@name=any_sortida_empresa_anterior_add] option:selected").text()+"</div>\
						<div class='editar'><a href='' class='editar'><img src='imatges/page_edit.png' alt='"+labels["Modificar"]+"' title='"+labels["Modificar"]+"' /></a></div>\
						<div class='eliminar'><a href='' class='eliminar'><img src='imatges/page_delete.png' alt='"+labels["Eliminar"]+"' title='"+labels["Eliminar"]+"' /></a></div>\
						<fieldset class='editar_experiencies'>\
							<div class='row'>\
								<div class='column1'><label for='empresa_anterior"+$.index_experiencies+"'>"+labels["Empresa"]+" (*)</label></div>\
								<div class='column2'><input name='empresa_anterior["+$.index_experiencies+"]' type='text' id='empresa_anterior"+$.index_experiencies+"' size='30' maxlength='40' class='empresa' /></div>\
							</div>\
							<div class='row'>\
								<div class='column1'><label for='sector_empresa_anterior_determinat"+$.index_experiencies+"'>"+labels["Sector de l'empresa"]+" (*)</label></div>\
								<div class='column2'>\
									<input name='sector_empresa_anterior_determinat["+$.index_experiencies+"]' type='radio' value='1' id='sector_empresa_anterior_determinat_1"+$.index_experiencies+"' class='sector_empresa_determinat'/> <label for='sector_empresa_anterior_determinat_1["+$.index_experiencies+"]'>Comer&ccedil; / Vendes</label><br />\
									<input name='sector_empresa_anterior_determinat["+$.index_experiencies+"]' type='radio' value='2' id='sector_empresa_anterior_determinat_2"+$.index_experiencies+"' class='sector_empresa_determinat'/> <label for='sector_empresa_anterior_determinat_2["+$.index_experiencies+"]'>Hoteleria / Restauraci&oacute;</label><br />\
									<input name='sector_empresa_anterior_determinat["+$.index_experiencies+"]' type='radio' value='3' id='sector_empresa_anterior_determinat_3"+$.index_experiencies+"' class='sector_empresa_determinat'/> <label for='sector_empresa_anterior_determinat_3["+$.index_experiencies+"]'>Camps de Neu / Estacions d'Esqu&iacute;</label><br />\
									<input name='sector_empresa_anterior_determinat["+$.index_experiencies+"]' type='radio' value='0' id='sector_empresa_anterior_determinat_0"+$.index_experiencies+"' class='sector_empresa_determinat'/> <label for='sector_empresa_anterior_determinat_0["+$.index_experiencies+"]'>Altre sector</label><br />\
									<select name='altre_sector_empresa_anterior["+$.index_experiencies+"]' id='altre_sector_empresa_anterior"+$.index_experiencies+"' class='altre_sector_empresa'>\
									</select>\
								</div>\
							</div>\
							<div class='row'>\
								<div class='column1'><label for='departament_empresa_anterior"+$.index_experiencies+"' class='departament_empresa'>"+labels["Departament"]+" (*)</label></div>\
								<div class='column2'>\
									<select name='departament_empresa_anterior["+$.index_experiencies+"]' id='departament_empresa_anterior"+$.index_experiencies+"' class='departament_empresa'>\
									</select>\
								</div>\
							</div>\
							<div class='row'>\
								<div class='column1'><label for='lloc_treball_empresa_anterior_texte"+$.index_experiencies+"'>"+labels["Lloc de treball"]+" (*)</label></div>\
								<div class='column2'>\
									<select name='lloc_treball_empresa_anterior["+$.index_experiencies+"]' id='lloc_treball_empresa_anterior"+$.index_experiencies+"' class='lloc_treball_empresa'>\
									</select>\
									<p class='spacer'></p>\
									<input name='lloc_treball_empresa_anterior_texte["+$.index_experiencies+"]' type='text' id='lloc_treball_empresa_anterior_texte["+$.index_experiencies+"]' class='lloc_treball_empresa_texte' size='30' maxlength='40' disabled='disabled'/>\
									<p class='ajuda'>"+labels["omplir si el teu lloc de treball no apareix en la taula anterior"]+"</p>\
								</div>\
							</div>\
							<div class='row'>\
								<div class='column1'><label for='funcions_empresa_anterior"+$.index_experiencies+"'>"+labels["Funcions realitzades"]+"</label></div>\
								<div class='column2'><textarea name='funcions_empresa_anterior["+$.index_experiencies+"]' id='funcions_empresa_anterior"+$.index_experiencies+"' rows='6' cols='60' class='funcions_empresa'></textarea></div>\
							</div>\
							<div class='row'>\
								<div class='column1'><label for='mes_entrada_empresa_anterior"+$.index_experiencies+"'>"+labels["Data d entrada"]+" (*)</label></div>\
								<div class='column2'>\
									<select name='mes_entrada_empresa_anterior["+$.index_experiencies+"]' id='mes_entrada_empresa_anterior"+$.index_experiencies+"' class='mes_entrada' >\
									</select>\
									<select name='any_entrada_empresa_anterior["+$.index_experiencies+"]' id='any_entrada_empresa_anterior"+$.index_experiencies+"' class='any_entrada' >\
									</select>\
								</div>\
							</div>\
							<div class='row'>\
								<div class='column1'><label for='mes_sortida_empresa_anterior"+$.index_experiencies+"'>"+labels["Data de sortida"]+" (*)</label></div>\
								<div class='column2'>\
									<select name='mes_sortida_empresa_anterior["+$.index_experiencies+"]' id='mes_sortida_empresa_anterior"+$.index_experiencies+"' class='mes_sortida' >\
									</select>\
									<select name='any_sortida_empresa_anterior["+$.index_experiencies+"]' id='any_sortida_empresa_anterior"+$.index_experiencies+"' class='any_sortida' >\
									</select>\
								</div>\
							</div>\
							<div class='row'>\
								<div class='column1'>&nbsp;</div>\
								<a href='' class='acceptar'>"+labels["Acceptar"]+"</a>&nbsp;<a href='' class='cancelar'>"+labels["Cancel·lar"]+"</a>\
							</div>\
							<div class='row empty'></div>\
							<div class='row'>\
								<div class='column1'><label for='buscador_lloc_treball_empresa_anterior"+$.index_experiencies+"' class='buscador_lloc_treball_empresa'>"+labels["Buscador de lloc de treball a l'empresa"]+" (*)</label></div>\
								<div class='column2'><input name='buscador_lloc_treball_empresa_anterior["+$.index_experiencies+"]' type='text' id='buscador_lloc_treball_empresa_anterior"+$.index_experiencies+"' class='buscador_lloc_treball_empresa' size='30' maxlength='40' />&nbsp;<a href='' class='buscar_lloc_treball'>Buscar</a></div>\
							</div>\
						</fieldset>\
					</div>";
	
		$("#llistat_experiencies").append(html);
		
		$("#filaExperiencies"+$.index_experiencies+" input.empresa").val($("input[@name=empresa_anterior_add]").val());
		var sector = $("input[@name=sector_empresa_anterior_determinat_add]:checked").val();
		// event canvi
		$("#filaExperiencies"+$.index_experiencies+" input.sector_empresa_determinat").livequery('change',function() {
			$.sectorChanged(section, null);
		});
		$("#filaExperiencies"+$.index_experiencies+" input.sector_empresa_determinat[@value="+sector+"]").attr("checked","checked");
		//$.loadAltresSectors($("#filaExperiencies"+$.index_experiencies+" select.altre_sector_empresa"));
		$("#filaExperiencies"+$.index_experiencies+" select.altre_sector_empresa").append($("select[@name=altre_sector_empresa_anterior_add] option").clone());
		
		$("#filaExperiencies"+$.index_experiencies+" select.altre_sector_empresa option[@value="+$("select[@name=altre_sector_empresa_anterior_add] option:selected").val()+"]").attr("selected", "selected");
		//$.loadDepartaments($("#filaExperiencies"+$.index_experiencies+" select.departament_empresa"));
		$("#filaExperiencies"+$.index_experiencies+" select.departament_empresa").append($("select[@name=departament_empresa_anterior_add] option").clone());
		$("#filaExperiencies"+$.index_experiencies+" select.departament_empresa option[@value="+$("select[@name=departament_empresa_anterior_add] option:selected").val()+"]").attr("selected", "selected");

		$("#filaExperiencies"+$.index_experiencies+" select.departament_empresa").livequery('change',function() {
			$.departamentChanged(section);
		});

		if (sector != 0) {
			$("#filaExperiencies"+$.index_experiencies+" select.altre_sector_empresa").attr("disabled", "disabled");
			$("#filaExperiencies"+$.index_experiencies+" select.departament_empresa").parents(".row:first").hide();
		}
		$("#filaExperiencies"+$.index_experiencies+" select.lloc_treball_empresa").append($("select[@name=lloc_treball_empresa_anterior_add] option").clone());
		$("#filaExperiencies"+$.index_experiencies+" select.lloc_treball_empresa option[@value="+$("select[@name=lloc_treball_empresa_anterior_add] option:selected").val()+"]").attr("selected", "selected");
		
		if ($("select[@name=lloc_treball_empresa_anterior_add] option:selected").val() == '') {
			$("#filaExperiencies"+$.index_experiencies+" input.lloc_treball_empresa_texte").val($("input[@name=lloc_treball_empresa_anterior_texte_add]").val());
			$("#filaExperiencies"+$.index_experiencies+" input.lloc_treball_empresa_texte").attr("disabled", "");
		}
		var index = $.index_experiencies;
		// event canvi lloc de treball
		$("#filaExperiencies"+$.index_experiencies+" select.lloc_treball_empresa").livequery('change',function() {
			if ($(this).val() != "") {
				// disable lloc de treball texte
				$("#filaExperiencies"+index+" input.lloc_treball_empresa_texte").attr("disabled", "disabled");
			} else {
				// enable lloc de treball texte
				$("#filaExperiencies"+index+" input.lloc_treball_empresa_texte").attr("disabled", "");
			}
		});
		
		$("#filaExperiencies"+$.index_experiencies+" textarea.funcions_empresa").val($("textarea[@name=funcions_empresa_anterior_add]").val());
		
		$("#filaExperiencies"+$.index_experiencies+" select.mes_entrada").append($("select[@name=mes_entrada_empresa_anterior_add] option").clone());
		$("#filaExperiencies"+$.index_experiencies+" select.mes_entrada option[@value="+$("select[@name=mes_entrada_empresa_anterior_add]").val()+"]").attr("selected", "selected");
		$("#filaExperiencies"+$.index_experiencies+" select.any_entrada").append($("select[@name=any_entrada_empresa_anterior_add] option").clone());
		$("#filaExperiencies"+$.index_experiencies+" select.any_entrada option[@value="+$("select[@name=any_entrada_empresa_anterior_add]").val()+"]").attr("selected", "selected");
		$("#filaExperiencies"+$.index_experiencies+" select.mes_sortida").append($("select[@name=mes_sortida_empresa_anterior_add] option").clone());
		$("#filaExperiencies"+$.index_experiencies+" select.mes_sortida option[@value="+$("select[@name=mes_sortida_empresa_anterior_add]").val()+"]").attr("selected", "selected");
		$("#filaExperiencies"+$.index_experiencies+" select.any_sortida").append($("select[@name=any_sortida_empresa_anterior_add] option").clone());
		$("#filaExperiencies"+$.index_experiencies+" select.any_sortida option[@value="+$("select[@name=any_sortida_empresa_anterior_add]").val()+"]").attr("selected", "selected");
		
		// es resetejen els camps
		$("input[@name=empresa_anterior_add]").val("");
		$("textarea[@name=funcions_empresa_anterior_add]").html("");
		$("select[@name=mes_entrada_empresa_anterior_add] option:first").attr("selected", "selected");
		$("select[@name=any_entrada_empresa_anterior_add] option:first").attr("selected", "selected");
		$("select[@name=mes_sortida_empresa_anterior_add] option:first").attr("selected", "selected");
		$("select[@name=any_sortida_empresa_anterior_add] option:first").attr("selected", "selected");
		$("#feina_anterior_dades").hide();
		
		//$(this).html(labels["&Afegir_experiencia"]);
		
		// s'amaga els camps de dades experiències
		$("#dades_experiencies_add").hide();
		
		// reset pregunta si te més experiencies
		$("input[@name=mes_experiencies]").check('off');

		// es mostra la pregunta si te més experiencies
		$("#mes_experiencies").show();
		
		// es mostra la pregunta si te referències
		$("#pregunta_referencies_professionals").show();
		
		// afegir empresa a llista de referencies
		html = "<option value='"+$.index_experiencies+"'>"+empresa+" ("+lloc_treball+")</option>";
		$("#empresa_referencia_add").append(html);
		$("#empresa_referencia_add option:first").attr("selected", "selected");
		
		// si hi han referencies entrades, mostrar la pregunta per entrar més 
		// referencies (que podría estar amagada)
		if ($("#llistat_referencies .fila").size() > 0) {
			$("#mes_referencies").show();
		}

		$.index_experiencies++;
		
		return false;
	});
	
	// event canvi referències
	$("input[@name=referencies]").bind("click",function() {
		if($("input[@name=referencies]:checked").val() == 1) {
			$("#referencies_professionals").show();
			$("#dades_referencies_add").show();
		} else {
			$("#referencies_professionals").hide();
			$("#dades_referencies_add").hide();
		}
	});
	
	// event click afegir més referencies
	$("#afegir_referencia").bind("click",function() {
		if (!$.controlReferencies("#dades_referencies_add")) return false;
		$("#llistat_referencies").removeClass("mandatory");
		
		var index_referencies = $("select[@name=empresa_referencia_add] option:selected").val();
		
		var html = "\
						<div class='fila' id='filaReferencies"+index_referencies+"'>\
							<div class='empresa'>"+$("select[@name=empresa_referencia_add] option:selected").text()+"</div>\
							<div class='nom'>"+$("input[@name=persona_contacte_add]").val()+"</div>\
							<div class='carrec'>"+$("select[@name=carrec_add] option:selected").text()+"</div>\
							<div class='telefon'>"+$("input[@name=telefon_referencia_add]").val()+"</div>\
							<div class='email'>"+$("input[@name=email_referencia_add]").val()+"</div>\
							<div class='editar'><a href='' class='editar'><img src='imatges/page_edit.png' alt='"+labels["Modificar"]+"' title='"+labels["Modificar"]+"' /></a></div>\
							<div class='eliminar'><a href='' class='eliminar'><img src='imatges/page_delete.png' alt='"+labels["Eliminar"]+"' title='"+labels["Eliminar"]+"' /></a></div>\
							<fieldset class='editar_referencies'>\
								<div class='row'>\
									<div class='column1'>"+labels["Empresa"]+"</div>\
									<div class='column2'>"+$("select[@name=empresa_referencia_add] option:selected").text()+"</div>\
								</div>\
								<div class='row'>\
									<div class='column1'><label for='persona_contacte"+index_referencies+"'>"+labels["Persona de contacte"]+" (*)</label></div>\
									<div class='column2'><input name='persona_contacte["+index_referencies+"]' type='text' id='persona_contacte"+index_referencies+"' size='30' maxlength='40' value='"+$("input[@name=persona_contacte_add]").val()+"'class='persona_contacte' /></div>\
								</div>\
								<div class='row'>\
									<div class='column1'><label for='carrec"+index_referencies+"'>"+labels["Càrrec"]+" (*)</label></div>\
									<div class='column2'>\
										<select name='carrec["+index_referencies+"]' id='carrec"+index_referencies+"' class='s_carrec'>\
										</select>\
									</div>\
								</div>\
								<div class='row'>\
									<div class='column1'><label for='telefon_referencia"+index_referencies+"'>"+labels["Telèfon"]+"</label></div>\
									<div class='column2'><input name='telefon_referencia["+index_referencies+"]' type='text' id='telefon_referencia"+index_referencies+"' size='30' maxlength='40' value='"+$("input[@name=telefon_referencia_add]").val()+"' class='telefon_referencia' /></div>\
								</div>\
								<div class='row'>\
									<div class='column1'><label for='email_referencia"+index_referencies+"'>e-mail</label></div>\
									<div class='column2'><input name='email_referencia["+index_referencies+"]' type='text' id='email_referencia"+index_referencies+"' size='30' maxlength='40' value='"+$("input[@name=email_referencia_add]").val()+"' class='email_referencia' /></div>\
								</div>\
								<div class='row'>\
									<div class='column1'>&nbsp;</div>\
									<a href='' class='acceptar'>"+labels["Acceptar"]+"</a>&nbsp;<a href='' class='cancelar'>"+labels["Cancel·lar"]+"</a>\
								</div>\
							</fieldset>\
						</div>";
		
		$("#llistat_referencies").append(html);
		
		// afegir llista càrrecs
		$("#filaReferencies"+index_referencies+" select.s_carrec").append($("select[@name=carrec_add] option").clone());
		// seleccionar element
		var carrecValue = $("select[@name=carrec_add]").val();
		$("#filaReferencies"+index_referencies+" select.s_carrec option[@value="+carrecValue+"]").attr("selected", "selected");
		
		// es resetejen els camps de dades referencies
		$("input[@name=persona_contacte_add]").val("");
		$("select[@name=empresa_referencia_add] option:first").attr("selected", "selected");
		$("select[@name=carrec_add] option:first").attr("selected", "selected");
		$("input[@name=telefon_referencia_add]").val("");
		$("input[@name=email_referencia_add]").val("");
		
		//$(this).html(labels["&Afegir_referencia"]);
		
		// s'amaga els camps de dades referències
		$("#dades_referencies_add").hide();
		
		// reset pregunta si te més experiencies
		$("input[@name=mes_referencies]").check('off');

		// eliminar empresa de llistat referencies
		$("#empresa_referencia_add option[@value="+index_referencies+"]").remove();

		if ($("#empresa_referencia_add option").size() > 1) {
			// i es mostra la pregunta si vol afegir més referencies
			// solament si hi ha elements a la llista d'empreses seleccionables
			$("#mes_referencies").show();
		}
		
		return false;
	});	
	
	$("input[@name=altres_activitats]").bind("click",function() {
		if ($("input[@name=altres_activitats]:checked").val() == 1) {
			$("#altres_activitats").show();	
		} else {
			$("#altres_activitats").hide();	
		}
	});
	
	// event click esborrar cv
	$("a#esborrarCV").bind("click",function() {
		$(this).parent().hide();
		$("input[@name=tipusCV]").val("");
		return false;
	});
	
	// event click esborrar carta
	$("a#esborrarCarta").bind("click",function() {
		$(this).parent().hide();
		$("input[@name=tipusCarta]").val("");
		return false;
	});
	
	// event click esborrar foto
	$("a#esborrarFoto").bind("click",function() {
		$(this).parent().hide();
		$("input[@name=tipusFoto]").val("");
		return false;
	});
	
	// evitar que la tecla enter façi submit del formulari
	$("input.buscador_lloc_treball_empresa").bind("keypress",function(event) {
		if (event.keyCode == 13) {
			return false;
		}
	});
	
	// event canvi sector al selector llista
	$("select[@name=sector_empresa_actual_size]").bind('change',function() {
		var section = "#llocTreballSelector";
		if ($(this).val() != '') {
			var sectorid = $(this).val();
			$.loadLlocsTreball(sectorid, 1, section, null, "lloc_treball_empresa_per_sector_size");
		} else {
			$.resetSelect($(section +" select.lloc_treball_empresa_per_sector_size"));
		}
	});
	
	// event canvi departament al selector llista
	$("select[@name=departament_empresa_actual_size]").bind('change',function() {
		var section = "#llocTreballSelector";
		if ($(this).val() != '') {
			var areaid = $(this).val();
			$.loadLlocsTreball(0, 1, section, areaid, "lloc_treball_empresa_per_departament_size");
		} else {
			$.resetSelect($(section +" select.lloc_treball_empresa_per_departament_size"));
		}
	});

	$("select.lloc_treball_empresa_per_sector_size").livequery("dblclick",function() {
		$.llocTreballDblClicked($(this));
	});
	
	$("select.lloc_treball_empresa_per_departament_size").livequery("dblclick",function() {
		$.llocTreballDblClicked($(this));
	});
	
	$("#tancar_finestra").livequery('click', function() {
		$.closeOverlay();
		
		return false;
	});
	
	$("input[@name=mes_estudis]").bind('click', function() {
		if ($("input[@name=mes_estudis]:checked").val() == 1) {
			$("#mes_estudis").hide();
			$("#dades_estudis_add").show();
		}
	});
	
	$("input[@name=mes_experiencies]").bind('click', function() {
		if ($("input[@name=mes_experiencies]:checked").val() == 1) {
			$("#mes_experiencies").hide();
			$("#dades_experiencies_add").show();
			$("#dades_experiencies_add .buscador").show();
		}
	});
	
	$("input[@name=mes_referencies]").bind('click', function() {
		if ($("input[@name=mes_referencies]:checked").val() == 1) {
			$("#mes_referencies").hide();
			$("#dades_referencies_add").show();
		}
	});
	
	$("input.pregunta_buscador").livequery('click', function() {
		if ($(this).val() == 1) {
			var section = $.getSectionFeina($(this));
			// amagar el buscador
			$(section + " .buscador").show();
			// mostrar pregunta
			$(section + " div.pregunta_buscador").hide();
		}
	});
	

	// check al fer submit
	$("form").bind("submit",function() {
		try {
			if (!$("input[@name=nom]").mandatory(labels["a_Nom"])) return false;
			if (!$("input[@name=cognom1]").mandatory(labels["a_1r Cognom"])) return false;
			if (!$("input[@name=email]").mandatory("e-mail")) return false;
			if (!$("input[@name=email]").validateEmail()) return false;
			if (!$("input.telefon_contacte").mandatory(labels["a_Telèfon de Contacte"])) return false;
			if (!$("input[@name=telefon1]").validateNumber(labels["a_Telèfon de Contacte"])) return false;
			if (!$("input[@name=telefon2]").validateNumber(labels["a_Telèfon de Contacte"])) return false;
			if (!$("select[@name=dia_naixement]").mandatory(labels["a_Data de naixement"])) return false;
			if (!$("select[@name=mes_naixement]").mandatory(labels["a_Data de naixement"])) return false;
			if (!$("select[@name=any_naixement]").mandatory(labels["a_Data de naixement"])) return false;
			if (!$("select[@name=dia_naixement]").validateDate($("select[@name=dia_naixement]").val()+"/"+$("select[@name=mes_naixement]").val()+"/"+$("select[@name=any_naixement]").val(), labels["a_Data de naixement"])) return false;
			if (!$("select[@name=pais_nacionalitat]").mandatory(labels["a_País de nacionalitat"])) return false;
			if (!$("select[@name=sexe]").mandatory(labels["a_Sexe"])) return false;
			if (!$("select[@name=pais_residencia]").mandatory(labels["a_País de residència"])) return false;
			switch ($("select[@name=pais_residencia]").val()) {
				case "1":
					if (!$("select[@name=parroquia]").mandatory(labels["a_Parròquia"])) return false;
					if (!$("select[@name=localitat]").mandatory(labels["a_Localitat"])) return false;
					break;
				case "2":
					if (!$("select[@name=parroquia]").mandatory(labels["a_Província"])) return false;
					if (!$("select[@name=localitat]").mandatory(labels["a_Municipi"])) return false;
					break;
				case "3":
					if (!$("select[@name=parroquia]").mandatory(labels["a_Département"])) return false;
					break;
			}
			if (!$("select[@name=permis_conduir]").mandatory(labels["a_Permís de conduir"])) return false;
			if (!$("select[@name=situacio_laboral]").mandatory(labels["a_Situació laboral"])) return false;
			if (!$("select[@name=autoritzacio_treball]").mandatory(labels["a_Autorització de treball a Andorra"])) return false;
			if ($("select[@name=autoritzacio_treball]").val() == 3) {
				// solament obligatori si periòde determinat
				if (!$("select[@name=mes_caducitat]").mandatory(labels["Data caducitat"])) return false;
				if (!$("select[@name=any_caducitat]").mandatory(labels["Data caducitat"])) return false;
				var dataCaducitat = new Date($("select[@name=mes_caducitat]").val()+"/01/"+$("select[@name=any_caducitat]").val());
				var today = new Date();
				if (!$("select[@name=mes_caducitat]").validateDateRange(dataCaducitat, today, null, labels["a_Data caducitat ha de ser posterior a la data actual"])) return false;
			} else {
				$("select[@name=mes_caducitat]").formClearError();
			}
			if (!$("input[@name=estudis_acabats]").mandatory(labels["a_Estudis acabats"])) return false;
			if ($("input[@name=estudis_acabats]:checked").val() == 1) {
				//if (!$.controlEstudis("#dades_estudis_add", true)) return false;
				
				// test si llista de estudis està buida
				// TODO: utilitzar formError i formClearError.
				// en aquest cas en lloc de focus cal posicionar-se amb un anchor
				if ($("#llistat_estudis .fila").size() == 0) {
					$("#llistat_estudis").addClass("mandatory");
					alert (labels["a_La llista d'estudis està buida"]);
					$("input[@name=estudis_acabats]").focus();
					return false;
				} else {
					$("#llistat_estudis").removeClass("mandatory");
				}
			}
			// cal verificar que les dades entrades a les llistes siguin correctes pels formularis antics
			var num_estudis = $("#llistat_estudis .fila").size();
			for (var i=0;i<num_estudis;i++) {
				fila = $("#llistat_estudis .fila:eq("+i+")");
				if (!$.controlEstudis('#'+fila.attr('id'),fila.children("fieldset.editar_estudis").is(':visible'))) return false;
			}
			
			if (!$("select.nivell").mandatory(labels["a_Al menys 1 idioma"])) return false;
			
			if ($("input[@name=altre1_idioma]").val() != "") {
				if (!$("select[@name=nivell_altre1_idioma]").mandatory(labels["a_Nivell"])) return false;		
			}
			if ($("select[@name=nivell_altre1_idioma]").val() != "") {
				if (!$("input[@name=altre1_idioma]").mandatory(labels["a_Nom"])) return false;		
			}
			if ($("input[@name=altre2_idioma]").val() != "") {
				if (!$("select[@name=nivell_altre2_idioma]").mandatory(labels["a_Nivell"])) return false;		
			}
			if ($("select[@name=nivell_altre2_idioma]").val() != "") {
				if (!$("input[@name=altre2_idioma]").mandatory(labels["a_Nom"])) return false;		
			}
			if ($("input[@name=altre3_idioma]").val() != "") {
				if (!$("select[@name=nivell_altre3_idioma]").mandatory(labels["a_Nivell"])) return false;		
			}
			if ($("select[@name=nivell_altre3_idioma]").val() != "") {
				if (!$("input[@name=altre3_idioma]").mandatory(labels["a_Nom"])) return false;		
			}
			
			if ($("input[@name=altre1_informatica]").val() != "") {
				if (!$("select[@name=nivell_altre1_informatica]").mandatory(labels["a_Nivell"])) return false;		
			}
			if ($("select[@name=nivell_altre1_informatica]").val() != "") {
				if (!$("input[@name=altre1_informatica]").mandatory(labels["a_Nom"])) return false;		
			}
			if ($("input[@name=altre2_informatica]").val() != "") {
				if (!$("select[@name=nivell_altre2_informatica]").mandatory(labels["a_Nivell"])) return false;		
			}
			if ($("select[@name=nivell_altre2_informatica]").val() != "") {
				if (!$("input[@name=altre2_informatica]").mandatory(labels["a_Nom"])) return false;		
			}
			if ($("input[@name=altre3_informatica]").val() != "") {
				if (!$("select[@name=nivell_altre3_informatica]").mandatory(labels["a_Nivell"])) return false;		
			}
			if ($("select[@name=nivell_altre3_informatica]").val() != "") {
				if (!$("input[@name=altre3_informatica]").mandatory(labels["a_Nom"])) return false;		
			}
			
			if (!$("input[@name=treball_actual]").mandatory(labels["a_Feina actual"])) return false;
			if ($("input[@name=treball_actual]:checked").val() == 1) {
				if (!$("select[@name=pais_empresa_actual]").mandatory(labels["a_País ubicació empresa"])) return false;
				/*
				if (!$("#feina_actual_dades").is(":visible")) {
					// solament es obligatori si no s'ha buscat algun lloc de treball
					if (!mandatory($("input[@name=buscador_lloc_treball_empresa_actual]"), "Lloc de treball")) return false;
					
					if ($("#feina_actual .llistat_feines").is(":visible")) {
						formError($("input[@name=buscador_lloc_treball_empresa_actual]"), "Seleccionar un un lloc de treball es obligatori");
					} else {
						formError($("input[@name=buscador_lloc_treball_empresa_actual]"), "Buscar un lloc de treball es obligatori");
					}
					return false;
				}
				*/
	
				if ($("#feina_actual_dades").is(":visible")) {
					if ($("#sector_empresa_actual").parents(".row").is(":visible")) {
						if (!$("select[@name=sector_empresa_actual]").mandatory(labels["a_Sector de l'empresa"])) return false;
						if (!$("select[@name=departament_empresa_actual]").mandatory(labels["a_Departament"])) return false;
					} else { // determinat es visible
						if (!$("input[@name=sector_empresa_actual_determinat]").mandatory(labels["a_Sector de l'empresa"])) return false;
						if ($("input[@name=sector_empresa_actual_determinat]:checked").val() == 0) { // altre sector seleccionat
							if (!$("select[@name=altre_sector_empresa_actual]").mandatory(labels["a_Altre sector"])) return false;
							if (!$("select[@name=departament_empresa_actual]").mandatory(labels["a_Departament"])) return false;
						}
					}
					if ((!($("input[@name=lloc_treball_empresa_actual_texte]").is(":disabled")) && ($("input[@name=lloc_treball_empresa_actual_texte]").val() == "")) | ($("select[@name=sector_empresa_actual]").val() == "")) {
						// si el lloc de treball texte està enabled significa que no s'ha seleccionat res de la llista
						$("select[@name=lloc_treball_empresa_actual]").formError(labels["a_Lloc de treball es obligatori"]);
						return false;
					}
	
					$("#buscador_lloc_treball_empresa_actual").formClearError();
					
					if (!$("select[@name=mes_entrada_empresa_actual]").mandatory(labels["a_Data d'entrada"])) return false;
					if (!$("select[@name=any_entrada_empresa_actual]").mandatory(labels["a_Data d'entrada"])) return false;
				} else {
					$("#buscador_lloc_treball_empresa_actual").formError(labels["a_Seleccionar un lloc de treball és obligatori"]);
					return false;
				}
			}
			
			if (!$("input[@name=treball_anterior]").mandatory(labels["a_Feina anterior"])) return false;
			//if (($("input[@name=treball_anterior]:checked").val() == 1) && ($("#llistat_experiencies .fila").size() == 0)) {
			if ($("input[@name=treball_anterior]:checked").val() == 1) {
				//if (!$.controlExperiencies("#dades_experiencies_add"), true) return false;
				
				// test si llista d'experiencies està buida
				// TODO: utilitzar formError i formClearError.
				// en aquest cas en lloc de focus cal posicionar-se amb un anchor (com fer-ho?)
				if ($("#llistat_experiencies .fila").size() == 0) {
					$("#llistat_experiencies").addClass("mandatory");
					alert (labels["a_La llista d'experiències està buida"]);
					$("input[@name=treball_anterior]").focus();
					return false;
				} else {
					$("#llistat_experiencies").removeClass("mandatory");
				}
			}
			
			// cal verificar que les dades entrades a les llistes siguin correctes pels formularis antics
			var num_experiencies = $("#llistat_experiencies .fila").size();
			for (var i=0;i<num_experiencies;i++) {
				fila = $("#llistat_experiencies .fila:eq("+i+")");
				if (!$.controlExperiencies('#'+fila.attr('id'),fila.children("fieldset.editar_experiencies").is(':visible'))) return false;
			}
			
			/*
			if (($("input[@name=referencies]:checked").val() == 1) && ($("#llistat_referencies .fila").size() == 0)) {
				if (!$.controlReferencies()) return false;
				
				// test si llista de referencies està buida
				// TODO: utilitzar formError i formClearError.
				// en aquest cas en lloc de focus cal posicionar-se amb un anchor (com fer-ho?)
				if ($("#llistat_referencies .fila").size() == 0) {
					$("#llistat_referencies").addClass("mandatory");
					alert (labels["La_llista_de_referencies_esta_buida"]);
					$("input[@name=referencies]").focus();
					return false;
				} else {
					$("#llistat_referencies").removeClass("mandatory");
				}
			}
			*/
			
			if (!$("select[@name=temps_incorporacio]").mandatory(labels["a_Temps de incorporació"])) return false;		
			if (!$("select[@name=dedicacio_desitjada]").mandatory(labels["a_Dedicació desitjada"])) return false;		
			if (!$("input[@name=altres_activitats]").mandatory(labels["a_Altres activitats"])) return false;
			if (!$.controlAltresActivitats()) return false;
			if (!$("input[@name=cv]").validateExtension()) return false;
			if (!$("input[@name=carta]").validateExtension()) return false;
			if (!$("input[@name=foto]").validateExtension()) return false;
			if (!$("select[@name=conegut]").mandatory(labels["a_Com has conegut Laborand.net"])) return false;
			var candidatid = $("input[@name=email]").getCandidatIdByEmail();
			if (candidatid != "" && candidatid != $("input[@name=candidatId]").val()) {
				$("input[@name=email]").formError(labels["a_L'adreça d'email ja existeix"]);
				return false;
			}
		}
		catch (err) {
			log(err);
		}
	});
}

function login() {
	$("form").bind("submit",function() {
		if (!$("input[@name=usuari]").mandatory(labels["a_Usuari"])) return false;
		if (!$("input[@name=contrasenya]").mandatory(labels["a_Contrasenya"])) return false;
	});
}

function contrasenyaOblidada() {
	$("form").bind("submit",function() {
		if (!$("input[@name=email]").mandatory('e-mail')) return false;
	});
}

function buscadorSeleccioLloc() {
	var buscadorSeleccioLloc = {
		init: function() {
			$.inicialitzar();
		}
	};
	
	$.extend(buscadorSeleccioLloc, buscadorFn);
	$.extend(buscadorSeleccioLloc);
	
	$.init();
	
	$("input#llocTreballTexte").bind("keypress",function(event) {
		if (event.keyCode == 13) {
			$.buscaLlocs();
		}
	});
	
	$("input.experiencia").bind("click",function() {
		$.statusExperiencia($(this).val());
	});	
	
	$("#buscarLlocs").bind("click",function() {
		$.buscaLlocs();
	});
	
	$("#seleccionarLloc").livequery("click",function() {
		$.seleccionarLloc();
	});
	
	$("#altra_recerca").livequery("click",function() {
		$("#llistaLlocsTreball").hide();
		$("#buscarLloc").show();
		$("input#llocTreballTexte").val("");
	});
	
	$("input.sector").bind("click", function() {
		$.closeOverlay();
		$.addLlocTreball($.llocTreball, true);
	});
	
	$("#validarSector").bind("click",function() {
		$.validarSector();
	});

	$("#continuar").bind("click",function() {
		location.href = siteRoot + "master.php?page=buscador";
	});
	
	$("#nova_recerca").livequery("click",function() {
		$("#buscarLloc").show();
		return false;
	});
	
}

function buscador() {
	var $buscador = $.extend({
		// llistes per cache de crides ajax
		paisos: null,
		autoritzacionsTreball: null,
		permisosConduir: null,
		sistemesEducatius: null,
		horarisPreferents: null,
		terminisIncorporacio: null,
		nivellsEstudi: null,
		
		init: function() {
			$.inicialitzar();
			
			$.llistaResultatColor = false;
			
			if ($("input[@name=check_personals_tabSelected]").val() == null) {
				$('#personals > ul').tabs({ fxSlide: true, fxFade: true, fxSpeed: 'normal' });
			} else {
				$('#personals > ul').tabs(parseInt($("input[@name=check_personals_tabSelected]").val()), { fxSlide: true, fxFade: true, fxSpeed: 'normal' });
			}
			if ($("input[@name=check_formacio_tabSelected]").val() == null) {
				$('#formacio > ul').tabs({ fxSlide: true, fxFade: true, fxSpeed: 'normal' });
			} else {
				$('#formacio > ul').tabs(parseInt($("input[@name=check_formacio_tabSelected]").val()), { fxSlide: true, fxFade: true, fxSpeed: 'normal' });
			}
			if ($("input[@name=check_altres_tabSelected]").val() == null) {
				$('#altres > ul').tabs({ fxSlide: true, fxFade: true, fxSpeed: 'normal' });
			} else {
				$('#altres > ul').tabs(parseInt($("input[@name=check_altres_tabSelected]").val()), { fxSlide: true, fxFade: true, fxSpeed: 'normal' });
			}

			$("#pais_residencia_div").decorate({
				lblTitle  : "País de residència",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				change: function(selectedItem) {$.paisResidenciaChanged(selectedItem);},
				remove: function(selectedItem) {$.paisResidenciaRemoved(selectedItem);},
				sortRemove: function() {
					// la única manera en javascript de passar parámetres per referencia es mitjançant un array
					var arrList = new Array($.paisos);
					globals.sortRemove(arrList, $.getPaisos, $("select[@name=pais_residencia_sel_src]"), $('#pais_residencia_sel'));
					$.paisos = arrList[0];
				},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			// determinar label per parroquia
			var lblTitleParroquia = '';
			$('#pais_residencia_sel option').each(function(i) {
				if ($(this).val() == 1) {
					lblTitleParroquia+= "Parr&ograve;quia / ";
				} else if ($(this).val() == 2) {
					lblTitleParroquia+= "Prov&iacute;ncia / ";
				} else if ($(this).val() == 3) {
					lblTitleParroquia+= "Departament / ";
				}
			});
			if (lblTitleParroquia.length > 0) {
				lblTitleParroquia = lblTitleParroquia.substr(0, lblTitleParroquia.length - 3);
			}
			$("#parroquia_residencia_div").decorate({
				lblTitle  : lblTitleParroquia,
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				change: function(selectedItem) {$.parroquiaChanged(selectedItem)},
				remove: function(selectedItem) {$.parroquiaRemoved(selectedItem)},
				sortRemove: function() {$.parroquiaSortRemove()},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#localitat_residencia_div").decorate({
				lblTitle  : "Localitat",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				sortRemove: function() {$.localitatSortRemove()},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#nacionalitat_div").decorate({
				lblTitle  : "País de Nacionalitat",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				//change: function() {$.paisNacionalitatChanged()},
				sortRemove: function() {
					var arrList = new Array($.paisos);
					globals.sortRemove(arrList, $.getPaisos, $("select[@name=nacionalitat_sel_src]"), $('#nacionalitat_sel'));
					$.paisos = arrList[0];
				},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#autoritzacio_div").decorate({
				lblTitle  : "Autorització de treball",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				//change: function() {$.autoritzacioTreballChanged()},
				sortRemove: function() {
					var arrList = new Array($.autoritzacionsTreball);
					globals.sortRemove(arrList, $.getAutoritzacionsTreball, $("select[@name=autoritzacio_sel_src]"), $('#autoritzacio_sel'));
					$.autoritzacionsTreball = arrList[0];
				},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#permis_div").decorate({
				lblTitle  : "Permís de conduïr",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				//change: function() {$.permisConduirChanged()},
				sortRemove: function() {
					var arrList = new Array($.permisosConduir);
					globals.sortRemove(arrList, $.getPermisosConduir, $("select[@name=permis_sel_src]"), $('#permis_sel'));
					$.permisosConduir = arrList[0];
				},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#nivell_estudi_div").decorate({
				lblTitle  : "Nivell General d'Estudis",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				change: function(selectedItem) {$.nivellEstudiChanged(selectedItem);},
				remove: function(selectedItem) {$.nivellEstudiRemoved(selectedItem);},
				sortRemove: function() {
					var arrList = new Array($.nivellsEstudi);
					globals.sortRemove(arrList, $.getNivellsEstudi, $("select[@name=nivell_estudi_sel_src]"), $('#nivell_estudi_sel'));
					$.nivellsEstudi = arrList[0];
				},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions,
				width: "230px"
			});
			$("#sistema_div").decorate({
				lblTitle  : "Sistema educatiu",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				change: function(selectedItem) {$.sistemaEducatiuChanged(selectedItem);},
				remove: function(selectedItem) {$.sistemaEducatiuRemoved(selectedItem);},
				sortRemove: function() {$.sistemaSortRemove()},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#estudis_div").decorate({
				lblTitle  : "Estudis acabats",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				change: function(selectedItem) {$.estudiChanged(selectedItem);},
				remove: function(selectedItem) {$.estudiRemoved(selectedItem);},
				sortRemove: function() {$.estudiSortRemove()},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#titulacio_div").decorate({
				lblTitle  : "Titulació",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				sortRemove: function() {$.titulacioSortRemove()},
				width: "250px",
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#sector_altres_div").decorate({
				lblTitle  : "Altres sectors",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#sector_departament_div").decorate({
				lblTitle  : "Departament",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#sector_lloc_div").decorate({
				lblTitle  : "Lloc de treball",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#incorporacio_div").decorate({
				lblTitle  : "Termini d'incorporació",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				//change: function() {$.terminiIncorporacioChanged()},
				sortRemove: function() {
					var arrList = new Array($.terminisIncorporacio);
					globals.sortRemove(arrList, $.getTerminisIncorporacio, $("select[@name=incorporacio_sel_src]"), $('#incorporacio_sel'));
					$.terminisIncorporacio = arrList[0];
				},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			$("#dedicacio_div").decorate({
				lblTitle  : "Desicació desitjada",
				lblCurrentElement : decorate.lblCurrentElement,
				lblLeftAll: decorate.lblLeftAll,
				//change: function() {$.horariPreferentChanged()},
				sortRemove: function() {
					var arrList = new Array($.horarisPreferents);
					globals.sortRemove(arrList, $.getHorarisPreferents, $("select[@name=dedicacio_sel_src]"), $('#dedicacio_sel'));
					$.horarisPreferents = arrList[0];
				},
				navByArrows: decorate.navByArrows,
				rtSearch: decorate.rtSearch,
				navByButtons: decorate.navByButtons,
				lblInstruccions: decorate.lblInstruccions
			});
			
			if (!$("#check_personals").is(":checked")) {
				$('#personals').hide();
			}
			if (!$("#check_formacio").is(":checked")) {
				$('#formacio').hide();
			}
			if (!$("#check_professio").is(":checked")) {
				$('#professio').hide();
			}
			if (!$("#check_altres").is(":checked")) {
				$('#altres').hide();
			}
			
			if ($("#llistaResultats table.resultats").is(":visible")) {
				$("#buscarLloc").hide();
				$("#submitResultats").show();
			}
			
			if ($("input.llocTreballSeleccionat").val() != null) {
				$("form#form").hide();
			}
			
			if ($("select[@name=parroquia_residencia_sel_src] option").size() != 0) {
				$('#parroquia_residencia_div').show();
			}
			if ($("select[@name=localitat_residencia_sel_src] option").size() != 0) {
				$('#localitat_residencia_div').show();
			}
			if ($("#nivell_estudi_sel option").size() != 0) {
				$('#sistema_div').show();
			}
			if ($("#sistema_sel option").size() != 0) {
				$('#estudis_div').show();
			}
			if ($("#estudis_sel option").size() != 0) {
				$('#titulacio_div').show();
			}
			
			if ($("input[@name=criterisSeleccionats]").val() > 0) {
				$.scrollTo( $('#resultats'), {speed:1500} );
			}
			
		},
		
		mostra: function(objecte) {
			if (navigator.appVersion.indexOf("MSIE")!=-1){$(objecte).show('');}
			else {$(objecte).slideDown('slow');}
		},
		
		amaga: function(objecte)  {
			if (navigator.appVersion.indexOf("MSIE")!=-1){$(objecte).hide('');}
			else {$(objecte).slideUp('slow');}
		},
		
		paisResidenciaChanged: function(selectedItem) {
			var paisos = $('#pais_residencia_sel option').size();
			if (paisos)
			{
				if (selectedItem != null && selectedItem.val() <= 3) {
					$('#parroquia_residencia_div').show();

					$("select[@name=parroquia_residencia_sel_src]").empty();
					
					var html = '';
					$('#pais_residencia_sel option').each(function(i) {
						if (selectedItem != null && selectedItem.val() <= 3) {
							if ($(this).val() == 1) {
								html+= "Parr&ograve;quia / ";
							} else if ($(this).val() == 2) {
								html+= "Prov&iacute;ncia / ";
							} else if ($(this).val() == 3) {
								html+= "Departament / ";
							}
							if ($(this).val() <= 3) {
								$.updateParroquia($(this));
							}
						}
					});
					html = html.substr(0, html.length - 3);
					$("label[@for=parroquia_residencia_sel_search]").html(html);
				}

			}
			else
			{
				$("select[@name=parroquia_residencia_sel_src]").empty();
			}
			if ($("select[@name=parroquia_residencia_sel_src] option").size() == 0 & $("#parroquia_residencia_sel option").size() == 0) {
				$('#parroquia_residencia_div').hide();
				$('#localitat_residencia_div').hide();
			}
			if ($("select[@name=localitat_residencia_sel_src] option").size() == 0 & $("#localitat_residencia_sel option").size() == 0) {
				$('#localitat_residencia_div').hide();
			}
		},
		
		paisResidenciaRemoved: function(selectedItem) {
			var paisId = selectedItem.val();
			if (paisId <= 3) {
				// cal eliminar totes les provincies del pais eliminat
				$("#parroquia_residencia_sel option").each(function() {
					var aVal = $(this).val().split("-");
					var pId = aVal[0];
					if (paisId == pId) {
						// eliminar de la llista
						$.parroquiaRemoved($(this));
						$(this).remove();
					}
				});
				// i actualitzar la llista de provincies
				$.parroquiaChanged(selectedItem);
				
				if ($("select[@name=parroquia_residencia_sel_src] option").size() == 0 & $("#parroquia_residencia_sel option").size() == 0) {
					$('#parroquia_residencia_div').hide();
					$('#localitat_residencia_div').hide();
				}
				if ($("select[@name=localitat_residencia_sel_src] option").size() == 0 & $("#localitat_residencia_sel option").size() == 0) {
					$('#localitat_residencia_div').hide();
				}
			}
		},
		
		getPaisos: function() {
			return globals.ajaxGet('ajax_getPaisos');
		},
		
		getAutoritzacionsTreball: function() {
			return globals.ajaxGet('ajax_getAutoritzacionsTreball', true);
		},
		
		getPermisosConduir: function() {
			return globals.ajaxGet('ajax_getPermisosConduir', true);
		},
		
		getSistemesEducatius: function() {
			return globals.ajaxGet('ajax_getSistemesEducatius', true);
		},
		
		getTerminisIncorporacio: function() {
			return globals.ajaxGet('ajax_getTerminisIncorporacio', true);
		},

		getHorarisPreferents: function() {
			return globals.ajaxGet('ajax_getHorarisPreferentsMenysIndiferent', true);
		},

		getNivellsEstudi: function() {
			return globals.ajaxGet('ajax_getNivellsEstudi', true);
		},

		parroquiaChanged: function(selectedItem) {
			var val = selectedItem.val();
			var arrVal = val.split("-");
			var paisId = arrVal[0];
			if (paisId == 2) { // no mostrar localitats per andorra ni frança
				$('#localitat_residencia_div').show();
				$.updateLocalitats();
			}
		},
		
		updateLocalitats: function() {
			$("select[@name=localitat_residencia_sel_src]").empty();
			$('#parroquia_residencia_sel option').each(function(i) {

				// el format es pais-provincia
				var val = $(this).val();
				var arrVal = val.split("-");
				var paisId = arrVal[0];
				if (paisId == 2) { // no mostrar localitats per andorra
					var parroquiaId = arrVal[1];
					
					var data = "parroquiaid="+parroquiaId;
					var nomProvincia;
					$.ajax({
						type: "POST",
						url: siteRoot + "master.php?page=ajax_getProvincia",
						data: data,
						async: false,
						success: function(msg) {
							//alert (msg);
							var json = eval('(' + msg + ')');
							var result = json.result;
							nomProvincia = result[1];
						}
					});
					
					html = "<option value=''>- - - - - " + nomProvincia + " - - - - -</option>";
					
					var data = "parroquiaid="+parroquiaId;
					$.ajax({
						type: "POST",
						url: siteRoot + "master.php?page=ajax_getLocalitats",
						data: data,
						async: false,
						success: function(msg) {
							//alert (msg);
							var json = eval('(' + msg + ')');
							var result = json.result;
							//var html = "";
							for (var i=0;i<result.length;i++) {
								values = result[i];
								// no afegir si ja està seleccionada
								var found = false;
								$('#localitat_residencia_sel option').each(function(i) {
									var aVal = $(this).val().split("-");
									var localitatId = aVal[2];
									if (localitatId == values[0]) {
										found = true;
									}
								});
								if (!found) {
									html+= "<option value='"+val+"-"+values[0]+"'>"+values[1]+"</option>";
								}
							}
							$("select[@name=localitat_residencia_sel_src]").append(html);
						}
					});
				}
				if ($("select[@name=localitat_residencia_sel_src] option").size() == 0 & $("#localitat_residencia_sel option").size() == 0) {
					$('#localitat_residencia_div').hide();
				}
			});

		},
		
		parroquiaRemoved: function(selectedItem) {
			// cal eliminar totes les localitats de la parroquia eliminada
			var val = selectedItem.val();
			var arrVal = val.split("-");
			var parroquiaId = arrVal[1];
			$("#localitat_residencia_sel option").each(function() {
				var aVal = $(this).val().split("-");
				var pId = aVal[1];
				if (parroquiaId == pId) {
					// eliminar de la llista
					$(this).remove();
				}
			});
			if ($("select[@name=localitat_residencia_sel_src] option").size() == 0 & $("#localitat_residencia_sel option").size() == 0) {
				$('#localitat_residencia_div').hide();
			}
		},
		
		parroquiaSortRemove: function() {
			$("select[@name=parroquia_residencia_sel_src]").empty();
			
			$('#pais_residencia_sel option').each(function(i) {
				$.updateParroquia($(this));
			});
		},
		
		updateParroquia: function(pais) {
			var paisId = pais.val();
			if (paisId <= 3) {
				html = "<option value=''>- - - - - " + pais.html() + " - - - - -</option>";
				var data = "paisid="+paisId;
				$.ajax({
					url: siteRoot + "master.php?page=ajax_getProvincies",
					type: "POST",
					data: data,
					async: false,
					success: function(msg) {
						//alert (msg);
						var json = eval('(' + msg + ')');
						var result = json.result;
						for (var i=0;i<result.length;i++) {
							values = result[i];
							// no afegir si ja està seleccionada
							var found = false;
							$('#parroquia_residencia_sel option').each(function(i) {
								var aVal = $(this).val().split("-");
								var parroquiaId = aVal[1];
								if (parroquiaId == values[0]) {
									found = true;
								}
							});
							if (!found) {
								html+= "<option value='"+paisId+"-"+values[0]+"'>"+values[1]+"</option>";
							}
						}
						// TODO: accedir a aquest element mitjançant decorated ja que es un nom intern
						$("select[@name=parroquia_residencia_sel_src]").append(html);
					}
				});
			}
		},
		
		localitatSortRemove: function() {
			$.updateLocalitats();
		},

		/*
		paisNacionalitatChanged: function() {
			$.itemChanged($("#nacionalitat_sel option"), $(".lab_nacionalitat"), "Totes les nacionalitats");
		},
		
		permisConduirChanged: function() {
			$.itemChanged($("#permis_sel option"), $(".lab_permis"), "Qualsevol permís de conduïr");
		},
		
		autoritzacioTreballChanged: function() {
			$.itemChanged($("#autoritzacio_sel option"), $(".lab_autoritzacio"), "Qualsevol autorització");
		},

		terminiIncorporacioChanged: function() {
			$.itemChanged($("#dedicacio_sel option"), $(".lab_incorporacio"), "Qualsevol termini");
		},

		horariPreferentChanged: function() {
			$.itemChanged($("#dedicacio_sel option"), $(".lab_dedicacio"), "Qualsevol dedicació");
		},

		itemChanged: function(option, label, defaultText) {
			var items = option.size();
			var txt = '';
			if (items)
			{
				option.each(function(i) {
					if (i != 0 & i < 3) {
						txt+= ', ';
					}
					if (i < 3) {
						txt+= $(this).text();
					}
				});
				if (items > 3) {
					txt+= ' ...';
				}
			}
			else
			{
				txt = defaultText;
			}
			label.html(txt);
		},
		
		edatChanged: function() {
			txt = "Entre " + $("#edat_desde").val() + " i " + $("#edat_fins").val() + " anys";
			$(".lab_edat").html(txt);
		},
		
		sexeChanged: function() {
			if ($("input.sexe:checked").val() == 1) {
				$(".lab_sexe").html("femení");
			} else if ($("input.sexe:checked").val() == 2) {
				$(".lab_sexe").html("masculí");
			} else {
				$(".lab_sexe").html("Indiferent");
			}
		},
		*/
		
		sistemaEducatiuChanged: function(selectedItem) {
			var sistemesEducatius = $('#sistema_sel option').size();
			if (sistemesEducatius)
			{
				if (selectedItem != null && selectedItem.val() <= 3) {
					$('#estudis_div').show();

					$("select[@name=estudis_sel_src]").empty();
				}
				$('#sistema_sel option').each(function(i) {
					if (selectedItem != null && selectedItem.val() <= 3) {
						if ($(this).val() <= 3) {
							$.updateEstudi($(this));
						}
					}
				});
			}
			else
			{
				$("select[@name=estudis_sel_src]").empty();
			}
			if ($("select[@name=estudis_sel_src] option").size() == 0 & $("#estudis_sel option").size() == 0) {
				$('#estudis_div').hide();
				$('#titulacio_div').hide();
			}
			if ($("select[@name=titulacio_sel_src] option").size() == 0 & $("#titulacio_sel option").size() == 0) {
				$('#titulacio_div').hide();
			}
		},
		
		updateEstudi: function (sistemaEducatiu) {
			// la llista d'estudis es te que actualitzar al canviar el sistema educatiu o 
			// el nivell d'estudis
			var sistemaEducatiuId = sistemaEducatiu.val();
			html = "<option value=''>- - - - - " + sistemaEducatiu.html() + " - - - - -</option>";

			var data = "sistemaEducatiuid="+sistemaEducatiuId+"&";
			$("#nivell_estudi_sel option").each(function() {
				data+= "nivellsEstudiId[]="+$(this).val()+"&";
			});
			data = data.substr(0,data.length-1);

			//if ($("input[@name=idioma]").val() != "") {
			//	data+= "&idioma="+$("input[@name=idioma]").val();
			//}
			
			$.ajax({
				url: siteRoot + "master.php?page=ajax_getEstudisAcademicsByNivellEstudi",
				type: "POST",
				data: data,
				async: false,
				success: function(msg) {
					//alert (msg);
					var json = eval('(' + msg + ')');
					var result = json.result;
					//html= "";
					for (var i=0;i<result.length;i++) {
						values = result[i];
						// no afegir si ja està seleccionada
						var found = false;
						$('#estudis_sel option').each(function(i) {
							var aVal = $(this).val().split("-");
							var estudiId = aVal[1];
							if (estudiId == values[0]) {
								found = true;
							}
						});
						if (!found) {
							html+= "<option value='"+sistemaEducatiuId+"-"+values[0]+"'>"+values[1]+"</option>";
						}
					}
					// TODO: accedir a aquest element mitjançant decorated ja que es un nom intern
					$("select[@name=estudis_sel_src]").append(html);
				}
			});
		},
		
		sistemaEducatiuRemoved: function(selectedItem) {
			var sistemaEducatiuId = selectedItem.val();
			if (sistemaEducatiuId <= 3) {
				if ($("select[@name=titulacio_sel_src] option").size() != 0) {
					// cal eliminar tots els estudis del sistema eliminat
					$("#estudis_sel option").each(function() {
						var aVal = $(this).val().split("-");
						var sId = aVal[0];
						if (sistemaEducatiuId == sId) {
							// eliminar de la llista
							$.estudiRemoved($(this));
							$(this).remove();
						}
					});
					// i actualitzar la llista de estudis
					$.estudiChanged();
				}
			}
		},
		
		estudiChanged: function() {
			$('#titulacio_div').show();
			$.updateTitulacio();
			if ($("select[@name=titulacio_sel_src] option").size() == 0 & $("#titulacio_sel option").size() == 0) {
				$('#titulacio_div').hide();
			}
		},
		
		updateTitulacio: function() {
			$("select[@name=titulacio_sel_src]").empty();
			$('#estudis_sel option').each(function(i) {

				//if ($("input[@name=idioma]").val() != "") {
				//	data+= "&idioma="+$("input[@name=idioma]").val();
				//}

				var nomSistemaEducatiu;

				// el format es sistema-estudi
				var val = $(this).val();
				var arrVal = val.split("-");
				var sistemaEducatiuId = arrVal[0];
				var estudiId = arrVal[1];

				var data = "sistemaEducatiuid="+sistemaEducatiuId;
				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=ajax_getSistemaEducatiu",
					data: data,
					async: false,
					success: function(msg) {
						//alert (msg);
						var json = eval('(' + msg + ')');
						var result = json.result;
						var sistemaEducatiu = result[0];
						nomSistemaEducatiu = result[1];
						//var html = "";
					}
				});
				
				html = "<option value=''>- - - - - " + $(this).html() + " (" + nomSistemaEducatiu + ")" + " - - - - -</option>";

				var data = "sistemaEducatiuid="+val+"&estudiAcademicid="+estudiId;
				
				//if ($("input[@name=idioma]").val() != "") {
				//	data+= "&idioma="+$("input[@name=idioma]").val();
				//}

				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=ajax_getTitulacions",
					data: data,
					async: false,
					success: function(msg) {
						//alert (msg);
						var json = eval('(' + msg + ')');
						var result = json.result;
						//var html = "";
						for (var i=0;i<result.length;i++) {
							values = result[i];
							// no afegir si ja està seleccionada
							var found = false;
							$('#titulacio_sel option').each(function(i) {
								var aVal = $(this).val().split("-");
								var titulacioId = aVal[2];
								if (titulacioId == values[0]) {
									found = true;
								}
							});
							if (!found) {
								html+= "<option value='"+val+"-"+values[0]+"'>"+values[1]+"</option>";
							}
						}
						$("select[@name=titulacio_sel_src]").append(html);
					}
				});
			});
		},
		
		estudiRemoved: function(selectedItem) {
			// cal eliminar totes les titulacions del estudi eliminat
			var val = selectedItem.val();
			var arrVal = val.split("-");
			var estudiId = arrVal[1];
			$("#titulacio_sel option").each(function() {
				var aVal = $(this).val().split("-");
				var eId = aVal[1];
				if (estudiId == eId) {
					// eliminar de la llista
					$(this).remove();
				}
			});
		},

		estudiSortRemove: function() {
			$("select[@name=estudis_sel_src]").empty();
			
			$('#sistema_sel option').each(function(i) {
				$.updateEstudi($(this));
			});
		},
		
		titulacioSortRemove: function() {
			$("select[@name=titulacio_sel_src]").empty();
			
			$.updateTitulacio();
		},
		
		nivellEstudiChanged: function(selectedItem) {
			var nivellsEstudi = $('#nivell_estudi_sel option').size();
			if (nivellsEstudi) {
				$('#sistema_div').show();
				$("select[@name=estudis_sel_src]").empty();
				
				$('#sistema_sel option').each(function(i) {
					$.updateEstudi($(this));
				});
			} else {
				if ($("#nivell_estudi_sel option").size() == 0) {
					$("select[@name=estudis_sel_src]").empty();
					$("#estudis_div").hide();
					$("#estudis_sel").empty();

					$("#sistema_sel").empty();
					
					$.sistemaSortRemove();
					
					$("#titulacio_div").hide();
					$("#titulacio_sel").empty();
				}
			}
		},
		
		sistemaSortRemove: function() {
			var arrList = new Array($.sistemesEducatius);
			globals.sortRemove(arrList, $.getSistemesEducatius, $("select[@name=sistema_sel_src]"), $('#sistema_sel'));
			$.sistemesEducatius = arrList[0];
		},
		
		nivellEstudiRemoved: function(selectedItem) {
			if ($("#nivell_estudi_sel option").size() == 0) {
				$("#sistema_div").hide();
			}
		},
		
		calculCost: function() {
			if ($("input.candidat:checked").size() > 0) {
				var num_cvs = $("input.candidat:checked").size();
				$("input#num_cvs").val(num_cvs);
				var escollits = "can_";
				$("input.candidat:checked").each(function() {
					escollits+= $(this).val() + "_";
				});
				$("input#escollits").val(escollits);
				var data = "numcvs="+num_cvs+"&numcriteris="+$("input#criterisSeleccionats").val();
				$.ajax({
					type: "POST",
					url: siteRoot + "master.php?page=ajax_calculCostDescarrega",
					data: data,
					success: function(msg) {
						//alert (msg);
						var json = eval('(' + msg + ')');
						var result = json.result;
						$("span#cost").html(result);
						$("input#cvs_compra").val(result);
					}
				});
				$("input#descarregar").attr("disabled", "");
			} else {
				$("span#cost").html("0");
				$("input#cvs_compra").val(0);
				$("input#descarregar").attr("disabled", "disabled");
				$("input#num_cvs").val(0);
			}
		}
	}, buscadorFn);
	
	$.extend($buscador);
	
	$.init();
	
	$("input.experiencia").bind("click",function() {
		$.statusExperiencia($(this).val());
	});	
	
	/*
	$('select.edat').bind("change", function() {
		$.edatChanged();
	});
	*/
	
	$('input.sexe').bind("click", function() {
		if ($(this).val() == 1) { // femení
			$("#masculi").check('off');
		} else {
			$("#femeni").check('off');
		}
		//$.sexeChanged();
	});
	
	$("#nova_recerca").livequery("click",function() {
		$("#buscarLloc").show();
		return false;
	});
	
	$("#buscarLlocs").bind("click",function() {
		$.buscaLlocs();
		return false;
	});
	
	$("#seleccionarLloc").livequery("click",function() {
		$.seleccionarLloc();
		return false;
	});
	
	$("#validarSector").bind("click",function() {
		$.validarSector();
		return false;
	});
	
	$("a#veureTots").bind("click",function() {
		var html = "<input type='hidden' name='tots' value='1' />";
		$("form#form").append(html);
		$("form#form").submit();
		return false;
	});
	
	$("a#modificarCriteris").bind("click",function() {
		$.scrollTo( $('#criteris'), {speed:1500} );
		$("form#form").show();
		return false;
	});
	
	$("button#recerca_directa").bind("click",function() {
		location.href = siteRoot + "master.php?page=buscadorSeleccioLloc";
		return false;
	});
	
	$("a#buscar").bind("click",function() {
		$("form#form").submit();
		return false;
	});
	
	$("input.candidat").bind("click",function() {
		$.calculCost();
	});
	
	$("input[@name=seleccionarTots]").bind("click",function() {
		var check = this.checked;
		$("input.candidat").each(function() {
			this.checked = check;
		});
		$.calculCost();
	});
	
	$("#altra_recerca").livequery("click",function() {
		$("#llistaLlocsTreball").hide();
		$("#buscarLloc").show();
		$("input#llocTreballTexte").val("");
		return false;
	});

	$('#check_personals').click(function() {if (this.checked) {$.mostra('#personals')} else {$.amaga('#personals')}});
	$('#check_formacio').click(function() {if (this.checked) {$.mostra('#formacio')} else {$.amaga('#formacio')}});
	$('#check_professio').click(function() {if (this.checked) {$.mostra('#professio')} else {$.amaga('#professio')}});
	$('#check_altres').click(function() {if (this.checked) {$.mostra('#altres')} else {$.amaga('#altres')}});
}

function form_cand() {
	$("#acces_formulari button").bind("click",function() {
		location.href = siteRoot + "master.php?page=formCandidatPas1&idioma=" + $("input[@name=idioma]").val();
	});
}

function infoAlta() {
	$("button").bind("click",function() {
		location.href = siteRoot + "master.php?page=formCandidatPas2&idioma=" + $("input[@name=idioma]").val() + "#personals";
	});
}

function candidaturesRebudes() {
	$("div.eliminar a").bind("click",function() {
		return confirm ("Esteu segur de voler eliminar aquesta candidatura?");
	});
}

function dadesCandidat() {
	$("a.editar").bind("click", function() {
		var fila = $(this).parents(".fila");
		if (fila.children("fieldset.editar_estudis").is(".editar_estudis")) {
			// editar estudis
			fila.children("fieldset.editar_estudis").show();
		} else if (fila.children("fieldset.editar_experiencies").is(".editar_experiencies")) {
			fila.children("fieldset.editar_experiencies").show();
		}
		return false;
	});
	
	$("a.cancelar").bind("click", function() {
		var fila = $(this).parents(".fila");
		if (fila.children("fieldset.editar_estudis").is(".editar_estudis")) {
			fila.children("fieldset.editar_estudis").hide();
		} else if (fila.children("fieldset.editar_experiencies").is(".editar_experiencies")) {
			fila.children("fieldset.editar_experiencies").hide();
		}
		return false;
	});
}

function home() {
	$("div.tab:first").show();
	
	$("ul#canals > li > a").bind("click", function() {
		//$("div.tab").hide({ fxFade: true, fxSpeed: 'fast' });
		//$("div"+$(this).attr('href')).show({ fxFade: true, fxSpeed: 'fast' });
		
		//$("span#titol_canal").html($(this).html());
		var num_ofertes_canal = "0";
		if ($("div"+$(this).attr('href')+" a").size() != 0) {
			num_ofertes_canal = $("div"+$(this).attr('href')+" a").size();
			if ($("div"+$(this).attr('href')+" a").size() == 1) {
				$("span#literal_ofertes").html(labels["Oferta de treball"]);
			} else {
				$("span#literal_ofertes").html(labels["Ofertes de treball"]);
			}
		} else {
			$("span#literal_ofertes").html(labels["Ofertes de treball"]);
		}
		$("span#num_ofertes_canal").html(num_ofertes_canal);
		
		$("ul#canals li").removeClass('selected');
		$(this).parent('li').addClass('selected');
		$("div.tab").hide();
		$("div"+$(this).attr('href')).show();
		/*
		$("div.tab").fadeOut('fast');
		$("div"+$(this).attr('href')).fadeIn('fast');
		*/
		
		return false;
	})
;}

/* ----------------------------------- */
/* Helpers                             */
/* ----------------------------------- */
$.fn.check = function(mode) {
	var mode = mode || 'on'; // if mode is undefined, use 'on' as default
	return this.each(function() {
		switch(mode) {
		case 'on':
			this.checked = true;
			break;
		case 'off':
			this.checked = false;
			break;
		case 'toggle':
			this.checked = !this.checked;
			break;
		}
	});
};

$.fn.index = function() {
	if ($(this).parents("#llistat_estudis").is("#llistat_estudis")) {
		return $(this).attr('id').substring(11);
	} else if ($(this).parents("#llistat_experiencies").is("#llistat_experiencies")) {
		return $(this).attr('id').substring(16);
	} else if ($(this).parents("#llistat_referencies").is("#llistat_referencies")) {
		return $(this).attr('id').substring(15);
	} else {
		return null;
	}
}

/* ----------------------------------- */
/* Funcions de validació del formulari */
/* ----------------------------------- */
$.fn.mandatory = function(name, visible) {
	if (visible == null) visible = false;
	
	if ($(this).size() == 1) {
		if ($(this).is("input[@type='text']") | $(this).is("select") | $(this).is("input[@type='password']")) {
			if ($(this).val() == "") {
				$(this).formError(name + labels["a_ és obligatori"], visible);
				return false;
			} else {
				$(this).formClearError();
			}
		} else if ($(this).is("input[@type='checkbox']") | $(this).is("input[@type='radio']")) {
			if (!$(this).is(":checked")) {
				$(this).formError(name + labels["a_ és obligatori"], visible);
				return false;
			} else {
				$(this).formClearError();
			}
		}
	} else {
		// es un array. Un dels camps de la llista te que ser obligatori
		var field;
		var ret = false;
		$(this).each(function(i) {
			if (i == 0) field = $(this);
			if ($(this).is("input[@type='text']") | $(this).is("select") | $(this).is("input[@type='password']")) {
				if ($(this).val() != "") {
					$(this).formClearError();
					ret = true;
				}
			} else if ($(this).is("input[@type='checkbox']") | $(this).is("input[@type='radio']")) {
				if ($(this).is(":checked")) {
					$(this).formClearError();
					ret = true;
				}
			}
		});
		if (!ret) {
			field.formError(name + labels["a_ és obligatori"], visible);
			return false;
		}
	}
	
	return true;
}

$.fn.formError = function(msg, visible) {
	if (visible == null) visible = false;
	
	if (!visible) {
		$(this).parents("fieldset").show();
	}
	$(this).parents(".row:first").addClass("mandatory");
	alert(msg);
	$(this).focus();
}

$.fn.formClearError = function () {
	$(this).parents(".row:first").removeClass("mandatory");
}

$.fn.validateEmail = function(mandatory, visible) {
	if (mandatory == null) mandatory = false;
	if (visible == null) visible = false;
	
	var email = $(this).val();
	if (!mandatory && email == "") {
		$(this).formClearError();
		return true;
	}
	
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!email.match(emailRegEx)) {
		$(this).formError(labels["a_Adreça email no vàlida"], visible);
		return false;
	} else {
		$(this).formClearError();
	}
	return true;
}

$.fn.validateNumber = function(name, mandatory, visible) {
	if (mandatory == null) mandatory = false;
	if (visible == null) visible = false;

	var number = $(this).val();
	if (!mandatory && number == "") {
		$(this).formClearError();
		return true;
	}
	
	var numberRegEx = /^\d+$/;
	if (!number.match(numberRegEx)) {
		$(this).formError(name + labels["a_ no vàlid"], visible);
		return false;
	} else {
		$(this).formClearError();
	}
	return true;
}

$.fn.getCandidatIdByEmail = function() {
	var id;
	var data = "email="+$(this).val();
	$.ajax({
		type: "POST",
		url: siteRoot + "master.php?page=ajax_getCandidatByEmail",
		data: data,
		async: false,
		success: function(msg) {
			//alert (msg);
			var json = eval('(' + msg + ')');
			id = json.result;
		}
	});
	
	return id;
}

$.fn.validateDate = function(date, name, visible) {
	if (visible == null) visible = false;
	
	var checkstr = "0123456789";
	var Datevalue = "";
	var DateTemp = "";
	var separator = "/";
	var day ="";
	var month ="";
	var year = "";
	var leap = 0;
	var err = 0;
	var i;
	err = 0;
	
	var datevalue = date;       /* sets the content of the field for valuation */
	/* Delete all chars except 0..9 */
	for (i = 0; i < datevalue.length; i++) {
		if (checkstr.indexOf(datevalue.substr(i,1)) >= 0) {
			DateTemp = DateTemp + datevalue.substr(i,1);
		}
	}
	datevalue = DateTemp;
	/* Always change date to 8 digits - string*/
	/* if year is entered as 2-digit / always assume 20xx */
	if (datevalue.length == 6) {
	  datevalue = datevalue.substr(0,4) + '20' + datevalue.substr(4,2); 
	}
	if (datevalue.length != 8) {
	  err = 19;
	}
	/* year is wrong if year = 0000 */
	year = datevalue.substr(4,4);
	if (year == 0) {
	  err = 20;
	}
	/* Validation of month*/
	month = datevalue.substr(2,2);
	if ((month < 1) || (month > 12)) {
	  err = 21;
	}
	/* Validation of day*/
	day = datevalue.substr(0,2);
	if (day < 1) {
	 err = 22;
	}
	/* Validation leap-year / february / day */
	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
	  leap = 1;
	}
	if ((month == 2) && (leap == 1) && (day > 29)) {
	  err = 23;
	}
	if ((month == 2) && (leap != 1) && (day > 28)) {
	  err = 24;
	}
	/* Validation of other months */
	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
	  err = 25;
	}
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
	  err = 26;
	}
	
	if (err == 0) {
	  $(this).formClearError();
	} else {
		$(this).formError(name + labels["a_ no vàlida"], visible);
	}
	
	return (err == 0);
}

$.fn.validateDateRange = function(date, dateInf, dateSup, msg, visible) {
	var error = false;
	if ((dateInf != null) && (date < dateInf)) error = true;
	if ((dateSup != null) && (date > dateSup)) error = true;
	
	if (error) {
		$(this).formError(msg, visible);
		return false;
	} else {
		$(this).formClearError();
	}
	
	return true;
}

$.fn.validateExtension = function() {
	var error = false;
	
	if ($(this).val() != "") {
		var dot = $(this).val().lastIndexOf("."); 
		if( dot == -1 ) {
			error = true;
		} else {
			if ($(this).val().length > dot + 1) {
				var extension = $(this).val().substr(dot+1,$(this).val().length);
				if ($.allowedExtension.indexOf(extension) == -1) {
					error = true;
				}
			} else {
				error = true;
			}
		}
	}

	if (error) {
		var msg = labels["Tipus de fitxer no reconegut per l'aplicació"]+".\n\n"+labels["Els tipus reconeguts son"]+":\n";
		for (var i=0;i<$.allowedExtension.length;i++) {
			msg+= "- "+$.allowedExtension[i]+"\n";
		}
		msg = msg.substr(0,msg.length-1);
		$(this).formError(msg, false);
		return false;
	} else {
		$(this).formClearError();
	}

	return true;
}
