//Global variables, identifying the browser type
var isIE = false;
var isFF = false;
var isSF = false;
var isOP = false;

var ua = navigator.userAgent.toLowerCase(); 
if (window.opera) {
	isOP = true;
} else if (document.all && !window.opera) {
	isIE = true;
} else if ( ua.indexOf( "safari" ) != -1 ) {
	isSF = true;
} else if (document.getElementById)
	isFF = true;


//Checks field with identifier 'id' for empty. If empty returns error_msg string, else empty string
function check_for_empty (id, error_msg, legal_value)
{
	legal_value = typeof(legal_value) != 'undefined' ? legal_value : '';
	if (typeof(id) == 'string')
		form_field = document.getElementById(id);
	else
		form_field = id;

	if (form_field.value.length == 0)
		return error_msg;
	else if (form_field.value == legal_value)
		return error_msg;
	else
		return '';
}

////Checks field with identifier 'id' for valid e-mail. If it's not a valid e-mail, returns error_msg, else empty string
function check_for_email(id, error_msg, is_empty)
{
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	form_field = document.getElementById(id);
	if (filter.test(form_field.value) || (is_empty && form_field.value.length == 0))
	{
		return '';
	}
	else
	{
		return error_msg ;
	}
}

function check_for_int(f_array, l_array, error_msg, is_empty)
{
	var field, filter,fl = 0;
	for (i = 0; i < f_array.length; i++ )
	{
		filter = new RegExp('^\\d{' + l_array[i] + '}$');
		field = document.getElementById(f_array[i]);
		if (!filter.test(field.value))
		{
			if (is_empty && (field.value.length == 0))
			{
				fl++;
				continue;
			}
			return error_msg;
		}
	}
	if ((fl == 0) || (fl == f_array.length))
	{
		return '';
	}
	return error_msg;
}

function check_for_one_int(id, error_msg, is_empty, max_length)
{
	max_length = typeof(max_length) != 'undefined' ? max_length : 10;
	if (typeof(id) == 'string')
		form_field = document.getElementById(id);
	else
		form_field = id;
	filter = new RegExp('^-?\\d{1,' + max_length + '}$');
	if (filter.test(form_field.value) || (is_empty && form_field.value.length == 0))
	{
		return '';
	}
	else
	{
		return error_msg;
	}
}

function check_for_state (id, error_msg)
{
	if (typeof(id) == 'string')
		form_field = document.getElementById(id);
	else
		form_field = id;
	if ((form_field.selectedIndex == 0) || (form_field.selectedIndex == -1))
	{
		return error_msg
	}
	return '';
}

function check_for_phone(id, error_msg, is_empty)
{
	var filter=/^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$/i;
	form_field = document.getElementById(id);
	if (filter.test(form_field.value) || (is_empty && form_field.value.length == 0))
	{
		return '';
	}
	else
	{
		return error_msg ;
	}
}

//Function adds event that denies entering non digit sysbols to the fields, whith name contains 'phone', 'fax', 'zip'
function add_digit_cheker()
{
	var pattern = /.*(phone|fax|zip).*/i;
	var form, f = document.forms.length;
	for( var i = 0; i < f; i++)
	{
		form = document.forms[i];
		for (j = 0; j < form.elements.length; j++ )
		{
			if (pattern.test(form[j].name))
			{
				addEvent(form[j], 'keypress', check_for_digit_func);
			}
		}
	}
}

//Handles event e, checks for pressed digit symbol.
var check_for_digit_func = function (e)
{
	if (isIE)
	{
		if (((e.keyCode >=48) && (e.keyCode<=57)) || (e.keyCode<=31))
			e.returnValue = true;
		else
			e.returnValue = false;
	}
	else if (isFF)
	{
		if (((e.charCode >=48) && (e.charCode<=57)) || (e.charCode<=31))
			return true;
		else
			return false;
	}
}

