﻿/* form validator for form1 */

function emailValid(str)
{
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // invalid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // valid
	if (!reg1.test(str) && reg2.test(str) && str != "")
		return true;
	return false;
}

/* full name must include two words and no non-word chars */
function fullNameValid(str)
{
	var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZאבגדהוזחטיכךלמםנןסעפףצץקרשת-'\" ";
	var temp;
	if(str.indexOf(" ") < 1 || str.indexOf(" ") > str.length-3 || str.length < 5)
		return false;
		
	for (var i=0; i < str.length; i++)
	{
		temp = "" + str.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {	return false; }
	}
	return true
}

/* full name must include one words and no non-word chars */
function nameValid(str)
{
	var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZאבגדהוזחטיכךלמםנןסעפףצץקרשת-'\" ";
	var temp;
	if(str.indexOf(" ") > str.length-3 || str.length < 2)
		return false;
		
	for (var i=0; i < str.length; i++)
	{
		temp = "" + str.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {	return false; }
	}
	return true
}

/* anytext: more than one letter and without unwanted chars */
function simpleValid(str)
{
	var valid = "!?0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZאבגדהוזחטיכךלמםנןסעפףצץקרשת-'\" ";
	var temp;
	if(str.length < 2)
		return false;
		
	for (var i=0; i < str.length; i++)
	{
		temp = "" + str.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {	return false; }
	}
	return true
}


/* zip (5 digit) */
function zipValid(str)
{
	var valid = "0123456789";
	if(str.length!=5)
		return false;
		
	for (var i=0; i < str.length; i++)
	{
		temp = "" + str.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {	return false; }
	}
	return true
}

/* numeric */
function numericValid(str)
{
	var valid = "0123456789";
	for (var i=0; i < str.length; i++)
	{
		temp = "" + str.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {	return false; }
	}
	return true
}

/* Israeli Phone numbers - partial only! */
function phoneValid(str)
{
	var valid = "0123456789- ";
	var nums = "0123456789";
	var temp;
	var numerals=0;
	if(str.indexOf("0") != 0 || str.length > 14 || str.length < 9)
		return false;
	for (var i=0; i < str.length; i++)
	{
		temp = "" + str.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {	return false; }
		if (nums.indexOf(temp) !="-1") numerals++;
	}
	if(numerals < 9 || numerals > 10)
		return false;
	return true
}

function minLength(str, len)
{
	if(str.length < len)
		return false;
	return true;
}

function exactLength(str, len)
{
	if(str.length == len)
		return true;
	return false;
}

function validDate(year, month, day)
{
	var dateobj = new Date(parseInt(year), (parseInt(month)-1), parseInt(day))
	if ((dateobj.getMonth()+1!=month)||(dateobj.getDate()!=day)||(dateobj.getFullYear()!=year))
		return false;
	return true;

}

/* trim string */
function trim(s) {
  s = s.replace( /^\s+/g, "" );//  leading
  return s.replace( /\s+$/g, "" );//  trailing
}

