function borrarArchivo(archivo,enlace,tipo,raiz){ 
	if (!confirm("¿Desea borrar el archivo "+enlace+"?"))
		return false;
	var contenedor; 
	contenedor = document.getElementById('contadjunto' + archivo);
	ajax=nuevoAjax();
	ajax.open("GET", raiz + "includes/borrar_archivo_" + tipo + ".php?archivo=" + archivo + "&rand=" + parseInt(Math.random()*99999999),true); 
	ajax.onreadystatechange=function() { 
		if (ajax.readyState==4) { 
		   contenedor.innerHTML = ajax.responseText 
		} 
	} 
	ajax.send(null) 
} 
function actualizarArchivosAdjuntos(proyecto,raiz){ 
	var contenedor; 
	contenedor = parent.window.document.getElementById('conadjuntos');
	ajax=nuevoAjax();
	ajax.open("GET", raiz + "includes/archivos_adjuntos.php?proyecto=" + proyecto,true); 
	ajax.onreadystatechange=function() { 
		if (ajax.readyState==4) { 
		   contenedor.innerHTML = ajax.responseText 
		} 
	} 
	ajax.send(null) 
} 
function actualizarArchivosAdjuntosOferta(proyecto,usuario,raiz){ 
	var contenedor; 
	contenedor = parent.window.document.getElementById('conadjuntos');
	ajax=nuevoAjax();
	ajax.open("GET", raiz + "includes/archivos_adjuntos_oferta.php?proyecto=" + proyecto + "&usuario=" + usuario,true); 
	ajax.onreadystatechange=function() { 
		if (ajax.readyState==4) { 
		   contenedor.innerHTML = ajax.responseText 
		} 
	} 
	ajax.send(null) 
} 
	
function enviarCorreo(proceso,selector,raiz,capa){
//alert (proceso);
//alert(capa);
	var contenedor;
	contenedor = document.getElementById(capa);
	if (proceso=="contactar"){
		var d1='';
		captcha = document.fcorreo.captchacodecheck.value;
		txtcorreo = document.fcorreo.body.value;
	  	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.fcorreo.email.value))){ 
			alert("La direccion de email es incorrecta.");
			document.fcorreo.email.select();		
			return (false);
		}
		if (txtcorreo==""){
			alert("El mensaje está vacio.");
			return false;
		}
		d1=txtcorreo;
	}
	ajax=nuevoAjax(); 
	ajax.onreadystatechange=function() { 
		if (ajax.readyState==4) { 
				contenedor.innerHTML = ajax.responseText;
		} 
	} 
	ajax.open("POST", raiz + "includes/" + proceso + ".php",true); 	
	ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');	
	if (proceso=="contactar"){
//	alert("capa=" + capa + "&selector=" + selector + "&asunto=" + document.fcorreo.asunto.value + "&nombre=" + document.fcorreo.nombre.value + "&empresa=" + document.fcorreo.empresa.value + "&email=" + document.fcorreo.email.value + "&captchacodecheck=" + captcha + "&d1=" + d1);
	 ajax.send("capa=" + capa + "&selector=" + selector + "&asunto=" + document.fcorreo.asunto.value + "&nombre=" + document.fcorreo.nombre.value + "&empresa=" + document.fcorreo.empresa.value + "&email=" + document.fcorreo.email.value + "&captchacodecheck=" + captcha + "&d1=" + d1 + "&rand=" + parseInt(Math.random()*99999999))
	}else {
	ajax.send("capa=" + capa + "&selector=" + selector)	
	}
}

function procesarPregunta(estados,estado,who,proceso,pregunta,email,userem,titulo,raiz){
	var contenedor;
	contenedor = document.getElementById('conpregunta'+pregunta);
	var d1='';
	if (proceso=="enviar_respuesta"){
		txtpregunta = eval("document.fpregunta" + pregunta + ".tpregunta.value");
		if (txtpregunta==""){
			alert("No se puede enviar una respuesta en blanco.");
			return false;
		}
		if ( (/@/.test(txtpregunta)) || (/(msn)/.test(txtpregunta)) || (/(telefono)/.test(txtpregunta)) || (/(teléfono)/.test(txtpregunta))){
			alert("Por favor no introduzca datos de contacto en los textos de las respuestas.");
			return false;
		}
		d1 = txtpregunta;
		cad = txtpregunta.split('\n');
		for (i=0;i<cad.length;i++)
			d1 = d1 + cad[i] + "xxxx";
	}
	ajax=nuevoAjax(); 
	ajax.onreadystatechange=function() { 
		if (ajax.readyState==4) { 
		   contenedor.innerHTML = ajax.responseText 
		} 
	} 
	ajax.open("POST", raiz + "includes/" + proceso + ".php",true); 	
	ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');	
	ajax.send("usuario=" + pregunta + "&titulo=" + titulo + "&email=" + email + "&estados=" + estados + "&estado=" + estado + "&who=" + who + "&userem=" + userem + "&d1=" + d1 + "&rand=" + parseInt(Math.random()*99999999))
}

function procesarScript(estados,estado,who,userem,proyecto,usuario,proceso,email,titulo,raiz){ 
	var contenedor; 
	switch (proceso){
		case "cerrar_form_oferta":
			contenedor = window.opener.document.getElementById('contresp'+proyecto+'-'+usuario); 
			proceso="cancelar_form";
			contenedor2 = document.getElementById('vistapre'); 
			contenedor2.innerHTML="<div id='respuesta'>La oferta se ha enviado el cliente.</div>"
			break;		
		case "form_adjuntar_oferta_nueva":
			proceso="form_adjuntar_oferta";
			contenedor = document.getElementById('vistapre'); 
			break;		
		case "cancelar_form_padre":
			contenedor = window.parent.document.getElementById('contresp'+proyecto+'-'+usuario); 
			proceso="cancelar_form";
			break;
		case "cancelar_form_padre_vistapre":
			contenedor = parent.opener.document.getElementById('contresp'+proyecto+'-'+usuario); 
			proceso="cancelar_form";
			contenedor2 = parent.document.getElementById('vistapre'); 
			contenedor2.innerHTML="<div id='respuesta'>La oferta se ha enviado el cliente.</div>"
			break;		
		case "ver_valoracion":
			contenedor = document.getElementById('contvaloracion'+proyecto); 
			break;
		case "ver_conversacion":
			contenedor = document.getElementById('conversacion'+proyecto+'-'+usuario); 
			break;
		case "bajar_link":
		case "subir_link":
		case "eliminar_nav_link":
			contenedor = document.getElementById('contresp'+proyecto); 
			break;
		default:
//		alert('contresp'+proyecto+'-'+usuario);
			contenedor = document.getElementById('contresp'+proyecto+'-'+usuario); 
	//		alert(contenedor);
	}
	formulario = eval("document.fprocesar" + proyecto + "x" + usuario);
	if (proceso=="invitar" || proceso=="solicitar_servicio" || proceso=="marcar")
		formmarcar = document.fmarcar;
	var d1='';
	var d2='';
	switch (proceso){
		case 'form_servicio':
			d1 = formulario.servicio.options[formulario.servicio.selectedIndex].value; 
			break;
		case 'enviar_comentario':
			txtcomentario = formulario.comentario.value; 
			if ( (/@/.test(txtcomentario)) || (/(msn)/.test(txtcomentario)) || (/(telefono)/.test(txtcomentario)) || (/(teléfono)/.test(txtcomentario))){
				alert("Por favor no introduzcas datos de contacto en los comentarios a la oferta.");
				return false;
			}
			var contenedorcom; 
			contenedorcom = document.getElementById('contcomentarios'); 
			cad = txtcomentario.split('\n');
			for (i=0;i<cad.length;i++)
				d1 = d1 + cad[i] + "xxxx";
			break;
		case 'cerrar_proyecto':
			if (!confirm("¿Desea dar por cerrado el proyecto '" + titulo + "'?"))
				return false;
			break;
		case 'caducar_proyecto':
			if (!confirm("¿Desea enviar a historico el proyecto '" + titulo + "'?"))
				return false;
			proceso="cerrar_proyecto";
			break;
		case 'aceptar_oferta':
			d1 = formulario.precio_acordado.value; 
			if (d1==0){
				alert ("Introduzca el precio acordado");
				return false;
			}
			if (!(/^\d+$/.test(d1))){
				alert ("Introduzca el precio acordado en formato numérico");	
				return false;
			}
			break;
		case 'rechazar_oferta':
			d1 = formulario.rechazo_motivo.options[formulario.rechazo_motivo.selectedIndex].value; 
			d2 = formulario.rechazo_comentarios.value; 
			break;
		case 'rechazar_proyecto':
			d1 = formulario.rechazo_motivo.options[formulario.rechazo_motivo.selectedIndex].value; 
			d2 = formulario.rechazo_comentarios.value; 
			break;
		case 'revocar_oferta':
			d1 = formulario.rechazo_motivo.options[formulario.rechazo_motivo.selectedIndex].value; 
			d2 = formulario.rechazo_comentarios.value; 
			break;
		case 'responder_invitacion':	
			d1 = formulario.rechazo_motivo.options[formulario.rechazo_motivo.selectedIndex].value; 
			d2 = formulario.rechazo_comentarios.value; 
			break;
		case "enviar_pregunta":
			txtpregunta = formulario.tpregunta.value;
			if (txtpregunta==""){
				alert("No se puede enviar una pregunta en blanco.");
				return false;
			}
			if ( (/@/.test(txtpregunta)) || (/(msn)/.test(txtpregunta)) || (/(telefono)/.test(txtpregunta)) || (/(teléfono)/.test(txtpregunta))){
				alert("Por favor no introduzcas datos de contacto en el texto de las preguntas.");
				return false;
			}
			cad = txtpregunta;
			cad = txtpregunta.split('\n');
			for (i=0;i<cad.length;i++)
				d1 = d1 + cad[i] + "xxxx";
			break;
		case "invitar":
			indice=formulario.numproy.value;
			for (i=1;i<=indice;i++){
				if (eval("formulario.marcainv"+i+".checked"))
					d1 = d1 + eval("formulario.marcainv"+i+".id") + ";";
			}
			if (d1==""){
				alert("Seleccione los proyectos a los que que quiere invitar a presupuestar");
				return false;			
			}
			indice=0;
			if (!(/^\d+$/.test(usuario))) indice=formmarcar.numusuarios.value;
			else d2=usuario;
			if (indice!=0){
				for (i=1;i<=indice;i++)
					if (eval("formmarcar.marcar"+i+".checked"))
						d2 = d2 + eval("formmarcar.marcar"+i+".id") + ";";
			}
			if (d2==""){
				alert("Seleccione los profesionales a los que quiere invitar a presupuestar");
				return false;			
			}
			break;
		case "solicitar_servicio":
			indice=formulario.numproy.value;
			for (i=1;i<=indice;i++){
				if (eval("formulario.marcainv"+i+".checked"))
					d1 = d1 + eval("formulario.marcainv"+i+".id") + ";";
			}
			if (d1==""){
				alert("Seleccione los proyectos a los que que quiere invitar a presupuestar");
				return false;			
			}
			indice=0;
			if (!(/^\d+$/.test(usuario))) indice=formmarcar.numserv.value;
			else d2=usuario;
			if (indice!=0){
				for (i=1;i<=indice;i++)
					if (eval("formmarcar.marcar"+i+".checked"))
						d2 = d2 + eval("formmarcar.marcar"+i+".id") + ";";
			}
			if (d2==""){
				alert("Seleccione los servicios que quiere solicitar");
				return false;			
			}
			proceso="invitar";
			break;
		case "reinvitar":
			d1=proyecto;
			d2 = usuario; 
			proceso="invitar";
			break;		
		case "solicitar_servicio_prof":
			d1=proyecto;
			d2 = formulario.servicio.options[formulario.servicio.selectedIndex].value; 
			proceso="invitar";
			break;
		case "marcar":
			indice=0;
			txtpregunta = formulario.tpregunta.value;
			cad = txtpregunta.split('\n');
			for (i=0;i<cad.length;i++)
				d1 = d1 + cad[i] + "xxxx";
			if (proyecto==0){
				if (!(/^\d+$/.test(usuario))) indice=eval("formmarcar." + usuario + ".value");
				else d2=usuario;
			}else{
				if (usuario==0){
					if (!(/^\d+$/.test(proyecto))) indice=eval("formmarcar." + proyecto + ".value");
					else d2=proyecto;
				}else{
					if (!(/^\d+$/.test(usuario))) indice=eval("formmarcar." + usuario + ".value");
					else d2=usuario;
				}
			}
			if (indice!=0){
				for (i=1;i<=indice;i++)
					if (eval("formmarcar.marcar"+i+".checked"))
						d2 = d2 + eval("formmarcar.marcar"+i+".id") + ";";
			}
			if (d2==""){
				alert("Seleccione los profesionales o proyectos que quiere añadir a sus favoritos");
				return false;			
			}
			break;
		case "vista_preliminar":
			if (formulario.precio_text.value==""){
				alert ("No se puede enviar una oferta sin presupuestar. Por favor introduzca el precio.");
				return false;
			}
			if (formulario.plazo_text.value==""){
				alert ("No se puede enviar la oferta sin definir los plazos de entrega de la misma.");
				return false;
			}
			if (formulario.modo_pago_text.value==""){
				alert ("No se puede enviar la oferta sin definir el modo de pago de la misma.");
				return false;
			}
			if (formulario.solucion.value==""){
				alert ("Introduzca la solución");
				formulario.solucion.select();
				return false;
			}
			formulario.action=raiz + "includes/vista_preliminar.php";
//			alert(formulario.action);
			formulario.target="popupWin";
			window.open('about:blank','popupWin','scrollbars,width=790,height=500,toolbar=no,location=no,resizable=no');
			formulario.submit();
			return false;
			break;
	}
	ajax=nuevoAjax(); 
	ajax.onreadystatechange=function() { 
		if (ajax.readyState==4) { 
				if (proceso=='enviar_comentario'){
						coment="";
						cad = txtcomentario.split('\n');
						for (i=0;i<cad.length;i++)
							coment = coment + cad[i] + "<br>";
					contenedorcom.innerHTML =contenedorcom.innerHTML + coment;
				}
//				alert(ajax.responseText);
				contenedor.innerHTML = ajax.responseText;
				if (proceso=="marcar" && indice!=0){
					for (i=1;i<=indice;i++)
						if (eval("formmarcar.marcar"+i+".checked")){
							eval("formmarcar.marcar"+i+".checked=false")
							eval("document.imgmarc"+i+".src='../../images/marcador"+titulo+".gif'");
						}
				}
		} 
	} 
//	alert(raiz + "includes/" + proceso + ".php");
	//ajax.open("POST", raiz + "includes/" + proceso + ".php",true); 
	ajax.open("POST", raiz + "includes/includes.php",true); 
	ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
	//ajax.send("estados=" + estados + "&estado=" + estado + "&who=" + who + "&userem=" + userem + "&proyecto=" + proyecto + "&usuario=" + usuario + "&email=" + email + "&titulop=" + titulo + "&d1=" + d1 + "&d2=" + d2 + "&rand=" + parseInt(Math.random()*99999999) ) 
	ajax.send("proceso=" + proceso + "&estados=" + estados + "&estado=" + estado + "&who=" + who + "&userem=" + userem + "&proyecto=" + proyecto + "&usuario=" + usuario + "&email=" + email + "&titulop=" + titulo + "&d1=" + d1 + "&d2=" + d2 + "&rand=" + parseInt(Math.random()*99999999) ) 
} 
function confirmarValoracion(estados,estado,who,proyecto,usuario,email,titulo,dentro,quien,raiz){ 
	var contenedor = document.getElementById('contresp'+proyecto+'-'+usuario); 
	formulario = eval("document.fprocesar" + proyecto);
	p1 = formulario.punto1.value; 
	p2 = formulario.punto2.value; 
	p3 = formulario.punto3.value; 
	p4 = formulario.punto4.value; 
	p5 = formulario.punto5.value; 
	comentario = formulario.comentario.value; 
	ajax=nuevoAjax(); 
	ajax.onreadystatechange=function() { 
		if (ajax.readyState==4) { 
		   contenedor.innerHTML = ajax.responseText 
		} 
	} 

	ajax.open("POST", raiz + "includes/enviar_valoracion.php", true); 
	
	ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
	ajax.send("estados=" + estados + "&estado=" + estado + "&who=" + who + "&proyecto=" + proyecto + "&usuario=" + usuario + "&email=" + email + "&titulop=" + titulo  + "&quien=" + quien + "&p1=" + p1 + "&p2=" + p2 + "&p3=" + p3 + "&p4=" + p4 + "&p5=" + p5 + "&comentario=" + comentario + "&rand=" + parseInt(Math.random()*99999999),true);
} 
function iniciarBusquedaAvanzada(){
	formulario=document.formintro;
	if (formulario.model.value=="") formulario.id_ubicacion.value=0;
	formulario.proyecto.options[0].selected=true;
	cont=document.getElementById('opc_proy');
	cont.style.visibility="hidden";
}
function inicializarUbicacion(){
	formulario=document.formintro;
	if (formulario.model.value=="") formulario.id_ubicacion.value=0;
}
function fijarValor(campo,valor){
	formulario=document.formintro;		
	eval("formulario." + campo + ".options[" + valor + "].selected=true;");
}
//no las estamos utilizando
function fijarSelect(campo,valor){
	formulario=document.formintro;		
	eval("formulario." + campo + ".options[" + valor + "].selected=true;");
}
function fijarTexto(campo,valor){
	formulario=document.formintro;		
	eval("formulario." + campo + ".value='" + valor + "';");
}
function fijarNumero(campo,valor){
	formulario=document.formintro;		
	eval("formulario." + campo + ".value=" + valor);
}
function cargarSelect(raiz){
	var contenedor = document.getElementById('contselect'); 
	valor = document.nuevasol.perfilpadre.options[document.nuevasol.perfilpadre.selectedIndex].value;
	ajax=nuevoAjax(); 
	ajax.onreadystatechange=function() { 
		if (ajax.readyState==4) { 
		   contenedor.innerHTML = ajax.responseText 
		} 
	} 
	ajax.open("GET", raiz + "includes/cargar_select.php?valor=" + valor,true); 
	ajax.send(null);
}

function cubreForm(form,oArg){
	var inicio="";
	var f=eval("document." + form);
	for (var i=0;i<f.length;i++){
		campo = f.elements[i].name;
		if (campo!=""){
			tipocontrol=f.elements[i].type;
			if (tipocontrol!="hidden" && inicio=="")
				inicio=i;
			tipo=eval("typeof(oArg." + campo + ")");
			if (tipo!="undefined"){	

				switch (tipocontrol){
					case "text":
					case "textarea":
					case "hidden":
						eval("f.elements[" + i + "].value=oArg." + campo);
						break;
					case "select-one":
						for (var j=0;j<f.elements[i].length;j++)
							if (eval("f.elements[" + i + "].options[" + j + "].value == oArg." + campo)){
								f.elements[i].selectedIndex=j;
							}
						break;
					case "radio":
						if (eval("f.elements[" + i + "].value == oArg." + campo)){
							eval("f.elements[" + i + "].checked=true;");
						}
						break;
				}
			}
		}
  	}
  	if (eval("f.elements[" + inicio + "].type=='text'")){
	  	eval("f.elements[" + inicio + "].select()");
		eval("f.elements[" + inicio + "].focus()");
	}else
	  	eval("f.elements[" + inicio + "].focus()");
}
