var color_norm = "#333333";
var color_fail = "#DF0024";

function validContactsForm()
{                                    
    var state = false;                 
    state = fieldsCheck('message', 'phone', 'email', 'name');
    document.location.replace('#error');
    if (document.getElementById(last_fail))
        document.getElementById(last_fail).focus();
    return (state);
}

/**
*   Funkcijos formu validavimui
**/

var err_fields = new Array();
var err_email = new Array();
var err_pass2 = new Array();
var err_pass_old = new Array();

err_fields['lt'] = 'Prašome užpildyti visus laukelius, pažymėtus žvaigždute (*).';
err_fields['en'] = 'Please fill all required fields (*).';
err_fields['ru'] = 'Заполните пожалуйста все поля, помеченные звёздочкой (*).';

err_email['lt'] = 'Neteisingas el. pašto adresas.';
err_email['en'] = 'Wrong e-mail.';
err_email['ru'] = 'Введён неверный адрес эл. почты.';

err_pass2['lt'] = 'Slaptažodžiai nesutampa.';
err_pass2['en'] = 'Passwords does not match.';
err_pass2['ru'] = 'Пароли не совпадают.';

err_pass_old['lt'] = 'Įveskite senąjį slaptažodį.';
err_pass_old['en'] = 'Please enter your old password.';
err_pass_old['ru'] = 'Введите Ваш старый пароль.';

var last_fail = '';
function fieldsCheck()
{
	document.getElementById('error').style.display = 'block';
    var state = true;
    for (var n=0; n < arguments.length; n++)                                  
        document.getElementById(arguments[n] + '_l').style.color = color_norm;
    for (var n=0; n < arguments.length; n++) 
    {                  
        if (arguments[n] == 'email')
        {
            if (emailCheck(document.getElementById('email').value) == false)
            {
                last_fail = arguments[n];
                document.getElementById('email_l').style.color = color_fail;
	            state = false; 
                document.getElementById('error').innerHTML = err_email[lng];
                fadeIn('error', 0);
            }                         
        }    
        else if (arguments[n] == 'pass2')
        {                
            document.getElementById('pass_l').style.color = color_norm;
            document.getElementById('pass2_l').style.color = color_norm;
            
            if (document.getElementById('pass').value != "" && document.getElementById('pass2').value != "")
            {
                if (document.getElementById('pass').value != document.getElementById('pass2').value)
                {   
                    last_fail = 'pass';
                    document.getElementById('pass_l').style.color = color_fail;
                    document.getElementById('pass2_l').style.color = color_fail;
                    state = false;
                    document.getElementById('error').innerHTML = err_pass2[lng];
                    fadeIn('error', 0);  
                }  
            }  
            else
            {
                last_fail = 'pass';
                document.getElementById('pass_l').style.color = color_fail;
                document.getElementById('pass2_l').style.color = color_fail;   
                state = false;
                document.getElementById('error').innerHTML = err_fields[lng];
                fadeIn('error', 0);  
            }
        }   
        else if (arguments[n] == 'pass_old')
        {
            document.getElementById('pass_l').style.color = color_norm;
            document.getElementById('pass2_l').style.color = color_norm;    
            document.getElementById('pass_old_l').style.color = color_norm;
            
            if (document.getElementById('pass_old').value != "")
            {       
                if (document.getElementById('pass').value == "" || document.getElementById('pass_2').value == "")
                {
                    last_fail = 'pass';
                    document.getElementById('pass_l').style.color = color_fail;
                    document.getElementById('pass2_l').style.color = color_fail;
                    state = false;
                    document.getElementById('error').innerHTML = err_fields[lng];
                    fadeIn('error', 0); 
                }
                else if (document.getElementById('pass').value != document.getElementById('pass2').value)
                {   
                    last_fail = 'pass';
                    document.getElementById('pass_l').style.color = color_fail;
                    document.getElementById('pass2_l').style.color = color_fail;
                    state = false;
                    document.getElementById('error').innerHTML = err_pass2[lng];
                    fadeIn('error', 0);  
                }   
            }
            else 
            {                                                              
                if (document.getElementById('pass').value != "" || document.getElementById('pass_2').value != "")
                {
                    last_fail = 'pass_old';
                    document.getElementById('pass_old_l').style.color = color_fail; 
                    state = false;
                    document.getElementById('error').innerHTML = err_pass_old[lng];
                    fadeIn('error', 0); 
                }    
            }                                
        }           
        else if (document.getElementById(arguments[n]).value == 0)
        {
            last_fail = arguments[n];
            document.getElementById(arguments[n] + '_l').style.color = color_fail;
	        state = false;  
            document.getElementById('error').innerHTML = err_fields[lng];
            fadeIn('error', 0);    
        }
    } 
    return (state); 
}

function emailCheck (emailStr) 
{
    if(emailStr == "") 
        return false;

    var checkTLD = 1;
    var knownDomsPat = /^(com|net|org|lt|ru|ro|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat = /^(.+)@(.+)$/;
    var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars = "\[^\\s" + specialChars + "\]";
    var quotedUser = "(\"[^\"]*\")";
    var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom = validChars + '+';
    var word = "(" + atom + "|" + quotedUser + ")";
    var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray = emailStr.match(emailPat);

    if (matchArray == null) 
        return false;
    var user = matchArray[1];
    var domain = matchArray[2];

    for (i=0; i<user.length; i++) 
        if (user.charCodeAt(i)>127) 
            return false;

    for (i=0; i<domain.length; i++)
        if (domain.charCodeAt(i)>127)
            return false;

    if (user.match(userPat)==null)
        return false;

    var IPArray = domain.match(ipDomainPat);
    if (IPArray!=null) 
    {
        for (var i=1;i<=4;i++)
            if (IPArray[i]>255)
                return false;
        return true;
    }

    var atomPat = new RegExp("^" + atom + "$");
    var domArr = domain.split(".");
    var len = domArr.length;
    for (i=0;i<len;i++)
        if (domArr[i].search(atomPat)==-1)
            return false;

    if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)
        return false;

    if (len<2)
        return false;
}

function fadeIn(objId,opacity) 
{
    if (document.getElementById) 
        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) 
        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);
        }
}              
