
function isBlank(vVal){
	var isBlank = true;
	if(vVal != ''){
		isBlank = false;
	}
	return (isBlank);
}

function validateText(fld){
	var isValid = false;
	if (!isBlank(fld.value)){
		isValid = true;
	}
	return (isValid);
}

function validateSelect(fld){
	var isValid = false;
	if (fld.selectedIndex != 0 && fld.selectedIndex != -1){
		isValid = true;
	}else if (fld.selectedIndex == 0){
		if (fld.options[fld.options.selectedIndex].value != 0 && fld.options[fld.options.selectedIndex].value != ""){
			isValid = true;
		}
	}
	return (isValid);
}

function validateRadio(fld){
	var isValid = true;
	var defIndx = -1;

	if (String(fld.length) != "undefined"){
		for (i=0; i<=fld.length-1; i++){
			if (fld[i].checked){
				defIndx = i;
			}
		}
	}else{
		if (fld.checked){
			defIndx = 0;
		}
	}
	if (defIndx == -1){
		isValid = false;
	}
	return (isValid);
}

function validateCheckbox(fld){
	var isValid = true;
	var defIndx = -1;

	if (String(fld.length) != "undefined"){
		for (i=0; i<=fld.length-1; i++){
			if (fld[i].checked){
				defIndx = i;
			}
		}
	}else{
		if (fld.checked){
			defIndx = 0;
		}
	}
	if (defIndx == -1){
		isValid = false;
	}
	return (isValid);
}

function validatePhone(fld){
	var phNumValid	= false;
	var areaCode	= fld[0].value;
	var prefix	= fld[1].value;
	var suffix	= fld[2].value;
	var phNum = areaCode + prefix + suffix;
	if(!isBlank(phNum)){
		if (isNaN(areaCode) || areaCode.length < 3){
			return(0);
		}		
		if (isNaN(prefix) || prefix.length < 3){
			return(1);
		}
		if (isNaN(suffix) || suffix.length < 4){
			return(2);
		}
	}else{
		return(0)
	}
	return(-1);	
}

function validateSSN(fld){
	var prt1	= fld[0].value;
	var prt2	= fld[1].value;
	var prt3	= fld[2].value;
	var SSN = prt1 + prt2 + prt3;
	if(!isBlank(SSN)){
		if (isNaN(prt1) || prt1.length != 3){
			return(0);
		}		
		if (isNaN(prt2) || prt2.length != 2){
			return(1);
		}
		if (isNaN(prt2) || prt3.length != 4){
			return(2);
		}
	}else{
		return(0)
	}
	return(-1);	
}

function validateSSN2(fld){
	var isValid = false;
	var sSSN = fld.value;
	if (sSSN != ""){
		if (!isNaN(sSSN) && sSSN.length == 9){
			isValid = true;
		}
	}else{
		isValid = true;
	}
	return(isValid);
}
	
function validateZipCode(vZip){
	var isValid = false;
	if (!isNaN(vZip) && validateLength(vZip,5)){
		isValid = true;
	}
	return (isValid);
}

function validateLength(vVal,lenCompare){
	var isValid = false;
	vVal = String(vVal);
	if(vVal.length == lenCompare){
		isValid = true;
	}
	return (isValid);
}

function validateMaxLength(vVal,lenCompare){
	vVal = String(vVal);
	if (vVal.length <= lenCompare){
		return true;
	}
	return false;
}

function validateMinLength(vVal,lenCompare){
	vVal = String(vVal);
	if (vVal.length >= lenCompare){
		return true;
	}
	return false;
}

function validateNumber(vNum){
	var isValid = false;
	if (vNum == ""){
		isValid = false;
	}else if(!isNaN(vNum)){
		isValid = true;
	}
	return (isValid);
}

function validateSplitDate(fld){
		var isValid = "";
		
		isValid = false;
		
		if (isValidMonth(fld[0].value) && isValidDay(fld[0].value, fld[1].value, fld[2].value) && isValidYear(fld[2].value)){
			isValid = true;
		}
		
		return(isValid);
}

function isValidMonth(iMonth){
	if (isNaN(iMonth)){
		return false;
	}
	switch (iMonth.length){
		case 1:
			if(iMonth == 0){
				return false;
			}
			break;
		case 2:
			if (iMonth < 1 || iMonth > 12){
				return false;
			}
			break;
		default:
			return false;
			break;
	}
	return true;
}

function isValidDay(iMonth, iDay, iYear){
	var arrMonthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var arrLeapYrMonthDays = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
	if (iMonth == "" || iDay == "" || iYear == ""){
		return false;
	}
	if (iYear % 4 == 0){ //leap year
		if (iDay > arrLeapYrMonthDays[iMonth - 1] || iDay < 1){ //invalid date
			return false;
		}
	}
	else{ //regular year
		if (iDay > arrMonthDays[iMonth - 1] || iDay < 1){ //invalid date
			return false;
		}
	}
	return true;
}


function isValidYear(iYear){
	if (isNaN(iYear)){
		return false;
	}
	if (iYear.length != 4){
		return false;
	}
	
	//Added for Pinkerton Validation
	//var oDate = new Date();
	//var maxYr = oDate.getFullYear();
	//var minYr = maxYr - 100;
	
	//if (iYear < minYr || iYear > maxYr){
	//	return(false);
	//}
	return true;
}


function selectTextElement(fld){		
	fld.select();
	fld.focus();
}

function selectComboElement(fld){
	fld.options[0].selected = true;
	fld.focus();
}

function generateErrorItem(elLabel, errType){
	//NR = not required
	var errMsg = '';
	var errMsg_Blank			= 'No value entered';
	var errMsg_Select			= 'No value selected';
	//var errMsg_DteInvalid		= 'Please enter a valid date value (mm/dd/yyyy)';
	var errMsg_DteInvalid		= 'Date invalid';
	//var errMsg_RadInvalid		= 'Please select a radio button value';
	var errMsg_RadInvalid		= 'No value selected';
	var errMsg_PhInvalid		= 'Please enter a valid phone number value';
	var errMsg_ZipInvalid		= 'Please enter a valid zip code';
	var errMsg_NumInvalid		= 'No "Number" value entered';
	var errMsg_EmailInvalid		= 'Please enter a valid email address';
	var errMsg_NRDtePartBlank	= 'Please enter a value or clear all data';
	var errMsg_NRDtePartInvalid	= 'Please enter a valid date value (mm/dd/yyyy) or clear all data';
	var errMsg_NRDteNumInvalid	= 'Please enter a valid number or clear all data';
	var errMsg_CheckInvalid		= 'Please select a check box value';
	var errMsg_ValidateEmails	= 'Email addresses do not match';
	
	switch(errType){
		case 0 : 
			errMsg = errMsg_Blank; break;
		case 1 : 
			errMsg = errMsg_Select; break;
		case 3 : 
			errMsg = errMsg_DteInvalid; break;
		case 4 : 
			errMsg = errMsg_RadInvalid; break;
		case 5 : 
			errMsg = errMsg_PhInvalid; break;
		case 6 : 
			errMsg = errMsg_ZipInvalid; break;
		case 7 : 
			errMsg = errMsg_NumInvalid; break;
		case 8: 
			errMsg = errMsg_EmailInvalid; break;
		case 9:
			errMsg = errMsg_NRDtePartBlank; break;
		case 10:
			errMsg = errMsg_NRDtePartInvalid; break;
		case 11:
			errMsg = errMsg_NRDteNumInvalid; break;
		case 13:
			errMsg = errMsg_CheckInvalid; break;
		case 14:
			errMsg = errMsg_ValidateEmails; break;
		default : 
			errMsg = 'Unknown Error';
	}
	
	if (elLabel != ''){
		errMsg += ' for ' + elLabel;
	}
	errMsg += '.';
	
	return(errMsg);
}