<!-- Vignette V6 Fri Oct 17 15:19:56 2003 -->
function fncComprobarFecha(format, dateStr) {
month ="";
year ="";
day ="";

msg = new String("");
var datePat = /\[a-z\]+/i;  // regexp to verify there are no letters in the field

if (dateStr != "") {
	if (datePat.test(dateStr)) {
		msg = "Date cannot contain any letters.";
		return msg;
	}
	
	slash = 0;
	tempStr = dateStr;
	if (tempStr.indexOf("/") != -1) {
	  slash ++;
	  part1 = tempStr.substring(0,tempStr.indexOf("/"));
	  tempStr = tempStr.substring(tempStr.indexOf("/")+1);
	}
	if (tempStr.indexOf("/") != -1) {
	  slash ++;
	  part2 = tempStr.substring(0,tempStr.indexOf("/"));
	  year = tempStr.substring(tempStr.indexOf("/")+1);
	  tempStr = tempStr.substring(tempStr.indexOf("/")+1);
	}
	if (tempStr.indexOf("/") != -1) {
	  slash ++;
	}
	
	dash = 0;
	tempStr = dateStr;
	if (tempStr.indexOf("-") != -1) {
	  dash ++;
	  part1 = tempStr.substring(0,tempStr.indexOf("-"));
	  tempStr = tempStr.substring(tempStr.indexOf("-")+1);
	}
	if (tempStr.indexOf("-") != -1) {
	  dash ++;
	  part2 = tempStr.substring(0,tempStr.indexOf("-"));
	  year = tempStr.substring(tempStr.indexOf("-")+1);
	  tempStr = tempStr.substring(tempStr.indexOf("-")+1);
	}
	if (tempStr.indexOf("-") != -1) {
	  dash ++;
	}

	if (slash != 2 && dash != 2) {
	  msg = "Date is not in a valid format.";
	  return msg;
	}

	switch (format) {
		case "MDY" :	month = part1; day = part2; break;
		case "DMY" :	month = part2; day = part1; break;
		default :		break;
	}
		
	if (month < 1 || month > 12) { // check month range
	  msg = "Month must be between 1 and 12.";
	  return msg;
	}
	
	if (day < 1 || day > 31) {
	  msg = "Day must be between 1 and 31.";
	  return msg;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	  msg = "Month "+month+" doesn't have 31 days!";
	  return msg;
	}
	
	if (month == 2) { // check for february 29th
	  var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	  if (day>29 || (day==29 && !isleap)) {
	    msg = "February " + year + " doesn't have " + day + " days!";
	    return msg;
	  }
	}
}
if (msg == "")
{
	msg = year+month+day;
}
return msg;  // date is valid
}

function compareDate(format,dateStr1,dateStr2,check,msgerror)
{   var msg = new String("");
	date1 =fncComprobarFecha(format, dateStr1);

	date2 =fncComprobarFecha(format, dateStr2);

	control = false;
	if ((!(isNaN(date1))) && (!(isNaN(date2)))) {
		if (check == ">")
		{	if (date1 > date2)
			{ control = true;
			}
		}
		else if (check == "<")
		{	if (date1 < date2)
			{ control = true;
			}
		}
		else if (check == ">=")
		{	if (date1 > date2)
			{ 
			control = true;
			}
		}
		else if (check == "<=")
		{	if (date1 <= date2)
			{ control = true;
			}
		}
		else if (check == "==")
		{	if (date1 == date2)
			{ control = true;
			}
		}
		else if (check == "!=")
		{	if (date1 != date2)
			{ control = true;
			}
		}
	}
	if (control)
	{ msg =msgerror;
	}
return msg;

}

function checkMakeRequired(check,field,error)
{ msg = "";
	if ((check.checked) && (field == "")){
		msg = error;
	}
return msg;
}

function isFloat(testString) {
	var returnResult = true;
	return !isNaN(parseFloat(testString));
}

function nocheckMakeRequired(check,field,error)
{ msg = "";
	if (!(check.checked) && (field == "")){
		msg = error;
	}
return msg;
}

//----------------------------------------------------------------------/
// Funcion que valida si un numero introducido es o no decimal
// Devuelve true en caso de que el numero sea decimal y false en 
// caso contrario
//----------------------------------------------------------------------/
function isNumberFloat (s)
{   
	var i;
    var dotAppeared;
    dotAppeared = false;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c)) return false;
        } else { 
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}

//----------------------------------------------------------------------/
// Funcion que valida si un string es o no un digito
//----------------------------------------------------------------------/
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

