// JavaScript Document
//function to validate Email
var mc_detect = navigator.userAgent.toLowerCase();
var mc_OS, mc_browser, mc_thestring;

if (checkIt('msie')) {
	mc_browser = "IE";
}
if (checkIt('mac')) {
	mc_OS = 'Mac';
} else {
    mc_OS =  '';
}

function echeck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail")
		    return false
		 }

 		 return true					
	}

//fn to check Date in mm/dd/yyyy

	function checkdate(input){
		var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
		var returnval=false
		if (!validformat.test(input.value))
		alert("Invalid Date Format. Please correct and submit again.")
		else{ //Detailed check for valid date ranges
		var monthfield=input.value.split("/")[0]
		var dayfield=input.value.split("/")[1]
		var yearfield=input.value.split("/")[2]
		var dayobj = new Date(yearfield, monthfield-1, dayfield)
		if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
		alert("Invalid Day, Month, or Year range detected. Please correct and submit again.")
		else
		returnval=true
		}
		if (returnval==false) input.select()
		return returnval
	}
	
//validate user from special Characters such as %,*,?	
	function valuser(str)
	{
		var iChars = /[|!@#$%^&*`~()+=\{\}\[\]\s\';,.\/\\":<>?]/;
		var msg = "Dissallows . , ; ' \"\ %^ ( ) {} [ ] | ! ~ ` (ALL PUNCTUATION) and spaces";
		
		if(str.match(iChars)) {
			alert("Invalid Username! No Spaces or Punctuation Allowed.\n"+msg);
		 return false;
		} 
		else {
			
			return true;
		} 
		
	}
//Phone Validation
		function isPhoneNumber(frm,field) 
		{
			alert("hello");
			alert(frm)
		var dm = document.frm;
        var checkstr=dm.field.value;

		//old if (checkstr.match(/\(\d{3}\)\s\d{3}\-\d{4}/)||checkstr.match(/\d{3}\s\d{3}\-\d{3}\-\d{4}/)||checkstr.match(/\d{3}\-\d{3}\-\d{3}\-\d{4}/)||checkstr.match(/\d{3}\s\d{2}\s\d{4}\-\d{4}/)){
		if (checkstr.match(/\(\d{3}\)\s\d{3}\-\d{4}/)||checkstr.match(/\d{3}\s\d{3}\-\d{3}\-\d{4}/)||checkstr.match(/\d{3}\-\d{3}\-\d{3}\-\d{4}/)||checkstr.match(/\d{3}\s\d{2}\s\d{4}\-\d{4}/)||checkstr.match(/\d{3}\-\d{3}\-\d{4}/)||checkstr.match(/\d{3}\s\d{3}\-\d{4}/)||checkstr.match(/\d{3}\.\d{3}\.\d{4}/)){
			//if ( checkstr.match(/\d{1,2}\/\d{1,2}\/\d{2,4}/) ){
			//alert("The phone number is valid!!");
			return true;
		}
			
		else{
			alert("The phone number is not valid!! \nPhone Number Must Be Entered As: (555) 555-1234, 011 727-555-1212,011-727-555-1212, 011 727-555-1212, 123-555-1212 , 123 555-1212 , 123.555.1212");
			return false;
			}
		}
//function
function evalPhoneNo(objForm, objPhone)
  {
    objPhone.value = eval("objForm." + objPhone.name + "1.value") +
            eval("objForm." + objPhone.name + "2.value") +
            eval("objForm." + objPhone.name + "3.value");
  }
//checking phone number
  function chkPhoneNo(objPhone, objFocus)
  {
	 
    var iLen = objPhone.value.length;
    var iAreaCode;
    if (iLen == 0)
      return true;
    if (iLen < 10)
    {
      alert("Please enter valid phone number.");
      objFocus.focus();
      return false;
    }

    return true;
  }

//check filed functions
function checkField(objFld, strType)
{
	objFld.value = alltrim(objFld.value);
	if (isEmpty(objFld.value))
		return true;

	// Remove commas from Integer and Float fields
	if ((strType == "Integer") || (strType == "Float"))
		objFld.value = replaceall(objFld.value, ",", "");

	if ((strType == "Digit") && !isDigit(objFld.value))
	{
		alert("Please enter a response in numerical format (please " + 
			"exclude dollar signs, commas, parenthesis or any other " + 
			"non-numeric symbols).");
		objFld.value = "";
		objFld.focus();
		return false;
	}

	if (strType == "Integer") 
		if (!isInteger(parseInt(objFld.value)))
		{
			alert("Please enter a response in numerical format (please " + 
				"exclude dollar signs, commas, parenthesis or any other " + 
				"non-numeric symbols).");
			objFld.value = "";
			objFld.focus();
			return false;
		}
		else
			objFld.value = parseInt(objFld.value);

	if (strType == "Float") 
		if (!isFloat(parseFloat(objFld.value)))
		{
			alert("Please enter a response in numerical format (please " + 
				"exclude dollar signs, commas, parenthesis or any other " + 
				"non-numeric symbols).");
			objFld.value = "";
			objFld.focus();
			return false;
		}
		else
			objFld.value = parseFloat(objFld.value);

	if (strType == "ZIP") 
		if (!isZipcode(objFld.value))
		{
			alert("Please enter valid zip code value");
			objFld.value = "";
			objFld.focus();
			return false;
		}

	if (strType == "Date") 
		if (!isDate(objFld.value))
		{
			alert("Please enter valid date value (MM/DD/YYYY)");
			objFld.value = "";
			objFld.focus();
			return false;
		}

	if (strType == "DatePartYear" && checkField(objFld, "Digit"))
	{
		if (!isDatePart(objFld.value, "Year"))
		{
			alert("Please enter valid year value");
			objFld.value = "";
			objFld.focus();
			return false;
		}
		else if (objFld.value < 100)
			objFld.value = (objFld.value < 50 ? 2000:1900) + parseInt(objFld.value);
	}


	return true;
}

// whitespace characters: ' ', '\t', '\r', '\n'
var whitespace = " \t\n\r";

// isEmpty: Check whether string strVal is empty
function isEmpty(strVal)
{
	return ((strVal == null) || (strVal.length == 0));
}

// isWhitespace: Check if string strVal has only the whitespace characters
function isWhitespace(strVal)
{
	var nPos = 0;

	if (isEmpty(strVal))
		return false;

	for (nPos = 0; nPos < strVal.length; nPos++)
		if (whitespace.indexOf(strVal.charAt(nPos)) == -1)
			return false;

	return true;
}

// rtrim: Right trim the string and return the trimmed value
function rtrim(strVal)
{
	var nPos = 0;

	if (isEmpty(strVal))
		return strVal;

	for (nPos = strVal.length-1; nPos >= 0; nPos--) {
		if (whitespace.indexOf(strVal.charAt(nPos)) == -1)
			break;
	}

	return (nPos == strVal.length-1 ? strVal.substring(0) : strVal.substring(0, nPos+1));
}

// ltrim: Left trim the string and return the trimmed value
function ltrim(strVal)
{
	var nPos = 0;

	if (isEmpty(strVal))
		return strVal;

	for (nPos = 0; nPos < strVal.length; nPos++) {
		if (whitespace.indexOf(strVal.charAt(nPos)) == -1)
			break;
	}

	return strVal.substring(nPos);
}

// alltrim: Trim the string on left and right, and return the trimmed value
function alltrim(strVal)
{
	return (isEmpty(strVal) ? strVal:ltrim(rtrim(strVal)));
}

/********************************************************
 replace: useful for JavaScript 1.0 and 1.1 where replace 
	  is not available. With JavaScript 1.2 (and above)
	  replace function is available.
	: replaces one occurrence of strVal with strWith in strSrc
********************************************************/
function replace(strSrc, strVal, strWith)
{
	var nPos = 0, strLeft="", strRight="";

	// check if empty (or) no string is found to replace
	if (isEmpty(strSrc) || (strSrc.indexOf(strVal) < 0))
		return strSrc;

	nPos = strSrc.indexOf(strVal);
	strLeft = strSrc.substring(0, nPos);
	nPos += strVal.length;
	strRight = strSrc.substring(nPos);

	return (strLeft + strWith + strRight);
}

// replaceall : replace all occurrences of strVal with strWith in strSrc
function replaceall(strSrc, strVal, strWith)
{
	var strBuffer=strSrc;

	while (strBuffer.indexOf(strVal) >= 0)
		strBuffer = replace(strBuffer, strVal, strWith);

	return (strBuffer);
}

// occurs: return no of occurrences of strVal within strSrc
function occurs(strVal, strSrc)
{
	var nCnt = 0, strBuffer=strSrc;

	while (strBuffer.indexOf(strVal) >= 0)
	{
		strBuffer = replace(strBuffer, strVal, "");
		nCnt++;
	}

	return (nCnt);
}

// replicate: returns string that contains strVal repeated nCnt times
function replicate(strVal, nCnt)
{
	var i = 0, strBuffer = "";

	for (i = 0; i < nCnt; i++)
		strBuffer += strVal;

	return (strBuffer);
}

/**************************************************************
 stuff: returns string after replacing nCnt characters (starting
	from nStartPos) with strReplacement in strSrc. 

 NOTE: starting position is 0
**************************************************************/
function stuff(strSrc, nStartPos, nCnt, strReplacement)
{
	var strLeft= "", strRight="";

	// check boundary values
	if (nCnt < 0 || nStartPos < 0 || (nStartPos > strSrc.length-1))
		return strSrc;

	strLeft = strSrc.substring(0, nStartPos);
	strRight = strSrc.substring(nStartPos+nCnt);

	return (strLeft + strReplacement + strRight);
}
	
/**********************************************************************
Depends on: isEmpty(), isWhitespace() functions string.js library 

NOTE: 
  -- always alltrim field value before calling any of these functions
  -- if field is empty, the function call will return true
**********************************************************************/

// isDigit: check if val has digits (0-9)
function isDigit(val)
{
  var strBuffer = new String(val);
  var nPos = 0;

  if (isEmpty(strBuffer))
    return false;

  for (nPos = 0; nPos < strBuffer.length; nPos++)
    if (strBuffer.charAt(nPos) < '0' || strBuffer.charAt(nPos) > '9')
      return false;

  return true;
}

// isAlpha: check if val has alphabets only (a-z, A-Z)
function isAlpha(val)
{
  var strBuffer = new String(val);
  var nPos = 0;

  if (isEmpty(strBuffer))
    return false;

  for (nPos = 0; nPos < strBuffer.length; nPos++)
    if (!((strBuffer.charAt(nPos) >= 'a' && strBuffer.charAt(nPos) <= 'z') ||
      (strBuffer.charAt(nPos) >= 'A' && strBuffer.charAt(nPos) <= 'Z')))
      return false;

  return true;
}

// isInteger: check if nVal is integer type
function isInteger(nVal)
{
  var strBuffer = new String(nVal);
  var nPos = 0, nStart = 0;

  if (isEmpty(strBuffer))
    return true;
  if (isWhitespace(strBuffer))
    return false;

  // check if -ve or +ve sign occurs in the beginning
  if ((strBuffer.charAt(0) == '-') || (strBuffer.charAt(0) == '+'))
    nStart = 1;
  else
    nStart = 0;

  for (nPos = nStart; nPos < strBuffer.length; nPos++)
    if (strBuffer.charAt(nPos) < '0' || strBuffer.charAt(nPos) > '9')
      return false;

  return true;  
}

// isFloat: check if fVal is floating-point type
//  LIMITATION: no scientific notation (for eg: xxxx.xxE+xx)
function isFloat(fVal)
{
  var strBuffer = new String(fVal);
  var nPos = 0, nStart = 0;

  if (isEmpty(strBuffer))
    return true;
  if (isWhitespace(strBuffer))
    return false;

  // check if -ve or +ve sign occurs in the beginning
  if ((strBuffer.charAt(0) == '-') || (strBuffer.charAt(0) == '+'))
    nStart = 1;
  else
    nStart = 0;

  for (nPos = nStart; nPos < strBuffer.length; nPos++)
    if ((strBuffer.charAt(nPos) < '0' || strBuffer.charAt(nPos) > '9') && 
        (strBuffer.charAt(nPos) != '.'))
      return false;

  return true;
}

/************************************************************
isDate  : Check if dVal is valid date
  : valid date format - 
    MM (or) M / DD (or) D / Y (or) YY (or) YYYY
  : YY > 50 should be 19YY
  : YY <= 50 should be 20YY
*************************************************************/
function isDate(dVal)
{
  var strBuffer= new String(dVal);
  var cDelimiter='';
  var strMonth=0, strDay=0, strYear=0;
  var nPos=-1;

  if (isEmpty(strBuffer))
    return true;
  if (isWhitespace(strBuffer))
    return false;

  // Get the delimiter used
  if (occurs('/', strBuffer) == 2)
    cDelimiter = '/';
  else if (occurs('-', strBuffer) == 2)
    cDelimiter = '-';

  // If no '/' or '-' found return false
  if (cDelimiter == '')
    return false;

  // validate month, date, and year (Y, YY, YYYY are valid year formats)
  nPos = strBuffer.indexOf(cDelimiter);
  strMonth = strBuffer.substring(0, nPos);
  if (strMonth.length > 2 || !isDigit(strMonth))
    return false;
  strBuffer = strBuffer.substring(nPos+1);
  nPos = strBuffer.indexOf(cDelimiter);
  strDay = strBuffer.substring(0, nPos);
  if (strDay.length > 2 || !isDigit(strDay))
    return false;
  strBuffer = strBuffer.substring(nPos+1);
  strYear = strBuffer;
  if ((strYear.length > 4) || (strYear.length == 3) || !isDigit(strYear))
    return false;

  // if YY < 50 then YYYY=20YY, else if YY >= 50 then YYYY=19YY
  var iYear = parseInt(strYear);
  if (iYear < 50)
    strYear = "20" + (strYear < 10 ? '0' + strYear:strYear);
  else if (iYear >= 50 && iYear < 100)
    strYear = "19" + strYear;

  strBuffer = strMonth + cDelimiter + strDay + cDelimiter + strYear;

  // validate date
  var dBuffer = new Date(strBuffer);
  
  if(strDay.length == 2){
   firstDigit = strDay.substring(0,1);
   secondDigit = strDay.substring(1,2);
   if (firstDigit == '0')
    strDay = secondDigit;
  }
    
  if(strMonth.length == 2){
     firstDigit = strMonth.substring(0,1);
     secondDigit = strMonth.substring(1,2);
     if (firstDigit == '0')
      strMonth = secondDigit;
  }
  
  if (dBuffer.getDate() != parseInt(strDay) || 
        dBuffer.getMonth()+1 != parseInt(strMonth) || 
        dBuffer.getFullYear() != parseInt(strYear))        
    return false;
 

  return true;
}

// isZipcode: check if valid US zip code (##### or #####-####)
function isZipcode(strZip)
{
  var strLeft="", strRight="", strVal = new String(strZip);

  if (isEmpty(strVal))
    return true;
  if (isWhitespace(strVal))
    return false;

  if (strVal.length != 5 && strVal.length != 10)
    return false;

  if ((strVal.length == 5) && isDigit(strVal))
    return true;

  if ((strVal.length == 10) && isDigit(strVal.substring(0, 5)) && 
            isDigit(strVal.substring(6)))
    return true;

  return false;
}

// isDatePart: check if nVal is valid day: 1-31, month:1-12, year:YYYY
function isDatePart(nVal, strType)
{
  var strBuffer = new String(nVal);

  if (isEmpty(strBuffer) || isWhitespace(strBuffer))
    return false;
  
  nVal = parseInt(strBuffer);
  if (!isDigit(nVal))
    return false;

  if ((strType == "Year") && (nVal < 0 || (nVal > 99 && nVal < 1000) || nVal > 9999))
    return false;
  else if ((strType == "Month") && (nVal < 1 || nVal > 12))
    return false;
  else if ((strType == "Day") && (nVal < 1 || nVal > 31))
    return false;

  return true;
}

function ConvToAlphaNumeric(objFld) {
    objFld.value = alltrim(objFld.value);
    objFld.value = objFld.value.replace(/[^\d\w]*/gi,""); 
}

function validEmail(objFld) {
	var strInvalid = "*?#&^~`'\\[]<>;/:\" ", bAliasedEmail = false, strAliasedEmail="";
	var i = 0, bValid = true;

	objFld.value = alltrim(objFld.value);
	if (isEmpty(objFld.value))
		return true;

	var strEmail = new String(objFld.value);

	// Assumption: if strEmail contains < and >, Email is between < and >
	if (strEmail.indexOf('<') < strEmail.indexOf('>') && strEmail.indexOf('<') >= 0)
	{
		bAliasedEmail = true;
		strAliasedEmail = strEmail;
		strEmail = strEmail.substring(strEmail.indexOf('<')+1, 
				strEmail.indexOf('>'));
	}

	if (strEmail.length < 5)	// check the length
		bValid = false;
	else if (strEmail.lastIndexOf("@") <= 0 || (strEmail.lastIndexOf(".") - 
				strEmail.lastIndexOf("@") <= 1)) // check positions of @ and .
		bValid = false;
	else if (occurs('@', strEmail) > 1)	// check if @ occurs more than once
		bValid = false
	else	// check if any invalid characters present
	{
		for (i = 0; i < strEmail.length; i++)
			if (strInvalid.indexOf(strEmail.charAt(i)) >= 0)
			{
				bValid = false;
				break;
			}
	}
	

	if (!bValid) {
		alert("Please enter a valid email address");
		objFld.value = "";
		objFld.focus();
		return bValid;
	}	
	
	if (bAliasedEmail)
	 this.value = strAliasedEmail;
	else
	 this.value = strEmail;
	
	return bValid;
}


function chkMandatoryField(objForm, objField, strCaption, strFieldType, strFocusOn)
{
	var strVal;
	strVal = "";
	if (strFieldType == "Text")
		strVal = objField.value;
	else if (strFieldType == "Radio")
	{
		var iLen = objField.length;
		for (var iEle = 0; iEle < iLen; iEle++)
			if (objField[iEle].checked)
			{
				strVal = objField[iEle].value;						
				break;					
			}
	}
	else if (strFieldType == "Select")
	{
		var iIdx = objField.selectedIndex;
		if (iIdx > -1)
			strVal = objField[iIdx].value;
		else
			strVal = "";
	}
	if (strVal == "")
	{
		if (strFieldType == "Text")
			alert("Please enter value for " + strCaption + ".");

		if (strFieldType == "Radio" || strFieldType == "Select")
			alert("Please select " + strCaption + ".");

		if (strFocusOn != "")
			eval("objForm." + strFocusOn + ".focus()");
		else
		{
			if (strFieldType == "Radio")
				objField[0].focus();
			else
				objField.focus();
		}
		return false;
	}

	return true;	
}
		
function chkMandatory(objForm)
{
	for (var iLoop in aMandatory)
	{
		var strVal;
		strVal = "";
		if (aMandatory[iLoop][1] == "Text")
			strVal = eval("objForm." + iLoop + ".value");
		else if (aMandatory[iLoop][1] == "Radio")
		{
			var oEle = eval("objForm." + iLoop);
			var iLen = oEle.length;
			for (var iEle = 0; iEle < iLen; iEle++)
				if (oEle[iEle].checked)
				{
					strVal = oEle[iEle].value;						
					break;					
				}
		}
		else if (aMandatory[iLoop][1] == "Select")
		{
			var iIdx = eval("objForm." + iLoop + ".selectedIndex");
			if (iIdx > -1)
				strVal = eval("objForm." + iLoop + "[" + iIdx + "].value");
			else
				strVal = "";
		}
		if (strVal == "")
		{
			if (aMandatory[iLoop][1] == "Text")
				alert("Please enter value for " + aMandatory[iLoop][0] + ".");

			if (aMandatory[iLoop][1] == "Radio" || aMandatory[iLoop][1] == "Select")
				alert("Please select " + aMandatory[iLoop][0] + ".");

			if (aMandatory[iLoop][2] != "")
				eval("objForm." + aMandatory[iLoop][2] + ".focus()");
			else
			{
				if (aMandatory[iLoop][1] == "Radio")
					eval("objForm." + iLoop + "[0].focus()");
				else
					eval("objForm." + iLoop + ".focus()");
			}
			return false;
		}
	}
	return true;
}

/**********************************************************************
This function is same as chkMandatory(objForm), but applied on 
**********************************************************************/
function chkMandatoryRecursively(objForm, iRecursiveCnt)
{
	for (var iRecCnt = 1; iRecCnt <= iRecursiveCnt; iRecCnt++)
	{
		for (var iLoop in aMandatory)
		{
			var strVal;
			strVal = "";
			if (aMandatory[iLoop][1] == "Text")
				strVal = eval("objForm." + iLoop + iRecCnt + ".value");
			else if (aMandatory[iLoop][1] == "Radio")
			{
				var oEle = eval("objForm." + iLoop + iRecCnt);
				var iLen = oEle.length;
				for (var iEle = 0; iEle < iLen; iEle++)
					if (oEle[iEle].checked)
					{
						strVal = oEle[iEle].value;						
						break;					
					}
			}
			else if (aMandatory[iLoop][1] == "Select")
			{
				var iIdx = eval("objForm." + iLoop + iRecCnt + ".selectedIndex");
				if (iIdx > -1)
					strVal = eval("objForm." + iLoop + iRecCnt + "[" + iIdx + "].value");
				else
					strVal = "";
			}
			if (strVal == "")
			{
				if (aMandatory[iLoop][1] == "Text")
					alert("Please enter value for " + aMandatory[iLoop][0] + ".");

				if (aMandatory[iLoop][1] == "Radio" || aMandatory[iLoop][1] == "Select")
					alert("Please select " + aMandatory[iLoop][0] + ".");

				if (aMandatory[iLoop][2] != "")
					eval("objForm." + aMandatory[iLoop][2] + iRecCnt + ".focus()");
				else
				{
					if (aMandatory[iLoop][1] == "Radio")
						eval("objForm." + iLoop + iRecCnt + "[0].focus()");
					else
						eval("objForm." + iLoop + iRecCnt + ".focus()");
				}
			return false;
			}
		}
	}

	return true;
}


/**********************************************************************
 chkMandatoryFiled: perform mandatory check on the field
**********************************************************************/

function chkMandatoryField(objForm, objField, strCaption, strFieldType, strFocusOn)
{
	var strVal;
	strVal = "";
	if (strFieldType == "Text")
		strVal = objField.value;
	else if (strFieldType == "Radio")
	{
		var iLen = objField.length;
		for (var iEle = 0; iEle < iLen; iEle++)
			if (objField[iEle].checked)
			{
				strVal = objField[iEle].value;						
				break;					
			}
	}
	else if (strFieldType == "Select")
	{
		var iIdx = objField.selectedIndex;
		if (iIdx > -1)
			strVal = objField[iIdx].value;
		else
			strVal = "";
	}
	if (strVal == "")
	{
		if (strFieldType == "Text")
			alert("Please enter value for " + strCaption + ".");

		if (strFieldType == "Radio" || strFieldType == "Select")
			alert("Please select " + strCaption + ".");

		if (strFocusOn != "")
			eval("objForm." + strFocusOn + ".focus()");
		else
		{
			if (strFieldType == "Radio")
				objField[0].focus();
			else
				objField.focus();
		}
		return false;
	}

	return true;	
}


function checkIt(string) {
	var place = mc_detect.indexOf(string) + 1;
	mc_thestring = string;
	return place;
}
  
function evalSSN(objForm, objSSN)
{
	objSSN.value = eval("objForm." + objSSN.name + "1.value") + 
						eval("objForm." + objSSN.name + "2.value") + 
						eval("objForm." + objSSN.name + "3.value");
}

function chkSSN(objSSN, objFocus)
{
		var iSSN;
		objSSN.value = alltrim(objSSN.value);
		if (objSSN.value.length == 0)
			return true;		
		if (objSSN.value.length < 9)
		{
			alert("Please enter your 9-digit Social Security Number.");
			objFocus.focus();
			return false;
		}

		return true;
}

//function Checking date
function chkDate(month,day,year)
{
	    months = new Array("","January","February","March","April","May","June","July","August","September","October","November","December");
	    //Convert values to integer types
	    month = month * 1;
	    day = day * 1;
	    year = year * 1;
	    var month_string = months[month];
	  var leapYear = false;
	  if(year % 400 == 0) {
	    leapYear = true;
	  } else if(year % 100 == 0) {
	    leapYear = false;
	  } else if(year % 4 == 0) {
	    leapYear = true;
	  }
	  var days_in_feb = 28;
	  if(leapYear) {
	    days_in_feb = 29;
	  }
	  days_in_month = new Array(0,31,days_in_feb,31,30,31,30,31,31,30,31,30,31);

	  if (day > days_in_month[month]) {
	      alert(month_string + " does not have " + day + " days.");
	      return false;
	  }
	  return true;
}

//chjeck length
function checkLength(objFld, nLen)
{
	var strVal = new String(objFld.value);

	if (strVal.length > nLen) {
		alert("Maximum length allowed is " + nLen + " characters. " + 
			"Value has been truncated to the size of " + nLen + ".");
		objFld.value = strVal.substring(0, nLen);
		objFld.focus();
		return false;
	}

	return true;
}

//checking grange
function checkRange(objFld, fLower, fUpper, strType)
{
	var fVal = 0.0;

	if (isEmpty(objFld.value))
		return true;
	if (!isFloat(objFld.value))
		return false;

	fVal = parseFloat(objFld.value);

	if ((strType == "Inclusive") && (fVal >= fLower) && (fVal <= fUpper))
		return true;
	else if ((strType == "Exclusive") && (fVal > fLower) && (fVal < fUpper))
		return true;
	else if ((strType == "LeftInclusive") && (fVal >= fLower) && (fVal < fUpper))
		return true;
	else if ((strType == "RightInclusive") && (fVal > fLower) && (fVal <= fUpper))
		return true;

	alert("Value should be between " + fLower + " and " + fUpper);
	objFld.value = "";
	objFld.focus();

	return false;
}
