//===============================================================================
//
//
// 12/5/2002  THIB  Add function isValidSSN
// 01/28/2004 CEB   Corrected disabled email validation function to correct the IP domain regular exp;
//                  Change the domain suffix check to allow 1-6 chars instead of 2-3,
//                  to allow 1-letter countries, .info. etc.
//					DID NOT RE-ENABLE EMAIL VALIDATION
//===============================================================================

// GetDateString ------------------------------------------------------------------------
//
// Returns a date string in the following format: month dd, yyyy. It reflects the date
// on the client machine.
// -----------------------------------------------------------------------------------
function GetDateString()
{
   var months = new Array("January", "February", "March", "April", "May", "June",
                          "July", "August", "September", "October", "November", "December")
   var today = new Date()

   return (months[today.getMonth()] + " " + today.getDate() + ", " + today.getFullYear())
}

////////////////////////////////////////////////////////////////////////////////////
function isThisAUserNameOrPassword(sField)
{
var bReturn = false;
var ValidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-"
var nLength = sField.length;

	if(6 <= nLength)	// Is sField long enough?
	{	
		sField = sField.toUpperCase();
		while(nLength > 0 && -1 != ValidChars.indexOf(sField.charAt(0)))
		{
			sField = sField.substr(1);
			nLength--;
		}
		if(0 == nLength)	// Were all characters in sField valid?
			bReturn = true;
	}
return bReturn
}

function isThisAnAlphaNumericList(sField)
{
var bReturn = false;
var ValidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ -,./"
var nLength = sField.length;

	if(1 <= nLength)	// Is sField long enough?
	{	
		sField = sField.toUpperCase();
		while(nLength > 0 && -1 != ValidChars.indexOf(sField.charAt(0)))
		{
			sField = sField.substr(1);
			nLength--;
		}
		if(0 == nLength)	// Were all characters in sField valid?
			bReturn = true;
	}
return bReturn
}

function isThisAPhoneNumber(sField)
{
var bReturn = false;
var ValidChars = "0123456789()-+ ."
var nLength = sField.length;

	if(10 <= nLength)	// Is sField long enough?
	{	
		while(nLength > 0 && -1 != ValidChars.indexOf(sField.charAt(0)))
		{
			sField = sField.substr(1);
			// Check for "ext." here ????
			nLength--;
		}
		if(0 == nLength)	// Were all characters in sField valid?
			bReturn = true;
	}
return bReturn
}

function isThisAnEmailAddress(sEmail){
	return true;
}

// 01/09/2003 - REMOVE THE EMAIL VALIDATION.  
function removed_isThisAnEmailAddress(sEmail)
{
var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"

var quotedUser="(\"[^\"]*\")"

//CEB 01/28/2004 - Fixed error in IP matching exp
//var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var ipDomainPat=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/

var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

var matchArray=sEmail.match(emailPat)

	if(matchArray==null)
		return false;

var user=matchArray[1]
var domain=matchArray[2]

// See if "user" is valid 
	if(user.match(userPat)==null)
	    return false;

/* if the e-mail address is at an IP address make sure the IP address is valid. */
var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null)
	{
		//CEB 01/28/2004 - Split IPArray and change to int comparisons
		var IPsplit=IPArray[0].split(".")
		for (var i=0; i<4; i++)
		    if ( (isNaN(parseInt(IPsplit[i]))) || (parseInt(IPsplit[i]) > 255) || (parseInt(IPsplit[i]) < 0 ) )
				return false;
	    return true;
	}
	else
	{
	// Domain is symbolic name
	var domainArray=domain.match(domainPat)
		if (domainArray==null)
		    return false;
	
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
		//CEB 01/28/2004 - Now allow 1-5 characters in domain suffix instead of only 2-3 chars
		if(domArr[domArr.length-1].length<1 || domArr[domArr.length-1].length>5)
		   return false;
	
		if(2 > len)
		   return false;
	}
return true;
}


// ----------------------------------------------------------------------------
// ParseDate
// -------------------------------------------------------------------------
function ParseDate(date)
{
	var d = new Date(Date.parse(date));
	var dStr = (d.getMonth() + 1) + "/" + d.getDate() + "/" + d.getFullYear();

	return dStr;
}



function isNumber(inputVal) 
{
	var oneDecimal = false
	var inputStr = inputVal.toString()
	for (var i=0;i<inputStr.length;i++)
	{
		var oneChar = inputStr.charAt(i);
		if (i == 0 && onChar == '-')
		{
			continue
		}
		if(oneChar == "." && !oneDecimal)
		{
			oneDecimal = true
			continue
		}
		if(oneChar<"0"||oneChar>"9")
		{
			return false
		}
	}
	return true
}

function isPosInteger(inputVal) 
{
	var inputStr = inputVal.toString()
	for (var i=0;i<inputStr.length;i++)
	{
		var oneChar = inputStr.charAt(i);
		if(oneChar<"0"||oneChar>"9")
		{
			return false
		}
	}
	return true
}

//=============================================================
function isValidSSN(inputVal) 
{
    if(trim(inputVal) != "")
    {
        if( inputVal.length != 9 ||isNaN(inputVal) || allOfSame(inputVal,0) || allOfSame(inputVal,9))
            return false;
    }
    return true;
}

//=============================================================
function allOfSame(value,ch)
{
    var ind;
    var ssn;
    for(ind = 0; ind < value.length; ind++)
    {
        if(value.charAt(ind) == ch)
            continue;
        else
            break;
    }
    if ( ind == value.length )
        return true;
    else
        return false;
}	     

