var Bright = 'hlight';
var Default= '';

function hl(el, style){el.className = style;}
function notEmpty(elem, err) 
{
	var str = elem.value;
	if(str == null || str.length == 0) 	{hl(elem, Bright); errorString+=err; return false;}
	else	{hl(elem,Default); return true;}
}

function validEmail(elem, err)
{
    if(elem.value.length > 0)
	{
		var str = elem.value;
	    var splitted = str.match("^(.+)@(.+)$");

	    if(splitted !== null && splitted[1] !== null)
		{
	    	var regexp_user=/^\"?[\w-_\.]*\"?$/;
		    if(splitted[1].match(regexp_user) !== null && splitted[2] !== null)
			{
		    	var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
				var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
				if((splitted[2].match(regexp_domain) !== null) || (splitted[2].match(regexp_ip) !== null))
				{
					hl(elem,Default);
					return true;
				}
			}
		
		}
	}
	hl(elem, Bright);
	errorString+=err;
	return false;
}

function notSelected(elem, val, err)
{
	if(elem.options[elem.selectedIndex].value == val) 	{hl(elem, Bright); errorString+=err; return false;}
	else	{hl(elem,Default); return true;}
}

function checkedBox(elem, err)
{
	if(elem.checked !== true) 	{hl(elem, Bright); errorString+=err; return false;}
	else	{hl(elem,Default); return true;}
}

function validateFormPartner(formname)
{
	errorString = "Please fill in following fields:     \n     \n";

	var Results = [
	notEmpty(formname.fullname, 'Name\n'),
	validEmail(formname.email, 'E-mail (valid)\n'),
	notSelected(formname.country, 0,'Country\n'),
	notEmpty(formname.comments, 'Questions or comments\n'),
	notEmpty(formname.captcha, 'Code on image\n')
	];

	if (Results[0] && Results[1] && Results[2] && Results[3] && Results[4])
	{
		return true;
	}
	else
	{
		alert(errorString);
		return false;
	}
}

function validateFormFriend(formname)
{
	errorString = "Please fill in following fields:     \n     \n";

	var Results = [
	notEmpty(formname.fullname, 'Name\n'),
	validEmail(formname.email, 'Your E-mail (valid)\n'),
	validEmail(formname.friendemail, 'Your Friend E-mail (valid)\n'),
	notEmpty(formname.comments, 'Your Comments\n'),
	notEmpty(formname.captcha, 'Code on image\n')
	];

	if (Results[0] && Results[1] && Results[2] && Results[3] && Results[4])
	{
		return true;
	}
	else
	{
		alert(errorString);
		return false;
	}
}

function validateFormApplication(formname)
{
	errorString = "Please fill in following fields:     \n     \n";

	var Results = [
	notEmpty(formname.firstname, 'First name\n'),
	notEmpty(formname.lastname, 'Last name\n'),
	notSelected(formname.day, 0,'Day of birth\n'),
	notSelected(formname.month, 0,'Month of Birth\n'),
	notEmpty(formname.year, 'Year of birth\n'),
	notEmpty(formname.address, 'Address\n'),
	notEmpty(formname.placeofbirth, 'Place of birth\n'),
	notSelected(formname.country, 0,'Country\n'),
	notEmpty(formname.nationality, 'Nationality\n'),
	notSelected(formname.fieldofstudy, 0,'I want to study\n'),
	notEmpty(formname.passport, 'Passport number\n'),
	validEmail(formname.email, 'E-mail (valid)\n'),
	notEmpty(formname.educationalbackground, 'Educational background\n'),
	notEmpty(formname.captcha, 'Code on image\n')
	];

	if (formname.fieldofstudy.options[formname.fieldofstudy.selectedIndex].value == 'Other') {Results.push(notEmpty(formname.otherfield, 'Field of study (other)\n'));}
		
	if (Results[0] && Results[1] && Results[2] && Results[3] && Results[4] && Results[5] && Results[6] && Results[7] && Results[8] && Results[9] && Results[10] && Results[11] && Results[12] && Results[13])
	{
		return true;
	}
	else
	{
		alert(errorString);
		return false;
	}
}

function checkOther(elem)
{
	if (document.getElementById)
	{
		targetInput = document.getElementById('otherfield');
		if (elem.options[elem.selectedIndex].value == 'Other') {targetInput.style.display = '';}
		else {targetInput.style.display = 'none';}
	}
}