/*
 * Obsluga userbox-a
 * obsluga zglaszania materialow moderatorowi
 *
 * PLIK TEN JEST DOLACZONY ZAWSZE
 */


$(document).ready( function() {
  $('.dp').datepicker();
  userbox.setup();

  //zglaszanie moderatorowi
  $('.moderate').click(function() {
    url_adress = $(this).attr('href')
    $.ajax({
      url: url_adress,
      type: 'get',
      dataType: 'json',
      success: function(ret) {
        if( ret.result ) {
          alert('Zgłoszono materiał moderatorowi.')
        } else {
          alert('Nie zgłoszono z powodu błędu.')
        }
      }
    })
    return false;
  })
})

userbox = {
  default_title : 'Logowanie',
  arrow_mode : 'down',
  verify_email : /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/,
  verify_nick : /^([a-zA-Z])([a-zA-Z0-9_]{3,})$/,
  status_nick : false,
  status_email : false,
  status_haslo : false,
  ajax_load : '<img src="/img/ajax-loader-black.gif" alt="" />',
    
  switch_to_register : function() {
    $('#userbox_rejestracja').show();
    $('.userbox_link').hide();
    $('#userbox_title').html('Rejestracja');
    $('.userbox_arrow img').attr('src', '/img/userbox_arrow_up.gif');
    userbox.arrow_mode = 'up';
        
    return false;
  },
    
  switch_to_login : function() {
    $('#userbox_logowanie').show();
    $('.userbox_link').hide();
    $('#userbox_title').html('Logowanie');
    $('.userbox_arrow img').attr('src', '/img/userbox_arrow_up.gif');
    userbox.arrow_mode = 'up';
  },
    
  reset : function() {
    $('#userbox_logowanie').hide();
    $('#userbox_rejestracja').hide();
    $('.userbox_link').show();
    $('#userbox_title').html(this.default_title);
    $('.userbox_arrow img').attr('src', '/img/userbox_arrow_down.gif');
    if(userbox.arrow_mode=='down') {
      userbox.switch_to_login();
    } else {
      userbox.arrow_mode = 'down';
    }
  },
    
  check_nick : function() {
    userbox.status_nick = false;
    if($('#userbox_rejestracja_nick').attr('value')=='' ) return;
        
    if( userbox.verify_nick.test($('#userbox_rejestracja_nick').val())) {
            
    } else {
      $('#userbox_rejestracja_nick_error').html('nieprawidłowy nick')
      $('#userbox_rejestracja_nick').css('color','red')
      return
    }
        
    $('#userbox_rejestracja_nick_error').html('sprawdzam dostępność..');
    $('#userbox_rejestracja_form').ajaxSubmit( {
      url:'/rejestracja/check_nick',
      success:function(ret) {
        if(ret=='true') {
          $('#userbox_rejestracja_nick').css('color','green')
          $('#userbox_rejestracja_nick_error').html('nick dostępny');
          userbox.status_nick=true
        } else {
          $('#userbox_rejestracja_nick').css('color','red')
          $('#userbox_rejestracja_nick_error').html('nick jest już zajęty')
        }
      }
      })
  },
    
  check_email : function() {
    userbox.status_email = false;
    if($('#userbox_rejestracja_email').val()=='' ) return;
        
    if( userbox.verify_email.test($('#userbox_rejestracja_email').val()) ) {
            
    } else {
      $('#userbox_rejestracja_email').css('color','red')
      $('#userbox_rejestracja_email_error').html('nieprawidłowy email')

      return;
    }
        
    $('#userbox_rejestracja_email_error').html('sprawdzam email..');
    $('#userbox_rejestracja_form').ajaxSubmit( {
      url:'/rejestracja/check_email',
      success:function(ret) {
        if(ret=='true') {
          $('#userbox_rejestracja_email').css('color','green')
          $('#userbox_rejestracja_email_error').html('adres prawidłowy')
        } else {
          $('#userbox_rejestracja_email').css('color','red')
          $('#userbox_rejestracja_email_error').html('ten adres jest już wykorzystany')
        }
      }
      })
  },
    
  check_password : function() {
    userbox.status_haslo = false;
    $('#userbox_rejestracja_haslo_error').html('')
    if($('#userbox_rejestracja_haslo').val()=='' ) return;
    if($('#userbox_rejestracja_powtorz_haslo').val()=='' ) return;
        
    if($('#userbox_rejestracja_haslo').val()==$('#userbox_rejestracja_powtorz_haslo').val()) {
      $('#userbox_rejestracja_haslo').css('color','green')
      $('#userbox_rejestracja_powtorz_haslo').css('color','green')
      $('#userbox_rejestracja_haslo_error').html('hasła pasują')
    } else {
      $('#userbox_rejestracja_haslo').css('color','red')
      $('#userbox_rejestracja_powtorz_haslo').css('color','red')
      $('#userbox_rejestracja_haslo_error').html('hasła nie pasują')
    }
  },
    
  perform_login : function() {
    $('#userbox_button_login_msg').html(userbox.ajax_load + ' logowanie trwa...').css('float','right').css('margin','22px 10px 10px 10px').show()
    $('#userbox_button_login').hide();
        
    $('#userbox_login_form').ajaxSubmit( {
      url:'/rejestracja/zaloguj',
      success:function(ret) {
        if(ret=='true') {
          tmp = location.href
          location.href=tmp
        }
        else {
          $('#userbox_button_login_msg').html('Błąd. Nieprawidłowy adres email lub hasło.').css('float','right').css('margin','22px 10px 10px 10px').show()
          $('#userbox_button_login').show();
        }
      }
            
    } )
  },
    
  perform_register : function() {
    if( userbox.verify_email.test($('#userbox_rejestracja_email').val()) &&
      userbox.verify_nick.test($('#userbox_rejestracja_nick').val()) &&
      $('#userbox_rejestracja_haslo').val() == $('#userbox_rejestracja_powtorz_haslo').val() &&
      $('#userbox_rejestracja_haslo').val() != '' ) {
    
    } else {
      alert('W formularzu rejestracyjnym znajdują się błędy.')
      return;
    }

    $('#userbox_button_rejestruj_msg').html(userbox.ajax_load + ' rejestracja trwa...').css('float','right').css('margin','22px 10px 10px 10px').show()
    $('#userbox_button_rejestruj').hide();

    $('#userbox_rejestracja_form').ajaxSubmit( {
      url:'/rejestracja/rejestruj',
      success:function(ret) {
        if(ret=='true') {
          //$('#userbox_rejestracja').html('Rejestracja zakończona powodzeniem. Na podany adres został wysłany link aktywacyjny..').css('padding','10px')
          location.href='/rejestracja/sukces'
        }
        else{
          $('#userbox_button_rejestruj_msg').html('Rejestracja zakończona niepowodzeniem. Prawdopodobnie w formularzu rejestracyjnym znajdują się błędy.').css('float','right').css('margin','22px 10px 10px 10px').show();
          $('#userbox_button_rejestruj').show();
        }
      }
    })
  },
    
  setup : function() {
    $('#userbox_link_register').click(function() {
      userbox.switch_to_register();
      return false;
    })
      
    $('#userbox_link_login').click(function() {
      userbox.switch_to_login();
      return false;
    })
      
    $('a.userbox_arrow').click(function() {
      userbox.reset();
      return false;
    })
      
    $('form#userbox_login_form').submit(function() {
      userbox.perform_login()
      return false;
    })
      
    $('a#userbox_button_login').click(function() {
      userbox.perform_login()
      return false;
    })
      
    $('#userbox_rejestracja_nick').blur(function() {
      userbox.check_nick();
      return false;
    }).keypress(function() {
      $(this).css('color','black')
    })
        
    $('#userbox_rejestracja_email').blur(function() {
      userbox.check_email();
      return false;
    }).keypress(function() {
      $(this).css('color','black')
    })
        
    $('#userbox_rejestracja_haslo').blur(function() {
      userbox.check_password();
      return false;
    }).keypress(function() {
      $(this).css('color','black')
      $('#userbox_rejestracja_powtorz_haslo').css('color','black')
    })
        
    $('#userbox_rejestracja_powtorz_haslo').blur(function() {
      userbox.check_password();
      return false;
    }).keypress(function() {
      $(this).css('color','black')
      $('#userbox_rejestracja_haslo').css('color','black')
    })
        
    $('#userbox_button_rejestruj').click(function() {
      userbox.perform_register();
      return false;
    })
        
  }
};
