// Плейсхолдеры
$(function() {
  $('#call_name, #call_phone, #spoken_translation_subject, #spoken_translation_start_time, #spoken_translation_end_time, #spoken_translation_place, #order_name, #order_email, #order_phone, #order_company, #order_comment').each(function() {
    $(this).addClass('placeholder');

    $(this).focus(function() {
      if ($(this).data('default-value') == $(this).val()) {
        $(this).removeClass('placeholder').val('');
      }
    });

    $(this).blur(function() {
      if ('' == $.trim($(this).val())) {
        $(this).addClass('placeholder').val($(this).data('default-value'));
      }
    });
  });
});

// Переключение текст/перевод
$(function() {
  $('.character-active-cloud a.translate').click(function(event) {
    event.preventDefault();
  });

  $('.clouds a.translate').toggle(function() {
    $(this).addClass('active');
    $(this).closest('.character-active-cloud').find('.text').fadeOut(function() {
      $(this).next('.translation').fadeIn();
    });
  }, function() {
    $(this).removeClass('active');
    $(this).closest('.character-active-cloud').find('.translation').fadeOut(function() {
      $(this).prev('.text').fadeIn();
    });
  });
});

// Переключение персонажей
$(function() {
  $('a.character-toggler').click(function(event) {
    event.preventDefault();

    $('.character-toggler.active').removeClass('active');

    $('.character-active-img').removeClass('character-active-img');
    $('.character-active-name').removeClass('character-active-name');
    $('.character-active-cloud').removeClass('character-active-cloud');

    $(this).addClass('active');

    $('.character-img-' + $(this).data('character-key')).addClass('character-active-img');
    $('.character-name-' + $(this).data('character-key')).addClass('character-active-name');
    $('.character-cloud-' + $(this).data('character-key')).addClass('character-active-cloud');

    $('.character-active-cloud a.translate.active').click();
  });
});

// Ссылки в блоке заказа
$(function() {
  $('#order-block-calculator-content-toggler').click(function(event) {
    event.preventDefault();

    if ($(this).is('.active')) {
      $('#order-block-calculator-content').slideUp();
    } else {
      $('#order-block-calculator-content').slideDown();
    }

    $(this).toggleClass('active');
  });

  $('#order-block-order-content-toggler').click(function(event) {
    event.preventDefault();

    if ($(this).is('.active')) {
      $('#order-block-order-content').slideUp();
    } else {
      $('#order-block-order-content').slideDown();
    }

    $(this).toggleClass('active');
  });
});

// Переключение типа перевода (письменный/устный)
$(function() {
  $('input[name="calculator-translation-type"]').change(function() {
    if ('written' == $(this).val()) {
      $('#order-block-calculator-translation-type-spoken-content').fadeOut(function() {
        $('#order-block-calculator-translation-type-written-content').fadeIn();
      });
    } else if ('spoken' == $(this).val()) {
      $('#order-block-calculator-translation-type-written-content').fadeOut(function() {
        $('#order-block-calculator-translation-type-spoken-content').fadeIn();
      });
    }
  });
});

$(function() {
  $('#various1').fancybox({
    'titlePosition' : 'inside',
    'transitionIn' : 'none',
    'transitionOut' : 'none',
    'onStart' : function() {
      var form = $('#call_form');
      form.find('button.submit').removeAttr('disabled');
      form.show();
      form.next('.message').hide();
    }
  });

  $('.call-drop em').click(function(e) {
    e.preventDefault();
    parent.$.fancybox.close();
  })
});

// Переключение типа обратного звонка
$(function() {
  $('input[name="call_time_type"]').change(function() {
    if ('automatic' == $(this).val()) {
      $('#call_call_time').attr('disabled', 'disabled');
    } else {
      $('#call_call_time').removeAttr('disabled');
    }
  });
});

// Магия в форме письменного перевода
$(function() {
  $('#written_translation_chars, #written_translation_pages').keypress(function(e) {
    if (!e.ctrlKey && -1 == $.inArray(e.which, [0, 8, 9])) {
      var c = String.fromCharCode(e.which);
      if (-1 != $.inArray(c, ['1', '2', '3', '4', '5', '6', '7', '8', '9']) || ($(this).val() && '0' == c)) {
        if ('written_translation_chars' == $(this).attr('id')) {
          $('#written_translation_pages').attr('disabled', 'disabled');
        } else {
          $('#written_translation_chars').attr('disabled', 'disabled');
        }
      } else {
        e.preventDefault();
      }
    }
  });

  $('#written_translation_chars').keyup(function() {
    var value = parseInt($(this).val());

    if (value) {
      $('#written_translation_pages').val(Math.ceil(value / 1800));
    } else {
      if (!$(this).val()) {
        $('#written_translation_pages').removeAttr('disabled');
      }
      $('#written_translation_pages').val('');
    }
  });

  $('#written_translation_pages').keyup(function() {
    var value = parseInt($(this).val());

    if (value) {
      $('#written_translation_chars').val(value * 1800);
    } else {
      if (!$(this).val()) {
        $('#written_translation_chars').removeAttr('disabled');
      }
      $('#written_translation_chars').val('');
    }
  });
});

// Кнопки добавить/удалить языковую пару
$(function() {
  $('.order-block .add-pair').click(function(e) {
    e.preventDefault();

    var plus = $(this);
    var minus = plus.closest('table').find('.delete-pair');

    var pair = $(this).closest('table').find('.pair:hidden:first');

    if (pair.length) {
      pair.fadeIn();
      minus.show();
    }

    if (!pair.next('.pair').length) {
      plus.hide();
    }
  });

  $('.order-block .delete-pair').click(function(e) {
    e.preventDefault();

    var pair = $(this).closest('table').find('.pair:visible:last');

    var minus = $(this);
    var plus = minus.closest('table').find('.add-pair');

    if (pair.prev('.pair').length) {
      pair.fadeOut(function() {
        plus.show();
      });
    }

    if (!pair.prev('.pair').prev('.pair').length) {
      minus.hide();
    }
  });
});

$(function() {
  $('button.submit').click(function(e) {
    e.preventDefault();

    var button = $(this);
    var form = $(this).closest('form');
    var ajax_loader = form.find('.ajax-loader');
    var message = form.next('.message');
    var result = form.find('.result');

    result.hide().text('');
    ajax_loader.fadeIn();
    button.attr('disabled', 'disabled');
    form.find('select:hidden').val('');

    form.ajaxSubmit({
      success: function(data) {
        if ('success' == data.status) {
          if ('written_translation_form' == form.attr('id')) {
            result.text(data.result);
          } else {
            form.fadeOut(function() {
              message.fadeIn();
            });
          }
        } else if ('error' == data.status) {
			if (!data.message)
				data.message = 'Max file size - 30Mb';
          alert(data.message);
        }

        ajax_loader.fadeOut(function() {
          result.fadeIn();
        });
        button.removeAttr('disabled');
      },
      dataType: 'json'
    });
  });
});

$(function() {
  $('.another_one').click(function(e) {
    e.preventDefault();

    var message = $(this).closest('.message');
    var form = message.prev('form');

    message.fadeOut(function() {
      form.find('.refresh-captcha').click();
      form.fadeIn();
    });
  });
});

$(function() {
  $('.refresh-captcha').click(function(e) {
    e.preventDefault();

    var image = $(this).closest('table').find('img.captcha');
    image.attr('src', image.attr('src').replace(/\d+$/, Math.round(Math.random() * 999999)));

    $(this).closest('table').find('#order_captcha, #spoken_translation_captcha').val('');
  });
});

$(function() {
  $('#written_translation_form input, #written_translation_form select').change(function() {
    $(this).closest('form').find('.result').hide();
  });
});

// Языковые пары
$(function() {
  $('select.destination_language').attr('disabled', 'disabled').html('');

  $('select.source_language').change(function() {
    var source_language_id = $(this).find(':selected').val();
    var destination_language_select = $(this).closest('.pair').find('select.destination_language');
    var form = $(this).closest('form');
    var button = form.find('button.submit');
    var ajax_loader = form.find('.ajax-loader');

    destination_language_select.attr('disabled', 'disabled').html('');
    ajax_loader.fadeIn();
    button.attr('disabled', 'disabled');

    $.post(destination_language_select.data('source-url'), {
      'source_language_id': source_language_id
    }, function(destination_languages) {
      ajax_loader.fadeOut(function() {
        button.removeAttr('disabled');
      });

      if (destination_languages.length) {
        destination_language_select.prepend('<option selected="selected"></option>');

        $.each(destination_languages, function() {
          destination_language_select.append('<option value="' + this.id + '">' + this.name + '</option>');
        });

        var enable_destination_language = function() {
          destination_language_select.val('').removeAttr('disabled');
        };

        // исправление бага в ie6 (подробности тут: http://csharperimage.jeremylikness.com/2009/05/jquery-ie6-and-could-not-set-selected.html)
        try {
          enable_destination_language();
        } catch (e) {
          setTimeout(enable_destination_language, 1);
        }
      }
    });
  });
});

$(function() {
  $('input[type=checkbox], input[type=radio]').prettyCheckboxes();
  $('.order-block button, .call-drop button').wrap('<span class="button-left"><span class="button-right"><span class="button-bg"></span></span></span>');
});

$(function() {
});

