function validEmail(fld)
{ // simple email check
  if(!fld.length) return true; // blank fields are the domain of requireValue 
  var emailfmt= /^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,8}$/;
  if(!emailfmt.test(fld))
  	{return false;}
  return true;
}
function isDigitCheck(character)
{
var digit_characters = "01234567890"
	if (digit_characters.indexOf(character) == -1)
		{
		return false
		}
	return true
}
function validPhone(fld)
{ // tenacious phone # correction 
var phoneNumberCheck = ""

  if(!fld.length) return true; // blank fields are the domain of requireValue

for(var counter=0; counter<fld.length;counter++)
		{
		current_char = fld.charAt(counter)
		if(isDigitCheck(current_char))
			{
			phoneNumberCheck = phoneNumberCheck+fld.charAt(counter)
			}
		}
  if(phoneNumberCheck.length < 7 || phoneNumberCheck.length > 12)
	{
	 return false;
	}
return true;
}

function inputExists(inForm,input_name)
{
	var input_path = 'document.' + inForm.name + '.' + input_name;
	try
	{
		var z = eval(input_path + '.type')		
		return true;
	}
	catch(e)
	{
		return false;
	
	}
}
function isNumeric(checkVal)
{
	var checkValLen = checkVal.length;	
	if(checkValLen == 0)
	{
		return true;
	}
	
	var isNumber = true;
	
	for(var i = 0 ; i <	checkValLen ; i++)
	{
		if(checkVal.charAt(i)<'0' || checkVal.charAt(i)>'9')
		{
			isNumber = false;
		}	
	}
	
	return isNumber;
}
function isEmpty(val)
{
	var i;	
	for(i = 0; i< val.length ; i++)
	{
		if(val.charAt(i) != ' ' && val.charAt(i) != '	')
			return false;
	}	
	return true;
}


function isValidIdNumber(IdNumber)
{
	validID = true;
	if(IdNumber.length<7)
		return false;
	else if(IdNumber.length>13)
		return false;
	else if (!validText(IdNumber,false,false,true))
		return false;
	
	var tmpMult = 1;
	var tmpTotal = 0;
	var tmpNum;
	
	for(i = IdNumber.length - 1 ; i >= 0 ; i--)
	{
		tmpDigit = parseInt(IdNumber.charAt(i));
		tmpNum = tmpDigit * tmpMult;
		if(tmpNum < 10)
		{
			tmpTotal = tmpTotal + tmpNum;
		}
		else
		{
			tmpTotal = tmpTotal + ((tmpNum%10)+1);
		}
		
		if(tmpMult == 1)
			tmpMult = 2;
		else
			tmpMult = 1;
	}
	
	if(tmpTotal % 10 != 0)
		return false;
		
	return true;
	
}


function validText(word,allowHeb,allowEng,allowNums)
{	
	var wordLen = word.length;		
	var validWord = true;
	var validChar;
	
	for(i=0; i < wordLen; i++)
	{
		tmpChar = word.charAt(i);
		validChar = false;		
		if(allowHeb == true)
		{
			if(tmpChar <= 'ú' &&  tmpChar >= 'à')
			{
				validChar = true;
			}
		}
				
		if(allowEng == true)
		{
			if((tmpChar <= 'Z' &&  tmpChar >= 'A') || (tmpChar <= 'z' &&  tmpChar >= 'a'))
			{
				validChar = true;
			}
		}
				
		if(allowNums == true)
		{
			if((tmpChar <= '9' &&  tmpChar >= '0'))
			{
				validChar = true;
			}
		}
		
		if(validChar == false)
		{
			validWord = false;
		}	
	}

	return validWord;
}


//function for returning how many days there are in a month including leap years
function DaysInMonth(WhichMonth, WhichYear)
{
  var DaysInMonth = 31;
  if (WhichMonth == "4" || WhichMonth == "6" || WhichMonth == "9" || WhichMonth == "11") DaysInMonth = 30;
  if (WhichMonth == "2" && (WhichYear/4) != Math.floor(WhichYear/4))	DaysInMonth = 28;
  if (WhichMonth == "2" && (WhichYear/4) == Math.floor(WhichYear/4))	DaysInMonth = 29;
  return DaysInMonth;
}

//function to change the available days in a months
function ChangeOptionDays(Which)
{
  DaysObject = eval(Which + "Day");
  MonthObject = eval(Which + "Month");
  YearObject = eval(Which + "Year");

  Month = MonthObject[MonthObject.selectedIndex].text;
  Year = YearObject[YearObject.selectedIndex].text;

  DaysForThisSelection = DaysInMonth(Month, Year);
  CurrentDaysInSelection = DaysObject.length;
  if (CurrentDaysInSelection > DaysForThisSelection)
  {
    for (i=0; i<(CurrentDaysInSelection-DaysForThisSelection); i++)
    {
	  DaysObject.options[DaysObject.options.length - 1] = null
    }
  }
  if (DaysForThisSelection > CurrentDaysInSelection)
  {
    for (i=0; i<(DaysForThisSelection-CurrentDaysInSelection); i++)
    {
      NewOption = new Option(DaysObject.options.length + 1);
      DaysObject.add(NewOption);
    }
  }
    if (DaysObject.selectedIndex < 0) DaysObject.selectedIndex == 0;
}


//function to write option years plus x
function WriteYearOptions(YearsBack,YearsAhead,YearsToShow)
{
  Now = new Date();
  NowDay = Now.getDate();
  NowMonth = Now.getMonth();
  NowYear = Now.getYear();
  if (NowYear < 2000) NowYear += 1900; //for Netscape

  line = "";
  for (i=YearsAhead-YearsBack; i<YearsAhead; i++)
  {

  	if(i == parseInt(YearsToShow)-NowYear)
	{
  		line += "<Option value='" + parseInt(NowYear+i) +"' selected>";
   	}
	else
	{
		line += "<Option value='" + parseInt(NowYear+i) + "'>";
	}
	tmpyear = NowYear + i - 1900;
	if(tmpyear >= 100)
		tmpyear -= 100;

	if(tmpyear < 10)
		line = line + '0' + tmpyear;
	else
		line += tmpyear;
	line += "</Option>";
  }
  return line;
}

