/*********************************************************
	Description:		This is the validation javascript.
	
	Date:				Tuesday, October 15, 2002
	
	Author:				Reed Stough
	
	Changes:
	
	Version:			Build 1.0.000
	
**********************************************************/

//Common Functions//

function showMsg(strMsg){
	alert("WARNING:\n\n" + strMsg + "\n\nPlease try again.");
}

function clearFields(objName){
	document.getElementById(objName).value = "";
}

function focusField(objName){
	document.getElementById(objName).focus();
}

//Common Validation//

function validNumber(objVal, objName){
	if (isNaN(objVal) == true){
		showMsg("You need to enter a number in this field.");
		clearFields(objName);
		focusField(objName);
		return false;
	}
	else{
		return true;
	}
}

function emptyFields(objVal, objName){
	if ((objVal == null)||(objVal == "")){
		showMsg("You need to enter a value for this field.");
		focusField(objName);
		return false;
	}
}

function validMonth(objVal){
	
	if ((objVal >= 1)&&(objVal <= 12)){
		return true;
	}
	else {
		return false;
	}

}

function validDay(objVal, objMonth){
	
	switch (objMonth){
	
		case 1,3,5,7,8,10,12:
			if ((objVal >= 1)&&(objVal <= 31)){
				return true;			
			}
			else{
				return false;
			}
			break;
		case 4,6,9,11:
			if ((objVal >= 1)&&(objVal <= 30)){
				return true;			
			}
			else{
				return false;
			}
			break;
			
		case 2:
			if ((objVal >= 1)&&(objVal <= 29)){
				return true;			
			}
			else{
				return false;
			}
			break;

	}

}

function validYear(objVal, startLimit, endLimit){
	
	if ((objVal >= startLimit)&&(objVal <= endLimit)){
		return true;
	}
	else {
		return false;
	}

}

function validDate(objVal, objName){
	var dtVal = objVal.split("/");
	var dtToday = new Date();
	var curYear = dtToday.getYear();
	
	for (i = 0; i < 3; i ++){
	
		if (validNumber(dtVal[i], objName) == false){
			showMsg("You need to enter a valid date.");
			clearFields(objName);
			focusField(objName);
			return false;
			break;
		}
		
	}
	
	if (validMonth(dtVal[0]) == false){
		showMsg("You need to enter a month greater than or equal 1 and less than or equal 12.");
		clearFields(objName);
		focusField(objName);
		return false;
	
	}
	else if (validDay(dtVal[1], dtVal[0]) == false){
		showMsg("You need to enter a valid Day.");
		clearFields(objName);
		focusField(objName);
		return false;
	}
	else if (validYear(dtVal[2], curYear, 2005) == false){
		showMsg("You need to enter a valid Year from" + curYear + " to 2005.");
		clearFields(objName);
		focusField(objName);
		return false;
	}
	else {
		return true;

	}
	
}

function inValidCharacters(objVal, objName){

	var InValid = "#@?%<>!";
	
	for (n = 0; n < objVal.length; n++){
		
		for (x = 0; x < InValid.length; x++){
		
			if (objVal.charAt(n) == InValid.charAt(x)){
				showMsg("You entered an invalid character.");
				clearFields(objName);
				focusField(objName);
				return false;
				break;
			}
		}
		
	}

}

function validateMaxLength(objVal, maxLength){

	if (objVal.length > maxLength){
		showMsg("You need to enter in fewer than " + maxLength + " characters in this field.");
		clearFields(objName);
		focusField(objName);
		return false;	
	}

}

function compareDates(startDate, startObjName, endDate, endObjName){
	var startDT = startDate.split("/");
	var endDT = endDate.split("/");

	if (validDate(startDate, startObjName) == false){
		return false;
	}
	else if (validDate(endDate, endObjName) == false){
		return false;
	}
	else {
	
		if (compareYears(startDT[2], endDT[2]) == false){
			clearFields(startObjName);
			clearFields(endObjName);
			focusField(startObjName);
			return false;
		}
		else if (compareMonths(startDT[0], endDT[0]) == false){
			clearFields(startObjName);
			clearFields(endObjName);
			focusField(startObjName);
			return false;
		}
		else if (startDT[0] == endDT[0]){
			
			if (compareDays(startDT[1], endDT[1]) == false){
				clearFields(startObjName);
				clearFields(endObjName);
				focusField(startObjName);
				return false;
			}
		
		}
		
	}
	
	
}

function compareYears(objStart, objEnd){

	if (objStart > objEnd){
		showMsg("You need to enter a start date with a Year less than: " + objEnd);
		return false;
	}

}

function compareMonths(objStart, objEnd){

	if (objStart > objEnd){
		showMsg("You need to enter a start Month less than or equal to your end Month.");
		return false;
	}

}

function compareDays(objStart, objEnd){

	if (objStart > objEnd){
		showMsg("You need to enter a start Day less than or equal to the end Day.");
		return false;
	}

}


//Validate Email Addresses
function validateEmail(objName){
	var strEmail = document.getElementById(objName).value;

	if (strEmail.indexOf("@") == -1){
		showMsg("You need to enter an appropriate Email address.");
		clearFields(objName);
		focusField(objName);
		return false;
	}
	else if (strEmail.indexOf(".") == -1){
		showMsg("You need to enter an appropriate Email address.");
		clearFields(objName);
		focusField(objName);
		return false;
	}

	

}
