function isEmpty(elem)
{
    var str = elem.value;
    if(str == null || str.length == 0)
    {
	return true;
    }
    else
    {
	return false;
    }
}
function isEmptyText(elem, title)
{
    var str = elem.value;
    if(str == null || str.length == 0)
    {
	alert(title + ' cannot be blank.\nPlease fill it in.');
	elem.focus();
	return true;
    }
    else
    {
	return false;
    }
}
function isEmptySelect(select, title)
{
    //if(select.selectedIndex == 0)
    if(select.options[select.selectedIndex].value == '' || select.options[select.selectedIndex].value == null)
    {
	alert(title + ' cannot be blank.\nPlease make a choice from the list.');
	select.focus();
	return true;
    }
    else
    {
	return false;
    }
}
function isEmptyRadio(radio, title)
{
    var valid = false;
    for (var i = 0; i < radio.length; i++)
    {
	if (radio[i].checked)
	    valid = true;
    }
    if (valid == false)
    {
	alert(title + ' cannot be blank.\nPlease make a choice from the radio buttons.'); 
	radio[0].focus();	
	return true;
    }
    else
    {
	return false;
    }
}
function isNotInteger(elem, title)
{
    var str = elem.value;
    var re = /^[-]?\d*\d*$/;
    str = str.toString();

    if (!str.match(re))
    {
	alert(title + ' must be a whole number.'); 
	elem.focus();	
	return true;
    }
    else
    {
	return false;
    }
}
function isNotNumber(elem, title)
{
    var str = elem.value;
    var re = /^[-]?\d*\.?\d*$/;
    str = str.toString();

    if (!str.match(re))
    {
	alert(title + ' must be a number.'); 
	elem.focus();	
	return true;
    }
    else
    {
	return false;
    }
}
function isNotEmail(elem, title)
{
    var str = elem.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    str = str.toString();

    if (!str.match(re))
    {
	alert(title + ' must contain a valid email address.\nPlease verify the email address format.'); 
	elem.focus();	
	return true;
    }
    else
    {
	return false;
    }
}
function isNotDate(elem, title)
{
    var mo, day, yr
    var entry = elem.value;
    entry = entry.toString();
    var reLong = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
    var reShort = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{2}\b/;
    var valid = (reLong.test(entry)) || (reShort.test(entry));
    if (valid)
    {
	var delimChar = "/";
	var delim1 = entry.indexOf(delimChar);
	var delim2 = entry.lastIndexOf(delimChar);
	mo = parseInt(entry.substring(0, delim1), 10);
	day = parseInt(entry.substring(delim1+1, delim2), 10);
	yr = parseInt(entry.substring(delim2+1), 10);
	
	if (yr < 100)
	{
	    var today = new Date();
	    var currCent = parseInt(today.getFullYear()/100)*100;
	    var threshold = (today.getFullYear()+ 15) - currCent;
	    if (yr > threshold)
	    {
		yr += currCent - 100;
	    }
	    else
	    {
		yr += currCent;
	    }
	}
	var testDate = new Date(yr, mo-1, day);
	if (testDate.getDate() == day)
	{
	    if (testDate.getMonth()+1 == mo)
	    {
		if (testDate.getFullYear() == yr && yr > 1753)
		{
		    return false;
		}
		else
		{
		    alert(title + ' must contain a valid date.\nPlease verify that the date is in MM/DD/YY or MM/DD/YYYY format.\nThe year portion of the date seems to be wrong. Year can be between 1753 and 9999.'); 
		    elem.focus();	
		    return true;
		}	    
	    }
	    else
	    {
		alert(title + ' must contain a valid date.\nPlease verify that the date is in MM/DD/YY or MM/DD/YYYY format.\nThe month portion of the date seems to be wrong.'); 
		elem.focus();	
		return true;
	    }	    
	}
	else
	{
	    alert(title + ' must contain a valid date.\nPlease verify that the date is in MM/DD/YY or MM/DD/YYYY format.\nThe day portion of the date seems to be wrong.'); 
	    elem.focus();	
	    return true;
	}
    }
    else
    {
	alert(title + ' must contain a valid date.\nPlease verify that the date is in MM/DD/YY or MM/DD/YYYY format.'); 
	elem.focus();	
	return true;
    }
}
function numbersOnly(evt)
{
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
    {
	alert('Numbers only, please.');
	return false;
    }
    return true;
}
function datesOnly(evt)
{
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 47)
    {
	alert('Numbers and forward slashes only, please.');
	return false;
    }
    return true;
}
function integersOnly(evt)
{
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
    if (charCode > 31 && (charCode < 48 || charCode > 57))
    {
	alert('Whole numbers only, please.');
	return false;
    }
    return true;
}
function setHilite(evt) {
    evt = (evt) ? evt : ((window.event) ? window.event : null);
    if (evt) {
        var elem = (evt.srcElement) ? evt.srcElement : evt.target;
        elem.className = "form-field-hot";
    }
}
function setUnHilite(evt) {
    evt = (evt) ? evt : ((window.event) ? window.event : null);
    if (evt) {
        var elem = (evt.srcElement) ? evt.srcElement : evt.target;
        elem.className = "form-field";
    }
}
