function ChkForm(myform) {
	var mezo = new String();
	var kitoltes = true;
	var kitoltes_count = new Array();
	var szam=0;

	// vegignezi az elemeket a formban es ha valamelyik _ -el kezdodik annak ellenorzi a kitoltottseget
	i=0;
	while(myform.elements[i] != null) {
		if (myform.elements[i].name.indexOf("_") == 0) {
			if (!_CF_hasValue(myform.elements[i])) {
				mezo = mezo +"\n"+ "[-] " + myform.elements[i].title;
				kitoltes_count[szam]=i;
				szam++;
				kitoltes=false;
				myform.elements[i].style.backgroundColor="lightcoral";
			} else {
				if (myform.elements[i].style.backgroundColor !="#eeeeee")
					myform.elements[i].style.backgroundColor="#eeeeee";
			}
		}
		i++;
	}

	if (!kitoltes) {
		alert("[ The following fields must be filled ]\n"+mezo);
		myform.elements[kitoltes_count[0]].focus();
		return false;
	}

	// vegignezi az elemeket a formban es a speciaisakat megvizsgalja
	if (myform._email != null) {
		if (!_CF_checkemail(myform._email.value)) {
			alert("[ ::: Invalid e-mail address ::: ]");
			myform._email.focus();
			myform._email.blur();
			myform._email.select();
			return false;
		}
	}
	// ide johet a tobbi specialis elem

	return true;
}

function _CF_checkHUdate(obj_value)
{
	// HU only! 2002/12/31 csak alapellenorzes se szokoev se semmi
	if (obj_value.length == 0)
		return true;
		
	if (obj_value.length < 8)
		return false;

	var pos = 5;
	// check year
	if (!_CF_checknumber(obj_value.substring(0,4)))
		return false;
	else if (!_CF_numberrange((eval(obj_value.substring(0,4))), 1900, 2999))
		return false;

	// check delimiter
	if (obj_value.charAt(4) != "-" && obj_value.charAt(4) != "/")
		return false

	// check month
	if (!_CF_checknumber(obj_value.substring(5,7))) {
		if (!_CF_checknumber(obj_value.substring(5,6)))
			return false;
		else if (!_CF_numberrange((eval(obj_value.substring(5,6))), 1, 9))
			return false
	} else if (!_CF_numberrange((eval(obj_value.substring(5,7))), 1, 12))
		return false;

	pos = obj_value.indexOf("/",pos);	
	// check delimiter
	if (obj_value.charAt(pos) != "-" && obj_value.charAt(pos) != "/")
		return false

	// check day
	pos++;
	if (!_CF_checknumber(obj_value.substring(pos,pos+2))) {
		if (!_CF_checknumber(obj_value.substring(pos,pos+1)))
			return false;
		else	if (!_CF_numberrange((eval(obj_value.substring(pos,pos+1))), 1, 9))		
			return false;
	} else if (!_CF_numberrange((eval(obj_value.substring(pos,pos+2))), 1, 31))
		return false;

	// all ok
	return true
}

function _CF_checkemail(obj_value)
{
	if (obj_value.length == 0)
		return true;

	if ( (obj_value.indexOf("@") == -1) || (obj_value.indexOf(".") == -1))
		return false;

	return true;
}

function _CF_onError(form_object, input_object, object_value, error_message)
{
	alert(error_message);
	return false;	
}

function _CF_hasValue(obj)
{
	if (obj.type == "text" || obj.type == "password" || obj.type == "textarea") {
		if (obj.value.length == 0) 
			return false;
		else 
			return true;
	} else if (obj.type == "select") {
		for (i=0; i < obj.length; i++) {
			if (obj.options[i].selected)
				return true;
		}
		return false;
	} else if (obj.type == "single_value_radio" || obj.type == "single_value_checkbox") {
		if (obj.checked)
			return true;
		else
       		return false;	
	} else if (obj.type == "radio" || obj.type == "checkbox") {
		for (ii=0; ii < obj.length; ii++) {
			if (obj[ii].checked)
				return true;
		}
       	return false;	
	}
}

function _CF_checkinteger(object_value)
{
	//Returns true if value is a number or is NULL
	//otherwise returns false	

	if (object_value.length == 0)
		return true;

	//Returns true if value is an integer defined as
	//   having an optional leading + or -.
	//   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;

	//The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
	//Was it a decimal?
	if (check_char < 1)
		return _CF_checknumber(object_value);
	else
		return false;
}

function _CF_numberrange(object_value, min_value, max_value)
{
	// check minimum
	if (min_value != null) {
		if (object_value < min_value)
			return false;
	}

 	// check maximum
	if (max_value != null) {
		if (object_value > max_value)
			return false;
	}
	
	 //All tests passed, so...
	return true;
}

function _CF_checknumber(object_value)
{
	//Returns true if value is a number or is NULL
	//otherwise returns false	

	if (object_value.length == 0)
		 return true;

	//Returns true if value is a number defined as
	//   having an optional leading + or -.
	//   having at most 1 decimal point.
	//   otherwise containing only the characters 0-9.
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

	//The first character can be + - .  blank or a digit.
	check_char = start_format.indexOf(object_value.charAt(0))
	//Was it a decimal?
	if (check_char == 1)
		decimal = true;
	else if (check_char < 1)
		return false;

	//Remaining characters can be only . or a digit, but only one decimal.
	for (var i = 1; i < object_value.length; i++) {
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1) {
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		} else if (check_char == 0) {
			if (decimal || digits)	
				trailing_blank = true;
		// ignore leading blanks
		} else if (trailing_blank)
			return false;
		else
			digits = true;
	}	
	//All tests passed, so...
	return true
}

function _CF_checkrange(object_value, min_value, max_value)
{
	//if value is in range then return true else return false
	if (object_value.length == 0)
		return true;

	if (!_CF_checknumber(object_value)) {
		return false;
	} else {
		return (_CF_numberrange((eval(object_value)), min_value, max_value));
	}

	//All tests passed, so...
	return true;
}

function _CF_checkUSphone(object_value)
{
	// US only! 555-555-5555
	if (object_value.length == 0)
		return true;
		
	if (object_value.length != 12)
		return false;

	// check if first 3 characters represent a valid area code
	if (!_CF_checknumber(object_value.substring(0,3)))
		return false;
	else if (!_CF_numberrange((eval(object_value.substring(0,3))), 100, 1000))
		return false;

	// check if area code/exchange separator is either a '-' or ' '
	if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ")
		return false

	// check if  characters 5 - 7 represent a valid exchange
	if (!_CF_checknumber(object_value.substring(4,7)))
		return false;
	else	if (!_CF_numberrange((eval(object_value.substring(4,7))), 100, 1000))
		return false;
	
	// check if exchange/number separator is either a'-' or ' '
	if (object_value.charAt(7) != "-" && object_value.charAt(7) != " ")
		return false;

	// make sure last for digits are a valid integer
	if (object_value.charAt(8) == "-" || object_value.charAt(8) == "+")
		return false;
	else	{
		return (_CF_checkinteger(object_value.substring(8,12)));
	}
}

function _CF_checkUSzip(object_value)
{
	// US only
	if (object_value.length == 0)
		return true;
		
	if (object_value.length != 5 && object_value.length != 10)
		return false;

	// make sure first 5 digits are a valid integer
	if (object_value.charAt(0) == "-" || object_value.charAt(0) == "+")
		return false;

	if (!_CF_checkinteger(object_value.substring(0,5)))
		return false;

	if (object_value.length == 5)
		return true;
	
	// make sure

	// check if separator is either a'-' or ' '
	if (object_value.charAt(5) != "-" && object_value.charAt(5) != " ")
		return false;

	// check if last 4 digits are a valid integer
	if (object_value.charAt(6) == "-" || object_value.charAt(6) == "+")
		return false;

	return (_CF_checkinteger(object_value.substring(6,10)));
}

function _CF_checkHUzip(object_value)
{
	// HUN only
	if (object_value.length == 0)
		return true;
		
	if (object_value.length != 4)
		return false;
	return parseInt(object_value);
}

function doSubmit(myform) {
	if(ChkForm(myform)) {
		return true;
	} else {
		return false;
	}
}

