//-----------------------------CleanField---------------------------------
function CleanField(e) {
    if ($(e).val() == $(e).attr('defaultValue')) $(e).val(''); $(e).css('background-color', '#FFFFFF'); $('#Carregant').text('').hide();

}
//-----------------------------LoadPasswdFrm---------------------------------------------
function LoadPasswdFrm() {
    AjaxPublicaDiv('LoginForm', 'functions/GetLoginForm.aspx?do=PasswdFrm');
}
//-----------------------------LoadPasswdFrm----------------------------------------------
function LoadLoginFrm() {
    AjaxPublicaDiv('LoginForm', 'functions/GetLoginForm.aspx?do=LogFrm');

}

//----------------------------Recordar Pw---------------------------------------------
function RecordarPw() {
    // Camp DNI
    $('#dni').attr('value', EliminaEspacios($('#dni').val()));

    $.post('functions/GetPasswd.aspx',
		{
		    Dni: $('#dni').val()
		},
  		function (data) {
  		    //alert(data);
  		    if (data == 'Err') { AjaxPublicaDiv('LoginForm', 'functions/GetLoginForm.aspx?do=ErrPasswdFrm'); }
  		    else {
  		        AjaxPublicaDiv('LoginForm', 'functions/GetLoginForm.aspx?do=OkPasswdFrm');
  		        alert("En breu rebràs un correu a la teva bústia amb les teves dades d'accès.");
  		    }
  		});
    return false;
}

//----------------------------ValidaLoginFrm()---------------------------------------------
function ValidaLoginFrm() {
    // Camp DNI
    $('#dni').attr('value', EliminaEspacios($('#dni').val()));
    if ($('#pass').val() == $('#pass').attr('defaultValue')) { $('#Carregant').text("La Contrasenya es obligatoria").show(); $("#pass").css('background-color', '#FFCC33'); return false; }
    //$(e).submit();
    $.post('functions/GetLogin.aspx',
		{
		    Dni: $('#dni').val(),
		    Passwd: $('#pass').val()
		},
  		function(data) {
  		    if (data == 'Stop') {
  		        AjaxPublicaDiv('LoginForm', 'functions/GetLoginForm.aspx?do=Stop');
  		    }
  		    else {
  		        if (data == 'Err0') {
  		            AjaxPublicaDiv('LoginForm', 'functions/GetLoginForm.aspx?do=Err0LogFrm');
  		        }
  		        else if (data == 'Err1') {
  		            AjaxPublicaDiv('LoginForm', 'functions/GetLoginForm.aspx?do=Err1LogFrm');
  		        }
  		        else if (data == 'Ok_Ad') {
  		            window.location.replace('_Adm3/Profesionales.aspx');
  		            //window.location.replace('_Adm2/Abs.aspx');
  		        }
  		        else {
  		            window.location.replace('_User/Home.aspx');
  		        }
  		    }
  		});
    return false;
}

//---------------------------------ValidaPasswdFrm ----------------------------------------------------------
function ValidaPasswdFrm() {
    // Camp DNI
    $('#dni').attr('value', EliminaEspacios($('#dni').val()));

    // Camp EmailProf
    $('#EmailProf').attr('value', EliminaEspacios($('#EmailProf').val()));
    if ($("#EmailProf").val() == '') { $('#Carregant').text('Cal introduir el teu Email.').show(); $("#EmailProf").css('background-color', '#FFCC33'); return false; }
    if (!ParseEmail($('#EmailProf').val())) { $("#Carregant").text("Format de direcció de Correu erroni.").show(); $('#EmailProf').css('background-color', '#FFCC33'); return false; }
    $.post('functions/GetPasswd.aspx',
		{
		    Dni: $('#dni').val(),
		    EmailProf: $('#EmailProf').val()
		},
  		function(data) {
  		    if (data == 'Err') { AjaxPublicaDiv('LoginForm', 'functions/GetLoginForm.aspx?do=ErrPasswdFrm'); }
  		    else { AjaxPublicaDiv('LoginForm', 'functions/GetLoginForm.aspx?do=OkPasswdFrm'); }
  		});
    return false;
}

 /*--------------- EliminaBlancsExtrems ----------------
Nombre: EliminaBlancsExtrems.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: cadena sin espacios delante ni detras
-------------------------------------------------------*/
function EliminaBlancsExtrems(cadena){ 
	while (cadena.charAt(0)==' ') { //Elimina espais davant
		cadena = cadena.substring(1,cadena.length);
	}	
 	while (cadena.charAt(cadena.length-1)==' '){ // Al final
                	cadena = cadena.substring(0,cadena.length-1);
	}
	return cadena;
}
/*--------------- DetectaNumerosCadena ----------------
Nombre: DetectaNumerosCadena.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: true si detecta un caracter entre 0 i 9. sino false
-------------------------------------------------------*/
function DetectaNumerosCadena(cadena){
	var NumerosCadena=false;
	for(i=0;i<cadena.length;i++){
		if(!isNaN(cadena.charAt(i)) && cadena.charAt(i)!=' ' ){
			NumerosCadena=true;
		}
	}
	return NumerosCadena;
}
/*--------------- DetectaLetrasCadena ----------------
Nombre: DetectaLetrasCadena.
Recibe: cadena texto. por ejemplo un campo de texto de formulario que tiene que ser todo numerico.
Devuelve: true si detecta un caracter que no este entre 0 i 9. sino false
-------------------------------------------------------*/
function DetectaLetrasCadena(cadena){
	var LetrasCadena=false;
	for(i=0;i<cadena.length;i++){
		if(isNaN(cadena.charAt(i)) && cadena.charAt(i)!=' ' ){
			LetrasCadena=true;
		}
	}
	return LetrasCadena;
}
/*--------------- Detecta2EspaciosCadena ----------------
Nombre: DetectaEspaciosCadena.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: true si detecta mas de un espacio seguido. sino false.
-------------------------------------------------------*/
function Detecta2EspaciosCadena(cadena){
	var EspaciosCadena=false;
	for(i=0;i<cadena.length;i++){
		if( cadena.charAt(i)==' ' && cadena.charAt(i-1)==' ' && i!=0){
			EspaciosCadena=true;
		}
	}
	return EspaciosCadena;
}
/*--------------- DetectaEspaciosCadena----------------
Nombre: DetectaEspaciosCadena.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: true si detecta mas de un espacio seguido. sino false.
-------------------------------------------------------*/
function DetectaEspaciosCadena(cadena){
	var EspaciosCadena=false;
	for(i=0;i<cadena.length;i++){
		if( cadena.charAt(i)==' '){
			EspaciosCadena=true;
		}
	}
	return EspaciosCadena;
}
/*--------------- EliminaEspaciosCadena ----------------
Nombre: EliminaEspaciosCadena.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: cadena sin  mas de UN espacio seguido. 
-------------------------------------------------------*/
function EliminaEspaciosCadena(cadena){
	for(i=0;i<cadena.length;i++){
		if( cadena.charAt(i)==' ' && cadena.charAt(i-1)==' ' && i!=0){
			cadenaA=cadena.substring(0,i-1);
			cadenaB=cadena.substring(i,cadena.length);
			cadena=cadenaA+cadenaB;
			i--;
		}
	}
	return cadena;
}
/*--------------- ParseEmail ----------------
Nombre: ParseEmail.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: true si cadena es una dir. de correro valida, sino false. 
-------------------------------------------------------*/
function ParseEmail(cadena){
	if(cadena.lastIndexOf('.')==-1){
		return false; //no tiene puntos
	}
	var ArrDom=new Array("es","com","net","edu","info","cat","tv","uk","fr","org","cat");
	var SufixDom=cadena.substring(cadena.lastIndexOf('.')+1,cadena.length);
	var DomOk=false;
	for (i=0; i<ArrDom.length; i=i+1) {
		if(SufixDom==ArrDom[i]){DomOk=true;}
	}
	if(!DomOk) return false; //El dominio no esta en la lista
	if(cadena.search('@')==-1){
		return false; //no hay ningun @
	}
	if(cadena.indexOf('@')!=cadena.lastIndexOf('@')){
		return false; //hay mas de una @
	}
	if(cadena.indexOf('@')==0){
		return false; // @ en primer lugar
	}
	if(cadena[cadena.indexOf('@')-1]=='.' || cadena[cadena.indexOf('@')+1]=='.'){
		return false; // puntos pegados en el @
	}
	for(i=0; i<cadena.length;i++){
		var caracter=cadena.charAt(i);
		if (!((caracter>='a' && caracter<='z') || 
			(caracter>='A' && caracter<='Z') || 
			(caracter>='0' && caracter<='9') || 
			caracter=='.' || caracter=='-' || 
			caracter=='@' || caracter=='_')){
				 return false;
		}
	}
	return true;
}
/*--------------- ParseNIF ----------------
Nombre: ParseNIF.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: true si cadena es un NIF valido, sino false. 
-------------------------------------------------------*/
function ParseNIF(cadena){
	var val=false;
    if(isNaN(cadena) 
        && cadena.length>=8
        && isNaN(cadena.charAt(cadena.length-1))
        && !isNaN(cadena.substr(0,cadena.length-1))) {
            var lockup = 'TRWAGMYFPDXBNJZSQVHLCKE';
            var num=cadena.substr(0,cadena.length-1);
            var let=cadena.charAt(cadena.length-1);
            if(lockup.charAt(num % 23)==let) {
                val=true;
            }
    }
    return val;
}
/*--------------- ParseNIE ----------------
Nombre: ParseNIE.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: true si cadena es un NIE valido, sino false. 
-------------------------------------------------------*/
function ParseNIE(cadena){
	alert(cadena);
	return true;
}
/*--------------- ParseCIF ----------------
Nombre: ParseCIF.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: true si cadena es un CIF valido, sino false. 
-------------------------------------------------------*/
function ParseCIF(cadena){
	var result = false;
  	// pasar a mayúsculas
  	var temp = cadena.toUpperCase(); 

  	if (!/^[A-Za-z0-9]{9}$/.test(temp)){ // Son 9 dígitos?
   		alert ("Longitud incorrecta, un CIF    consta de 9 dígitos");
  	}else if (!/^[ABCDEFGHKLMNPQS]/.test(temp)) {	// Es una    letra de las admitidas ?
   		alert("El primer dígito es  incorrecto, debe ser una letra de las siguientes: A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S    ");
  	}else{
		//verifica digit de control
		var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
   		var temp = 0;
		for( i = 2; i <= 6; i += 2 ) {
    		temp = temp + v1[ parseInt(cadena.substr(i-1,1))];
    		temp = temp + parseInt(cadena.substr(i,1));
   		}
		temp = temp + v1[ parseInt(cadena.substr(7,1))];
   		temp = (10 - ( temp % 10));
		if( temp == parseInt(cadena.charAt(cadena.length-1)) ){
			result = true;
		}else{
			alert( "El dígito de control  No Correctorrrg" );
		}
  	}
	return result;
}
/*--------------- ValidaRadio ----------------
Nombre: ValidaRadio
Recibe: cadena texto del nombre de los objetos radio de un formulario
	 por ejemplo un campo de radio de formulario que pida el sexo.
Devuelve: true si hay alguno que se encuentra checked, sino false. 
-------------------------------------------------------*/
function ValidaRadio(NombreRadio){
	var ArrayRadio=document.getElementsByName(NombreRadio);
	for(i=0;i<ArrayRadio.length;i++){
		var objRadio=ArrayRadio[i];
		if(objRadio.checked==true){
			return true; 
		}
	}
	return false;
}
/*--------------- ValidaCheckBox ----------------
Nombre: ValidaCheckBox
Recibe: cobjeto checkBox de un formulario
	 por ejemplo un campo de checkbox de formulario que confirmación.
Devuelve: true si  se encuentra checked, sino false. 
-------------------------------------------------------*/
function ValidaCheckBox(objCheckbox){
	if(objCheckbox.checked==true){
		return true; 
	}else{
		return false;
	}	
}
/* ---- -------------------- IsThereSpecialCaracters----------------------------
** Descripcion: Detecta en una cadena los caracteres que no esten en el alfabeto tradicional
** Recibe: Un String en la variables local Cadena.
** Devuelve: true si hay caracteres espaciales sino false
-------------------------------------------------------------------------------------*/
function IsThereSpecialCaracters(Cadena){
	//Esta variable contiene todos loa caracteres que consideramos normales 
	// OJO!!!! tiene que  contener un ESPACIO en BLANCO sino tb los elimina!!!!!!!
	var CaracterNormal=" abcçdefghijklmnñopqrstuvxywzABCÇDEFGHIJKLMNOPQRSTUVXYWZáàéèíìïóòúùü";
	for(pos=0;pos<=Cadena.length-1;pos++){ //Recorer cadena desde pos=0 hasta pos=length-1 
		if(CaracterNormal.indexOf(Cadena.charAt(pos))==-1){ //Si indexOf devuelve -1 es que no esta el caracter dentro de 'CaracterNormal' por tanto...
			return true;
		}
	}
	
	return false; //Devolvemos  true
}

/* -------------------------- IsThereNumbers-----------------------------------------
** Descripcion: Detecta de una cadena los caracteres del 0 al 9
** Recibe: Un String en la variables local Cadena.
** Devuelve: true si detecta numeros sino false
-------------------------------------------------------------------------------------*/
function IsThereNumbers(Cadena){
	for(pos=0;pos<=Cadena.length-1;pos++){ //Recorer cadena desde pos=0 hasta pos=length-1 
		if(!isNaN(Cadena.charAt(pos)) && Cadena.charAt(pos)!=" "){// si isNaN nos devuelve false (es un numero) y lo negamos tenemos true
			return true;
		}
	}
	return false; //Devolvemos  false si no hay numeros
}
/*----------EliminaEspacios ----------------------------
*-- Recibe: Cadena como String.
*-- Devualve: Cadena como String sin espacios delante y detras ni repetidos en medio
*-- Desc: Sirve para eliminar espacios del y detras y es util para
*--		formularios en los campos obligatorios.
*------------------------------------------------------------*/
function EliminaEspacios(Cadena){
	while(Cadena.charAt(0)==' '){
		Cadena=Cadena.substring(1);
	}
	while(Cadena.charAt(Cadena.length-1)==' '){
		Cadena=Cadena.substring(0,Cadena.length-1);
	}
	for(pos=0;pos<=Cadena.length-1;pos++){ //Recorer cadena desde pos=0 hasta pos=length-1 
		if(Cadena.charAt(pos)==" " && Cadena.charAt(pos+1)==" "){ // Si posicion actual y la siguiente son espacio en blanco pues...
			var parteA=Cadena.substring(0,pos); //Cortamos de pos=0 de Cadena hasta caracter en posicion 'pos' sin incluir este
			var parteB=Cadena.substring(pos+1); // Cortamos des de caractes en pos+1 hasta el final de cadena.
			Cadena=parteA+parteB; // Unimos las dos partes en una y volvemos a ponerlo en variable Cadena.
			pos--; // evitamos movernos de posicion para la siguiente iteracion del for
		}
	}
	return Cadena;
}
/*--------------- ParsePassword ----------------
Nombre: ParsePassword.
Recibe: cadena texto. por ejemplo un campo de texto de formulario.
Devuelve: true si cadena tiene como minimo num y letras. sino false. 
-------------------------------------------------------*/

function ParsePassword(Cadena) {
    var LongCadena = Cadena.length;
    var NNumeros = 0;
    var NLetras = 0;
    for (i = 0; i <= Cadena.length - 1; i++) {
        var caracter = Cadena.charAt(i);
        if (isNaN(caracter) || caracter == " ") {
            NLetras++;
        } else {
            NNumeros++;
        }

    }
    //alert("NLetras:"+ NLetras+ "NNumeros:" +NNumeros );
    if (NLetras == LongCadena) {
        return false;
    } else if (NNumeros == LongCadena) {
        return false;
    } else {
        return true;
    }
}


function ParseFecha(fecha) {

    var Fecha = fecha;
    var RealFecha = new Date();
    var Ano = new String(Fecha.substring(Fecha.lastIndexOf("/") + 1, Fecha.length));
    var Mes = new String(Fecha.substring(Fecha.indexOf("/") + 1, Fecha.lastIndexOf("/")));
    var Dia = new String(Fecha.substring(0, Fecha.indexOf("/")));

    if (isNaN(Ano) || Ano.length < 4 || parseFloat(Ano) < 1900) {
        return false;
    }
    if (isNaN(Mes) || parseFloat(Mes) < 1 || parseFloat(Mes) > 12) {
        return false;
    }
    if (isNaN(Dia) || parseInt(Dia, 10) < 1 || parseInt(Dia, 10) > 31) {
        return false;
    }
    if (Mes == 4 || Mes == 6 || Mes == 9 || Mes == 11 || Mes == 2) {
        if (Mes == 2 && Dia > 28 || Dia > 30) {
            return false;
        }
    }

    return true;
}


