
var username_min = 2;    // minimum number of character for username
var username_max = 25;   // maximum number of character for username
var ajax_delay   = 1500; // number of miliseconds before ajax username check
var timeOn       = null; // delay time for ajax username check
var desc_min     = 2;    // minimum number of character for description
var desc_max     = 300;  // maximum number of character for description
var icon_error   = "<img src='templates/default/images/error.gif' alt='' width='16' height='16' align='absmiddle' />";
var icon_ok      = "<img src='templates/default/images/ok.gif' alt='' width='16' height='16' align='absmiddle' />";
var icon_process = "<img src='templates/default/images/process.gif' alt='' width='16' height='16' align='absmiddle' />";

// preload icon images
i_error   = new Image(); i_error.src   = "templates/default/images/error.gif";
i_ok      = new Image(); i_ok.src      = "templates/default/images/ok.gif";
i_process = new Image(); i_process.src = "templates/default/images/gif.gif";


// AJAX setup
var XMLHttpRequestObject = false;

if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i< val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}

function validar() {
		errores = false;
		
		if(isBlank(document.getElementById('usuario').value)) {
            document.getElementById("usuario_error").innerHTML = " " + icon_error + " Por favor, rellena el campo usuario";
			document.getElementById('usuario').className = 'txt_error';
            errores = true;
		}
        
        if(document.getElementById('username_result'))
        {
          if(document.getElementById('username_result').value=='taken') 
          {
            document.getElementById('usuario').className = 'txt_error';
            errores = true;
          }
        }

		if(isBlank(document.getElementById('archivo').value)) {
            document.getElementById("avatar_error").innerHTML = " " + icon_error + " Por favor, rellena el campo avatar";
			document.getElementById('avatar').className = 'error';
            errores = true;
		} else document.getElementById("avatar_error").innerHTML = " " + icon_ok ;


		if(isBlank(document.getElementById('password').value)) {
            document.getElementById('password').className = 'txt_error';
            document.getElementById("repetir_password_error").innerHTML = "<br />" + icon_error + " Por favor, rellena el campo contraseña";
			document.getElementById("repetir_password_error").style.display = 'inline';
            errores = true;
		}
		
		if(isBlank(document.getElementById('repetir_password').value)) {
            document.getElementById('repetir_password').className = 'txt_error';
            if(!isBlank(document.getElementById('password').value))
            {
              document.getElementById("repetir_password_error").innerHTML = "<br />" + icon_error + " Por favor, rellena el campo repetir contraseña";
			  document.getElementById("repetir_password_error").style.display = 'inline';
            }
            errores = true;
		}

		if(document.getElementById('password').value && document.getElementById('repetir_password').value && document.getElementById('password').value != document.getElementById('repetir_password').value) {
			document.getElementById('repetir_password').className = 'txt_error';
            document.getElementById("repetir_password_error").innerHTML = "<br />" + icon_error + " Los campos contraseña y repetir contraseña deben coincidir";
            document.getElementById("repetir_password_error").style.display = 'inline';
            errores = true;
		}

		if(document.getElementById('email').value == "") {
            document.getElementById("email_error").innerHTML = " " + icon_error + " Por favor, rellena el campo e-mail";
			document.getElementById('email').className = 'txt_error';
            errores = true;
		}
        else 
        if(!check_email(document.getElementById('email').value)) 
        {
            document.getElementById("email_error").innerHTML = " " + icon_error + " Por favor, introduce un e-mail válido";
            document.getElementById('email').className = 'txt_error';
        	errores = true;
        }
        
        if(document.getElementById('email_result'))
        {
          if(document.getElementById('email_result').value=='taken') 
          {
            document.getElementById('email').className = 'txt_error';
            errores = true;
          }
        }

		if(isBlank(document.getElementById('nombre').value)) {
            document.getElementById("nombre_error").innerHTML = " " + icon_error + " Por favor, rellena el campo nombre";
			document.getElementById('nombre').className = 'txt_error';
            errores = true;
		}
        else
        {
          if(!valid_nombre(document.getElementById('nombre').value))
          {
            document.getElementById("nombre_error").innerHTML = " " + icon_error + " Por favor, usa sólo caracteres válidos";
			document.getElementById('nombre').className = 'txt_error';
            errores = true;
          }
        }
		
		if(isBlank(document.getElementById('apellido').value)) {
            document.getElementById("apellido_error").innerHTML = " " + icon_error + " Por favor, rellena el campo apellido";
			document.getElementById('apellido').className = 'txt_error';
            errores = true;
		}
        else
        {
          if(!valid_apellido(document.getElementById('apellido').value))
          {
            document.getElementById("apellido_error").innerHTML = " " + icon_error + " Por favor, usa sólo caracteres válidos";
			document.getElementById('apellido').className = 'txt_error';
            errores = true;
          }
        }

		if(document.getElementById('idpais').value==0) { 
            document.getElementById("pais_error").innerHTML = " " + icon_error + " Por favor, selecciona un pais";
			document.getElementById('idpais').className = 'txt_error';
            errores = true;
		}
		
		if(document.getElementById('url').value && !valid_URL(document.getElementById('url').value)) 
        {
        	document.getElementById('url').className = 'txt_error';
            document.getElementById("url_error").innerHTML = " " + icon_error + " Por favor, introduce una dirección URL válida";
        	errores = true;
        } 
        if(!document.getElementById('url').value) document.getElementById('url').className = 'txt';
        
		        
        if(!document.getElementById('anonimo').value)
        {
            document.getElementById("anonimo_error").innerHTML = " " + icon_error + " Por favor, selecciona si quieres mostrar tu nombre o aparecer como anónimo";
			document.getElementById('anonimo').className = 'txt_error';
            errores = true;
        }
        
        if(document.getElementById('descripcion').value && document.getElementById('descripcion').value.length < desc_min)
        {
        	document.getElementById('descripcion_error').innerHTML = "&nbsp;" + icon_error + " El mínimo número de caracteres para este campo es de " + desc_min;
        	document.getElementById('descripcion').className = 'txt_error';
            errores = true;
        } 
        if(!document.getElementById('descripcion').value) document.getElementById('descripcion').className = '';
        
		return !errores;
	}

function validar_email(valor,e)
{
 if(check_key(e)!=9 && check_key(e)!=13)
 {
  if(valor)
  {
    if(check_email(valor)) 
    {
      document.getElementById("email_error").innerHTML = " " + icon_ok;
      document.getElementById('email').className = 'txt_ok';
      if(timeOn) clearTimeout(timeOn);
      timeOn = setTimeout("email_check('"+valor+"')",ajax_delay);
    }
    else 
    {
      document.getElementById('email').className = 'txt_selected';
      document.getElementById("email_error").innerHTML = " ";
    }
  }
/*
  else 
  {
    document.getElementById("email_error").innerHTML = " " + icon_error + " Por favor, rellena el campo e-mail";
    document.getElementById('email').className = 'txt_error';
  }
*/
 }
} 
function mail_error(valor)
{
  if(valor)
  {
    if(!check_email(valor)) 
    {
      document.getElementById('email').className = 'txt_error';
      document.getElementById("email_error").innerHTML = " " + icon_error + " Por favor, introduce un e-mail válido";
    }
  }
/*
  else 
  {
    document.getElementById('email').className = 'txt_error';
    document.getElementById("email_error").innerHTML = " " + icon_error + " Por favor, rellena el campo e-mail";
  }
*/
}      
function check_email(valor) 
{
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)) return true;
  else return false
}

// AJAX email availability check
function email_check(email)
{
	  document.getElementById('email_error').innerHTML = icon_process + " Comprobando disponibilidad de e-mail";
	 __$.ajax({
	  url: "registrarse_ajax_email_check.php?email="+email,
	  cache: false,
	  beforeSend: function (req){
	
		show_loader('#email_error');
		
		return req;
	  },
	  complete: function (req,status){
	
		return req;
	  },  
	  success: function(html){
		
		__$('#email_error').html(html);
        if (__$('#email_result').attr ("value")=='available')__$('#email').attr ({ class: 'txt_ok'});
		 
        if(__$('#email_result').attr("value")=='taken') __$('#email').attr ({ class: 'txt_error'});
			

		
	  }
	  });

}

// change the icon of the selected country
function change_contry_icon(value)
{

	 __$.ajax({
	  url: "registrarse_ajax_country_icon.php?pais="+value,
	  cache: false,
	  beforeSend: function (req){
	
		//show_loader('#pais_error');
		
		return req;
	  },
	  complete: function (req,status){
	
		return req;
	  },  
	  success: function(html){
		
		//hide_loader();
		__$('#pais_icono').html(html);
       

		
	  }
	  });
	  

}

    
// dynamic validate for country
function select_country(value)
{
  if(value==0) 
  {
    document.getElementById('idpais').className = 'txt_error';
    document.getElementById("pais_error").innerHTML = " " + icon_error + " Por favor, selecciona un pais";
  }
  else 
  {
    document.getElementById('idpais').className = 'txt_ok';
    document.getElementById("pais_error").innerHTML = " " + icon_ok;
  }
}

// dynamic validate for description
function count_char(text,e)
{
 if(check_key(e)!=9 && check_key(e)!=13)
 {
  var karakter = text.length ;
  var cr = text.split("\n");
  karakter = karakter - cr.length + 1;
  if(karakter > desc_max)
  {
   var tmp = text.substr(0,desc_max+cr.length-1); 
   document.getElementById('descripcion').value = tmp;
   karakter = desc_max;
  }
  if(karakter < desc_max)
  {
   document.getElementById('descripcion').className = 'txt_ok';
   document.getElementById('descripcion_error').innerHTML = "&nbsp;" + icon_ok;
  }
  document.getElementById('desc_count').innerHTML = karakter;
 }
}
function check_description(text)
{
        if(text && text.length < desc_min) 
        {
        	document.getElementById('descripcion_error').innerHTML = "&nbsp;" + icon_error + " El mínimo número de caracteres para este campo es de " + desc_min;
        	document.getElementById('descripcion').className = 'txt_error';
        } 
        if(!text)
        {
          document.getElementById('descripcion').className = 'txt';
        }
}

// validate username
function valid_username(text)
{
  var valid_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-";
  var valid_entry = true;
  for(var i=0; i < text.length; i++) 
  {
	if (valid_chars.indexOf(text.charAt(i)) == -1) valid_entry = false;
  }
  return valid_entry;
}
function user_validate(text,e)
{
 if(check_key(e)!=9 && check_key(e)!=13)
 {
  if(text)
  {
   if(valid_username(text))
   {
    if(text.length <= username_max) 
    {
      document.getElementById('usuario_error').innerHTML = "";
      document.getElementById('usuario').className = 'txt_selected';
      if(timeOn) clearTimeout(timeOn);
      timeOn = setTimeout("user_check('"+text+"')",ajax_delay);
    }
    if(text.length > username_max) document.getElementById('usuario').value = document.getElementById('usuario').value.substr(0,username_max);
   }
   else 
   { 
    if(timeOn) clearTimeout(timeOn);
    document.getElementById('usuario').className = 'txt_error';
    document.getElementById("usuario_error").innerHTML = " " + icon_error + " No se admiten caracteres especiales ni espacios en el campo usuario";
   }
  } 
  else 
  {
   document.getElementById('usuario').className = 'txt_selected';
   document.getElementById("usuario_error").innerHTML = " " ;
   if(timeOn) clearTimeout(timeOn);
  }
 }
}
function check_user_ok(text)
{
/*
  if(!text) 
  {
    document.getElementById('usuario').className = 'txt_error';
    document.getElementById("usuario_error").innerHTML = " " + icon_error + " Por favor, rellena el campo usuario";
  }
  else
*/
  if(text)
  {
   if(valid_username(text))
   {
    if(document.getElementById('username_result'))
    {
      if(document.getElementById('username_result').value=='taken') document.getElementById('usuario').className = 'txt_error';
      else document.getElementById('usuario').className = 'txt_ok';
    }
    //else user_check(text);
   }
  }
}

// AJAX user availability check
function user_check(username)
{
  if(username && username.length < username_min)
  { 
    document.getElementById('usuario').className = 'txt_error';
    document.getElementById("usuario_error").innerHTML = " " + icon_error + " El mínimo número de caracteres para este campo es de " + username_min;
  }
  else
  {
  	
     document.getElementById('usuario_error').innerHTML = icon_process + " Comprobando disponibilidad del nombre de usuario";
	 __$.ajax({
	  url: "registrarse_ajax_username_check.php?username="+username,
	  cache: false,
	  beforeSend: function (req){
	
		show_loader('#usuario_error');
		
		return req;
	  },
	  complete: function (req,status){
	
		return req;
	  },  
	  success: function(html){
		
		__$('#usuario_error').html(html);
        if (__$('#username_result').attr ("value")=='available')__$('#usuario').attr ({ class: 'txt_ok'});
		 
        if(__$('#username_result').attr("value")=='taken') __$('#usuario').attr ({ class: 'txt_error'});

		
	  }
	  });	    

  }
}

function check_key(e)
{
  var code=0;
  if (!e) var e = window.event;
  if (e.keyCode) code = e.keyCode;
  else if (e.which) code = e.which;
  return code;
}


// password validate
function password_check(text,e)
{
  if(check_key(e)!=9 && check_key(e)!=13)
  {
/*
    if(!text)
    {
      document.getElementById("repetir_password_error").innerHTML = " " + icon_error + " Por favor, rellena el campo contraseña";
      document.getElementById("repetir_password_error").style.display = 'inline';
      document.getElementById('password').className = 'txt_error';
      document.getElementById("passwordmeter").style.display = 'none';
    }
    else 
*/
	if(text)
    {
      document.getElementById("repetir_password_error").innerHTML = " ";
      document.getElementById("repetir_password_error").style.display = 'none';
      document.getElementById("password_error").innerHTML = " " + icon_ok;
      document.getElementById('password').className = 'txt_ok';
      testPassword(text);
      document.getElementById("passwordmeter").style.display = 'block';
    }
    else
    {
      document.getElementById("password_error").innerHTML = " ";
      document.getElementById('password').className = 'txt_selected';
      document.getElementById("passwordmeter").style.display = 'none';
    }
  }
}
function password_match(e)
{
 if(check_key(e)!=9 && check_key(e)!=13)
 {
  if(document.getElementById('password').value == document.getElementById('repetir_password').value && document.getElementById('repetir_password').value)
  {
    document.getElementById('repetir_password').className = 'txt_ok';
    document.getElementById("repetir_password_match").innerHTML = " " + icon_ok ;
    document.getElementById("repetir_password_error").innerHTML = " ";
    document.getElementById("repetir_password_error").style.display = 'none';
  }
  else
  {
    document.getElementById("repetir_password_match").innerHTML = " " ;
    document.getElementById('repetir_password').className = 'txt_selected';
  }
 }
}
function password_match_ok(e)
{
 if(check_key(e)!=9 && check_key(e)!=13)
 {
  if(document.getElementById('password').value != document.getElementById('repetir_password').value)
  {
   if(document.getElementById('repetir_password').value.length>1)
   {
    document.getElementById('repetir_password').className = 'txt_error';
    document.getElementById("repetir_password_match").innerHTML = " ";
    document.getElementById("repetir_password_error").innerHTML = "<br />" + icon_error + " Los campos contraseña y repetir contraseña deben coincidir";
    document.getElementById("repetir_password_error").style.display = 'inline';
   }
  }
  if(document.getElementById('password').value == document.getElementById('repetir_password').value && document.getElementById('repetir_password').value)
  {
    document.getElementById('repetir_password').className = 'txt_ok';
    document.getElementById("repetir_password_match").innerHTML = " " + icon_ok ;
    document.getElementById("repetir_password_error").innerHTML = " ";
    document.getElementById("repetir_password_error").style.display = 'none';
  }
/*
  if(document.getElementById('password').value && !document.getElementById('repetir_password').value) 
  {
    document.getElementById('repetir_password').className = 'txt_error';
    document.getElementById("repetir_password_match").innerHTML = " ";
    document.getElementById("repetir_password_error").innerHTML = "<br />" + icon_error + " Por favor, rellena el campo repetir contraseña";
    document.getElementById("repetir_password_error").style.display = 'inline';
  }
  if(!document.getElementById('password').value && !document.getElementById('repetir_password').value) 
  {
    document.getElementById('repetir_password').className = 'txt_error';
    document.getElementById("repetir_password_error").innerHTML = " " + icon_error + " Por favor, rellena el campo contraseña";
    document.getElementById("repetir_password_error").style.display = 'inline';
  }
*/
 }
}

// validate nombre & apellido
function check_nombre_apellido(text,obj,e)
{ 
 if(check_key(e)!=9 && check_key(e)!=13)
 {
  if(obj=='nombre')
  { 
    if(text)
    {
      if(valid_nombre(text)) 
      {
        document.getElementById('nombre').className = 'txt_ok';
        document.getElementById("nombre_error").innerHTML = " " + icon_ok;
      }
      else 
      {
        document.getElementById('nombre').className = 'txt_error';
        document.getElementById("nombre_error").innerHTML = " " + icon_error + " Por favor, usa sólo caracteres válidos";
      }
    } 
    else 
    {
      document.getElementById('nombre').className = 'txt_selected';
      document.getElementById("nombre_error").innerHTML = " ";
    }
  }
  if(obj=='apellido')
  {
    if(text)
    {
      if(valid_apellido(text)) 
      {
        document.getElementById('apellido').className = 'txt_ok';
        document.getElementById("apellido_error").innerHTML = " " + icon_ok;
      }
      else 
      {
        document.getElementById('apellido').className = 'txt_error';
        document.getElementById("apellido_error").innerHTML = " " + icon_error + " Por favor, usa sólo caracteres válidos";
      }
    } 
    else 
    {
      document.getElementById('apellido').className = 'txt_selected';
      document.getElementById("apellido_error").innerHTML = " " ;
    }
  }
 }
}
function valid_nombre(text)
{
  var valid_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  var valid_entry = true;
  for(var i=0; i < text.length; i++) 
  {
	if (valid_chars.indexOf(text.charAt(i)) == -1) valid_entry = false;
  }
  return valid_entry;
}
function valid_apellido(text)
{
  var valid_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ";
  var valid_entry = true;
  for(var i=0; i < text.length; i++) 
  {
	if (valid_chars.indexOf(text.charAt(i)) == -1) valid_entry = false;
  }
  return valid_entry;
}


// validate URL
function check_URL(text,e)
{
 if(check_key(e)!=9 && check_key(e)!=13)
 {
  if(text)
  {
    if(valid_URL(text)) 
    {
      document.getElementById('url').className = 'txt_ok';
      document.getElementById("url_error").innerHTML = " " + icon_ok;
    }
    else 
    {
      document.getElementById('url').className = 'txt_selected';
      document.getElementById("url_error").innerHTML = " ";
    }
  }
  else document.getElementById("url_error").innerHTML = " ";
 }
}
function URL_error(text)
{
  if(text)
  {
    if(!valid_URL(text)) 
    {
     document.getElementById("url").className = 'txt_error';
     document.getElementById("url_error").innerHTML = " " + icon_error + " Por favor, introduce una dirección URL válida";
    }
  }
  else 
  {
    document.getElementById("url_error").innerHTML = " ";
    document.getElementById('url').className = 'txt';
  }
}
function valid_URL(s)
{
  var regexp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
  return regexp.test(s);
}

// check contact permit
function check_contacto_permitir(value)
{
  if(!value) 
  {
    document.getElementById('permitir_contacto').className = 'txt_error';
    document.getElementById("permitir_contacto_error").innerHTML = " " + icon_error + " Por favor, selecciona si deseas o no permitir que contacten contigo";
  }
  else 
  {
    document.getElementById('permitir_contacto').className = 'txt_ok';
    document.getElementById("permitir_contacto_error").innerHTML = " " + icon_ok;
  }
}

// check anonymous
function check_anonimo(value)
{
  if(!value) 
  {
    document.getElementById('anonimo').className = 'txt_error';
    document.getElementById("anonimo_error").innerHTML = " " + icon_error + " Por favor, selecciona si quieres mostrar tu nombre o aparecer como anónimo";
  }
  else 
  {
    document.getElementById('anonimo').className = 'txt_ok';
    document.getElementById("anonimo_error").innerHTML = " " + icon_ok;
  }
}

function upload_avatar(file)
{
 if(file)
 {
    archivo_upload();
  document.getElementById("avatar_error").innerHTML = " " + icon_ok;
  document.getElementById("avatar").className = "";
 }
}




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 = "Fortaleza de contraseña: Muy débil"
           document.getElementById('strength_bar').className = 'vweak';
		}
		else if (intScore > 15 && intScore < 25)
		{
		   strVerdict = "Fortaleza de contraseña: Débil"
           document.getElementById('strength_bar').className = 'weak';
		}
		else if (intScore > 24 && intScore < 35)
		{
		   strVerdict = "Fortaleza de contraseña: Media"
           document.getElementById('strength_bar').className = 'medium';
		}
		else if (intScore > 34 && intScore < 45)
		{
		   strVerdict = "Fortaleza de contraseña: Fuerte"
           document.getElementById('strength_bar').className = 'strong';
		}
		else
		{
		   strVerdict = "Fortaleza de contraseña: Muy fuerte"
           document.getElementById('strength_bar').className = 'vstrong';
		}
	
	document.getElementById('verdict').innerHTML = (strVerdict)
}

// Show and hide help on the form
// show help messages in forms
function showHelp(message) {
    $(message).style.display="block";
}
// hide help messages in forms
function hideHelp(message) {
    $(message).style.display="none";
}

function loadRegisterHelp() {
    // show help message actions
   // Event.observe('usuario', 'focus', function(e){ showHelp('help_usuario') });
    
	// hide help message actions
   // Event.observe('usuario', 'blur', function(e){ hideHelp('help_usuario') });
    
}

function blur_field(dis){
	
	clsName=dis.className;
	if (clsName){
		clsName=clsName.replace("txt_selected","txt");
		dis.className=clsName;
	}
	
}

function show_loader(origin){
	
	__$(origin).append("<div id='progress_indic'></div>");

}

function hide_loader(){
	__$('#progress_indic').remove();
}

var __$ = jQuery.noConflict();