var tmp_login = null;
var tmp_email = null;

var valid_login = false;
var valid_email = false;

var email_available = false;
var email_not_valid = false;

var password_valid = false;
var password_match = false;

var add_fields_error = 0;

var doSubmit = false;
var add_fields_validator=null;
var user_registration_etalon_login="";
var user_registration_etalon_email="";
var user_registration_email_ok="";
var user_registration_login_ok="";

$(document).ready(function()
{
    if($('#demo_timer').length>0)
    {
        $('#demo_timer').timerAnimate();
    }
    if(document.location.href.split('/user/').length>1)
    {
    add_fields_validator=new FormValidator();
    add_fields_validator.scan();
    
    var segment=document.location.href.split('/user/')[1].split('/')[0];
    page_on_load(segment);
    }
    if( !$("#user_registration_tos").attr('checked') )
    {
        $("#user_registration_submit_button").attr('disabled',true);
    }

});

function page_on_load(segment)
{

}

function user_registration_last_error()
{
    var error = 0;
    if( !valid_login)
    {
        error++;
    }
    if( !valid_email)
    {
        error++;
    }
    
    if( trim($("#user_registration_fname").val()) == '' || trim($("#user_registration_lname").val()) == '')
    {
        error++;
    }

    if( !$("#user_registration_tos").attr('checked') )
    {
        error++;
    }
    
    if( !trim($("#user_registration_capcha").val()) )
    {
        error++;
    }
    
    
    if( parseInt($("#user_registration_member_force_pwd_gen").val()) <= 0)
    {
        if( !$("#user_registration_generate_password").attr('checked') )
        {
            if( !password_valid || !password_match )
            {
                error++;
            }
            else
            {
                $("#user_registration_error_password_not_match").hide();
                $("#user_registration_error_password").hide();
            }
        }
    }
    
    if( error > 0 || add_fields_error >0 )
    {
        return false;
    }
    else
    {
        $("#user_registration_error_php_area").hide();
        $("#user_registration_error_area").hide();
        return true;
    }
    
}

function user_registration_submit(doNotSubmit)
{
    var error = 0;
    add_fields_error = 0;
    $("#user_registration_error_php_area").hide();
    $("#user_registration_error_area").hide();
    $("#user_registration_error_login").hide();
    $("#user_registration_error_email").hide();
    $("#user_registration_error_fname").hide();
    $("#user_registration_error_lname").hide();
    $("#user_registration_error_password").hide();
    $("#user_registration_add_fields_error_area").hide();

    if( user_registration_etalon_login == $("#user_registration_login").val() && user_registration_login_ok > 0)
    {
        valid_login = true;
    }
    
    
    if( user_registration_etalon_email == $("#user_registration_email").val() && user_registration_email_ok > 0)
    {
        valid_email = true;
        email_available = true;
        email_not_valid = false;
    }
    
    
    // pre check login
    if( !valid_login )
    {
        if( (tmp_login == '' || tmp_login == null) && trim($("#user_registration_login").val())!='' && check_login($("#user_registration_login").val()) )
        {
            doSubmit = true;
            user_registration_check_login($("#user_registration_login").val());
        }
    }
    
    
    //chk login
    if( !valid_login )
    {
        $("#user_registration_error_area").show();
        $("#user_registration_error_login").show();
        error++;
        //return false;
    }


    // pre check email
    if( !valid_email )
    {
        if( (tmp_email == '' || tmp_email == null) && trim($("#user_registration_email").val())!='' && check_mail($("#user_registration_email").val()) )
        {
            doSubmit = true;
            email_not_valid = false;
            user_registration_check_email($("#user_registration_email").val());
        }
    }
    
   
    //chk email
    if( !valid_email )
    {
        $("#user_registration_error_area").show();
        $("#user_registration_error_email").show();
        $("#user_registration_email_exists_error").hide();
        $("#user_registration_email_not_valid_error").hide();
        if( !email_available && $("#user_registration_email").val()!='' )
        {
            $("#user_registration_email_not_valid_error").hide();
            $("#user_registration_email_exists_error").show();
        }
        
        if(email_not_valid)
        {
           $("#user_registration_email_exists_error").hide();
           $("#user_registration_email_not_valid_error").show();
        }
        
        error++;
        //return false;
    }

    //chk fname
    if( trim($("#user_registration_fname").val()) == '' )
    {
        $("#user_registration_error_area").show();
        $("#user_registration_error_fname").show();
        error++;
        //return false;
    }
    
    //chk lname
    if( trim($("#user_registration_lname").val()) == '' )
    {
        $("#user_registration_error_area").show();
        $("#user_registration_error_lname").show();
        error++;
        //return false;
    }

    
    // if generate_password == false
        // password valid
        // password match
    
    if( parseInt($("#user_registration_member_force_pwd_gen").val()) <= 0)
    {
        if( !$("#user_registration_generate_password").attr('checked') )
        {
            if( !password_valid || !password_match )
            {
                $("#user_registration_error_area").show();
                $("#user_registration_error_password").show();            
                error++;
                //return false;
            }
        }
    }
    
        // check add fields

   
        
            //var user_registration_not_empty
            //var user_registration_numbers_only
            //var user_registration_letters_only
            //var user_registration_email
        // _check add fields
         // required flag
        
        /*
        if( user_registration_numbers_only!=null )
        {
            for ( i=0; i<user_registration_numbers_only[0].length; i++ )
            {
                if( trim($("#"+user_registration_numbers_only[0][i]).val())!='' && !check_int($("#"+user_registration_numbers_only[0][i]).val()) )
                {
                    add_fields_error++;
                    $("#user_registration_add_fields_error_"+user_registration_numbers_only[0][i]).html(user_registration_add_fields_error_field_text+' '+user_registration_numbers_only[1][i]+' '+user_registration_add_fields_error_text_numbers_only+'<br/>');
                    $("#user_registration_add_fields_error_"+user_registration_numbers_only[0][i]).show();
                }
                else
                {
                    $("#user_registration_add_fields_error_"+user_registration_numbers_only[0][i]).hide();
                }
            }
        }
        if( user_registration_letters_only!=null )
        {
            for ( i=0; i<user_registration_letters_only[0].length; i++ )
            {
                if( trim($("#"+user_registration_letters_only[0][i]).val())!='' && !check_alpha($("#"+user_registration_letters_only[0][i]).val()) )
                {
                    add_fields_error++;
                    $("#user_registration_add_fields_error_"+user_registration_letters_only[0][i]).html(user_registration_add_fields_error_field_text+' '+user_registration_letters_only[1][i]+' '+user_registration_add_fields_error_text_letters_only+'<br/>');
                    $("#user_registration_add_fields_error_"+user_registration_letters_only[0][i]).show();
                }
                else
                {
                    $("#user_registration_add_fields_error_"+user_registration_letters_only[0][i]).hide();
                }
            }
        }
        if( user_registration_phone!=null )
        {
            for ( i=0; i<user_registration_phone[0].length; i++ )
            {
                if( trim($("#"+user_registration_phone[0][i]).val())!='' && !check_phone($("#"+user_registration_phone[0][i]).val()) )
                {
                    add_fields_error++;
                    $("#user_registration_add_fields_error_"+user_registration_phone[0][i]).html(user_registration_add_fields_error_field_text+' '+user_registration_phone[1][i]+' '+user_registration_add_fields_error_text_phone+'<br/>');
                    $("#user_registration_add_fields_error_"+user_registration_phone[0][i]).show();
                }
                else
                {
                    $("#user_registration_add_fields_error_"+user_registration_phone[0][i]).hide();
                }
            }
        }
        if( user_registration_email!=null )
        {
            for ( i=0; i<user_registration_email[0].length; i++ )
            {
                if( trim($("#"+user_registration_email[0][i]).val())!='' && !check_mail($("#"+user_registration_email[0][i]).val()) )
                {
                    add_fields_error++;
                    $("#user_registration_add_fields_error_"+user_registration_email[0][i]).html(user_registration_add_fields_error_field_text+' '+user_registration_email[1][i]+' '+user_registration_add_fields_error_text_email+'<br/>');
                    $("#user_registration_add_fields_error_"+user_registration_email[0][i]).show();
                }
                else
                {
                    $("#user_registration_add_fields_error_"+user_registration_email[0][i]).hide();
                }
            }
        }
        if( user_registration_not_empty!=null )
        {
            var field_value = null;
            for ( var i=0; i<user_registration_not_empty[0].length; i++ )
            {
                if( user_registration_not_empty[2][i] =='6' )
                {
                    if( $("#"+user_registration_not_empty[0][i]).attr('checked') )
                    {
                        field_value = '1';
                    }
                    else
                    {
                        field_value = '';
                    }
                }
                else
                {
                    var field_value = trim($("#"+user_registration_not_empty[0][i]).val());                
                }
                if( field_value == '' )
                {
                    add_fields_error++;
                    $("#user_registration_add_fields_error_"+user_registration_not_empty[0][i]).html(user_registration_add_fields_error_field_text+' '+user_registration_not_empty[1][i]+' '+user_registration_add_fields_error_text_not_empty+'<br>');
                    $("#user_registration_add_fields_error_"+user_registration_not_empty[0][i]).show();
                }
                else
                {
                     if($("#user_registration_add_fields_error_"+user_registration_not_empty[0][i]).html()==user_registration_add_fields_error_field_text+' '+user_registration_not_empty[1][i]+' '+user_registration_add_fields_error_text_not_empty+'<br>')
                     {
                        $("#user_registration_add_fields_error_"+user_registration_not_empty[0][i]).hide();
                     }
                }
            }
        }
        */
        if(!add_fields_validator.checkAll())
        {
            $("#user_registration_add_fields_error_area").show()
            error++;
            $("#user_registration_error_area").show();
        }
        else
        {
            user_registration_last_error();
        }

        //chk tos
        if( !$("#user_registration_tos").attr('checked') )
        {
            $("#user_registration_error_area").show();
            $("#user_registration_error_tos").show();
            $("#user_registration_tos_not_accept_error").show();
            error++;
            //return false;
        }
    
        if( !trim($("#user_registration_capcha").val()) )
        {
            $("#user_registration_error_area").show();
            $("#user_registration_error_capcha").show();
            $("#user_registration_capcha_error").show();
            error++;
        }
    
    if( error > 0 )
    {
        doSubmit = true;
        return false;
    }
    else
    {
        if( doNotSubmit == '1' )
        {
            // do not submit. just check.
            return false;
        }
        else
        {
            $("#user_registration_form").submit();
            return false;
        }
    }
    
    return false;
}

function user_registration_check_tos()
{

        if( !$("#user_registration_tos").attr('checked') )
        {
            //$("#user_registration_error_area").show();
            //$("#user_registration_error_tos").show();
            $("#user_registration_tos_not_accept_error").show();
            $("#user_registration_submit_button").attr('disabled',true);            
        }
        else
        {
            
            $("#user_registration_error_tos").hide();
            $("#user_registration_tos_not_accept_error").hide();
            if( user_registration_last_error() )
            {
                $("#user_registration_error_area").hide();
            }
            $("#user_registration_submit_button").attr('disabled',false);
        }

    return true;
}

function user_registration_after_check_login(result)
{
        if(  result )
        {
            $("#user_registration_error_php_area").hide();
            $("#user_registration_login_exists_error").hide();
            $("#user_registration_error_login").hide();
            valid_login = true;
            var last_error_result = user_registration_last_error();
            if( doSubmit && last_error_result ) 
            {
                $("#user_registration_form").submit();
            }
            return true;
        }
        else
        {
            
            $("#user_registration_error_php_area").hide();
            $("#user_registration_login_exists_error").show();
            valid_login = false;
            doSubmit = false;
            return false;
        }        
}


function user_registration_check_login(login)
{
    $("#user_registration_login").val(trim($("#user_registration_login").val()));
    
    
    if( user_registration_etalon_login == $("#user_registration_login").val() && user_registration_login_ok > 0)
    {
        return true;
    }
    
    if( tmp_login == $("#user_registration_login").val() )
    {
        return false;
    }
    tmp_login=$("#user_registration_login").val();
    
    if( trim(login) == '')
    {
        $("#user_registration_login_exists_error").hide();
        $("#user_registration_login_not_valid_error").hide();
        valid_login = false;
        return false;
    }

    if( !check_login(login) )
    {
        $("#user_registration_login_not_valid_error").show();
        valid_login = false;
        return false;
    }
    else
    {
        $("#user_registration_login_not_valid_error").hide();    
    }
    
    after_login_available_check = user_registration_after_check_login; 
   
    check_available_login(login);

    return false;
}


function user_registration_check_password2(pwd2)
{
    $("#user_registration_error_php_area").hide();
    $("#user_registration_password_not_match").hide();
    $("#user_registration_password_is_match").hide();
    
    if(pwd2 == '')
    {
        password_match = false;
        return false;
    }
    
    if( pwd2 != $("#user_registration_password").val() )
    {
        $("#user_registration_password_not_match").show();
        password_match = false;
    }
    else
    {
        $("#user_registration_password_is_match").show();
        password_match = true;
        user_registration_last_error();
    }


}


function user_registration_check_password(pwd)
{
    user_registration_check_password2($("#user_registration_password2").val());
    
    $("#user_registration_error_php_area").hide();
    $("#user_registration_password_protection0").hide();
    $("#user_registration_password_protection3").hide();
    $("#user_registration_password_protection4").hide();
    $("#user_registration_password_protection5").hide();

    if(pwd == '')
    {
        password_valid = false;
        return false;
    }
    
    var result = 0;
    result = check_user_pwd(pwd);


    
    if( result <= 2 )
    {
        $("#user_registration_password_protection0").show();
        password_valid = false;
        return false;
    }
    
    if( result == 3 )
    {
        $("#user_registration_password_protection3").show();
        password_valid = true;
        user_registration_last_error();
        return true;
    }
    
    if( result == 4 )
    {
        $("#user_registration_password_protection4").show();
        password_valid = true;
        user_registration_last_error();
        return true;
    }
    
    if( result == 5 )
    {
        $("#user_registration_password_protection5").show();
        password_valid = true;
        user_registration_last_error();
        return true;
    }

    return false;
}


function user_registration_generate_password_set()
{
    if( $("#user_registration_generate_password").attr('checked') )
    {
        //$("#user_registration_password_area1").hide();
        $("#user_registration_password_area1").css('visibility','hidden');
        //$("#user_registration_password_area2").hide();
        $("#user_registration_password_area2").css('visibility','hidden');
        
        $("#user_registration_error_password").hide();
        $("#user_registration_error_password_not_match").hide();
        
        //password_valid = true;
        //password_match = true;
        user_registration_last_error();
    }
    else
    {
        $("#user_registration_password_area1").show();
        $("#user_registration_password_area2").show();
        $("#user_registration_password_area1").css('visibility','visible');
        $("#user_registration_password_area2").css('visibility','visible');
        
        //password_valid = false;
        //password_match = false;
    }
}

function user_registration_after_check_email(result)
{
        if(  result )
        {
            $("#user_registration_error_php_area").hide();
            $("#user_registration_email_exists_error").hide();
            $("#user_registration_error_email").hide();
            valid_email = true;
            email_available = true;
            var last_error_result = user_registration_last_error();
            if( doSubmit && last_error_result ) 
            {
                $("#user_registration_form").submit();
            }
            return true;
        }
        else
        {
            
            $("#user_registration_error_php_area").hide();
            $("#user_registration_email_exists_error").show();
            valid_email = false;
            email_available = false;
            doSubmit = false;
            return false;
        }
}

function user_registration_check_email(email)
{
    $("#user_registration_email_exists_error").hide();
    $("#user_registration_email_not_valid_error").hide();
    
    
    if( user_registration_etalon_email == $("#user_registration_email").val() && user_registration_email_ok > 0)
    {
        return true;
    }
    
    if( trim(email) == '' )
    {
        valid_email = false;
        email_not_valid = true;
        return false;
    }
    
    if( !check_mail($("#user_registration_email").val()) )
    {
        $("#user_registration_email_not_valid_error").show();
        valid_email = false;
        email_not_valid = true;
        tmp_email='';
        return false;
    }
    else
    {
        email_not_valid = false;
    }
    
    $("#user_registration_email").val(trim($("#user_registration_email").val()));
    if( tmp_email == $("#user_registration_email").val() )
    {
        if( !email_available )
        {
            $("#user_registration_email_not_valid_error").hide();
            $("#user_registration_email_exists_error").show();
        }
        if( email_not_valid )
        {
            $("#user_registration_email_exists_error").hide();
            $("#user_registration_email_not_valid_error").show();
        }
        return false;
    }
    tmp_email=$("#user_registration_email").val();
    
    if( trim(email) == '')
    {
        $("#user_registration_email_exists_error").hide();
        valid_email = false;
        return false;
    }
    after_email_available_check = user_registration_after_check_email; 
   
    check_available_email(email,'1');

    return false;
}