var bad = true;
var _mes = '';
var flobu ;

checkForms = function() { 
    _mes = ''; 
    bad = true; 
    
    _login = $('#logins').val().trimed();
    _pass = $('#passw').val().trimed();
    _pass2 = $('#passw2').val().trimed();  
    _e_mail = $('#e_mail').val().trimed();  
    //_keystring = $('#keystring').val().trimed();      
    _invate = $('#invate').val().trimed();      
            
    ReplaceClassName('logins', CheckLogin(_login));
    ReplaceClassName('passw', CheckPassword(_pass));    
    ReplaceClassName('passw2', CheckPassword2(_pass, _pass2));  
    ReplaceClassName('e_mail', CheckEmail(_e_mail));  
    //ReplaceClassName('keystring', CheckKeystring(_keystring)); 
    ReplaceClassName('invate', CheckInvate(_invate)); 
         
    if(!bad) {
        _mes = '<ul>' +_mes+ '</ul>';
        $('#reg_error').show();
        $('#reg_error').html(_mes);  
    } else {      
        $('#reg_error').hide(); 
        
        flobu = new flower_bubble ({
            base_obj: $( '#registration' ),
            base_dir: '/images/',
            background: { css: 'white', opacity: 0.78 },
            bubble: { image: 'bubble.gif', width: 130, height: 98 },
            flower: { image: 'flower.gif', width: 32, height: 32 },
            block_mode: 'base_obj'
        }) ; 
        flobu.enable(); 
        
        CreateNewUser(_e_mail);  
    } 
    
}

CheckLogin = function(_login) {
    patterns = '^([a-zA-Z0-9\_\-])*$';
    maxLen = 20;
    minLen = 6; 
    
    if(_login.length < minLen || _login.length > maxLen) {
        _mes +='<li>Логин: логин должен быть от '+minLen+' до '+maxLen+' символов. </li>';         
        bad = false;
        return false; 
    }
    
    var re = new RegExp(patterns);
    if (!re.test(_login + "")){
        _mes +='<li>Логин: недопустимые символы. Может состоять из латинского алфавита, цифр и символов _-. </li>'; 
        bad = false;  
        return false;  
    } else {                 
        return true;
    }  
}  

CheckPassword = function(_pass) {
    patterns = '^([a-zA-Z0-9])*$';
    maxLen = 20;
    minLen = 6;       
       
    if(_pass.length < minLen || _pass.length > maxLen) {
        _mes +='<li>Пароль: пароль должен быть от '+minLen+' до '+maxLen+' символов. </li>';
        bad = false; 
        return false; 
    }
    
    var re = new RegExp(patterns);
    if (!re.test(_pass + "")){
        _mes +='<li>Пароль: недопустимые символы. Может состоять из латинского алфавита и цифр. </li>'; 
        bad = false;  
        return false;  
    } else {               
        return true;
    }  
}

CheckPassword2 = function(_pass, _pass2) {         
    if(_pass2.length == 0) {
        _mes +='<li>Пароль ещё раз: поле не заполнено. </li>';
        bad = false; 
        return false; 
    }     
    
    if (_pass2 != _pass){
        _mes +='<li>Пароль ещё раз: пароли не совпадают. </li>';
        bad = false;   
        return false;  
    } else {               
        return true;
    }  
}

CheckEmail = function(_e_mail) {      
    patterns = '^[A-Za-z0-9\.\_\-]{1,36}?@[A-Za-z0-9\.\-\_]{1,36}\.[A-Za-z]{2,6}$';
               
    if(_e_mail.length == 0) {
        _mes +='<li>E-mail: поле не заполнено. </li>';
        bad = false; 
        return false; 
    }   
    
    var re = new RegExp(patterns);
    if (!re.test(_e_mail + "")){
        _mes +='<li>E-mail: Неправильно указан e-mail. </li>'; 
        bad = false;  
        return false;  
    } else {            
        return true;
    }  
}   

CheckKeystring = function(_keystring) {         
    if(_keystring.length == 0) {
        _mes +='<li>Код на картинке: код не указан. </li>';
        bad = false; 
        return false; 
    } else {
        return true;  
    } 
}     

CheckInvate = function(_invate) {         
    if(_invate.length == 0) {
        _mes +='<li>Код приглашения: код не указан. </li>';
        bad = false; 
        return false; 
    } else {
        return true;  
    } 
}

ReplaceClassName = function(id, status) {
    var _badres = 'badres';
    var _goodres = 'goodres'; 
    var _loader = 'loader';
    
    if(status === true) { 
        $('#check_'+id).removeClass().addClass(_goodres); 
        $('#'+id).removeClass(); 
    } else if (status === false){
        $('#check_'+id).removeClass().addClass(_badres);
        $('#'+id).removeClass().addClass('bad');         
    } else {
        $('#'+id).removeClass(); 
        $('#check_'+id).removeClass().addClass( _loader);
    }
}

CreateNewUser = function(_email) {  
    var _data = $("#partner_registration").serialize();     
    url = '/ajax/registration.php';
    $.post(url, _data
    ,
        checkCreateNewUser 
    );
    
    function checkCreateNewUser (data)
    {   
        jsonResponse = eval('(' + data + ')'); 
        _mes = '';
         bad = true;
                     
        if(jsonResponse['add_user'] !== undefined && jsonResponse['add_user'] != 'ok') {
            bad = false;  
            _mes +='<li>Непредвиденная ошибка! Попробуйте ещё раз.</li>';
        } else if(jsonResponse['add_user'] !== undefined && jsonResponse['add_user'] == 'ok') {
            $('#reg_error').hide(); 
            flobu.disable();  
            $('#email').val(_email);
            $('#you_mail').html(_email);
            $('#registration_step1').hide();
            $('#registration_step2').show();
            return false;
        }  
       
        //var _check_fields = new Array('login', 'passw', 'passw2', 'e_mail', 'keystring');    
        var _check_fields = new Array('login', 'passw', 'passw2', 'e_mail');    
                                
        for(i=0;i<_check_fields.length;i++){ 
            if(jsonResponse[_check_fields[i]] !== undefined) {  
                bad = false; 
                _mes +='<li>'+jsonResponse[_check_fields[i]]+ '</li>'; 
                if(_check_fields[i] == 'login') {  
                    ReplaceClassName('logins', false);
                } else {
                    ReplaceClassName(_check_fields[i], false); 
                } 
                
                /*
                if(_check_fields[i] == 'keystring') {
                    $('#keystring').val('');
                    window.parent.captha_frame.document.location.reload();
                }
                */
            } 
        }       
        
        if(!bad) {
            _mes = '<ul>' +_mes+ '</ul>';
            $('#reg_error').show();
            $('#reg_error').html(_mes); 
            $('#passw').val('').removeClass();  
            $('#check_passw').removeClass();  
            $('#passw2').val('').removeClass();              
            $('#check_passw2').removeClass();              
        } else { 
            $('#reg_error').hide(); 
        }
        flobu.disable();
    }  
    
}

checkKod = function() {
    _kod = $('#kod').val().trimed();
    bad = true;
    _mes = '';      
    
    if(_kod.length == 0) {
        _mes +='<li>Вы не ввели код подтверждения. </li>';
        bad = false; 
    } else {
        $('#kod').val(_kod);
    }
    
    if(!bad) {
        _mes = '<ul>' +_mes+ '</ul>';
        $('#reg_error2').show();
        $('#reg_error2').html(_mes); 
        ReplaceClassName('kod', false); 
    } else { 
        $('#reg_error2').hide();
        ReplaceClassName('kod', 'loader'); 
    }
    
    if(bad) {
        url = '/ajax/registration.php'; 
        $.post(url,
        {
            'do':'check_kod',
            'kod' : _kod,
            'e_mail' : $('#email').val().trimed()
            
        },
            function (data)
            { 
               _mes = ''; 
                if(data == '1') {
                    ReplaceClassName('kod', true);                      
                    $('#reg_error2').removeClass().addClass('reg_ok'); 
                    $('#reg_error2').show();
                    _mes = '<li>Код подтверждения принят.</li>';
                    top.location.href = "/profile";
                } else {
                    ReplaceClassName('kod', false);                      
                    $('#reg_error2').removeClass().addClass('reg_error');      
                    $('#reg_error2').show(); 
                    _mes = '<li>Код подтверждения ошибочный.</li>';   
                } 
                _mes = '<ul>' +_mes+ '</ul>'; 
                $('#reg_error2').html(_mes);  
            } 
        );  
        
        
    }     
}
 
CheckPayments = function() {
    _mes = '';  
    
    _pass = $('#passw').val();
    _pass2 = $('#rpassw').val();  
     
    if (_pass.length > 0) {
        if(CheckPassword(_pass)) {
            CheckPassword2(_pass, _pass2);
        } 
    } 
    
    if(_mes == '') { 
        flobu = new flower_bubble ({
            base_obj: $( '#profile_block_mode' ),
            base_dir: '/images/',
            background: { css: 'white', opacity: 0.78 },
            bubble: { image: 'bubble.gif', width: 130, height: 98 },
            flower: { image: 'flower.gif', width: 32, height: 32 },
            block_mode: 'base_obj'
        }) ; 
        flobu.enable(); 
        
        var _data = $("#profile").serialize();     
        url = '/ajax/registration.php';
        $.post(url, _data,
            function (data)
            {                       
                jsonResponse = eval('(' + data + ')');     
                json_mes = '';
                bad = true;  

                if(jsonResponse['update_profile'] !== undefined && jsonResponse['update_profile'] != 'ok') {
                    bad = false;  
                    json_mes +='<li>Непредвиденная ошибка! Попробуйте ещё раз.</li>';
                    $('#profile_error').removeClass().addClass('reg_error');  
                    $('#profile_error').html(json_mes); 
                    $('#profile_error').show();                         
                } else if(jsonResponse['update_profile'] !== undefined && jsonResponse['update_profile'] == 'ok') {                            
                    $('#profile_error').removeClass().addClass('reg_ok');     
                    $('#profile_error').html('<ul><li>Изменения внесены.</li></ul>'); 
                    $('#profile_error').show(); 
                }  
                
                flobu.disable();
                document.location.href="/profile";
            
            } 
        );              
        
    }          
  
}

CheckPayments = function() {
    _wmr_type = $('#wmr').attr('type');
    _wmz_type = $('#wmz').attr('type'); 
    _yandex_type = $('#yandex').attr('type');    
    
    _mes = '';
    var _fields = new Array();
    _fields[0] = 'wmr';   
    _fields[1] = 'wmz';   
    _fields[2] = 'yandex'; 
    _fields[3] = false; 
    _fields[4] = false; 
    _fields[5] = false; 
        
    _wmr = $('#wmr').val().trimed();
    _wmz = $('#wmz').val().trimed();
    _yandex = $('#yandex').val().trimed();   
        
    $('#wmr').val(_wmr);
    $('#wmz').val(_wmz);
    $('#yandex').val(_yandex);
    
    _p_wmr = '^([0-9]){12}$';  
    _p_wmz = '^([0-9]){12}$';  
    _p_yandex = '^([0-9]){13,14}$';  
    
    if(_wmr.length == 0 && _yandex.length == 0 && _wmz.length == 0) {
        _mes = '<li>Вы не указали платежные реквизиты.</li>';         
    }
    
    var re = new RegExp(_p_wmr);
    var rez = new RegExp(_p_wmz);
    var re1 = new RegExp(_p_yandex);
    
    if (!re.test(_wmr + "") && _wmr.length > 0){
        _mes +='<li>Кошелек Webmoney (WMR): недопустимые символы. Должен состоять из 12 цифр.</li>';         
    } else if(re.test(_wmr + "") && _wmr.length > 0){
        _fields[3] = true; 
    } else if (_wmr.length == 0 && (_yandex.length > 0 || _wmz.length > 0)) {
        _fields[3] = true;
    }
    
    if (!rez.test(_wmz + "") && _wmz.length > 0){
        _mes +='<li>Кошелек Webmoney (WMZ): недопустимые символы. Должен состоять из 12 цифр.</li>';         
    } else if(rez.test(_wmz + "") && _wmz.length > 0){
        _fields[4] = true; 
    } else if (_wmz.length == 0 && (_yandex.length > 0 || _wmr.length > 0)) {
        _fields[4] = true;
    }
    
    if (!re1.test(_yandex + "") && _yandex.length > 0){
        _mes +='<li>Кошелек Yandex- Деньги: недопустимые символы. Должен состоять из 13 или 14 цифр.</li>';         
    } else if(re1.test(_yandex + "") && _yandex.length > 0){   
        _fields[5] = true;         
    } else if(_yandex.length == 0 &&( _wmr.length > 0 || _wmz.length > 0)) {
        _fields[5] = true; 
    }  
    
    if(_wmr_type == 'hidden' && _wmz_type == 'hidden' && _yandex_type == 'hidden') {
        _mes = '';
        _fields[3] = true; 
        _fields[4] = true; 
        _fields[5] = true; 
    } 
            
    if(_mes != '') {
        _mes = '<ul>' +_mes+ '</ul>';           
        $('#profile_error').removeClass().addClass('reg_error');   
        $('#profile_error').html(_mes); 
        $('#profile_error').show();
        
        for(j=0;j<3;j++){   
            ReplaceClassName(_fields[j], _fields[j+3]);              
        } 
        return false;
    } else { 
        _pass = $('#passw').val();
        _pass2 = $('#rpassw').val();  
         
        if (_pass.length > 0) {
            if(CheckPassword(_pass)) {
                CheckPassword2(_pass, _pass2);
            } 
        } 
        
        if(_mes == '') { 
            flobu = new flower_bubble ({
                base_obj: $( '#profile_block_mode' ),
                base_dir: '/images/',
                background: { css: 'white', opacity: 0.78 },
                bubble: { image: 'bubble.gif', width: 130, height: 98 },
                flower: { image: 'flower.gif', width: 32, height: 32 },
                block_mode: 'base_obj'
            }) ; 
            flobu.enable(); 
            
            var _data = $("#profile").serialize();
            url = '/ajax/registration.php';
            $.post(url, _data,
                function (data)
                {   
                    jsonResponse = eval('(' + data + ')');     
                    json_mes = '';
                    bad = true;  

                    if(jsonResponse['update_profile'] !== undefined && jsonResponse['update_profile'] != 'ok') {
                        bad = false;  
                        json_mes +='<li>Непредвиденная ошибка! Попробуйте ещё раз.</li>';
                        $('#profile_error').removeClass().addClass('reg_error');  
                        $('#profile_error').html(json_mes); 
                        $('#profile_error').show();                         
                    } else if(jsonResponse['update_profile'] !== undefined && jsonResponse['update_profile'] == 'ok') {                            
                        $('#profile_error').removeClass().addClass('reg_ok');     
                        $('#profile_error').html('<ul><li>Изменения внесены.</li></ul>'); 
                        $('#profile_error').show(); 
                    }  
                    
                    flobu.disable();
                    document.location.href="/profile";
                
                } 
            );              
            
        } else {
            _mes = '<ul>' +_mes+ '</ul>';               
            $('#profile_error').removeClass().addClass('reg_error');       
            $('#profile_error').html(_mes); 
            $('#profile_error').show();
        }
        
        for(j=0;j<3;j++){                     
            ReplaceClassName(_fields[j], _fields[j+3]);              
        }           
    } 
    

}

String.prototype.trimed=function(){
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
}