function regularFileName(fn){
	remplazar = [['áàâãªä@ÂÁÀÃÄ','a'],['éèêëÉÈÊË','e'],['íìîïÍÌÎÏ','i'],['óòôõºöÓÒÔÕÖ','o'],['úùûüÚÙÛÜ','u'],['çÇ','c'],['ñÑ','n'],['ýÿÝ','y']];
	for(i=0;i<remplazar.length;i++){
		//RegeExp no soporta UTF8 tiene que hacerse con eval
		//Tienes que hacerse con el caracter | y no [] porque utf rompe la expresion  regular
		fn = fn.replace(eval('/'+remplazar[i][0].split('').join('|')+'/'),remplazar[i][1]);
	}
	fn = fn.replace(/[^a-zA-Z0-9]/g,'_');
	fn = fn.replace(/_+/,'_');
	fn = fn.toLowerCase();
	fn = fn.substr(0,32);
	return fn;
}
function updateUbicacion(idActual,idActualText,form_id, lista, nivel, selecciona){
	var combo = $(form_id+'_select');	
	var inicioUl = '';
	if(form_id=='encontrar'){
		var form_busqueda = 'depa';
	}else{
		var form_busqueda = 'roomie'
	}
	if(idActual != ''){
		document.getElementById(form_id).action = '/'+Traduccion.get('buscar_js_url')+'/'+document.getElementById(form_id+'Hidden').value+'/'+regularFileName(idActualText)+'-'+idActual+'/';
		document.getElementById('UbicacionId'+form_id).value = idActual;
		new Ajax.Request('/ubicaciones/dropdown/'+idActual+'/',{
			onLoading:function(){$('indicator_'+form_id).show()},
			onComplete:function(rtrn){
				$('indicator_'+form_id).hide();
				eval('var r = '+rtrn.responseText+';');
				if(!r['isLeaf']){
					if(nivel!=null){
						lista.seleccion[nivel] = [idActual, idActualText];
						for(var i=nivel+1;i<lista.nivel;i++){
							lista.seleccion[i]=null;
						}
						lista.nivel = nivel;
					}else{
						lista.seleccion[lista.nivel] = [idActual, idActualText];
					}
					var ruta = ''; 
					var path = '';
					for(var etiqueta in lista.seleccion){
						
						if(lista.seleccion[etiqueta]){
								ruta +='<a href="#" class="ubicacion_'+form_id+'" onclick="updateUbicacion(\''+lista.seleccion[etiqueta][0]+"','"+lista.seleccion[etiqueta][1]+"','"+form_id+"',ubicaciones_"+form_id+', '+etiqueta+');">'+lista.seleccion[etiqueta][1]+'</a> - ';	
							
							path += lista.seleccion[etiqueta][0]+",";
						}
						
					}
					$('ruta_'+form_id).innerHTML = ruta;
				
					
						combo.innerHTML = '';
					/*while(combo.length>0){
						combo.remove(0);	
					}*/
					var reg = false;
					for(var key in r['data']){
						if(key.match(/^R_([0-9]+)$/)){
							//opcion = combo.add('Ricardo');
							if(!reg){
								var newGroup=document.createElement('optgroup');
								newGroup.label=Traduccion.get('region');
								reg = true;
							}
							var opcion=document.createElement('option');
							opcion.value=key;
							opcion.appendChild(document.createTextNode(r['data'][key]));
							newGroup.appendChild(opcion);
						}else{
							if(reg){
								combo.appendChild(newGroup);
								reg = false;
							}
							//opcion = new Option(Traduccion.get(r['data'][key]),key);
							var opcion=document.createElement('option');
							opcion.value=key;								
							opcion.appendChild(document.createTextNode(Traduccion.get(r['data'][key])));
							combo.appendChild(opcion);							
							
						}
						//alert(key);
						if(selecciona!=''){
							if(selecciona==key){
								opcion.selected = true;
							}
						}
						//combo.options[combo.length] = opcion;
						
						
					}
					document.getElementById('Path'+form_id).value = path;
					lista.nivel++;
				}else{
					var path = '';
					for(var etiqueta in lista.seleccion){
						path += lista.seleccion[etiqueta][0]+",";
					}
					document.getElementById('Path'+form_id).value = path+idActual;
					//alert(lista.seleccion.length);
					//lista.seleccion[lista.nivel] =[idActual, idActualText];
					//lista.nivel = lista.nivel+1;
					/*var ubicacion = document.createElement('input');
					ubicacion.type = 'hidden';
					ubicacion.id = 'UbicacionId';
					ubicacion.name = 'data[Ubicacion][id]';
					ubicacion.value = idActual;
					div.appendChild(ubicacion);*/
				}
			}
		});
	}
}