function checkRequiredText(txtFieldName,txtMessage) {
	if( document.getElementById(txtFieldName).value == "" ) { 
		return txtMessage + "\n"; 
	} else {
		return ""; 
	}
}

function checkRequiredDropDown(txtFieldName,txtMessage) {
	if( document.getElementById(txtFieldName)[document.getElementById(txtFieldName).selectedIndex].value == "" ) { 
		return txtMessage + "\n"; 
	} else {
		return ""; 
	}
}

function checkRequiredCheckBox(txtFieldName,txtMessage) {
	if( !document.getElementById(txtFieldName).checked ) { 
		return txtMessage + "\n"; 
	} else {
		return ""; 
	}
}

function checkRequiredRadio(txtFieldName,txtMessage) {
	var rg = document.forms[0][txtFieldName];
	var isChecked = false;
	for (i=0; i<rg.length; i++) {
		if (rg[i].checked) {
			isChecked = true;
			break;
		}
	}
	if( !isChecked ) { 
		return txtMessage + "\n"; 
	} else {
		return ""; 
	}
}

function checkRequiredEmail(txtFieldName,txtMessage) {
	if( document.getElementById(txtFieldName).value == "" ) { 
		return txtMessage + "\n"; 
	} else {
		var isValid = isEmail( document.getElementById(txtFieldName).value );
		if( !isValid ) {
			return txtMessage + "\n";
		} else {
			return "";
		}
	}
}

function checkRequiredZip(txtFieldName,txtMessage) {
	if( document.getElementById(txtFieldName).value == "" ) { 
		return txtMessage + "\n"; 
	} else {
		var isValid = isZipCode( document.getElementById(txtFieldName).value );
		if( !isValid ) {
			return txtMessage + "\n";
		} else {
			return "";
		}
	}
}

function checkRequiredSSN(txtFieldName,txtMessage) {
	if( document.getElementById(txtFieldName).value == "" ) { 
		return txtMessage + "\n"; 
	} else {
		var isValid = isSSN( document.getElementById(txtFieldName).value );
		if( !isValid ) {
			return txtMessage + "\n";
		} else {
			return "";
		}
	}
}

function checkRequiredDate(txtFieldName,txtMessage) {
	if( document.getElementById(txtFieldName).value == "" ) { 
		return txtMessage + "\n"; 
	} else {
		var isValid = isDate( document.getElementById(txtFieldName).value );
		if( !isValid ) {
			return txtMessage + "\n";
		} else {
			return "";
		}
	}
}

function checkWordCount(txtFieldName,txtMessage, minwords, maxwords) {
	var wordCount = getWordCount(document.getElementById(txtFieldName).value);
	if (wordCount >= minwords && wordCount <= maxwords) {
		return "";
	} else {
		return txtMessage + "\n";
	}
}

function isEmail(string) {
    if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
        return true;
    else
        return false;
}

function isZipCode(string) {
   // if (string.search(/(^\d{5}$)|(^\d{5}-\d{4}$)/) != -1)
    if (string.search(/(^\d{5}$)|(^\d{5}-\d{4}$)|(^[ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy]{1}\d{1}[A-Za-z]{1} *\d{1}[A-Za-z]{1}[A-Za-z,1-9]{1}$)/) != -1)
        return true;
    else
        return false;
}

function makeAlert(msgString) {
	if( msgString.length > 0 ) { 
		alert("The following error(s) occurred:\n\n" + msgString );
		return false; 
	} else {
		return true;
	}
}

function isSSN(string) {
    if (string.search(/[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}/) != -1)
        return true;
    else
        return false;
}

function isDate(string) {
    if (string.search(/(^\d{1,2}\/\d{1,2}\/\d{4}$)/) != -1)
        return true;
    else
        return false;
}

function getWordCount(txtString) {
	var str_text = txtString + " ";
	var regexp_whitespace = /^[^A-Za-z0-9]+/gi;
	var str_trimmed = str_text.replace(regexp_whitespace, "");
	var regexp_nonalpha = /[^A-Za-z0-9]+/gi;
	var final_string = str_trimmed.replace(regexp_nonalpha, " ");
	var temp = final_string.split(" ");
	var word_count = temp.length-1;
	return word_count;
}

