


/**
	Funcion que permite validar un email
*/
function checkEmail(emailAdress){
/**
	var testresults;
	var str=emailAdress;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str))
	{
		testresults=true;
	}
	else{		
		testresults=false;
	}
	return testresults;
	*/
	
	var email;
	if(emailAdress.indexOf("@")!=-1){	
		email = emailAdress.substring(emailAdress.indexOf("@"),emailAdress.length);
		if(email.indexOf(".")!=-1){
			return true;
		}
		else{
			return false;
		}
	}
	else{
		return false;
	}	
}

function gestionAviso(modo)
{

	switch (modo) {
	
	case 'ocultar':
		$("#aviso").hide();
		break;
	
	case 'mostrar':
		$("#aviso").show();
		break;
	
	}


}



function checkPassword(strPassword)
{
	// JSNOM.IdentifierNamingPattern: 18-05-2010: ANGEL
	// JSNOM.GlobalVarPattern: 18-05-2010: ANGEL 
	// Hago estas variables locales, antes eran globales y no cumplían las normas arriba especificadas
	// también se encuentran en la librería funciones PortalCrear con los mismos valores y el mismo comportamiento
	var bComprobarNumeros = true;
	var bComprobarMay = true;
	var bComprobarMin = true;
	var bComprobarCaractRaros = true;
	var nContrasenaTiempoDeVida = 365;


	// Reset combination count
	var nCombinations = 0;
	var strCheck = "";
	// Check numbers
	if (bComprobarNumeros)
	{
		strCheck = "0123456789";
		if (doesContain(strPassword, strCheck) > 0) 
		{ 
        		nCombinations += strCheck.length; 
    		}
	}
	
	// Check upper case
	if (bComprobarMay)
	{
		strCheck = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		if (doesContain(strPassword, strCheck) > 0) 
		{ 
        		nCombinations += strCheck.length; 
    		}
	}
	
	// Check lower case
	if (bComprobarMin)
	{
		strCheck = "abcdefghijklmnopqrstuvwxyz";
		if (doesContain(strPassword, strCheck) > 0) 
		{ 
        		nCombinations += strCheck.length; 
    		}
	}
	
	// Check punctuation
	if (bComprobarCaractRaros)
	{
		strCheck = ";:-_=+\|//?^&!.@$£#*()%~<>{}[]";
		if (doesContain(strPassword, strCheck) > 0) 
		{ 
        		nCombinations += strCheck.length; 
    		}
	}

	
	// Calculate
	// -- 500 tries per second => minutes 
    	var nDays = ((Math.pow(nCombinations, strPassword.length) / 500) / 2) / 86400;

 
	// Number of days out of password lifetime setting
	var nPerc = nDays / nContrasenaTiempoDeVida;

	
	return nPerc;
}



function doesContain(strPassword, strCheck)
 {
    var	nCount = 0; 
 	var longitud4 = strPassword.length;
	for (var i = 0; i < longitud4; i++) 
	{
		if (strCheck.indexOf(strPassword.charAt(i)) > -1) 
		{ 
	        	nCount++; 
		} 
	} 
 
	return nCount; 
} 



// Runs password through check and then updates GUI 
function runPassword(strPassword) 
{
	// Check password
	var nPerc = checkPassword(strPassword);
	
    	
    // Set new width
    
    
    var nRound = Math.round(nPerc * 100);
    
    	
	if (nRound < (strPassword.length * 5)) 
	{ 
		nRound += strPassword.length * 5; 
	}
	
	
	if (nRound > 100)
	{
		nRound = 100;
	}

 	if (nRound > 70)
 	{
		return 2;
 	}
 	else if (nRound > 30)
 	{
		return 1;
	}	
 	else 
 	{
		return 0;
 	}
}



/**
	Validacion de la fortaleza de la contrasea
*/

function fortalezaPassword(p){
	var l = 0;
	var v1 = 'aeiou1234567890';
	var v2 = 'AEIOUbcdfghjklmnpqrst';
	var v3 = 'vxyzBCDFGHJKLMNPQRST';
	var v4 = 'VXYZ$@#';
	
	var longitud5 = p.length;
	for (var i = 0; i < longitud5; i++){
	  if (v1.indexOf(p[i]) != -1) l += 1;
	  else if (v2.indexOf(p[i]) != -1) l += 2;
	  else if (v3.indexOf(p[i]) != -1) l += 3;
	  else if (v4.indexOf(p[i]) != -1) l += 4;
	  else l += 5;
	}
	l *= 3;
	if(l > 100)l = 100;
	
	if(l <=30){
		return 0;
	}
	
	if(l <= 60){
		return 1;
	}
	
	return 2;
}


function actualizarMensajeFortalezaPassword(debil,optima,muydebil,media,event){
      //reestablecemos el color por defecto
      $("#imagenFortaleza").attr("src","/portal/imagenes/V_pass_short.gif");
      $("#contenedorMensajeFortalezaPassword").attr("class","passw_short");
     
      //$("#mensajeFortalezaPassword").is(':visible') == true)
 	 var len = $("#password").val().length;
  
  /*if (event.keyCode == 8)
        {
        len = len-1;
	}*/
  
  
	if (len <= 3) {
		     $("#mensajeFortalezaPassword").hide();
            $("#fortalezaPassword").hide();
            $("#imagenFortaleza").hide();
            return false;
            }
	else{
      switch(runPassword($("#password").val())){
            case 0:
                        //cuando la fortaleza es debil i.e 0 solamente mostramos el td oculto

                        $("#mensajeFortalezaPassword").show();
                        $("#fortalezaPassword").show();
                        $("#imagenFortaleza").show();
                        $("#fortalezaPassword").html(muydebil);                                
                        $("#mensajeFortalezaPassword").show('');
                        $("#oculto").attr("value",true);
                        $("#m").attr("value",false);
                        
            break;
            case 1:

                                         $("#mensajeFortalezaPassword").show();
                        $("#fortalezaPassword").show();
                        $("#imagenFortaleza").show();
                  //fortaleza media
                  $("#fortalezaPassword").html(media);                                   
                  $("#mensajeFortalezaPassword").show('');
                  $("#oculto").attr("value",true);
                  $("#m").attr("value",false);
            break;                  
            default:          
                  //fortaleza alta
                  // cuando tiene esta fortaleza debemos cambiar la imagen que se muestra

                                               $("#mensajeFortalezaPassword").show();
                        $("#fortalezaPassword").show();
                        $("#imagenFortaleza").show();            
                  $("#imagenFortaleza").attr("src","/portal/imagenes/V_pass_ok.gif");
                  $("#contenedorMensajeFortalezaPassword").attr("class","passw_ok");
                  $("#fortalezaPassword").html(optima);                                  
                  $("#mensajeFortalezaPassword").show(''); 
                  $("#oculto").attr("value",true);
                  $("#m").attr("value",false);
      }
      }
}


/**
	Funcion que se encarga de realizar la validacion de los datos de entrada para la creacion de una cuenta
*/
function validacionCuenta(idFormulario, urlCreacion, error){
	var validacionOK1 = true;
	var validacionOK2 = true;
	
	//vamos a ocultar todos los campos para que cuando validen por segunda o tercera o... solo se muestre errores en los que exista
	$("#mensajeErrorEmailPassword").hide();
	
	//lo primero que realizaremos es la validacion de email
	var selectorIdFormulario = "#"+idFormulario;
	
	if(checkEmail($("#email").val())==false){
		//email incorrecto asi que debemos mostrar el mensaje
		//mensajeError = "El correo electr&oacute;nico o la contrase&ntilde;a son incorrectos";
		$("#mensajeErrorEmailPassword").html(error);
		$("#mensajeErrorEmailPassword").show('');
		validacionOK1 = false;
	}
	
	if($("#password").val().length<=3){
			$("#mensajeErrorEmailPassword").html(error);
			$("#mensajeErrorEmailPassword").show('');
			validacionOK2 = false;
	}
	
	if(validacionOK1 && validacionOK2){ 
		//si la validacion es correcta enviamos la peticion de crear cuenta
		document.getElementById("formularioAccederCuenta").submit();
	}
}	




function validacionRecordarPassword(idFormulario, urlCreacion, mensajeErrorRecordarPassword){
	
	var validacionOK = true;
	
	//vamos a ocultar todos los campos para que cuando validen por segunda o tercera o... solo se muestre errores en los que exista
	$("#mensajeErrorRecordarPassword").hide();
	
	//lo primero que realizaremos es la validacion de email
	var selectorIdFormulario = "#"+idFormulario;
	
	if(checkEmail($("#email").val())==false){
		//email incorrecto asi que debemos mostrar el mensaje
		//mensajeError = "La direcci&oacute;n de correo electr&oacute;nico no se corresponde con la de ninguna cuenta existente";
		$("#mensajeErrorRecordarPassword").html(mensajeErrorRecordarPassword);
		$("#mensajeErrorRecordarPassword").show('');
		validacionOK = false;
	}
	
	if(validacionOK){
		//si la validacion es correcta enviamos la peticion de crear cuenta
		document.getElementById("formularioRecordarPassword").submit();
	}
}


function validacionCambioPassword(idFormulario, urlCreacion,error1,error2,error3){
	var validacionOK1 = true;
	var validacionOK2 = true;
	var validacionOK3 = true;

	//vamos a ocultar todos los campos para que cuando validen por segunda o tercera o... solo se muestre errores en los que exista
	$("#errorPass1").hide();
	$("#vacioPass").hide();
	$("#passNo").hide();
	
	//lo primero que realizaremos es la validacion de email
	var selectorIdFormulario = "#"+idFormulario;
	
	if($("#password").val().length <= 3) { 
		$("#errorPass1").html(error1);
		$("#errorPass1").show('');
		validacionOK1 = false;
	}
	
	if($("#password_r").val() == '') {	
		$("#vacioPass").html(error2);
		$("#vacioPass").show('');
		
		validacionOK2 = false;
	}
	
	if($("#password").val() != $("#password_r").val()) {	
		$("#passNo").html(error3);
		$("#passNo").show('');
		
		validacionOK3 = false;
	}
	
	if(validacionOK1 && validacionOK2 && validacionOK3){
		//si la validacion es correcta enviamos la peticion de crear cuenta
		document.getElementById("formularioCambioPassword").submit();
	}
}

function getEmail(){

document.getElementById('labeltxt').innerHTML = document.getElementById("email").value;

}


function validacionCambioPasswordCuentaUsuario(idFormulario,error1,error2,error3,error4){
	var validacionOK1 = true;
	var validacionOK2 = true;
	var validacionOK3 = true;

	//vamos a ocultar todos los campos para que cuando validen por segunda o tercera o... solo se muestre errores en los que exista
	$("#passwordMenos4Caracteres").hide();
	$("#passwordVacio").hide();
	$("#passwordsNoCoinciden").hide();
	$("#mensajeErrorEmail").hide();
	
	
	
	var selectorIdFormulario = "#"+idFormulario;
	
	//lo primero que realizaremos es la validacion de email
	//Si esta vacio
	if($("#email").val().length <= 0){
	
		$("#mensajeErrorEmail").html(error2);
		$("#mensajeErrorEmail").show('');
		
		validacionOK1 = false;
	
	}else if(checkEmail($("#email").val())==false){
		//email incorrecto asi que debemos mostrar el mensaje de mail inválido
	
			$("#mensajeErrorEmail").html(error4);
			$("#mensajeErrorEmail").show('');
			validacionOK1 = false;
	}
	
	if($("#password").val().length <= 3) {
		//mensajeErrorCambioPasswordContrasenia4Caracteres = "La contrase&ntilde;a debe tener al menos 4 caracteres";
		$("#passwordMenos4Caracteres").html(error1);
		$("#passwordMenos4Caracteres").show('');
		
		validacionOK1 = false;
	}
	
	if($("#password_r").val() == '') {	
		//mensajeErrorCambioPasswordNoVacio = "Este campo no puede dejarse vacio";
		$("#passwordVacio").html(error2);
		$("#passwordVacio").show('');
		
		validacionOK2 = false;
	}
	
	if($("#password").val() != $("#password_r").val()) {	
		//mensajeErrorCambioPasswordContraseniasNoCoinciden = "Las contrase&ntilde;as no coinciden";
		$("#passwordsNoCoinciden").html(error3);
		$("#passwordsNoCoinciden").show('');
		
		validacionOK3 = false;
	}
	
	if(validacionOK1 && validacionOK2 && validacionOK3) {
	
		document.getElementById("passwordCambiado").value='Si';
		
		if(document.getElementById("emailCambiado").value=='Si'){

			getEmail();

			gestionAviso('mostrar');
		
		}else{
		
			document.getElementById('formularioCambioPassword').submit();
		
		}
	
		//si la validacion es correcta enviamos la peticion de crear cuenta

	}
}


function alphanumeric(alphane)
{
	var numaric = alphane;
	var longitud6 = numaric.length;
	for(var j=0; j<longitud6; j++)
		{
		  var alphaa = numaric.charAt(j);
		  var hh = alphaa.charCodeAt(0);
		  if((hh > 47 && hh<58) || (hh > 64 && hh<91) || (hh > 96 && hh<123))
		  {
		  }
		  else	
			{
			 			return false;
		  	}
 		}
 
 return true;
}

function cambiarPasswordCambiado() {
	$("#login_sinMod").show();
	$("#login").hide();
	$("#passwordMenos4Caracteres").hide();
	$("#passwordVacio").hide();
	$("#passwordsNoCoinciden").hide();
	$("#mensajeErrorEmail").hide();

	
}


function cambiarCodigoCambiado() {
	$("#cod_sinMod").show();
	$("#cod").hide();
}

function validacionCambioCodigoAct(){
	if($("#codCambiado").val()!="Eliminar"){
		$("#codCambiado").val("Si");
	}

	$("#formularioCambioCodigoArriba").submit();
}


function modificarCodigo(param){
	if(param == 'mod'){
		//$("#formularioCambioCodigoArriba").submit();
		$("#botonesLibyEli").hide();
		$("#botonesLiberar").hide();
		$("#liberarImagen").show();
		$("#deshabilitar").val("Liberar");
		$("#formularioCambioCodigoArriba").submit();
	}
	else if(param == 'eli'){
		var aux = $("#antiguo").html();
		$("#cod_sinMod").hide();
		$("#cod").hide();
		$("#cod_edicion").show();
		$("#codEli1").show();
		$("#codAct1").hide();
		$("#btnOkCancel").hide();

	}
	else{}
	
}

function botonOK(valor){

	var cambiar = $("#activacion").val();
	if(cambiar == valor){
		$("#cod").show();
		$("#cod_edicion").hide();
		$("#codEli1").hide();
		$("#codAct1").hide();
		$("#center").hide();
	}
	else{
		valor = cambiar;
		$("#cod_edicion").hide();
		$("#cod").show();
		$("#antiguo").html(valor);
		$("#oculto").val(valor);
		$("#codEli1").hide();
		$("#codAct1").hide();
		$("#center").hide();
	}
}


function botonCancel(codigo){

	if(codigo==" "){	
		$("#cod").show();
	}else{
		$("#cod_sinMod").show();
	}
	$("#cod_edicion").hide();
	$("#codEli1").hide();
	$("#codAct1").hide();
	
}

function botonOKEliminar(){

	var valor = "";
	$("#cod_edicion").hide();
	$("#cod").show();
	$("#antiguo").html(valor);
	$("#oculto").val(valor);
	$("#codCambiado").val("Eliminar");
	$("#fechaFin").hide();
	$("#codEli1").hide();
	$("#codAct1").hide();	
	$("#center").hide();
}

function botonCancelEliminar(valor){


	$("#cod").show();
	$("#cod_edicion").hide();
	$("#codEli1").hide();
	$("#codAct1").hide();
	$("#antiguo").html(valor);
}


function validarCambioDatosForo(){
	var validacionOK1 = true;
	$('#msgErrorUserForo').hide();
	$("#userOculto").val(jQuery.trim($("#userOculto").val()));
	$("#error_extension").hide();
//	if($("#fileImagen").val()!=""){
	
//		validar();
		
//		if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
//	 		var ffversion=new Number(RegExp.$1); // capture x.x portion and store as a number
//	 		if (ffversion>=3){
	 		
//	 			if(document.getElementById('fileImagen').files) {
	 			
//	 				var tama = document.getElementById('fileImagen').files.item(0).fileSize;
//	 				if(tama>768000){
//	 					$('#error_extension').show();
//	 					validacionOK1 = false;
//	 				}
//	 			}
//	 		}
//		}
//	}
	
//	if($("#userOculto").val() == '' && $("#fileImagen").val() == '') {
		//msgErrorCambioForoUserName = "El nombre de usuario no debe de ser vacio";
//		$('#errorUsername').show();
//		validacionOK1 = false;
//	}
	var nombre_userForo = $("#user").val();
	var avatar_Foro = $("#fileImagen").val();

	if($("#userOculto").val() == '' && $("#fileImagen").val() == '') {
		//msgErrorCambioForoUserName = "El nombre de usuario no debe de ser vacio";
		$('#errorUsername').show();
		validacionOK1 = false;
	}

	var extensiones_permitidas = new Array(".gif", ".jpg", ".png");
	var archivo = document.getElementById("fileImagen").value;
	
	if (archivo) { 
      //recupero la extensión de este nombre de archivo 
      extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase(); 

      //compruebo si la extensión está entre las permitidas 
      var permitida = false; 
      for (var i = 0; i < extensiones_permitidas.length; i++) 
      { 
         if (extensiones_permitidas[i] == extension) 
         { 
         permitida = true; 
         break; 
         } 
      } 
	
		if(permitida==false)
		{
			$('#formato').hide();
			$('#error_extension').show();
			
			validacionOK1 = false;
		}
	}
	
	
	if(validacionOK1) {
		//si la validacion es correcta enviamos la peticion de crear cuenta

		document.getElementById("formForoDataChange").submit();
	}
}


function validar() {

	//var fich = $("#fileImagen").val();

//	var ext = fich.substring(fich.lastIndexOf(".")).toLowerCase();


//	validacionOK1 = false;

//	if(ext!='') {
//		if( ext ==".jpg" || ext ==".gif" || ext ==".png" || ext ==".jpeg"){
//			validacionOK1= true;
//		}
//		else{
			
//			$('#error_extension').show();
			
//		}
//	}
	
	return validacionOK1;
}


function validarCambioDatosForo2(){
	var validacionOK1 = true;

//	$("#userOculto").val(jQuery.trim($("#userOculto").val()));


//	if($("#fileImagen").val()!=""){
	
//		validarForo();

//		if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
//	 		var ffversion=new Number(RegExp.$1); // capture x.x portion and store as a number
//	 		if (ffversion>=3){
	 		
//	 			if(document.getElementById('fileImagen').files) {
	 				
//	 				var tama = document.getElementById('fileImagen').files.item(0).fileSize;

//	 				if(tama>768000){
//	 					$('#error_extension').show();
//	 					validacionOK1 = false;
//	 				}
//	 			}
//	 		}
//		}
//	}
	$("#error_extension").hide();
	var nombre_userForo = $("#user").val();
	var avatar_Foro = $("#fileImagen").val();

	if($("#userOculto").val() == '' && $("#fileImagen").val() == '') {
		//msgErrorCambioForoUserName = "El nombre de usuario no debe de ser vacio";
		$('#errorUsername').show();
		validacionOK1 = false;
	}

	var extensiones_permitidas = new Array(".gif", ".jpg", ".png");
	var archivo = document.getElementById("fileImagen").value;
	
	if (archivo) { 
      //recupero la extensión de este nombre de archivo 
      var extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase(); 

      //compruebo si la extensión está entre las permitidas 
      var permitida = false; 
      for (var i = 0; i < extensiones_permitidas.length; i++) 
      { 
         if (extensiones_permitidas[i] == extension) 
         { 
         permitida = true; 
         break; 
         } 
      } 
	
		if(permitida==false)
		{
			$('#formato').hide();
			$('#error_extension').show();
			validacionOK1 = false;
		}
	}
	
	if(validacionOK1) {
		//si la validacion es correcta enviamos la peticion de crear cuenta
		document.getElementById("formForoDataChange").submit();
	}
}


function validarForo() {

//	validacionOK1= true;
//	var fich = $("#fileImagen").val();

//	var ext = fich.substring(fich.lastIndexOf(".")).toLowerCase();

//	if(ext!='') {
//		if( ext ==".jpg" || ext ==".gif" || ext ==".png" || ext ==".jpeg"){
//			validacionOK1= true;
//		}
//		else{
//			validacionOK1 = false;
//			$('#error_extension').show();
			
//		}
//	}

	return validacionOK1;
}

function cambiar(){

	$("#login_sinMod").hide();
	$("#login").show();
	$("#aviso").hide();
}

function cambiarAct(codigo){
		
		var aux = $("#codigoPanda").html();
		$("#cod_sinMod").hide();
		
		if(codigo.length!=0){
			$("#cod").show();
			$("#center").show();
			$("#fechaFin").show();
			}
		else{
			$("#cod_edicion").show();
			$("#codAct1").show();
			$("#activacion").val(aux);
		}
		$("#antiguo").html(aux);
		$("#liberarImagen").hide();
		
		
}


function modificarDatosForo(){
	//vamos a mostrar los elementos que nos permitiran la modificacion de datos del usuario del foro
	
	document.getElementById('content_details').style.background= 'url(/portal/imagenes/panel_largo.png) no-repeat transparent';
	
	$("#mod").attr("style","display:none;");
	$('#changeForoUserName').show();
	$('#modImgUserForo').show();
	$('#modUserForoButtons').show();	
	$('#aOpcionModificar2').hide();
	$('#msgErrorUserForo').hide();
	$('#helpUsuFoto').show();
	$('#userNickForo').show();
	
	$('#tabla_firma').show();
	
	$('#user_mod').show();
	$('#usuario').hide();
	$('#errorUsername').hide();
	if($('#usuarioRepe').val()=='1')
	{
		$('#changeForoUserName').show();
		$('#user').show();
		$('#usuario_error').hide();
	}
	$('#signature_mod').show();
	
}


function ocultarModDatosForo(){
	
	$('#cambios').val('0');	
	document.getElementById("formForoDataChange").submit();
}

function datos(url){

	document.forms[2].action= url;
	document.forms[2].submit();

}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}


function cambiarDato(){

	var nombreForos='';
	nombreForos = $("#user_mod").val();
	$('#userOculto').attr("value",nombreForos);
}	

function cambiarDatoUser(){

	var nombreForos='';
	nombreForos = $("#user").val();
	$('#userOculto').attr("value",nombreForos);

}	
function cambiarDatoFirma(){

	var firmaForos='';
	firmaForos = $("#signature_mod").val();
	alert(firmaForos);
	$('#signatureOculto').attr("value",firmaForos);

}	
function LetrasYNumeros()
{

	var alfanumber =$('#userOculto').val();
	var Template = /^[a-z0-9]+$/i; //Formato de alfanumerico
	return (Template.test(alfanumber)) ? 1 : 0; //Compara "YourAlphaNumeric" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}

function mostrarNombre() 
{ 
             
            // Este problema es con IE normalmente (firefox no)  
            //pero por si acaso lo hacemos para todos... 
            var componente = document.getElementById("fileImagen"); 
            var pieces = componente.value.split("\\"); // Windows  
            if (pieces.length == 0) 
            { 
               pieces = componente.value.split("/"); //Linux, una vez más para todos! 
            } 
            document.getElementById("nombreFichero").value=pieces[pieces.length-1]; 
} 
