function setCommentary(flag)
{
	var obj = document.getElementById('commentary');
	obj.style.display = (flag) ? '' : 'none';
}

function setAccounts(flag)
{
	var obj = document.getElementById('accounts');
	obj.style.display = (flag) ? '' : 'none';
}

function trim(s)
{
	return s.replace(/^\s*|\s*$/g,"");
}

function stub()
{
	// Used for the javascript:href property of the anchors, so the onclick() method can
	// be leveraged instead, which supports the parentNode evaluation.
	
	return;
}

function disableRightClick()
{
	document.oncontextmenu=new Function ("return false");
	document.onselectstart=new Function ("return false");
}

function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}

function validEmail(email,showMsg)
{
	var val = trim(email);

	if (0 == val.length) return true;
	
	if (0 <= val.indexOf(' '))
	{
		if (showMsg) alert("You can't have spaces in an email address.\n\nTry again --  name@domain.extension");
		return false;
	}
	
	var badAt   = (1 > val.indexOf('@'));
	var badDot  = (3 > val.indexOf('.'));
	var badAts  = (val.indexOf('@') != val.lastIndexOf('@'));
	var badEnd  = (val.indexOf('.') == (val.length - 1));

	if (badAt || badDot || badAts || badEnd)
	{
		if (showMsg) alert("That email address is not properfly formed.\n\nTry again --  name@domain.extension");
		return false;
	}

	return true;
}

function cleanupSpacing(id)
{
	try
	{
		var val = trim(document.getElementById(id).value);
		document.getElementById(id).value = val;
	}
	catch(e)
	{
		alert("Can't find document object'" + id + "'");
	}
}

function simplePassword(value)
{
	var valid = '0123456789abcdefghijklmnop';
	return true;
}

function getJavaDate(strDate)
{
	var ary = strDate.split('/');
	var m = parseInt(trimZero(ary[0]));
	var d = parseInt(trimZero(ary[1]));
	var y = parseInt(trimZero(ary[2]));

	var newDate = new Date();

	newDate.setMonth(m);
	newDate.setDate(d);
	newDate.setFullYear(y);

	return newDate;
}

function trimZero(str)
{
   while (str.charAt(0) == '0')
      str = str.substring(1, str.length);
   return str;
}

function focusFalse(objName)
{
 	document.getElementById(objName).focus();
	document.getElementById(objName).select();
	return false;
}

function stripNonNumbers(str)
{
    // Search through characters one by one, if not a
    // number, append it to the return string.

    var rtn = '';
	var chr;

    for (var i = 0; i < str.length; i++)
    {   
    	chr = str.charAt(i);
        if ('0123456789'.indexOf(chr) != -1) rtn += chr;
    }
    return rtn;
}

function validatePhone(str)
{
	var numbers = stripNonNumbers(str).length;
	if (!(numbers == 7 || numbers == 10 || numbers == 11))
	{
		alert("That phone number is poorly formed.\n\nTry again again with 7, 10 or 11 digits.");
		return false;
	}
	return true;
}

function checkDate(objName)
{
	var v = trim(document.getElementById(objName).value);
	document.getElementById(objName).value = v;
	if (v == "") return true;
	
	var ary = v.split('/');
	if (ary.length != 3)
	{
		alert('Please enter a valid date format: mm/dd/yyyy');
		return focusFalse(objName);
	}

	var dt = new Date();
	var m  = parseInt(trimZero(ary[0]));
	var d  = parseInt(trimZero(ary[1]));
	var y  = parseInt(trimZero(ary[2]));

	if(isNaN(m) || isNaN(d) || isNaN(y))
	{
		alert('Please enter a valid date format: mm/dd/yyyy');
		return focusFalse(objName);
	}
	if (m < 1 || m > 12)
	{
		alert('Please enter a valid Month number.');
		return focusFalse(objName);
	}
	if (d < 1 || d > 31)
	{
		alert('Please enter a valid Day-of-Month number.');
		return focusFalse(objName);
	}
	if (y.toString().length != 4)
	{
		alert('Please enter a Full Year number... like 1991.');
		return focusFalse(objName);
	}
	if (y < 1900 || y > dt.getFullYear()+10)
	{
		alert('Please enter a reasonable Year number.');
		return focusFalse(objName);
	}
	
	dt.setMonth(m - 1);
	dt.setDate(d);
	dt.setFullYear(y);

	m = dt.getMonth() + 1;
	d = dt.getDate();
	y = dt.getFullYear();

	var ms = (m < 10) ? '0' + m.toString() : m.toString();
	var ds = (d < 10) ? '0' + d.toString() : d.toString();
	
	document.getElementById(objName).value = ms + '/' + ds + '/' + y.toString();
	return true;
}
