
function FixDate (date) {
	var dHold;
	var fixstr = "";
	var dayPos = 0;
	var yrPos = 0;
	var count = 0;
	var month = "";
	var day = "";
	var year = "";
	var retDate = "";
	var yrprefix = "";

	
	for (i=0;i<date.length;i++) {
		dHold = date.charAt (i);
		if ((dHold < "0" || dHold > "9") && (dHold != "+" && dHold != "-" && dHold != "/")) {
			alert ("Invalid date entered: bad character");
			return date;
		}
	}

	// If blanking out field return blank
	if (date.length == 0)  return "";
	
	// Do the add days function
	if (date.charAt (0) == '+' || date.charAt (0) == '-' || date.length < 6) {
		retDate = addDays (date);
		return retDate;
	// Format the date
	} else {
		date = date.replace ("-","/");
		date = date.replace ("-","/");
		
		// Make sure there are either 2 or no "/"
		for (i=0;i<date.length;i++) {
			if (date.charAt (i) == '/') count++;
		}
		if (count != 0 && count != 2) {
			alert ("Invalid date entered: incorrect slashes");
			return date;
		} 
		
		if (count == 0) {
			if (date.length == 6) {
       			retDate = date.substring (0,2) + "/" + date.substring (2,4) + "/20" + date.substring (4,6);
			} else if (date.length == 8) {
				retDate = date.substring (0,2) + "/" + date.substring (2,4) + "/" + date.substring (4,8);
			} else {
				alert ("Invalid date entered");
				return date;
			}
		} else {
			dayPos = date.indexOf ("/");
			yrPos = date.indexOf ("/", dayPos + 1);
			
			month = date.substring (0, dayPos); 
			if (month.length == 1) month = "0" + month;
			day = date.substring (dayPos + 1, yrPos); 
			if (day.length == 1) day = "0" + day;
			year = date.substring (yrPos + 1); 
			if (year.length == 2) year = "20" + year;
			retDate = month + "/" + day + "/" + year;
		}
	}
	if (checkDate (retDate) == 1) alert ("Invalid date entered");
	
	return retDate;
}  /* End funtion */


/*  Returns today's date */
function getToday () {
	return addDays ("0");
}


/* ADD DAYS FUNCTION */
function addDays (inDays) {
	var today = new Date ();
	var month = today.getMonth() + 1;
	var day = today.getDate();
	var year = today.getFullYear ();
	var passDate = "";
	
    inDays = inDays.replace ("+","");
	
	if (month < 10) {
		passDate = "0" + month;
	} else {
		passDate = month;
	}

	if (day < 10) { 
		passDate = passDate + "/0" + day;
	} else  {
		passDate = passDate + "/" + day; 
	}
	passDate = passDate + "/" + year; 
	passDate = relativeDays (passDate, inDays);
	return passDate;
}

/* RELATIVE DAYS FUNCTION */
function relativeDays (inDate, inDays) {
	var month = inDate.substring (0, 2);
	var day = inDate.substring (3, 5);
	var year = inDate.substring (6, 10);
	var bNeg = 0;
	var iDays = "";
	var intDay = 0;
	var intMonth = 0;
	var intYear = 0;
	var intAdd = 0;
	var defDate;
	var test;
	var iwork = 0;
	var dayNum = new Array (0,31,28,31,30,31,30,31,31,30,31,30,31);

	if (inDays.length < 1) inDays = "0";
	for (i=0;i<inDays.length;i++) {
		test = inDays.substring (i, i + 1);
		if (test < '0' || test > '9') {
			if (test == '-' && i == 0) {
				bNeg = 1;
			} else {
				return inDate;
			}
		 } else {
		 	iDays = iDays + test;
    	 }
	} 
	while (iDays.substring (0,1) == "0" && iDays.length >1) {
		iDays = iDays.substring (1); 
	}

	if (month.substring (0,1) == "0") month = month.substring (1,2);
	if (day.substring (0,1) == "0") day = day.substring (1,2);
    intAdd = parseInt (iDays);
    intDay = parseInt (day);
    intMonth = parseInt (month);
	intYear = parseInt (year);  
	dayNum [2] = leapYear (intYear);
	
	/* Add days */
	if (bNeg == 0) {
		intDay = intDay + intAdd;
    	while (intDay > dayNum [intMonth]) { 
			intDay = intDay - dayNum [intMonth];
			intMonth = intMonth + 1;
			if (intMonth > 12) {
				intYear = intYear + 1;
				dayNum [2] = leapYear (intYear);
				intMonth = 1;
			}
		}
	} else {
		intDay = intDay - intAdd;
		while (intDay < 1) {
			intMonth = intMonth - 1;
			if (intMonth < 1) {
				intYear = intYear - 1;
				dayNum [2] = leapYear (intYear);
				intMonth = 12;
			}
			intDay = intDay + dayNum [intMonth];
		}
	}
	if (intMonth < 10) {
		defDate = "0" + intMonth;
	} else {
		defDate = intMonth;
	} 
	if (intDay < 10) {
		defDate = defDate + "/0" + intDay;
	} else  {
		defDate = defDate + "/" + intDay;
	}
	defDate = defDate + "/" + intYear;
	return defDate;
}

/* CHECK DATE FUNCTION */
function checkDate (inDate) {
	var badDate = 0;
	var month = "";
	var dat = "";
	var year = "";
	var intMonth = 0;
	var intDay = 0;
	var dayNum = new Array (0,31,28,31,30,31,30,31,31,30,31,30,31);
	
	if (inDate.length != 10) badDate = 1;
	for (i=0;i<inDate.lenght;i++) {
		if (i == 2 || i == 5) {
			if (inDate.charAt (i) != "/") badDate = 1;
		} else {
			if (inDate.charAt (i) < "0" || inDate.charAt (i) > "9") badDate = 1;
		}
	}
	if (badDate == 1) return badDate;
	
	month = inDate.substring (0,2);
	day = inDate.substring (3,5);
	year = inDate.substring (6, 10);

	if (month < "01" || month > "12") badDate = 1;
	if (month.substring (0,1) == "0") month = month.substring (1,2);
	intMonth = parseInt (month);
	if (day.substring (0,1) == "0") day = day.substring (1,2);
	intDay = parseInt (day);
	
	month [2] = leapYear (year);
	if (intDay < 0 || intDay > dayNum [intMonth]) badDate = 1;
	return badDate;
}

function leapYear (year) {
	var intYear = 0;
	var days = 0;
	var divYear = 0;
	
	intYear = parseInt (year);
	
	divYear = Math.floor (intYear/4); 
	if (intYear == divYear * 4) {
		days = 29;
	} else {
		days = 28;
	}
	return days;
}

function compDates (date1, date2) {
	if (date1.length == 10 && date2.length == 10) {
		var comp1 = date1.substring (6,10) + date1.substring(0,2) + date1.substring(3,5);
		var comp2 = date2.substring (6,10) + date2.substring(0,2) + date2.substring(3,5);

		if (comp1 < comp2) return -1;
		if (comp1 == comp2) return 0;
		if (comp1 > comp2) return 1;
	} else {
		return 0;
	}
}


function addYears (inDate, years) {
	var year = inDate.substring (6, 10);
	var newYear = +year + years;
	var outDate = inDate.substring (0, 6) + newYear; 
	return outDate;
}	