function isBlank(Ctrl) {  // returns true if blank, uses isEmpty()
	if (Ctrl.value.length < 1)
		return true;
	else if (isEmpty(Ctrl.value))
		return true;
	else return false;
}

function isEmpty(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 checkNumber(ValidateControl, prompt) {  // returns true if number
	if (isNaN(ValidateControl.value))
		return true;
	else return false;
}

function isNotChecked(Ctrl) {	// for single checkbox
	if (!Ctrl.checked) return true;
	else return false;
}

function isCheckedByLength(Ctrl) {	// for multiple checkboxes with same name
	var boxIsChecked = false;
	for (i=0; i < Ctrl.length; i++) {
		if (Ctrl[i].checked) boxIsChecked = true;
	}
	if (!boxIsChecked) return true;
	else return false;
	
}

function isSelected(Ctrl, index){  // pass the index you do not want
	if (Ctrl.options[index].selected)
		return true;
	else return false;
}

function isSelectedOrHigher(Ctrl, upLimit){ // works with numerically-valued select options only!
	var ctrlValue = Ctrl.options[Ctrl.selectedIndex].value;
	if (ctrlValue > upLimit)
		return true;
	else return false;
}

function isSelectedRange(Ctrl, loLimit, upLimit){ // works with numerically-valued select options
	var ctrlRangeValue = Ctrl.options[Ctrl.selectedIndex].value;
	if (!(ctrlRangeValue > loLimit && Ctrl.value < upLimit))
		return true;
	else return false;
}

function testSimpleEmail(Control){
	var err=0;
	emailString = Control.value;
	if (emailString.indexOf("@",1) == -1) err=1;  // need @ symbol
	if (emailString.indexOf(".",3) == -1) err=1;  // need at least one "."
	if (emailString.lastIndexOf(".") == (emailString.length-1)) err=1;  // can't end with a "."
	// check length
	if (err==0) {
		var at = (emailString.indexOf("@"))+1;
		var lastDot = (emailString.lastIndexOf("."))+1;
		// test to make sure there's at least one character between "at" and "lastDot"
		if (lastDot - at == 1) err=1;
	}
	if (err==1) return true;
	else return false;
}

function checkZip(Control) {  // returns true if not properly formatted zip code
	zipString = Control.value;
	if (zipString.length == 5) {
		if (isNaN(zipString)) return true;
	} else if (zipString.length < 5) {
		return true;
	} else if ( 
	   zipString.length < 10 ||
	   isNaN( zipString.substring(0,5) ) || 
	   isNaN( zipString.substring(6,10) ) ||
	   (zipString.substring(5,6) != '-') ) {
			return true;
	} 
	else return false;
}

function checkDate(ValidateControl, prompt) {
   var err=0;
   a = ValidateControl.value;
	var firstSlash=(a.indexOf("/")) + 1;
	var secondSlash=(a.lastIndexOf("/")) + 1;	
   if (a.length != secondSlash+4) err=1;			// four-digit year
	if (err == 0) {
		// set date variables for testing
	   b = a.substring(0, firstSlash-1); 				// month
	   c = a.substring(firstSlash-1, firstSlash); 	
	   d = a.substring(firstSlash, secondSlash-1); 	// day		
	   e = a.substring(secondSlash-1, secondSlash); 
	   f = a.substring(secondSlash, secondSlash+4); // year		
		if (isNaN(b)) err=1;
		if (isNaN(d)) err=1;
		if (isNaN(f)) err=1;		
	   if (d.indexOf("/") != -1) err=1;
	   if (b<1 || b>12) err=1;
	   if (c != '/') err=1;
	   if (d<1 || d>31) err=1;
	   if (e != '/') err=1;
	   if (f<100 || f>9999) err=1;
		if (b==4 || b==6 || b==9 || b==11) {
	       if (d==31) err=1;
	   }
	   if (b==2) {							// February
	       var g=parseInt(f/4);
	       if (isNaN(g)) err=1;
	       if (d>29) err=1;
	       if (d==29 && ((f/4)!=parseInt(f/4))) err=1;
	   }
	}
   if (err==1) return true;
   else return false; 
		 
} // end function checkdate

function isCCNum(Ctrl) {
	var counter, tempNum, multTemp, myMultTemp, tally;
	var ccNum = Ctrl.value;
	var lgth = ccNum.length;
	var tally = 0; var multTemp = 0;
	var lengthCheck = lgth % 2;
	
	if (lengthCheck == 0) counter = 2;  else counter = 1;
	
	if (isNaN(ccNum)) return false;
	if (lgth > 19 || lgth < 12) return false;
	// if (ccNum == '4111111111111111') return false;

	for (var i=0; i < lgth; i++) {
		tempNum = ccNum.charAt(i);
		multTemp = tempNum * counter;

		if (multTemp >= 10) {		// add the two numbers together
			myMultTemp = "" + multTemp;	// must have a string
			var c1 = parseInt(myMultTemp.charAt(0));
			var c2 = parseInt(myMultTemp.charAt(1));
			multTemp = c1 + c2; 
		}
		tally += multTemp; 
		multTemp = 0;
		if (counter == 1) counter = 2; 
		else counter = 1;
	}

	if (tally % 10 != 0) return false;
	else return true;

} // end isCCNum()
