

/* Validaciones ********************************************************************************************/
function xmensaje(texto)
{
	$('#texto_mensaje').attr('innerHTML', texto);
	$('#mensaje_error').slideDown();
}

function validarReal(num)
{
    var erNum = /^[-]?([0-9]+)([,-.]?[0-9]+)?$/

    if(!erNum.test(num)) 
	{
       return false;
    }
	else
	{
		return true;
	}
}
function validarEntero(num)
{
    var erNum = /^[0-9]+$/

    if(!erNum.test(num)) 
	{
       return false;
    }
	else
	{
		return true;
	}
}

function validarFecha(fecha)
{
    var erFecha = /^([012][0-9]|3[01])(\/|-)(0[1-9]|1[012])\2(\d{4})(\ ([01][0-9]|2[0-3])(\D[0-5][0-9]){1,2})?$/

    if(!erFecha.test(fecha)) 
	{
       return false;
    }
	else
	{
		return true;
	}
}

function FechaEsMayor(fecha, fecha2)
{ 
	var xMes=fecha.substring(3, 5); 
	var xDia=fecha.substring(0, 2); 
	var xAnio=fecha.substring(6,10); 
	var yMes=fecha2.substring(3, 5); 
	var yDia=fecha2.substring(0, 2); 
	var yAnio=fecha2.substring(6,10); 
	if (xAnio > yAnio)
		{ 
			return(true); 
		}
	else
		{ 
			if (xAnio == yAnio)
				{ 
					if (xMes > yMes)
						{ 
							return(true); 
						} 
					if (xMes == yMes)
						{ 
							if (xDia > yDia)
								{ 
									return(true); 
								}
							else
								{ 
									return(false); 
								} 
						}
					else
						{ 
							return(false); 
						} 
				}
			else
				{ 
					return(false); 
				} 
		}

}
function validarHora(hora)   
{   
    var er_hora = /^(0|00|1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23)\:([0-5][0-9])$/
	hora = hora.replace(/^\s*|\s*$/g,"");
    if(!er_hora.test(hora)) 
	{
       return false;
    }
	else
	{
		return true;
	}

}

function HoraEsMayor(hora1,hora2)
{
  hora1 = hora1.replace(/^\s*|\s*$/g,"");	
  hora2 = hora2.replace(/^\s*|\s*$/g,"");	
  ahora1 = hora1.split(":")
  h1 = parseInt(ahora1[0]);
  m1 = parseInt(ahora1[1]);
  ahora2 = hora2.split(":")
  h2 = parseInt(ahora2[0]);
  m2 = parseInt(ahora2[1]);

  if (h1 > h2)
  	{
		return true;
	}
	else
	{
		if (h1==h2)
			{
				if (m1>m2)
					{
						return true;
					}
				else
					{
						return false;
					}
			}
			else
			{
				return false;
			}
	}
    
}

function validarMail(sMail){var s=sMail;var filter=/^[A-Za-z0-9][A-Za-z0-9_.-]*@[A-Za-z0-9][A-Za-z0-9_.-]*\.[A-Za-z0-9_.-]+[A-za-z]$/;if(s.length==0)return true;if(filter.test(s)){return true;}else{return false;}}




function validaNIF(dni) {

	numero = dni.substr(0,dni.length-1);
	let = dni.substr(dni.length-1,1);
	numero = numero % 23;
	letra='TRWAGMYFPDXBNJZSQVHLCKET';
	letra=letra.substring(numero,numero+1);
	
	if (letra!=let) 
		return false
	else
		return true
}


function validaNIE(texto)
{
  var cadenadni="TRWAGMYFPDXBNJZSQVHLCKET";
  if (!/^[A-Za-z0-9]{9}$/.test(texto)){ //Es menos de 9 dígitos, añadimos la letra
					return false;
								}
  else{ //Tiene los 9 dígitos, comprobamos si la letra esta bien
     var temp1;
	 if (texto.substring(0,1).toUpperCase()=="X")
		 	temp1 =texto.substr(1,7);
	 else
	 		temp1 = "1"+texto.substr(1,7);
			
	   posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
	 	letra = cadenadni.charAt(posicion);
		var letranie=texto.charAt(8);
		if (letra == letranie){
				    		return true;			
					}
		return false;
			
	   }
}
					
					
function validaCIF(cif)
{

var par = 0;
var non = 0;
var letras = "ABCDEFGHJKLMNPRQSUVW";
var caracterControlLetra = "KPQS";
var caracterControlNum = "ABEH";
var i;
var parcial;
var control;
var controlLetra = "JABCDEFGHIJ";
var letraIni = cif.charAt(0);

if (cif.length!=9) {
    //alert("El Cif debe tener 9 dígitos",3);
	return false;

}
else
{
    if (letras.indexOf(letraIni.toUpperCase())==-1)
    {
//        alert("La letra del CIF introducido no es correcta",3);
		return false;
        
    }
    for (i=2;i<8;i+=2) {
        par = par + parseInt(cif.charAt(i));
    }

    for (i=1;i<9;i+=2) {
        var nn = 2 * parseInt(cif.charAt(i));
        if (nn > 9) nn = 1 + (nn-10);
        non = non + nn;
    }

    parcial = par + non;

    control = (10 - ( parcial % 10));

	if (control == 10) control = 0;


    if (caracterControlLetra.indexOf(letraIni.toUpperCase()) != -1)
    {
        // El caracter de control deberá ser una letra

        if (controlLetra.charAt(control) != cif.charAt(8).toUpperCase())
        {
 //           alert("El Cif no es válido",3);  
			return false;
        }
    }
    if (caracterControlNum.indexOf(letraIni.toUpperCase()) != -1)
    {
        // El caracter de control deberá ser un número

        if (control != cif.charAt(8))
        {
//            alert("El Cif no es válido",3);
			return false;
            
        }
    }
    if ((caracterControlLetra.indexOf(letraIni.toUpperCase()) == -1) && (caracterControlNum.indexOf(letraIni.toUpperCase()) == -1))
    {
        // En este caso el carácter de control puede ser una letra o un número

        if (control == 10)
        {
            control = 0;
        }
        if ((controlLetra.charAt(control) != cif.charAt(8).toUpperCase()) && (control != cif.charAt(8)))
        {
//            alert("El Cif no es válido",3);
			return false;
            
        }
    }
}
 return true;
}					

 function validaCIF2(texto){ 
         
        var pares = 0; 
        var impares = 0; 
        var suma; 
        var ultima; 
        var unumero; 
        var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I"); 
        var xxx; 
         
        texto = texto.toUpperCase(); 
         
        var regular = new RegExp(/^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/g); 
         if (!regular.exec(texto)) return false; 
              
         ultima = texto.substr(8,1); 

         for (var cont = 1 ; cont < 7 ; cont ++){ 
             xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0"; 
             impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); 
             pares += parseInt(texto.substr(cont,1)); 
         } 
         xxx = (2 * parseInt(texto.substr(cont,1))).toString() + "0"; 
         impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); 
          
         suma = (pares + impares).toString(); 
         unumero = parseInt(suma.substr(suma.length - 1, 1)); 
         unumero = (10 - unumero).toString(); 
         if(unumero == 10) unumero = 0; 
          
         if ((ultima == unumero) || (ultima == uletra[unumero])) 
             return true; 
         else 
             return false; 

    } 


function validaSegSoc(codigo)
{

  if (codigo.length !=12) return false;
  a = parseInt(codigo.substr(0,2));

  b = parseInt(codigo.substr(2,8));

  c = parseInt(codigo.substr(10,2));

  if (b<10000000)
  	d = b + a * 10000000;
  else
  	d = b + a * 100000000;
  resto = d % 97;

 if (resto == c) return true;
  
  return false;
}

function validaCCC(codigo)
{

  if (codigo.length !=11) return false;
  a = parseInt(codigo.substr(0,2));

  b = parseInt(codigo.substr(2,7));

  c = parseInt(codigo.substr(9,2));

  if (b<1000000)
  	d = b + a * 1000000;
  else
  	d = b + a * 10000000;
  resto = d % 97;
 if (resto == c) return true;
  
  return false;
}

function ValidaDC(Banco,Cuenta,DC)
{
  
  digControl= CalculaDC(Banco,Cuenta)

  if (isNaN(parseInt(Banco))) return false;
  if (isNaN(parseInt(Cuenta))) return false;
  if (isNaN(parseInt(DC))) return false;  
  
  if (parseInt(digControl) == parseInt(DC))
     return true;
  else return false;
}


function CalculaDC(Banco, Cuenta)
{
      Pesos= new Array(6,3,7,9,10,5,8,4,2,1);
      var result ='';
      var result1 =0;
      var result2 =0;	  
      var iTemp =0;
	  	  
      for (var n=0;n<=7;n++){
         iTemp  = iTemp + Banco.substr(7 - n, 1) * Pesos[n];
      }
      result1 = 11 - iTemp % 11;
      if (result1 > 9){
        result1=1-result1 % 10;
      }
      iTemp=0;
      for (var n=0;n<=9;n++){
         iTemp  = iTemp + Cuenta.substr(9 - n, 1) * Pesos[n];
      }
      result2 =11 - (iTemp % 11);
      if (result2 > 9){
       result2 =1-(result2 % 10);
      }
      result=""+String(result1)+""+String(result2);
      return(result);
 }
 
$.fn.si = function() {
	$.support = {
		opacity: !($.browser.msie && /MSIE 6.0/.test(navigator.userAgent))
	};
	if ($.support.opacity) {
		$(this).each(function(i) {
			if ($(this).is(":file")) {
				var $input = $(this);
				$(this).wrap('<label class="cabinet" id="cabinet'+i+'"></label>');
				$("label#cabinet"+i)
					.wrap('<div class="si"></div>')
					.after('<div class="uploadButton"><div></div></div><label class="selectedFile"></label>')
					.live("mousemove", function(e) {
					if (typeof e == 'undefined') e = window.event;
					if (typeof e.pageY == 'undefined' &&  typeof e.clientX == 'number' && document.documentElement)
					{
						e.pageX = e.clientX + document.documentElement.scrollLeft;
						e.pageY = e.clientY + document.documentElement.scrollTop;
					};
					
					var ox = oy = 0;
					var elem = this;
					if (elem.offsetParent)
					{
						ox = elem.offsetLeft;
						oy = elem.offsetTop;
						while (elem = elem.offsetParent)
						{
							ox += elem.offsetLeft;
							oy += elem.offsetTop;
						};
					};
		
					var x = e.pageX - ox;
					var y = e.pageY - oy;
					var w = this.offsetWidth;
					var h = this.offsetHeight;
		
					$input.css("top", y - (h / 2)  + 'px');
					$input.css("left", x - (w + 30) + 'px');
				});
				
				$(this).change(function() {
					$container = $(this).closest("div.si");
					$("label.selectedFile", $container).html($(this).val());
				})
			}
		});
	}
};



