﻿function isNumeric(sText){
    var ValidChars = "0123456789.";
    var IsNumber=true;
    var Char;

    var comas = 0;
    for (i = 0; i < sText.length && IsNumber == true; i++){ 
        Char = sText.charAt(i); 
        if (ValidChars.indexOf(Char) == -1) 
            IsNumber = false;
        else{
            if (Char == "."){
                if (comas == 0)
                    comas = 1;
                else
                    IsNumber = false;
            }
        }
    }
    return IsNumber;
}

function FechaMayorAOtra (fechaInicio, fechaFin, formato){
	var sDateInicio = fechaInicio;
	var sDateFin = fechaFin;
	var format = formato.replace('dd','d');
	format = format.replace('mm','m');

	var aDateInicio = sDateInicio.split("/");
	var aDateFin = sDateFin.split("/");
	if(aDateInicio.length != 3) return true;
	if(aDateFin.length != 3) return true;

	if(format == "d/m/yyyy"){
		var dayInicio = aDateInicio[0] * 1;
		var mInicio = aDateInicio[1];
		var dayFin = aDateFin[0] * 1;
		var mFin = aDateFin[1];
	}else{
		var mInicio = aDateInicio[0];
		var dayInicio = aDateInicio[1] * 1;
		var mFin = aDateFin[0];
		var dayFin = aDateFin[1] * 1;
	}
	var monthInicio = mInicio * 100;
	var monthFin = mFin * 100;
	var yInicio = aDateInicio[2];
	var yearInicio = yInicio * 10000;
	var yFin = aDateFin[2];
	var yearFin = yFin * 10000;
	if(yearInicio.length > 4)	return true;
	if(yearFin.length > 4)	return true;
	
	var valorInicio = (yearInicio+monthInicio+dayInicio);
	var valorFin = (yearFin+monthFin+dayFin);

	return (valorFin >= valorInicio);
}

function FechaHoraMayorAOtra (fechaInicio, fechaFin, formato){
	var sDateInicio = fechaInicio;
	var sDateFin = fechaFin;
	var format = formato.replace('dd','d');
	format = format.replace('mm','m');

	var aDateInicio = sDateInicio.split("/");
	var aDateFin = sDateFin.split("/");
	if(aDateInicio.length != 3) return true;
	if(aDateFin.length != 3) return true;

	if(format == "d/m/yyyy"){
		var dayInicio = aDateInicio[0] * 1;
		var mInicio = aDateInicio[1];
		var dayFin = aDateFin[0] * 1;
		var mFin = aDateFin[1];
	}else{
		var mInicio = aDateInicio[0];
		var dayInicio = aDateInicio[1] * 1;
		var mFin = aDateFin[0];
		var dayFin = aDateFin[1] * 1;
	}
	var monthInicio = mInicio * 100;
	var monthFin = mFin * 100;
	var yInicio = aDateInicio[2].substring(0,4);
	var yearInicio = yInicio * 10000;
	var yFin = aDateFin[2].substring(0,4);
	var yearFin = yFin * 10000;

	var valorInicio = (yearInicio+monthInicio+dayInicio);
	var valorFin = (yearFin+monthFin+dayFin);

	if (valorFin > valorInicio)
		return true;
	else if (valorFin < valorInicio)
		return false;
	else{
		var sHourInicio = aDateInicio[2].substring(5, aDateInicio[2].length);
		var sHourFin = aDateFin[2].substring(5, aDateFin[2].length);
		var aHourInicio = sHourInicio.split(":");
		var aHourFin = sHourFin.split(":");
		if(aHourInicio.length != 3) return true;
		if(aHourFin.length != 3) return true;
			
		var horaInicioFinal = aHourInicio[0] * 10000;
		var horaFinFinal = aHourFin[0] * 10000;
		
		var minutoInicioFinal = aHourInicio[1] * 100;
		var minutoFinFinal = aHourFin[1] * 100;

		var segundoInicioFinal = aHourInicio[2] * 1;
		var segundoFinFinal = aHourFin[2] * 1;

		var valorInicioFinal = (horaInicioFinal + minutoInicioFinal + segundoInicioFinal);
		var valorFinFinal = (horaFinFinal + minutoFinFinal + segundoFinFinal);

		return (valorFinFinal >= valorInicioFinal);
	}
}
//este trim solo sirve para verificaciones que indicaran si un campo esta lleno o no
function trim(str){
    //return str.replace(/(^\s+)([^\s]*)(\s+$)/, '');
    return str.replace(' ', '');
}
//Saca los espacios en blanco del principio y final
function Trim(str){
	return str.replace(/^\s*|\s*$/g,"");
}
function isMail2(str){
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1) return false;
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)  return false;
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) return false;
	if (str.indexOf(at,(lat+1))!=-1)  return false;
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false;
	if (str.indexOf(dot,(lat+2))==-1) return false;
	if (str.indexOf(" ")!=-1) return false;
 	return true;
}
function isMail(str)
{
    var emailfmt= /^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,8}$/;
    if(emailfmt.test(str))
        return true;
    if (str.length == 0)
        return true;
    return false;
    ////var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
    //var filter= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    //if (str.length == 0 ) 
    //    return true;
    //if (filter.test(str))
    //    return true;
    //return false;
}
function isUrl(str)
{
    var v = new RegExp();
    v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
    if (!v.test(str))
        return false;
    return true;
}
function isDate(Cadena, Formato){
   var Fecha= new String(Cadena);
   if (Formato == "m/d/yyyy"){
       var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length));
       var Mes= new String(Fecha.substring(0,Fecha.indexOf("/")));
       var Dia= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")));
   }
   else if (Formato == "dd/mm/yyyy"){
       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("/")));
   }
   else
       return false;
   // Valido el año
   if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900)
       return false;
   // Valido el Mes
   if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12)
       return false;
   // Valido el Dia
   if (isNaN(Dia) || parseInt(Dia)<1 || parseInt(Dia)>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;
}
function isInteger(sText){
    //var sNumero = sText;
    if (isNumeric(sText) && sText.indexOf(".") < 0 && sText.indexOf(",") < 0)
        return true;
    return false;
}
