var loaderImage = '/images/ajax-loader.gif';

$(function(){
  $('.topmenu > li').hover(function(){ $(this).addClass('hovered'); }, function(){ $(this).removeClass('hovered'); });
  $('.topmenu > li ul').parent('li').hover(function(){ $(this).addClass('submenu'); $(this).find('ul').show(); }, function(){ $(this).removeClass('submenu'); $(this).find('ul').hide(); });
  $('.tabbed_pages_controls').tabs('.tabbed_pages_content > .tab');
  
  $(".form_box form").submit(function(){
    var $ba = $("input.bank_account", this);
    
    if ($ba.length > 0) {
      var val = $ba.val();
      
      if (val.length != 20) {
        alert("Банковский счёт должен состоять из 20 цифр");
        return false;
      }
      
      if (val[0] != 4 || val.substr(5, 3) != 810) {
        alert("Неправильный номер банковского счёта");
        return false;
      }
    }
    
    var $email = $("input.email", this);
    if ($email.val() == "") {
      alert("Поле E-mail обязательно к заполнению");
      return false;
    }
    
    if (!$email.val().match(/[^@]+@.+\.\w{2,}/gi)) {
      alert("Не правильно указан E-mail");
      return false;
    }
    
    var $bc = $(".bank_card", $(this));
    
    if ($bc.length > 0) {
      var val = $bc.val();
      val = val.replace(/ /g, "")
      $bc.val(val);
      
      if (val.length != 16 && val.length != 18) {
        alert("Номер банковской карты должен состоять из 16 или 18 цифр");
        return false;
      }
    }
  });
  
  var resetFetcher = function(){
    $('.wmid-fetcher').val("");
  }
  
  $('#' + $('.currency-calculator').attr('currency')).keyup(resetFetcher).change(resetFetcher);
  
  var fwmid = function(){
    var val = $(this).val();
    
    if (val.length == 13) {
      var first_letter = val.substr(0, 1);
      var last_letter = $('#' + $('.currency-calculator', $(this).parents("form")).attr('currency')).val().substr(2, 1);
      
      if (first_letter.toLowerCase() == last_letter.toLowerCase()) {
        fetchWMID($(this), val);
      } else {
        alert("Введите WM" + last_letter + " кошелёк");
        resetFetcher();
      }
    }
  }
  
  var vwmid = function(){
    var val = $(this).val();
    
    if (val.length == 12) {
      validateWMID($(this), val);
    }
  }
  
  $('.wmid-fetcher').keyup(fwmid).change(fwmid).blur(fwmid).each(function(){
    var target = $('#' + $(this).attr('to'));
    var loader = $('<img />').attr({
      id: 'loader-' + $(this).attr('to'),
      src: loaderImage,
      align: 'absmiddle'
    });
    
    target.after(loader);
    loader.hide();
  });
  
  $('.validate-wmid').keyup(vwmid).change(vwmid).blur(vwmid).each(function(){
    var target = $(this);
    var loader = $('<img />').attr({
      id: 'loader-' + $(this).attr('id'),
      src: loaderImage,
      align: 'absmiddle'
    });
    
    target.after(loader);
    loader.hide();
  });
});

function roundVal(value, precision) {
  var result = Math.round(value * Math.pow(10, precision)) / Math.pow(10, precision);
  return result;
}
