// usuarios.js copyright Poggi Sebastian  May/Jun 2009
//--------------------------------------------------------------------------------------------------------------
function almacenarUsuario()
{
	var nombre = document.forms[0].nombre.value;
	var email = document.forms[0].email.value;
	var clave = document.forms[0].clave.value;
	variables = '?nombre='+nombre+'&email='+email+'&clave='+clave;
	cadena = 'urbanos/usuarios/registro/almacenar.php'+variables; 
	cargarHtmlAsincrono(cadena, 'herramientas');
}
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
function comprobarEmail()
{
	var email = document.forms[0].email.value;
	variables = '?email='+email;
	cadena = 'urbanos/usuarios/registro/compEmail.php'+variables; 
	cargarHtmlAsincronoEmail(cadena,"mailDisponible");
}
//--------------------------------------------------------------------------------------------------------------
function comprobarDatos()
{
	var disponible = document.forms[1].disponible.value;
	var calidad = document.forms[1].calidad.value;
	var clave = document.forms[0].clave.value;
	var claverepetir = document.forms[0].claverepetir.value;
	var nombre = document.forms[0].nombre.value;
	if(calidad=="si"&&disponible=="si"&&clave==claverepetir&&clave!=""&&claverepetir!=""&&nombre!="")
	{
		document.forms[0].guardar.disabled=false;
	}
	else
	{
		document.forms[0].guardar.disabled=true;
	}
}
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
function cargarHtmlAsincronoEmail(url, id_contenedor)
{
	var pagina_requerida = false
	if (window.XMLHttpRequest) 
	{// Si es Mozilla, Safari etc
		pagina_requerida = new XMLHttpRequest()
	} 
	else if (window.ActiveXObject)
	{// pero si es IE
		try 
		{
			pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e)
		{ // en caso que sea una versión antigua
			try
			{
				pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e)
			{
			}
		}
	}
	else
	return false
	pagina_requerida.onreadystatechange=function()
	{ // función de respuesta
		cargarpaginaEmail(pagina_requerida, id_contenedor)
	}
	pagina_requerida.open('GET', url, true) // asignamos los métodos open y send
	pagina_requerida.send('')
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpaginaEmail(pagina_requerida, id_contenedor)
{
	preloader = document.getElementById(id_contenedor);	
	if(pagina_requerida.readyState==1)
	{
		document.getElementById(id_contenedor).innerHTML="";
	}
	else if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
	{
		document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText;
		comprobarDatos();
	}
}
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
function testPassword(passwd)
{
	var intScore   = 0
	var strVerdict = "weak"
	var strLog     = ""
	
	// PASSWORD LENGTH
	if (passwd.length<5)                         // length 4 or less
	{
		intScore = (intScore+3)
		strLog   = strLog + "3 points for length (" + passwd.length + ")\n"
	}
	else if (passwd.length>4 && passwd.length<8) // length between 5 and 7
	{
		intScore = (intScore+6)
		strLog   = strLog + "6 points for length (" + passwd.length + ")\n"
	}
	else if (passwd.length>7 && passwd.length<16)// length between 8 and 15
	{
		intScore = (intScore+12)
		strLog   = strLog + "12 points for length (" + passwd.length + ")\n"
	}
	else if (passwd.length>15)                    // length 16 or more
	{
		intScore = (intScore+18)
		strLog   = strLog + "18 point for length (" + passwd.length + ")\n"
	}
	
	
	// LETTERS (Not exactly implemented as dictacted above because of my limited understanding of Regex)
	if (passwd.match(/[a-z]/))                              // [verified] at least one lower case letter
	{
		intScore = (intScore+1)
		strLog   = strLog + "1 point for at least one lower case char\n"
	}
	
	if (passwd.match(/[A-Z]/))                              // [verified] at least one upper case letter
	{
		intScore = (intScore+5)
		strLog   = strLog + "5 points for at least one upper case char\n"
	}
	
	// NUMBERS
	if (passwd.match(/\d+/))                                 // [verified] at least one number
	{
		intScore = (intScore+5)
		strLog   = strLog + "5 points for at least one number\n"
	}
	
	if (passwd.match(/(.*[0-9].*[0-9].*[0-9])/))             // [verified] at least three numbers
	{
		intScore = (intScore+5)
		strLog   = strLog + "5 points for at least three numbers\n"
	}
	
	
	// SPECIAL CHAR
	if (passwd.match(/.[!,@,#,$,%,^,&,*,?,_,~]/))            // [verified] at least one special character
	{
		intScore = (intScore+5)
		strLog   = strLog + "5 points for at least one special char\n"
	}
	
								 // [verified] at least two special characters
	if (passwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/))
	{
		intScore = (intScore+5)
		strLog   = strLog + "5 points for at least two special chars\n"
	}
	
	
	// COMBOS
	if (passwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))        // [verified] both upper and lower case
	{
		intScore = (intScore+2)
		strLog   = strLog + "2 combo points for upper and lower letters\n"
	}
	
	if (passwd.match(/([a-zA-Z])/) && passwd.match(/([0-9])/)) // [verified] both letters and numbers
	{
		intScore = (intScore+2)
		strLog   = strLog + "2 combo points for letters and numbers\n"
	}
	
								// [verified] letters, numbers, and special characters
	if (passwd.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/))
	{
		intScore = (intScore+2)
		strLog   = strLog + "2 combo points for letters, numbers and special chars\n"
	}
	
	
	if(intScore < 16)
	{
	   strVerdict = "very weak"
	}
	else if (intScore > 15 && intScore < 25)
	{
	   strVerdict = "weak"
	}
	else if (intScore > 24 && intScore < 35)
	{
	   strVerdict = "mediocre"
	}
	else if (intScore > 34 && intScore < 45)
	{
	   strVerdict = "strong"
	}
	else
	{
	   strVerdict = "stronger"
	}
	
	document.forms.passwordForm.score.value = (intScore)
	document.forms.passwordForm.verdict.value = (strVerdict)
	document.forms.passwordForm.matchlog.value = (strLog)
	
}
//--------------------------------------------------------------------------------------------------------------
