/*________________________________________________________________________________________

	form validation functions - 01/2009
	(c) Krisztian Gulyas, 01/2009
  ______________________________________________________________________________________*/

// _______________________________________________________________________________________

function checkForm (_form, _fields) {

	var _err = 0;
	for (i in _fields) {

		//alert(i);
		_f = _fields[i];											// init current field
		_label = document.getElementById(_f[0]);

		with (_form) {
			_err = checkString(eval(_f[0]+".value"), _f[1], _f[2], _f[3]);					// check the content 
			switch (_err) {
				case 0:
					eval(_f[0]+".style.borderColor = \"#e7eef8\"");
					eval(_f[0]+".style.borderWidth = \"1px\"");
					break;
				case 1:
					alert("A " + _label.innerHTML + " mezõ üres (kitöltése szükséges)!","FFFF");
					eval(_f[0]+".style.borderColor = \"#aa0000\"");
					eval(_f[0]+".style.borderWidth = \"2px\"");
					break;
				case 2:
					alert("Nem engedélyezett karakter a " + _label.innerHTML + " mezõben!");
					eval(_f[0]+".style.borderColor = \"#aa0000\"");
					eval(_f[0]+".style.borderWidth = \"2px\"");
					break;
				case 3:
					alert("A " + _label.innerHTML + " mezõ formátuma helytelen!");
					eval(_f[0]+".style.borderColor = \"#009900\"");
					eval(_f[0]+".style.borderWidth = \"1px\"");
					break;
				case 4:
					alert("Túl rövid adat a " + _label.innerHTML + " mezõben!");
					eval(_f[0]+".style.borderColor = \"#009900\"");
					eval(_f[0]+".style.borderWidth = \"1px\"");
					break;
			}
		}
		if (_err) return(_err);
	}
	return(0);	
}

// _______________________________________________________________________________________
/*
	evalString(_str, _type, _notnull, _min, _max) -- evaluate the given string as:
	set of letters, 
	
	_str 		- input string
	_type 		- string type: 
					- letter, only letters and space
					- number, only numbers
					- name, only letters, space, "-" and "." 
					- address, letters, numbers, , space, "-" and "." 
					- phone, numbers, space, "-" and "."
					- email,
					- text, letters, numbers, " .-?!/"
	_notnull	- 1 must not null, 0 otherwise
	_max		- max number of characters in string
	
	return:
	1 - empty string, 2 - illegal chars, 3 - not valid format, 4 - not enough char
*/
  
function checkString(_str, _type, _notnull, _min, _max) {
	var _err = 0;

	if (_str=="" && _notnull) return(1);																			// the _str string empty
	if (_max) _str = _str.slice(0, _max);
	if (_str.length<_min) return(4);
	switch (_type) {
		case "letter":
			var chNotEnabled = /[^ A-Za-zÁÉÍÓÖÕÚÜÛáéíóöõúüû]/; 
			if (chNotEnabled.test(_str)) _err = 2;
			break;
		case "number":
			var chNotEnabled = /[^0-9]/; 
			if (chNotEnabled.test(_str)) _err = 2;	
			break;
		case "name":	
			var illegalChars = /[^ A-Za-zÁÉÍÓÖÕÚÜÛáéíóöõúüû\.\-]/; 
			if (illegalChars.test(_str)) _err = 2;	
			break;
		case "company":	
			var illegalChars = /[^ A-Za-zÁÉÍÓÖÕÚÜÛáéíóöõúüû0-9\.\-\&]/; 
			if (illegalChars.test(_str)) _err = 2;	
			break;
		case "postcode":	
			var illegalChars = /[^ A-Za-z\-0-9]/; 
			if (illegalChars.test(_str)) _err = 2;	
			break;
		case "address":	
			var illegalChars = /[^ A-Za-zÁÉÍÓÖÕÚÜÛáéíóöõúüû\.\-0-9\,]/; 
			if (illegalChars.test(_str)) _err = 2;	
			break;
		case "phone":
			var illegalChars = /[^\+0-9\-\/ ]/; 
			if (illegalChars.test(_str)) _err = 2;	
			break;
		case "email":
			var illegalChars =  /[^A-Za-zÁÉÍÓÖÕÚÜÛáéíóöõúüû \.\-0-9\@]/; 
			if (illegalChars.test(_str)) _err = 2;	
			var emailFilter = /^[0-9a-z\.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$/; 
			if (!emailFilter.test(_str)) _err = 3;
			break;	
		case "text":	
			var illegalChars = /[^A-Za-zÁÉÍÓÕÚÜáéiõóûú0-9\.\!\?\@\- ]/; 
			if (illegalChars.test(_str)) _err = 2;	
			break;
		case "all":
			_err = 0;
	}
	return (_err);
}

