// DEFINE VARIABLES

// whitespace characters
var whitespace = " \t\n\r";
var defaultEmptyOK = false

function isValidDate(dateStr,dateformat) {
// Checks for the following valid date formats:
// MM/DD/YY	 MM/DD/YYYY	 MM-DD-YY	 MM-DD-YYYY
// Also separates date into month, day, and year variables

//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

// To require a 4 digit year entry, use this line instead:

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
	//alert("Date is not in a valid format.")
	return false;
}

if (dateformat == "dd/MM/yyyy"){
	month = matchArray[3]; // parse date into variables
	day = matchArray[1];
	} else {
		month = matchArray[1]; // parse date into variables
		day = matchArray[3];
	}
year = matchArray[4];

//alert("day: "+day+"month: "+month+"year: "+year);
if (month < 1 || month > 12) { // check month range
	//alert("Month must be between 1 and 12.");
	return false;
}
if (day < 1 || day > 31) {
	//alert("Day must be between 1 and 31.");
	return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	//alert("Month "+month+" doesn't have 31 days!")
	return false
}
if (month == 2) { // check for february 29th
	var g = parseInt(year / 4);
	if (day > 29 || (day == 29 && (year / 4) != g)) {
		//alert("February in "+year+" doesn't have "+day+" days!")
		return false;
	 }
}
return true;	// date is valid
}


// Returns true if string s is empty or 
// whitespace characters only.
function isWhiteSpace(s) {
        
		for (var i = 0; i < s.length; i++) {
                var c = s.charAt(i);
                if ((c != ' ') && (c != '\n') && (c != '\t'))
                        return false;
        }
        return true;
}

function isEmpty(e) {
        if ((e.value == null) || (e.value == "") || isWhiteSpace(e.value))
                return true;
}

function dateDiff(date1, date2){
var msPerDay = 24 * 60 * 60 * 1000 ; // Number of milliseconds per day

	var ddate1 = new Date(date1)
	var ddate2 = new Date(date2)
	var nDays = (ddate2.getTime() - ddate1.getTime()) / msPerDay;

	return Math.ceil(nDays);
}

// Returns true if the string passed in is a valid number
//  (no alpha characters), else it displays an error message

function isNumber(objField)
{
	var strField = new String(objField.value);
	alert(objField.value);
	alert(strField);
		
	if (isWhitespace(strField)) return false;

	var i = 0;
	for (i = 0; i < strField.length; i++)
		if (strField.charAt(i) < '0' || strField.charAt(i) > '9') {
			return false;
		}
	return true;
}


function isDigits(e) {
        // Null or empty string is OK
        if ((e.value == null) || (e.value == ""))
                return true;

        // Check each character individually
        var digit_list = "0123456789"
        var s = e.value;
        for (var i = 0; i < s.length; i++) {
                if (digit_list.indexOf(s.charAt(i)) == -1)
                        return false;
        }
    return true;
}  


/* Valida la fecha a partir del dia y el mes */
function esValidaFecha(sDia, sMes)
{
	var dFecha = new Date();
	var nDia = parseInt(sDia, 10);
   	var nMes = parseInt(sMes, 10);
	var nDiaActual = dFecha.getDate();
	var nMesActual = dFecha.getMonth() + 1;
	var nAnoActual = dFecha.getFullYear();

	if ((nMes < nMesActual) || ((nMes == nMesActual) && (nDia <= nDiaActual))){
		++nAnoActual;
	}
	
	if(isValidDate(nMes + "/" + nDia + "/" + nAnoActual)){
		return nMes + "/" + nDia + "/" + nAnoActual;
	}
	else{
		return "";
	}
	
}

function esMayorFecha(sFecha1, sFecha2)
{
	return ! (dateDiff(sFecha1, sFecha2) < 1);
}


/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

function isValidListEmailAddr(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					
	}




