/*
 * form validation functionality
 */

var whitespace = " \t\n\r";

function isEmpty(s){return ((s == null) || (s.length == 0))}
function isWhitespace (s)
{
	var i;
	if (isEmpty(s)) return true;
	for (i = 0; i < s.length; i++)
	{
	var c = s.charAt(i);
	if (whitespace.indexOf(c) == -1) return false;
	}
	return true;
}
function numberValid(checkStr)
{
	var checkOK = "0123456789";
	if(isWhitespace(checkStr.value)) return false;
	for (i = 0;  i < checkStr.value.length;  i++)
	{
	  ch = checkStr.value.charAt(i);
	  for (j = 0;  j < checkOK.length;  j++)
	  {
	      if (ch == checkOK.charAt(j))
		    break;
	  }
	  if (j == checkOK.length)
	  {
	   //alert("Enter numbers 0 - 9");
	   //checkStr.focus();
	   //checkStr.select();
	   return false;
	  }
	}
	return true;
}
function zipValid(checkStr)
{
	var checkOK = "0123456789";
	if(checkStr.value.length!=5) return false;
	for (i = 0;  i < checkStr.value.length;  i++)
	{
	  ch = checkStr.value.charAt(i);
	  for (j = 0;  j < checkOK.length;  j++)
	  {
	      if (ch == checkOK.charAt(j))
		    break;
	  }
	  if (j == checkOK.length)
	  {
	   //alert("Enter numbers 0 - 9");
	   //checkStr.focus();
	   //checkStr.select();
	   return false;
	  }
	}
	return true;
}
function areaCodeValid(checkStr)
{
	var checkOK = "0123456789";
	if(checkStr.value.length!=3) return false;
	for (i = 0;  i < checkStr.value.length;  i++)
	{
	  ch = checkStr.value.charAt(i);
	  for (j = 0;  j < checkOK.length;  j++)
	  {
	      if (ch == checkOK.charAt(j))
		    break;
	  }
	  if (j == checkOK.length)
	  {
	   //alert("Enter numbers 0 - 9");
	   //checkStr.focus();
	   //checkStr.select();
	   return false;
	  }
	}
	return true;
}
function isEmail (s)
{
	if(typeof(s)=='object')
		s = s.value;
	
	if (isWhitespace(s)) return false;

	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
	var returnval=emailfilter.test(s)

	if (returnval==false){
		//alert("Please enter a valid email address.")
		return false;
	}
	else {
		//alert("OK")
		return true;	
	}

	/*
	var i = 2;
	var sLength = s.length;
	while ((i < sLength) && (s.charAt(i) != "@"))
	{ i++
	}
	if ((i >= sLength) || (s.charAt(i) != "@")) return false;
	else i += 3;
	while ((i < sLength) && (s.charAt(i) != "."))
	{ i++
	}
	if ((i >= sLength - 2) || (s.charAt(i) != ".")) return false;
	else return true;
	*/
}
//TODO: NOT FINISHED - always return true
function isMultipleEmail (s)
{
	if (s.length == 0) return false;
	listStr = s.value;
	list = listStr.split(",");
	var is_ok = true;
	for(i=list.length; i--;) {
		is_ok = isEmail(list[i]);
		if (is_ok==false) { break; }
	}	
	return is_ok;
}
 function numberRealValid(checkStr)
 {
	var checkOK = ".0123456789";
	if(isWhitespace(checkStr.value)) return false;
	for (i = 0;  i < checkStr.value.length;  i++)
	{
	  ch = checkStr.value.charAt(i);
	  for (j = 0;  j < checkOK.length;  j++)
	  {
	    if (ch == checkOK.charAt(j))
		  break;
	  }
	  if (j == checkOK.length)
	  {
	    return  false;
	  }
	}
	return true;
 }
 function emailValid(checkStr)
 {
    if(!isEmail(checkStr))
		{
		  // alert("Enter properly formatted email address!");
			return false;
		}
		else return true;
 }
 function phoneValid(checkStr)
 {
	var checkOK = "-0123456789 Ext.EXT()";
	ret = true;
	if (isWhitespace(checkStr.value))
	{
	   return false;
	}	
	for (i = 0;  i < checkStr.value.length;  i++)
	{
	  ch = checkStr.value.charAt(i);
	  for (j = 0;  j < checkOK.length;  j++)
	{
	  if (ch == checkOK.charAt(j))
		  break;
	}
	  if (j == checkOK.length)
	{
	  ret = false;
		break;
	}
	}
	if (ret == false)
	{
	 alert("Enter numbers 0 - 9 and -, space,(, ) or Ext.\nExample: (800)-555-4445 Ext. 4569");
	checkStr.focus();
	checkStr.select();
	return false;
	}
	return true;
 }
 function stringValid(checkStr) {
	var checkOK = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_/#.,'-";

	if (isWhitespace(checkStr.value))
	{
	 // alert("Enter characters A-Z a-z 0-9 _ /#.,'");
	// checkStr.focus();
	// checkStr.select();
	return false;
	}
	for (i = 0;  i < checkStr.value.length;  i++)
	{
	  ch = checkStr.value.charAt(i);
	  for (j = 0;  j < checkOK.length;  j++)
	{
	  if (ch == checkOK.charAt(j))
		  break;
	}
	  if (j == checkOK.length)
	{
	   // alert("Enter characters A-Z a-z 0-9 _ /#.,'");
	 // checkStr.focus();
	  //checkStr.select();
	  return false;
	}
	}
	return true;
 }
function urlValid(checkStr) {
	var httpregex=/^(http:\/\/)[a-zA-Z0-9.\/]+(\/)$/
	var value=checkStr;
	var match=value.match(httpregex);
	if (match){
		return true;
	}else{
		return false;
	}
}

function purePhoneValid(checkStr)
{
	var checkOK = "0123456789";
	if(checkStr.value.length!=10) return false;
	for (i = 0;  i < checkStr.value.length;  i++)
	{
	  ch = checkStr.value.charAt(i);
	  for (j = 0;  j < checkOK.length;  j++)
	  {
	      if (ch == checkOK.charAt(j))
		    break;
	  }
	  if (j == checkOK.length)
	  {
	   //alert("Enter numbers 0 - 9");
	   //checkStr.focus();
	   //checkStr.select();
	   return false;
	  }
	}
	return true;
}
function passwValid(checkStr) {
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	if (isWhitespace(checkStr.value))
	{
	   return false;
	}
	for (i = 0;  i < checkStr.value.length;  i++)
	{
	  ch = checkStr.value.charAt(i);
	  for (j = 0;  j < checkOK.length;  j++)
	{
	  if (ch == checkOK.charAt(j))
		  break;
	}
	  if (j == checkOK.length)
	{
	   // alert("Use only characters A-Z a-z 0-9");
	   return false;
	}
	}
	return true;
}