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");

    if (trim(f1.deeksha_first_name.value).length == 0)
    {
       alert("First Name cannot be empty.");
       f1.deeksha_first_name.focus();
       return false;
    }
    if (!validCharacters(f1.deeksha_first_name.value))
    {
        alert("First Name cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
        f1.deeksha_first_name.focus();
        return false;
    }


    if (trim(f1.deeksha_last_name.value).length == 0)
    {
       alert("Last Name cannot be empty.");
       f1.deeksha_last_name.focus();
       return false;
    }
    if (!validCharacters(f1.deeksha_last_name.value))
    {
        alert("Last Name cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
        f1.deeksha_last_name.focus();
        return false;
    }

    if (trim(f1.deeksha_address.value).length == 0)
    {
       alert("Address cannot be empty.");
       f1.deeksha_address.focus();
       return false;
    }

    if (f1.deeksha_country.selectedIndex < 0 || (!f1.deeksha_region))
    {
        alert("Country cannot be empty. Please select a country from the list.");
        f1.deeksha_country.focus();
        return false;
    }

    if (f1.deeksha_region.selectedIndex < 0 || (!f1.deeksha_city))
    {
        alert("State/Region cannot be empty. Please select a region from the list.");
        f1.deeksha_region.focus();
        return false;
    }

    if (f1.deeksha_city.selectedIndex < 0 && (f1.deeksha_useothercity.checked==false))
    {
        alert("City cannot be empty. Please select a city from the list");
        f1.deeksha_city.focus();
        return false;
    }

    var tcity = trim(f1.deeksha_othercity.value);

    if (f1.deeksha_useothercity.checked)
    {
        if (tcity.length == 0)
        {
            alert("City cannot be empty. Please enter a valid city");
            f1.deeksha_othercity.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.deeksha_othercity.focus();
            return false;
        }
    }

    if (!emailCheck(f1.deeksha_mailid.value))
    {return false;}

    if (trim(f1.deeksha_religion.value).length == 0)
    {
       alert("Religion cannot be empty. You have to specify Religion");
       f1.deeksha_religion.focus();
       return false;
    }
    if (!validCharacters(f1.deeksha_religion.value))
    {
        alert("Religion cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
        f1.deeksha_religion.focus();
        return false;
    }

    if (trim(f1.deeksha_age.value).length == 0)
    {
       alert("Invalid Age. Specify a valid age.");
       f1.deeksha_age.focus();
       return false;
    }
    if (!validNumbers(f1.deeksha_age.value))
    {
        alert("Invalid Age. Age should contain only numbers.");
        f1.deeksha_age.focus();
        return false;
    }


    if (trim(f1.deeksha_birth_day.value).length == 0)
    {
       alert("Invalid Birth Date. Specify a valid birth date");
       f1.deeksha_birth_day.focus();
       return false;
    }
    if (!validNumbers(f1.deeksha_birth_day.value))
    {
        alert("Invalid Birth Date. Day should contain only numbers.");
        f1.deeksha_birth_day.focus();
        return false;
    }


    if (trim(f1.deeksha_birth_year.value).length != 4)
    {
       alert("Invalid Birth Year. Year must be of 4 digit.");
       f1.deeksha_birth_year.focus();
       return false;
    }
    if (!validNumbers(f1.deeksha_birth_year.value))
    {
        alert("Invalid Birth Date. Year should contain only numbers.");
        f1.deeksha_birth_year.focus();
        return false;
    }


    if (f1.deeksha_old_deeksha_valid.checked)
    {
        if (trim(f1.deeksha_old_deeksha_from.value).length == 0)
        {
           alert("Deeksha From cannot be empty");
           f1.deeksha_old_deeksha_from.focus();
           return false;
        }
        if (!validCharacters(f1.deeksha_old_deeksha_from.value))
        {
            alert("Deeksha From cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
            f1.deeksha_old_deeksha_from.focus();
            return false;
        }


        if (trim(f1.deeksha_old_deeksha_type.value).length == 0)
        {
           alert("Deeksha Type cannot be empty");
           f1.deeksha_old_deeksha_type.focus();
           return false;
        }
        if (!validCharacters(f1.deeksha_old_deeksha_type.value))
        {
            alert("Deeksha Type cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
            f1.deeksha_old_deeksha_type.focus();
            return false;
        }


        if (trim(f1.deeksha_old_deeksha_date.value).length == 0)
        {
           alert("Deeksha Date cannot be empty");
           f1.deeksha_old_deeksha_date.focus();
           return false;
        }

        if (trim(f1.deeksha_old_deeksha_loc.value).length == 0)
        {
           alert("Deeksha Location cannot be empty");
           f1.deeksha_old_deeksha_loc.focus();
           return false;
        }
        if (!validCharacters(f1.deeksha_old_deeksha_loc.value))
        {
            alert("Deeksha Location cannot contain any special characters. Only albhabets [A-Z], numerals [0-9] and underscore[_] are allowed.");
            f1.deeksha_old_deeksha_loc.focus();
            return false;
        }
    }

    if (!f1.tagree.checked)
    {
        alert("You cannot proceed ahead without accepting the details provided by you.");
        return false;
    }

    return true;
}

function validate()
{
	if (checkrequired())
	{return true;}
	else
	{return false;}
}

