var kNBSP = 160;    // non-breaking space char
var gField;      // retain vfld for timer thread

function js_trim(s)
{
  return ( s.replace(/^\s+|\s+$/g, '') );
}

function js_setFocusDelayed()
{
  gField.focus()
}

function js_setfocus(f)
{
  gField = f;
  setTimeout( 'js_setFocusDelayed()', 100 );
}

function js_isNumeric(s)
{
	var validChars = "0123456789";
	var blnResult = true;
	
	for (j=0; j<s.length; j++)
	{
		var c = s.charAt(j);
		if (-1 == validChars.indexOf(c))
		{
			return (false);
		}
	}
	return (true);
}

function js_msg(f, msg)
{
	var e = document.getElementById(f);
	if (e)
	{
		e.innerHTML = msg;
	}
}

function js_validateAll(msgID)
{
	var ok = js_checkEmpty(document.getElementById('ps_st'), msgID);
	if (!ok)
	{
		return (false);
	}
	ok = js_check(document.getElementById('ps_ye'),msgID);
	if (!ok)
	{
		return (false);
	}
	return (true);
}

function js_checkEmpty(vObj, msgID)
{
	var obj;
	obj = vObj;
	if (!obj)
	{	
		return (true); // let server do validation
	} 
	obj = document.getElementById(msgID);
	if (!obj)
	{	
		return (true); // let server do validation
	} 
	var s = js_trim(vObj.value);
	if (0 == s.length)
	{
		js_msg(msgID, "Please share your story"); 
		vObj.value = "";
		js_setfocus(vObj);
		return (false);
	}
	js_msg(msgID, String.fromCharCode(kNBSP));  
	return (true);
}

function js_check(vObj, msgID)
{
	var obj;
	obj = vObj;
	if (!obj)
	{	
		return (true); // let server do validation
	} 
	obj = document.getElementById(msgID);
	if (!obj)
	{	
		return (true); // let server do validation
	} 
	var year = js_trim(vObj.value);
	if (0 == year.length)
	{
		return (true);
	}
	if (!js_isNumeric(year)) 
	{
		js_msg(msgID, "Use only numbers for your prom year"); 
		vObj.value = year;
		js_setfocus(vObj);
		return (false);
	}
	if (1 == year.length) 
	{
		js_msg(msgID, "Enter at least 2-digits for your prom year"); 
		vObj.value = year;
		js_setfocus(vObj);
		return (false);
	}
	js_msg(msgID, String.fromCharCode(kNBSP));  
	return (true);
}