//CSAlfanum.js
//Clase Alfanum.

//Konstanteak.
var CSALFANUM_MSG_OBLIGATORY = map["MSG_OBLIGATORY"];
var CSALFANUM_MSG_SPACES = map["MSG_SPACES"];

function CSAlfanum(campo,etiqueta,obligatorio) {
	this.campo = campo;
	this.etiqueta = etiqueta;
	this.obligatorio = obligatorio;
	this.error = "";
	
	this.validar = CSAlfanum_validar;
	this.validarLogo = CSAlfanum_validar_logo;
	this.validarEntradaTexto = CSAlfanum_validar_entrada_texto;
	this.validarAttachment = CSAlfanum_validar_attachment;
	this.validarDecimal = CSAlfanum_validar_decimal;
    this.msg_error = CSAlfanum_msg_error;
	
}


//Devuelve true si el logo es correcto.
function CSAlfanum_validar_logo() {
   var re,espacios;
   var file=this.campo;
   
     if (this.obligatorio){
		if (file == "") {
           this.error = CSALFANUM_MSG_OBLIGATORY;
		   this.error = this.error.replace('XXXXXX',this.etiqueta);
	       return false;
  	    }
	 } else {
		if (file == "") {
		   return true;
        }
	 }

   var re_gif = /\.gif$/;
   var re_png = /\.png$/;
   var re_jpg = /\.jpg$/;
   var test_logo = re_gif.test(file) || re_png.test(file) || re_jpg.test(file);

   if (!test_logo) {
      this.error = map["MSG_LOGO_INCORRECT_TYPE"];
      this.error = this.error.replace('XXXXXX',this.etiqueta);
      return false;
   }
   
   return true;
}

//Devuelve true si el fichero de attachment es correcto.
function CSAlfanum_validar_attachment() {
   var re,espacios;
   var alfanum;
   var file=this.campo;
   
     if (this.obligatorio){
		if (file == "") {
           this.error = CSALFANUM_MSG_OBLIGATORY;
		   this.error = this.error.replace('XXXXXX',this.etiqueta);
 	       return false;
        }
	 } else {
		if (file == "") {
		   return true;
        }
	 }

   var re_txt = /\.txt$/;
   var re_zip = /\.zip$/;
   var re_pdf = /\.pdf$/;
   var re_doc = /\.doc$/;
   var re_ppt = /\.ppt$/;
   var re_xls = /\.xls$/;
   var test_logo = re_txt.test(file) || re_zip.test(file) || re_pdf.test(file) || re_doc.test(file) || re_ppt.test(file) || re_xls.test(file);
   if  (!test_logo) {
       this.error = map["MSG_ATTACHMENT_INCORRECT_TYPE"];
       this.error = this.error.replace('XXXXXX',this.etiqueta);
       return false;
   } else {
	   return true;
   }

}

//Devuelve true o false si el campo es correcto o incorrecto.
function CSAlfanum_validar() {
   var re,espacios;
   var alfanum;
   
     alfanum=this.campo;
     if (this.obligatorio){
		if (alfanum == "") {
           this.error = CSALFANUM_MSG_OBLIGATORY;
		   this.error = this.error.replace('XXXXXX',this.etiqueta);
		   return false;
        }
	 } else {
		if (alfanum == "") {
		   return true;
        }
	 }

     re = /^\s+$/;
     espacios = re.test(alfanum);
     if (espacios) {
         this.error = CSALFANUM_MSG_SPACES;
         this.error = this.error.replace('XXXXXX',this.etiqueta);			  
		 return false;
	 }
	 return true;
}

//Devuelve true o false si la entrada de texto es correcta o incorrecta.
function CSAlfanum_validar_entrada_texto(size) {
   var re,espacios;
   var alfanum;
   
     alfanum=new String(this.campo);
     if (this.obligatorio){
		if (alfanum.toString() == "") {
           this.error = CSALFANUM_MSG_OBLIGATORY;
		   this.error = this.error.replace('XXXXXX',this.etiqueta);
		   return false;
        }
	 } else {
		if (alfanum.toString() == "") {
		   return true;
        }
	 }

     re = /^\s+$/;
     espacios = re.test(alfanum.toString());
     if (espacios) {
         this.error = CSALFANUM_MSG_SPACES;
         this.error = this.error.replace('XXXXXX',this.etiqueta);			  
		 return false;
	 }
     if (alfanum.length > size) {
         this.error = map["MSG_ENTRADA_TEXTO_INCORRECT_SIZE"];
         this.error = this.error.replace('XXXXXX',this.etiqueta);			  
  	     this.error = this.error.replace('YYYYYY',size);
         return false;
     }
     return true;
}

//Devuelve true o false si el campo es correcto o incorrecto.
function CSAlfanum_validar_decimal() {
   var re1,re2,dec_incorrecto;
   var decimal;
   
     decimal=this.campo;
     if (this.obligatorio){
		if (decimal == "") {
           this.error = CSALFANUM_MSG_OBLIGATORY;
		   this.error = this.error.replace('XXXXXX',this.etiqueta);
		   return false;
        }
	 } else {
		if (decimal == "") {
		   return true;
        }
	 }

     re1 = /^\d+\.\d+$/;
     re2 = /^\d+$/;
     dec_incorrecto = !re1.test(decimal) && !re2.test(decimal);
     if (dec_incorrecto) {
         this.error = map["MSG_ENTRADA_DECIMAL_INCORRECT"];
         this.error = this.error.replace('XXXXXX',this.etiqueta);			  
		 return false;
	 }
	 return true;
}

//Devuelve el mensaje de error o cadena vacia
function CSAlfanum_msg_error() {
	
   return this.error;
	
}

