//ustates = new Array("ALABAMA (AL)","ALASKA (AK)","AMERICAN SAMOA (AS)","ARIZONA (AZ)","ARKANSAS (AR)","CALIFORNIA (CA)","COLORADO (CO)","CONNECTICUT (CT)","DELAWARE (DE)","DISTRICT OF COLUMBIA (DC)","FEDERATED STATES OF MICRONESIA FM)","FLORIDA (FL)","GEORGIA (GA)","GUAM (GU)","HAWAII (HI)","IDAHO (ID)","ILLINOIS (IL)","INDIANA (IN)","IOWA (IA)","KANSAS (KS)","KENTUCKY (KY)","LOUISIANA (LA)","MAINE (ME)","MARSHALL ISLANDS (MH)","MARYLAND (MD)","MASSACHUSETTS (MA)","MICHIGAN (MI)","MINNESOTA (MN)","MISSISSIPPI (MS)","MISSOURI (MO)","MONTANA (MT)","NEBRASKA (NE)","NEVADA (NV)","NEW HAMPSHIRE (NH)","NEW JERSEY (NJ)","NEW MEXICO (NM)","NEW YORK (NY)","NORTH CAROLINA (NC)","NORTH DAKOTA (ND)","NORTHERN MARIANA ISLANDS (MP)","OHIO (OH)","OKLAHOMA (OK)","OREGON (OR)","PALAU (PW)","PENNSYLVANIA (PA)","PUERTO RICO (PR)","RHODE ISLAND (RI)","SOUTH CAROLINA (SC)","SOUTH DAKOTA (SD)","TENNESSEE (TN)","TEXAS (TX)","UTAH (UT)","VERMONT (VT)","VIRGIN ISLANDS (VI)","VIRGINIA (VA)","WASHINGTON (WA)","WEST VIRGINIA (WV)","WISCONSIN (WI)","WYOMING (WY)");
//istates = new Array("Andhra Pradesh","Arunachal Pradesh","Assam","Bihar","Chhattisgarh","Delhi","Goa","Gujarat","Haryana","Himachal","Pradesh","Jammu and Kashmir","Jharkhand","Karnataka","Kerala","Madhya Pradesh","Maharashtra","Manipur","Meghalaya","Mizoram","Nagaland","Orissa","Punjab","Rajasthan","Sikkim","Tamil Nadu","Tripura","Uttar Pradesh","Uttarakhand","West Bengal","Andaman and Nicobar Islands","Chandigarh","Dadra and Nagar Haveli","Daman and Diu","Lakshadweep","National Capital Territory of Delhi","Pondicherry");
function validCharacters(checkStr)
{
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
	var allValid = true;
	var validGroups = true;
	for (i = 0;  i < checkStr.length;  i++)
	{
	    ch = checkStr.charAt(i);
	    for (j = 0;  j < checkOK.length;  j++)
		{
	       if (ch == checkOK.charAt(j))
           	break;
		}

	    if (j == checkOK.length)
    	{
	        allValid = false;
      		break;
	    }
  	}

	return allValid;
}

function validNumbers(checkStr)
{
  var checkOK = "0123456789-.";
  var allValid = true;
  var validGroups = true;
  var decPoints = 0;
  var allNum = "";

  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
    {
      if (ch == checkOK.charAt(j))
      {break;}
    }

    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }

    if (ch == ".")
    {
      allNum += ".";
      decPoints++;
    }
    else
    {allNum += ch;}
  }

  if (!allValid)
  {return (false);}

  if (decPoints > 1 || !validGroups)
  {
    return (false);
  }

  return (true);
}


function trim(str, chars)
{return ltrim(rtrim(str, chars), chars);}

function ltrim(str, chars)
{
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars)
{
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function checkrequired()
{
    var pass=true;
    var pwd = "";
    var cpwd = "";
    var f1 = document.getElementById("f1");

    for (i=0; i < f1.length; i++)
    {
        var tempobj = f1.elements[i];

    	if (tempobj.name.substring(0,8)=="required")
	    {
      	    if (((tempobj.type=="text"||tempobj.type=="textarea") && trim(tempobj.value).length == 0))
			{
		        pass=false;
		        break;
		    }

      	    if ((tempobj.type=="password") && (tempobj.name == "requiredpwd"))
		    {pwd = tempobj.value;}

      	    if ((tempobj.type=="password") && (tempobj.name == "requiredcpwd"))
		    {cpwd = tempobj.value;}
   	    }
    }

    if (!pass)
    {
        alert("Fields marked with (*) are required and cannot be left emtpy.");
        return false;
    }
    else
    {
        var sst = emailCheck(document.f1.requiredmail.value);

        if (!sst)
        {return false;}

        if (!validCharacters(f1.requiredfname.value))
        {
            alert("[First Name] cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
            f1.requiredfname.focus();
            return false;
        }

        if (!validCharacters(f1.requiredlname.value))
        {
            alert("[Last Name] cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
            f1.requiredlname.focus();
            return false;
        }

        lcnt = f1.requiredlogin.value;

    	if (lcnt.length < 6)
    	{
     	    alert("[Login ID] should be of minimum 6 characters...");
	    	f1.requiredlogin.focus();
	    	return false;
	    }

        if (!validCharacters(f1.requiredlogin.value))
        {
            alert("[Login ID] cannot contain any special charcters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
            f1.requiredlogin.focus();
            return false;
        }

	    if (f1.requiredpwd.value == "" || f1.requiredcpwd.value == "")
	    {
	        alert("Passwords do not match.");
	        return false;
	    }

	    if (f1.requiredpwd.value.length < 6)
	    {
        	alert("Password should be of minimum 6 characters...");
		    f1.requiredlogin.focus();
		    return false;
	    }

	    if (f1.requiredpwd.value != f1.requiredcpwd.value)
	    {
   	 	    alert("Passwords do not match.");
   	 	    return false;
	    }

        if (f1.requiredcountry.selectedIndex < 0 || (!f1.requiredregion))
        {
            alert("Country cannot be empty. Please select a country from the list.");
            f1.requiredcountry.focus();
            return false;
        }

        if (f1.requiredregion.selectedIndex < 0 || (!f1.requiredcity))
        {
            alert("State/Region cannot be empty. Please select a region from the list.");
            f1.requiredregion.focus();
            return false;
        }

        if (f1.requiredcity.selectedIndex < 0 && (f1.tuseothercity.checked==false))
        {
            alert("City cannot be empty. Please select a city from the list");
            f1.requiredcity.focus();
            return false;
        }

        var tcity = trim(f1.tothercity.value);

        if (f1.tuseothercity.checked)
        {
            if (tcity.length == 0)
            {
                alert("City cannot be empty. Please enter a valid city");
                f1.tothercity.focus();
                return false;
            }
            else if (!validCharacters(tcity))
            {
                alert("City name cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
                f1.tothercity.focus();
                return false;
            }
        }


        if (!f1.tagree.checked)
        {
            alert("You cannot proceed ahead without agreeing to our terms of use.");
		    return false;
        }

  	    return true;
    }
}

function validate()
{
	if (checkrequired())
	{return true;}
	else
	{return false;}
}


function checkrequired2()
{
    var pass=true;
    var f1 = document.getElementById("f1");

    for (i=0; i < f1.length; i++)
    {
        var tempobj = f1.elements[i];

    	if (tempobj.name.substring(0,8)=="required")
	    {
      	    if (((tempobj.type=="text"||tempobj.type=="textarea") && trim(tempobj.value).length == 0))
			{
		        pass=false;
		        break;
		    }
   	    }
    }

    if (!pass)
    {
        alert("Fields marked with (*) are required and cannot be left emtpy.");
        return false;
    }
    else
    {
        var sst = emailCheck(document.f1.requiredmail.value);

        if (!sst)
        {return false;}

        if (!validCharacters(f1.requiredfname.value))
        {
            alert("[First Name] cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
            f1.requiredfname.focus();
            return false;
        }

        if (!validCharacters(f1.requiredlname.value))
        {
            alert("[Last Name] cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
            f1.requiredlname.focus();
            return false;
        }

        if (f1.requiredcountry.selectedIndex < 0 || (!f1.requiredregion))
        {
            alert("Country cannot be empty. Please select a country from the list.");
            f1.requiredcountry.focus();
            return false;
        }

        if (f1.requiredregion.selectedIndex < 0 || (!f1.requiredcity))
        {
            alert("State/Region cannot be empty. Please select a region from the list.");
            f1.requiredregion.focus();
            return false;
        }

        if (f1.requiredcity.selectedIndex < 0 && (f1.tuseothercity.checked==false))
        {
            alert("City cannot be empty. Please select a city from the list");
            f1.requiredcity.focus();
            return false;
        }

        var tcity = trim(f1.tothercity.value);

        if (f1.tuseothercity.checked)
        {
            if (tcity.length == 0)
            {
                alert("City cannot be empty. Please enter a valid city");
                f1.tothercity.focus();
                return false;
            }
            else if (!validCharacters(tcity))
            {
                alert("City name cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
                f1.tothercity.focus();
                return false;
            }
        }

  	    return true;
    }
}

function validate2()
{
	if (checkrequired2())
	{return true;}
	else
	{return false;}
}

