function memberOver(cell)		{genOver(cell,'#9999cc');}
function memberOut(cell)		{genOut (cell,'#666699');}

function nonmemberOver(cell)	{genOver(cell,'#77aaff');}
function nonmemberOut(cell)		{genOut (cell,'#6699ff');}

function listOver(cell)		{genOver(cell,'#ffcc66');}
function listOut(cell)		{genOut (cell,'#ff9933');}

function genOut(cell,col)
	{
	cell.style.backgroundColor=col;
	}	
function genOver(cell,col)
	{
	cell.style.backgroundColor=col;
	cell.style.cursor='hand';
	}	
function genClick(url)
	{
	window.location=url;
	return false;
	}	

function confirmLogoffJS()
	{
	if (confirmLogoff()) 
		{
		window.location = 'index.cfm?logoff=1';
		}
	return false;
	}	
	
function confirmLogoff()
	{
	return confirm('Are you sure you want to Log Off?');
	}


function openWindow(url,name,w,h,opts)
	{
	var wLeft = (screen.width - w) / 2;
	var wTop  = (screen.height - h) / 2;
	var wOpts = 'height='+h+',width='+w+',top='+wTop+',left='+wLeft+',' + opts;
	window.open(url,name,wOpts).focus();
	return false;
	}
	
function onError(obj,message)
    {
	alert(message);
    obj.focus();
	return false;	
    }	
	
function Trim(sString)
	{
	return sString.replace(/^\s+/g, '').replace(/\s+$/g, '');
	}		
	
function isNull(obj)
	{
	if (obj.value == null) return true;
	else return !Trim(obj.value).length;
	}	


function isIntOrNull(obj)
	{
	return (isNull(obj) || isInt(obj))
	}
	
function isInt(obj)
	{
	if (isNull(obj)) return false;
	else
		{
		sInt = Trim(obj.value);
		for (i=0; i < sInt.length; i++)
			{  
			c = sInt.charAt(i);
		    if (!isDigit(c) && c!='-') return false;
			}
		}
	return true;
	}
	
	
function isFloat(obj)
	{
	var i;
  	var seenDecimalPoint = false;
	
	if (isNull(obj)) {return false;}
	
	sFloat = Trim(obj.value);
	if (sFloat=='.') 	{return false;}

  	for (i=0; i < sFloat.length; i++)
		{  
	    var c = sFloat.charAt(i);
	    if (c=='.')
			{
			if (seenDecimalPoint) {return false;}
			else {seenDecimalPoint = true;}
			} 
	    else if (!isDigit(c)) return false;
		}
  	return true;
	}

	
function isChecked(obj)
	{
	for (i=0; i<obj.length; i++)
		{
		if (obj[i].checked) return true;
		}
	return false;	
	}
	
function isSelected(obj)
	{
	return (obj.selectedIndex > 0);
	}
	
function isZero(obj)
	{
	if (isNull(obj)) return true;
	else
		{
		sInt = Trim(obj.value);
		for (i=0; i < sInt.length; i++)
			{ 
			c = sInt.charAt(i);
		    if (c!=0 && c!='-') return false;
			}
		}
	return true;
	}	
	
function isDigit (c)
	{
 	return ((c >= "0") && (c <= "9"))
	}	
	
function isEmail(sEmailInput)
{
	sEmail = sEmailInput.value;
    if (sEmail.indexOf("@") == -1)
        return false;
       
    var emailFilter = /^([a-z0-9][-._a-z0-9]*)*[a-z0-9]+@([a-z0-9][-_a-z0-9]*\.)+[a-zA-Z]{2,7}$/i;
    return emailFilter.test(sEmail);
}
	

function isDate(objDay,objMonth,objYear)
	{
	iDay   = objDay[objDay.selectedIndex].value;
	iMonth = objMonth[objMonth.selectedIndex].value;
	iYear  = objYear[objYear.selectedIndex].value;
	
	//Check to make sure that they have selected a valid date
	var ary30Days = new Array("4","6","9","11");
	var bLeapYear = iYear / 4;
	
	//Is this a leap yer
	if (parseInt(bLeapYear) == bLeapYear)
		bLeapYear = true;
	else
		bLeapYear = false;
	
	//ensure that all values have been passed
	//if they havent, how can the date be correct
	if (isNaN(parseInt(iDay)) || isNaN(parseInt(iMonth)) || isNaN(parseInt(iYear)))
		return false;
	
	if (parseInt(iMonth) == 2)
	{
		if (bLeapYear && (parseInt(iDay) > 29))
			return false;
		else if (!bLeapYear && parseInt(iDay) > 28)
			return false;
	}
	else if (parseInt(iDay) > 30)
	{
		for (i = 0; i < ary30Days.length; i++)
		{
			if (parseInt(iMonth) == ary30Days[i])
				return false;
		}
	}
	return true;
}