var valid = new validate();

function validate()
{
	this.error = 'error';
	this.color_norm = '#52575b';
	this.color_fail = '#ff0000';

	this.err_field = new Array();
	this.err_field['lt'] = 'Prašome užpildyti visus laukelius, pažymėtus žvaigždute (*).';
	this.err_field['en'] = 'Please fill all required fields (*).';
	this.err_field['ru'] = 'Заполните пожалуйста все поля, помеченные звёздочкой (*).';
	
	this.err_email = new Array();
	this.err_email['lt'] = 'Neteisingas el. pašto adresas.';
	this.err_email['en'] = 'Wrong e-mail address.';
	this.err_email['ru'] = 'Введён неверный адрес эл. почты.';

	this.check = function(form, lang)
	{
		var reg = /\*/;
		var last_fail = false;
		this.form = typeof(form) != 'undefined' ? document.getElementById(form) : document;
		var labels = document.getElementsByTagName('label');

        for (i = labels.length - 1; i >= 0; i--)
		{
			if (reg.test(labels[i].innerHTML) && document.getElementById(labels[i].htmlFor))
			{
				input = document.getElementById(labels[i].htmlFor);
				if ((input.id == 'email' && !this.email(input.value)) || input.value == '')
				{
					last_fail = input;
					labels[i].style.color = this.color_fail;
				}
				else
				{
					labels[i].style.color = this.color_norm;
				}
			}
        }                                          

		if (last_fail)
		{
			var lng = lang;
			document.getElementById(this.error).style.display = 'block';
			
			if (last_fail.id == 'email')
			{
				document.getElementById(this.error).innerHTML = this.err_email[lng];
			}
			else
			{
				document.getElementById(this.error).innerHTML = this.err_field[lng];
			}

			fadeIn(this.error, 0);
			last_fail.focus();

			return false;
		}

		return true;
	}
  
	this.email = function(email)
	{
		var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,4}(?:\.[a-z]{2})?)$/i

		return filter.test(email);
	}
}


function fadeIn(objId, opacity) 
{
    if (document.getElementById)
	{
		opacity = typeof(opacity) != 'undefined' ? opacity : 0;
		if (opacity <= 100)
        {
			document.getElementById(objId).style.MozOpacity = opacity / 100;
			document.getElementById(objId).style.filter = "alpha(opacity:" + opacity + ")";
			opacity += 10;
			window.setTimeout("fadeIn('" + objId + "'," + opacity + ")", 100);
        }
	}
}

function fadeOut(objId, opacity)
{
	if (document.getElementById)
	{
		opacity = typeof(opacity) != 'undefined' ? opacity : 100;
		if (opacity >= 0)
        {
			document.getElementById(objId).style.MozOpacity = opacity / 100;
			document.getElementById(objId).style.filter = "alpha(opacity:" + opacity + ")";
			opacity -= 10;
			window.setTimeout("fadeOut('" + objId + "'," + opacity + ")", 100);
		}
	}
}