function backerror()	{ return "#EBEBEB"; }
function backok()	{ return "#FFFFFF"; }

//***
function checkSubmitUser (id)
{
	var texto = new Array();
	texto =	dametextos();

	// checkSubmit original + passwords iguales
	status = checkFormSubmit (id)
	if (status){
		if ($('password').value != $('password1').value ){

			msg = texto['password_nocoincide'];
			alert(texto['form_error']+'\n'+msg);
			$('password').focus ();
			return false;
		} else {
			// expresion para control de password segura
			var regexpr = /^(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,32})$/;
			if($('password').value != "" && !regexpr.test($('password').value)) {

				msg = texto['password_noseguro'];
				alert(texto['form_error']+'\n'+msg);
				$('password').focus ();
				return false;
			}

			// listo, grabamos
			return true;
		}
	}

	// che ... ke mal, no grabamos nada
	return false;
}

function checkFormSubmitCourses (id)
{
	var texto = new Array();
   	texto =	dametextos();

	// checkSubmit original + passwords iguales
	status = checkFormSubmit (id)	
	if (status){
		
		profesor= document.getElementsByName('professor_name[]');
		for (j=0; j< profesor.length - 1; j++) {
			primero = profesor[j].value;
			for (i=j+1; i<profesor.length; i++) {
				if (profesor[i].value != 0 && primero == profesor[i].value) {
					msg = texto['courses_mismoprofesor'];
					alert(texto['form_error']+'\n'+msg);
					profesor[i].focus();
					return false;
				} 
			}
    	}

		return true;
	}

	return false;
}

//***
//  checkForm con submit
//*** 
function checkFormSubmit (id) 
{  	   // ponemos error en false porque no hay errores actualmente.
		var error = false;
		var texto = new Array();
		texto =	dametextos();
		var msg='';

		// salvemos el contenido de los Editores TinyMCE 
//		if (tinyMCE != "noeditor")	tinyMCE.triggerSave();

		// veamos los nodos con editor
		tinyMCEsaved = false;
		$$('form#'+id+' .editor').each(function(node)
			{
				if (tinyMCEsaved == false) {
					tinyMCE.triggerSave();
					tinyMCEsaved = true;
				}
		});
			
		// comenzamos recorriendo los campos con marca "requerido"
		$$('form#'+id+' .requerido').each(function(node)
			{
				// si un (NODO=miembro que cumple la condicion de arriba para prototype) es vacio
				// o sea un "requerido" sin rellenar hacemos lo siguiente
//				alert ("nombre: " + node.alt + " Tipo: " + node.type + " Valor: " + node.value);
				if (node.value == "" || node.value =="<br>") {
					// si error todavia es false o sea que todavia no hay error ponemos el foco en el primer campo a arreglar
					if(!error) node.focus();
					// ahora si ponemos error en true (despues de poner el foco)
					error = true;
					// y modificamos el background de ese campo en el form
					node.style.background = backerror();
					// seteamos el mensaje de error
					if (node.type == "text" || node.type == "password") {
						tit=node.alt;
					}else {
						tit=node.title;
					}
					msg+=tit+texto['requerido']+"\n";
	           	} else { 
					// ponemos el back en el color original. (esto es por si es la segunda vez que entra y antes tuvo error)
					node.style.background = backok();
				}
		});

		// comenzamos recorriendo los campos con marca "email"
        $$('form#'+id+' .email').each(function(node)
			{
				// expresion para control de emails
				var regexpr = /^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,6})+$/;
				// si un (NODO=miembro que cumple la condicion de arriba para prototype) es vacio
				// o sea un "email" sin rellenar hacemos lo siguiente
				if(!regexpr.test(node.value)) {
				// si error todavia es false o sea que todavia no hay error ponemos el foco en el primer campo a arreglar
				if(!error) node.focus();
				// ahora si ponemos error en true (despues de poner el foco)
                error = true;
				// y modificamos el background de ese campo en el form
				node.style.background = backerror();
				tit=node.alt;
				msg+=tit+texto['email_invalido']+"\n";
            } else { 
				// ponemos el back en el color original. (esto es por si es la segunda vez que entra y antes tuvo error)
				node.style.background = backok(); }
        });											   

		// comenzamos recorriendo los campos con marca "website"
        $$('form#'+id+' .url').each(function(node)
			{
				// expresion para control de emails
//				var regexpr = /^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,6})+$/;
				var regexpr = /^http:\/\/(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,6})+$/;
				// si un (NODO=miembro que cumple la condicion de arriba para prototype) es vacio
				// o sea un "email" sin rellenar hacemos lo siguiente
				if(!regexpr.test(node.value) && (node.value!="")) {
				// si error todavia es false o sea que todavia no hay error ponemos el foco en el primer campo a arreglar
				if(!error) node.focus();
				// ahora si ponemos error en true (despues de poner el foco)
                error = true;
				// y modificamos el background de ese campo en el form
				node.style.background = backerror();
				tit=node.alt;
				msg+=tit+texto['url_invalido']+"\n";
            } else { 
				// ponemos el back en el color original. (esto es por si es la segunda vez que entra y antes tuvo error)
				node.style.background = backok(); }
        });											   
		
    	// comenzamos recorriendo los campos con marca "numerico"
	  	$$('form#'+id+' .numerico').each(function(node)
			{
            	var strChars = "0123456789.-";
            	for (i = 0; i < node.value.length; i++) 
					{
	    	            strChar = node.value.charAt(i);
    	    	        if (strChars.indexOf(strChar) == -1) 
							{
								if(!error) node.focus();
            			        error = true;
                    			node.style.background = backerror();
								tit=node.alt;
								msg+=tit+texto['numerico']+"\n";
		          			} else { 
								// ponemos el back en el color original. (esto es por si es la segunda vez que entra y antes tuvo error)
								node.style.background = backok(); 
							}
            		}
        	});
	
		// al finalizar si hay error
        if (error == true) {
			alert(texto['form_error']+'\n'+msg);
			// y vuelve al form
			return false;
        } else {
			return true;
//			document.id.submit();
			/*var rForm = new Ajax.Request("ajax_Index.php?id="+id, {
			onCreate: waiting,
			onComplete: procesaRegistro,
			parameters: $(id).serialize()
			});*/
        }
    
}

//***
//  checkForm
//***
function checkForm (id) {
		// ponemos error en false porque no hay errores actualmente.
		var error = false;
		var texto = new Array();
		texto =	dametextos();
		var msg='';
		
		// salvemos el contenido de los Editores TinyMCE 
		tinyMCE.triggerSave();

		// comenzamos recorriendo los campos con marca "requerido"
		$$('form#'+id+' .requerido').each(function(node)
			{
				// si un (NODO=miembro que cumple la condicion de arriba para prototype) es vacio
				// o sea un "requerido" sin rellenar hacemos lo siguiente
		        if (node.value == "") {
					// si error todavia es false o sea que todavia no hay error ponemos el foco en el primer campo a arreglar
					if(!error) node.focus();
					// ahora si ponemos error en true (despues de poner el foco)
					error = true;
					// y modificamos el background de ese campo en el form
					node.style.background = backerror();
					tit=node.alt;
					msg+=tit+texto['requerido']+"\n";
	           	} else { 
					// ponemos el back en el color original. (esto es por si es la segunda vez que entra y antes tuvo error)
					node.style.background = backok(); }
		});

		// comenzamos recorriendo los campos con marca "email"
        $$('form#'+id+' .email').each(function(node)
			{
				// expresion para control de emails
				var regexpr = /^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,6})+$/;
				// si un (NODO=miembro que cumple la condicion de arriba para prototype) es vacio
				// o sea un "email" sin rellenar hacemos lo siguiente
				if(!regexpr.test(node.value)) {
				// si error todavia es false o sea que todavia no hay error ponemos el foco en el primer campo a arreglar
				if(!error) node.focus();
				// ahora si ponemos error en true (despues de poner el foco)
                error = true;
				// y modificamos el background de ese campo en el form
				node.style.background = backerror();
				tit=node.alt;
				msg+=tit+texto['email_invalido']+"\n";
            } else { 
				// ponemos el back en el color original. (esto es por si es la segunda vez que entra y antes tuvo error)
				node.style.background = backok(); }
        });											   
			
    	// comenzamos recorriendo los campos con marca "numerico"
	  	$$('form#'+id+' .numerico').each(function(node)
			{
            	var strChars = "0123456789.-";
            	for (i = 0; i < node.value.length; i++) 
					{
	    	            strChar = node.value.charAt(i);
    	    	        if (strChars.indexOf(strChar) == -1) 
							{
								if(!error) node.focus();
            			        error = true;
                    			node.style.background = backerror();
								tit=node.alt;
								msg+=tit+texto['numerico']+"\n";
		          			} else { 
								// ponemos el back en el color original. (esto es por si es la segunda vez que entra y antes tuvo error)
								node.style.background = backok(); 
							}
            		}
        	});
	
		// hago el control captcha
		/*
		if(!jcap()) 
			{ 
				if(!error) node.focus();
				error = true;
				$(id).uword.style.background = backerror();
				tit=$(id).uword.alt;
				msg+=tit+texto['captcha']+"\n";
			}
 		*/
		// al finalizar si hay error
        if (error == true) {
			alert(texto['form_error']+'\n'+msg);
			// y vuelve al form
			return false;
        } else {
			var rForm = new Ajax.Request("ajax_Index.php?id=registrar", {
			onCreate: waiting,
			onComplete: procesaRegistro,
			parameters: $(id).serialize()
			});
        }
    }

function waiting(){
		
        $("divWaiting").innerHTML = "<br><div><img src='images/preload.gif'><div>";
		$("divWaiting").show();
		$("divWaiting").focus();
		
		}

function procesaRegistro( resp ){

		$("divWaiting").hide();	
        $("divRegistro").hide();
		$("divSaludo").style.height="500px";
		$("divSaludo").innerHTML = resp.responseText;
		$("divSaludo").show();
		
		}


function procesaRespuesta( resp ){

//		effect_1 = Effect.SlideUp('divRegistro',{duration:1.0});
//		$("divSaludo").innerHTML = resp.responseText;
//		setTimeout("mostrar('divSaludo')",2600);
		$("divWaiting").hide();	
        $("divRegistro").hide();
		$("calculator").style.height="900px";
		//$('divRegistro').hide();
		$("divSaludo").innerHTML = resp.responseText;
		$("divSaludo").show();
		
		}

function cargaSelect(idin,idout)
	{
		var valor=$(idin).value;
		var selectForm = new Ajax.Updater(idout,"ajax_Index.php?id=selectanidados", {
			parameters: "value="+valor });
	}

function checkEmail(idin,idout)
	{
		var valor=$(idin).value;
		var selectForm = new Ajax.Updater(idout,"ajax_Index.php?id=checkemail", {
			parameters: "value="+valor });
		$('usrFrm').tabindex=5;
	}

function cargaInput(idin,idout)
	{
		var valor=$(idin).value;
		var selectForm = new Ajax.Updater(idout,"ajax_Index.php?id=selectinput", {
			parameters: "value="+valor });
	}

function cargaImagen(idin,idout)
	{
		var valor=$(idin).value;
		var texto=$(idin).text;
		var imageForm = new Ajax.Updater( idout ,"ajax_Index.php?id=actualizaimagen", {
			parameters: "value="+valor+"&texto="+texto });
	}
		

function setAyuda(div) 	{ $('ayuda_'+div).show(); }
function unsetAyuda(div) { $('ayuda_'+div).hide();}
function unsetError(div) { if($('error_'+div).style.display!='none') { $('error_'+div).hide();} }

function cargaListaEventos (s, tipo, div){

		var inicio = s;
		var divNews = new Ajax.Updater(div, "ajax_index.php?id=listaEventos&tipo="+tipo+"&start="+inicio);
}

function cargaListaNoticias (s, tipo, div){

		var inicio = s; 
		var divNews = new Ajax.Updater(div, "ajax_index.php?id=listaEventos&tipo="+tipo+"&start="+inicio);		
/*		var divNews = new Ajax.Updater(div, "ajax_index.php?id=listaNewsRoom", {
			parameters: "start="+inicio });*/
}

function cargaDatosProfesorCurso (idin, idout)
{
		var valor=idin;
		var imageForm = new Ajax.Updater( idout ,"ajax_index.php?id=datosProfesorCurso", {
			parameters: "id_profesor="+valor });

}
function actualizaDatosRemotos(url, target, params)
{
	var Pars = $H(params).toQueryString();
	var Update = new Ajax.Updater(target, url, {method: 'get', parameters: Pars});
}

function paginateAjax (relink, divContent )
{

	var url = relink;
	var CacheAleatoria = Math.random() * 1000000
	var pars = {
				Funcion: '',
			    Param1: "",
				Param2: "",
				Cache: CacheAleatoria
	};

	actualizaDatosRemotos(url,divContent, pars);
}

function confirmBorrar () {

	if(!confirm(" Are you sure you want to delete this item? "))
		return false;
	return true;

}

function confirmBorrarAjax (id, url, urlBack)
{
		//		var inicio = s;
		var urlAjax = "ajax_index.php?id=confirmDelete";
		var param = "&registro=" + id + "&seccion=" + url+"&back="+urlBack;
//		alert (id +" "+urlAjax+param);
//		var divNews = new Ajax.Updater('messageBox', urlAjax, { parameters: param });
		var divNews = new Ajax.Updater('contenidoSummary', urlAjax, { parameters: param });
}

function borrarAjax (id, url)
{
	//$("messageBox").hide();
	var urlAjax = "ajax_index.php?id="+url;
	//alert(urlAjax);
	//var urlAjax = url;
	var param = "&registro="+id;
//	alert (id +" " + url);
//	var divNews = new Ajax.Updater('container', urlAjax, { parameters: param});	
	var divNews = new Ajax.Updater('contenidoSummary', urlAjax, { parameters: param});	
}

function cancelarAjax (div)
{
	    $(div).innerHTML = "";
		$(div).show();
//		$(div).focus();	
}

function editarAjax ()
{
}

function agregarAjax ()
{
}

function cargarListaCursos (area)
{
		var urlAjax = "ajax_index.php?id=listaCursos";
		var param = "&area=" + area;
		var divNews = new Ajax.Updater('content', urlAjax, { parameters: param });
}

function cargarCursoInfo (id)
{
		var urlAjax = "ajax_index.php?id=infoCursos";
		var param = "&registro=" + id;
		var divNews = new Ajax.Updater('content', urlAjax, { parameters: param });
}

function cargarListaEstudiantes (id, market)
{
		var urlAjax = "ajax_index.php?id=listaEstudiantes";
		var param = "&program=" + id + "&market=" + market;
		var divNews = new Ajax.Updater('content', urlAjax, { parameters: param });
}

function cargarListaGraduados (id, market)
{
		var urlAjax = "ajax_index.php?id=listaGraduados";
		var param = "&program=" + id + "&market=" + market;
		var divNews = new Ajax.Updater('content', urlAjax, { parameters: param });
}

function cargarGraduatedInfo (id)
{

		var urlAjax = "ajax_index.php?id=infoGraduado";
		var param = "&registro=" + id;
		var divNews = new Ajax.Updater('content', urlAjax, { parameters: param });
}

function cargarListaProfesores (area)
{
		var urlAjax = "ajax_index.php?id=listaProfesores";
		var param = "&area=" + area;
		var divNews = new Ajax.Updater('content', urlAjax, { parameters: param });
}

function cargarProfessorBox (id, evento, xinc, yinc)
{
		var urlAjax = "ajax_index.php?id=boxProfesor";
		var param = "&registro=" + id;
		var divNews = new Ajax.Updater('profBoxHide', urlAjax, { parameters: param });

		// mostremos la cajita flotante sobre el mouse
//	   	evento = evento || window.event;
/*		if (evento) {
	alert ("firefox");
var posX=evento.x;
		   	var posY=evento.pageY;
		} else {	alert ("ie");
			evento = window.event;
		   	var posX=evento.pageX;
		   	var posY=evento.pageY;
		}*/
	posX = (evento.pageX) ? evento.pageX : window.event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
    posY = (evento.pageY) ? evento.pageY : window.event.clientY + document.body.scrollTop + document.documentElement.scrollTop;

		// posición relativa
		if (xinc == '')		xinc = 10;
		if (yinc == '')		yinc = 15;
	//	alert (posY );
		posY = posY + yinc;
		posX = posX + xinc;
//        alert ( posY );
		$('profBoxHide').style.top = ( posY )  + "px";
//		$('profBoxHide').style.left = ( posX )  + "px";
		$('profBoxHide').style.left = "315px";		
		$('profBoxHide').show ();		
}

function cargarProfessorInfo (id)
{

		var urlAjax = "ajax_index.php?id=infoProfesor";
		var param = "&registro=" + id;
		var divNews = new Ajax.Updater('content', urlAjax, { parameters: param });
}

function cargarStudentBox (id, evento)
{
		var urlAjax = "ajax_index.php?id=boxEstudiante";
		var param = "&registro=" + id;
		var divNews = new Ajax.Updater('profBoxHide', urlAjax, { parameters: param });

		// mostremos la cajita flotante sobre el mouse
/*	   	evento = evento || window.event;
	   	var posX=evento.pageX;
	   	var posY=evento.pageY;*/
		posX = (evento.pageX) ? evento.pageX : window.event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posY = (evento.pageY) ? evento.pageY : window.event.clientY + document.body.scrollTop + document.documentElement.scrollTop;

		$('profBoxHide').style.top = ( posY + 15)  + "px";
//		$('profBoxHide').style.left = ( posX )  + "px";
		$('profBoxHide').style.left = "315px";		
		$('profBoxHide').show ();		
}

function cargarStudentsInfo (id)
{

		var urlAjax = "ajax_index.php?id=infoEstudiante";
		var param = "&registro=" + id;
		var divNews = new Ajax.Updater('content', urlAjax, { parameters: param });
}

function ocultarDIV (div)
{
//	$(div).innerHTML = "";
	$(div).hide();
}

function mostrarDIV (div)
{
	$(div).show();
}

function mostrarDIVover (div, evento)
{
   	evento = evento || window.event;
   	var posX=evento.clientX;
   	var posY=evento.clientY;
//   	alert(posX+":"+posY);
   
   	// reposicionamos el div
	$(div).style.left = posX;
	$(div).style.top = posY;
}

// actualiza la barra de navegacion 
function actualizarNav (texto, enlace, funcion)
{
/*		var param = "&etiqueta=" + texto + "&enalce=" + enlace;
		var rForm = new Ajax.Request("ajax_Index.php?id=agregarNav", {
		onComplete: funcion,
		parameters: param
		});
	*/
}
/*
function toggleListByArea (parametro) {

	var urlAjax = "ajax_index.php?id=listbyArea";
	var param = "&area=" + parametro + "&seccion=''";
	urlAjax = urlAjax + param;
//	var divNews = new Ajax.Updater('areaBox', urlAjax, { parameters: param });
	var divNews = new Ajax.Updater('areaBox', urlAjax);
	$('areaBox').show ();
}

*/
function toggleListByArea (parametro, seccion) {

	var urlAjax = "ajax_index.php?id=listbyArea";
	var param = "&area=" + parametro + "&seccion=" + seccion;
	urlAjax = urlAjax + param;
//	var divNews = new Ajax.Updater('areaBox', urlAjax, { parameters: param });
	var divNews = new Ajax.Updater('areaBox', urlAjax);
	$('areaBox').show ();
}

function toggleListFull(parametro)
{
	
	var urlAjax = "ajax_index.php?id=listFull";
	var param = "&param=" + parametro;
	var divNews = new Ajax.Updater('areaBox', urlAjax, { parameters: param });
	$('areaBox').show ();
}

function menuCursoAjax ()
{  var next = document.getElementById("limitCurso").value;
	var urlAjax = "ajax_index.php?id=homeCursos&next="+next;
	var CacheAleatoria = Math.random() * 1000000
	var pars = {
				Funcion: '',
			    Param1: "",
				Param2: "",
				Cache: CacheAleatoria
	};

	actualizaDatosRemotos(urlAjax,"capaCurso", pars);
}
 
function menuFacultyAjax ()
{   var next = document.getElementById("limitFaculty").value;
	var urlAjax = "ajax_index.php?id=homeFaculty&next="+next;
	var CacheAleatoria = Math.random() * 1000000
	var pars = {
				Funcion: '',
			    Param1: "",
				Param2: "",
				Cache: CacheAleatoria
	};

	actualizaDatosRemotos(urlAjax,"capaFaculty", pars);
}
