
/******* FUNCIONES PARA EL FORMULARIO DE LOGIN *******/

function clearForm(nameForm) {
	document.forms[nameForm].reset();
}

function checkFormLogin(nameForm,vaciarForm) {
	var f = document.forms[nameForm];
	
	if (checkUsername(f.username)) {
		if (checkPassword(f.password)) {
			if (typeof(vaciarForm)=="undefined" || vaciarForm)
				setTimeout("clearForm('"+nameForm+"');", 3000);
			
			return true;
		}
	}
	
	return false;
}

function checkUsername(inputUser) {
	valor = inputUser.value;
	resultado = true;
	if (valor == '') {
		alert(MSG['D0F41.ErrLogPwdNoOk']);
		resultado = false;
	} else {
		var b = validaFormatoLogin(valor);
		if (!b) {
			alert(MSG['D0F41.ErrLogPwdNoOk']);
			resultado = false;
		}
	}
	
	if (!resultado) {
		inputUser.focus();
	}
	
	return resultado;
}
function checkPassword(inputPass) {
	valor = inputPass.value;
	resultado = true;
	if (valor == '') {
		alert(MSG['D0F41.ErrLogPwdNoOk']);
		resultado = false;
	}
	
	if (!resultado) {
		inputPass.focus();
	}
	
	return resultado;
}
function checkExpr(valor, expr) {
	var re = new RegExp(expr);
	var m = re.exec(valor);
	if ((m == null) || (m.length != 1)) {
		b = false;
	} else {
		if (m[0].length != valor.length) {
			b = false;
		} else {
			b = true;
		}
	}
	return b;
}

function validaFormatoLogin(valor) {
	return checkExpr(valor, "[A-Za-z0-9_.-]*");
}

/******* FUNCIONES PARA EL RECORDATORIO DE PASSWORD *******/
function recordarPassword(link) {
	link = tratarLink(link);
	javascript:window.location=link+'?username='+encodeURIComponent(campo('formLogin','username').value);
}


/******* FUNCIONES PARA LOS FORMULARIOS DE ATENCION AL CLIENTE *******/

/** PARTE PRIVADA **/

var i = 0;
var comprobacionesOV = new Array;
comprobacionesOV[i++] = ['correo', MSG['D0F19.ErrNoEmail']];
comprobacionesOV[i++] = ['telefono', MSG['D0F19.ErrNoTfno']];
comprobacionesOV[i++] = ['observaciones', MSG['D0F19.ErrNoObs']];

// Valida el formulario de atencion al cliente de OV
function checkFormAtencionClienteOV(nameForm) {
	var f = document.forms[nameForm];
	
	// Campos obligatorios
	var error = checkObligatorios(comprobacionesOV, f);

	// Comprobacion de formatos	
	if (!error) {
		if (!isNumeric(f.elements['telefono'].value)) {
			alert(MSG['D0F23.ErrDatoTfno']);
			error = true
		} else if (!validaFormatoEmail1(f.elements['correo'].value.toLowerCase())||!validaFormatoEmail2(f.elements['correo'].value.toLowerCase())) {
			alert(MSG['D0F23.ErrDatoEmail']);
			error = true
		}
	}
	
	if (!error) {
		f.submit();
	}
}

/** PARTE PUBLICA **/

var i = 0;
var comprobacionesCS = new Array;
comprobacionesCS[i++] = ['empresa', MSG['D0F19.ErrNoEmpr']];
comprobacionesCS[i++] = ['cif', MSG['D0F19.ErrNoCif']];
comprobacionesCS[i++] = ['provincia', MSG['D0F19.ErrNoProv']];
comprobacionesCS[i++] = ['poblacion', MSG['D0F19.ErrNoPobl']];
comprobacionesCS[i++] = ['nombreyape', MSG['D0F19.ErrNoNombre']];
comprobacionesCS[i++] = ['correo', MSG['D0F19.ErrNoEmail']];
comprobacionesCS[i++] = ['telefono', MSG['D0F19.ErrNoTfno']];
comprobacionesCS[i++] = ['observaciones', MSG['D0F19.ErrNoObs']];

// Valida el formulario de atencion al cliente de CS
function checkFormAtencionClienteCS(nameForm) {
	var f = document.forms[nameForm];
	
	// Campos obligatorios
	var error = checkObligatorios(comprobacionesCS, f);

	// Comprobacion de formatos	
	if (!error) {
		if ((f.elements['cp'].value!='') && (!isNumeric(f.elements['cp'].value))) {
			alert(MSG['D0F19.ErrDatoCP']);
			error = true
		} else if (!isNumeric(f.elements['telefono'].value)) {
			alert(MSG['D0F19.ErrDatoTfno']);
			error = true
		} else if (!validaFormatoEmail1(f.elements['correo'].value.toLowerCase())||!validaFormatoEmail2(f.elements['correo'].value.toLowerCase())) {
			alert(MSG['D0F19.ErrDatoEmail']);
			error = true
		}
	}
	
	if (!error) {
		f.submit();
	}
}

/** FUNCIONES DE AYUDA **/

// A traves de un array comprueba los campos obligatorios
function checkObligatorios(campos, f) {
	var error = false;
	for (j=0; j<campos.length; j++) {
		var ele = campos[j][0];
		var mensa = campos[j][1];
		if (!tieneValor(f,ele)) {
			alert(mensa);
			f.elements[ele].focus();
			error = true;
			break;
		}
	}
	return error;
}

// Comprueba si un elemento de un formulario tiene valor
function tieneValor(f,e) {
	if (dameValor(f,e) == '') {
		return false;
	} else {
		return true;
	}
}

// Obtiene el valor de un elemento en un formulario
function dameValor(f, e) {
	return trim(f.elements[e].value);
}

// Funcion que solo acepta decimales
function decimalsonly(myfield, e) {
	return checkNumber(myfield, e, dec, true);
}

// Funcion que solo acepta numeros
function numbersonly(myfield, e) {
	return checkNumber(myfield, e, false, false);
}

// Funcion que comprueba un numero
function checkNumber(myfield, e, dec, neg) {
	var key;
	var keychar;
	
	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	keychar = String.fromCharCode(key);
	
	// control keys
	var ok = false;
	if ((key==null) || (key==0) || (key==8) || 
	    (key==9) || (key==13) || (key==27) ) {
	   ok = true;
	
	} else {
		// valores restringidos
	   	ok = true;
		if (!(("-.0123456789").indexOf(keychar) > -1)) {
			ok = false;
		}
	   	if (!dec && (".").indexOf(keychar) > -1) {
	   		ok = false;
	   	}
	   	if (!neg && ("-").indexOf(keychar) > -1) {
	   		ok = false;
	   	}
	}
	return ok;
}

//Función que limita el textarea a maxlimit caracteres

function textCounter(field, countfield, maxlimit) {

	if (field.value.length > maxlimit) 
	{

		field.value = field.value.substring(0, maxlimit);
	}else{ 
	
		countfield.value = maxlimit - field.value.length;}
}




// Comprueba la entrada de datos
function validarCampos(elCIF) {

      var nif_cif = elCIF.value.toUpperCase();;

      

      //Validamos si se ha rellenado el campo CIF
      if (nif_cif == "") {
            alert("No ha rellenado el campo CIF/NIF");
            elCIF.focus();
            return false;
      }

      //Validamos si los datos son correctos
      if (!validarCIF(nif_cif)) {
           // alert("El CIF introducido no es correcto");
            elCIF.focus();
            elCIF.value="";
            
            return false;
      }
      return true;
}

/******* FUNCIONES PARA LOS FORMULARIOS DE SANT JORDI08 *******/

/** PARTE PRIVADA **/

var i = 0;
var comprobacionesSJ08 = new Array;
comprobacionesSJ08[i++] = ['empresa', MSG['D0F18.ErrNoEmpresa']];
comprobacionesSJ08[i++] = ['cif', MSG['D0F18.ErrNoCif']];
comprobacionesSJ08[i++] = ['nombreyape', MSG['D0F18.ErrNoNombreyAp']];
comprobacionesSJ08[i++] = ['telefono', MSG['D0F18.ErrNoTfno']];
comprobacionesSJ08[i++] = ['direccion', MSG['D0F18.ErrNoDireccion']];
comprobacionesSJ08[i++] = ['cp', MSG['D0F18.ErrNoCp']];
comprobacionesSJ08[i++] = ['poblacion', MSG['D0F18.ErrNoPobl']];
comprobacionesSJ08[i++] = ['provincia', MSG['D0F18.ErrNoProv']];

// Valida el formulario de Sant Jordi08
function checkFormSantJordi08(nameForm) {
	var f = document.forms[nameForm];
	
	// Campos obligatorios
	var error = checkObligatorios(comprobacionesSJ08, f);

	// Comprobacion de formatos	
	if (!error) {
		if ((f.elements['cp'].value!='') && (!isNumeric(f.elements['cp'].value))) {
			alert(MSG['D0F18.ErrDatoCP']);
			error = true
		} else if (!isNumeric(f.elements['telefono'].value)) {
			alert(MSG['D0F18.ErrDatoTfno']);
			error = true
		} 
	}
	
	if (!error) {
		f.submit();
	}
}



/******* FUNCIONES PARA LOS BUSCADORES (ARTICULO, NORMATIVA, BIBLIOTECA) *******/

// Comprueba que los campos de palabras clave sean correctos
function checkKeywords(f, who) {
	//alert(f.name);
	keys = f.keywords.value;
	//alert(keys);
	if (keys == '') {
		alert(MSG[who+'.ErrNoCritBusc']);
		return false;
	}
	keys = keys.split(" ");
	var menores = 0;
	var mayores = 0;
	//alert(keys.length);
	for (i=0; i<keys.length;i++) {
		if (keys[i].length == 0) {
		} else if (keys[i].length < 3) {
			menores++;
		} else {
			mayores++;
		}
	}
	
	if (mayores > 0) {
		if (menores > 0) {
			alert(MSG[who+'.Err2DatoCritBusc']);
		}
	} else {
		alert(MSG[who+'.ErrDatoCritBusc']);
		return false;
	}
}

function checkKeywordsArticulo(f) {
	return checkKeywords(f, 'D0F14');
}

function checkKeywordsNormativa(f) {
	return checkKeywords(f, 'D0F17');
}

function checkKeywordsBiblioteca(f) {
	return checkKeywords(f, 'D0F18');
}

