var RecaptchaOptions = {theme: 'clean'};

function validIdNumber(id)
{
	var regexp =/^(\d){9}$/;
	var valid = true;
	
	if (regexp.test(id))
	{
		var sum=0;
		for (i=0;i<9;i++)
		{
			if ((i % 2) == 0) sum=sum+(id.charCodeAt(i)-48);
			else 
			{
				temp=id.charCodeAt(i)*2-96;
				if (temp > 9)
				{
					temp = (temp%10) + (temp/10-temp%10/10);
				}
				sum=sum+temp;
			}
		}
		if ((sum % 10) !=0 )
			{ valid = false; }
		else
			valid = true;
    }
	else
		valid = false;
	
	if (valid)
	{
		return true;
	}
	else
	{
		alert("מספר ת.ז. שגוי");
		return false;
	}
}

//======================= phone number validation function ====================//
function validPhonePrefix(elem, helperMsg)
{
	if (elem.selectedIndex == 0)	// testing that the elem.value (English name) fits in the pattern defined by regexp
	{
		alert(helperMsg);
		elem.focus();
		return false;
	}
	else
	{ return true; }
}

function validPhoneNumber(elem, helperMsg)
{
	var regexp = /^(\d){7}$/;
	
	if (regexp.test(elem.value))	// testing that the elem.value (English name) fits in the pattern defined by regexp
	{ return true; }
	else
	{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}
//============== end of phone number validation function ====================//

//===========================================================================//
//===========================================================================//

//================================ email validation =========================//
function validEmailUsername(elem, helperMsg)
{
	var regexp = /^[a-zA-Z0-9]+([._-][a-zA-Z0-9]+)*$/;
	
	if (regexp.test(elem.value))	// testing that the elem.value (English name) fits in the pattern defined by regexp
	{ return true; }
	else
	{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function validEmailDomain(elem, helperMsg)
{
	var regexp = /^([a-z][a-z0-9\-]+(\.|\-*\.))+[a-z]{2,6}$/;
	
	if (regexp.test(elem.value))	// testing that the elem.value (English name) fits in the pattern defined by regexp
	{ return true; }
	else
	{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}
//================================ end of email validation =====================//

//===========================================================================//
//===========================================================================//

//========================= meeting datails validation =========================//
function validTimeSlot(elem, helperMsg)
{
	if (elem.selectedIndex == 0)	// testing that the elem.value (English name) fits in the pattern defined by regexp
	{
		alert(helperMsg);
		elem.focus();
		return false;
	}
	else
	{ return true; }
}

function validSubject(elem, helperMsg)
{
	if (elem.selectedIndex == 0)	// testing that the elem.value (English name) fits in the pattern defined by regexp
	{
		alert(helperMsg);
		elem.focus();
		return false;
	}
	else
	{ return true; }
}
//=================== end of meeting datails validation =========================//

function meetingDetailsValidation()
{
	//============= connecting objects in the javascript with the HTML form ===============//

	// phone prefix and number details
	var phone_prefix_obj = document.getElementById('phone_prefix');
	var phone_number_obj = document.getElementById('phone_number');
	
	// email [username and domain] details 
	var email_username_obj = document.getElementById('email_user');
	var email_domain_obj = document.getElementById('email_domain');
	
	// meeting date_time and subject details
	var meeting_timestamp_obj = document.getElementById('meeting_timestamp');
	var meeting_subject_obj = document.getElementById('meeting_subject');
	
	//======================================= validating objects value ====================//
			
	// boolean variables for phone number validity
	var valid_phone_prefix = validPhonePrefix(phone_prefix_obj, "Please choose your phone prefix");
	if (!valid_phone_prefix) {return false;}
	var valid_phone_number = validPhoneNumber(phone_number_obj, "Exact 7 Digits Please");
	if (!valid_phone_number) {return false;}
	
	// boolean variables for email validity
	var valid_email_username = validEmailUsername(email_username_obj, "email username not valid");
	if (!valid_email_username) {return false;}
	var valid_email_domain = validEmailDomain(email_domain_obj, "email domain not valid");
	if (!valid_email_domain) {return false;}
	
	// boolean variables for meeting details validity
	var valid_meeting_timestamp = validTimeSlot(meeting_timestamp_obj, "נא בחרו מועד פגישה");
	if (!valid_meeting_timestamp) {return false;}
	var valid_subject = validSubject(meeting_subject_obj, "נא בחרו נושא");
	if (!valid_subject) {return false;}
	
	
	
	// return true if the whole form is valid  
	return ((valid_eng_fname) && (valid_eng_fname) && 
			(valid_phone_prefix) && (valid_phone_number) && 
			(valid_email_username) && (valid_email_domain) &&
			(valid_meeting_timestamp) && (valid_subject));
}

function checkEntranceForm()
{
	var id_obj = document.getElementById('id_num');
	return validIdNumber(id_obj.value);
}

function checkpassRecoveryForm()
{
	var id_obj = document.getElementById('id_num');
	return validIdNumber(id_obj.value);
}

// less duplicated code can achived if making function matchRegExp_andResponed(elem, helperMsg, regexp) 