$(function() {

  $(window).resize(function() {
    var w = $(window).width(),
        m = parseInt($("body").css('min-width'), 10);
    $('.layout-screen-center').css({'max-width': w > m ? w : m });
  });
  $(window).resize();

  (function() {
    var $form = $("#header_portal_search_form");
    var $el = $form.find("input[name='query']");
    var placeholder = "Поиск по порталу";

    $el.val(placeholder).addClass('placeholder-mask');
    $el.focus(function() {
      if ($(this).val() == placeholder) {
        $(this).removeClass('placeholder-mask').val("");
      }
    });
    $el.blur(function() {
      if ($(this).val() == "") {
        $(this).addClass('placeholder-mask').val(placeholder);
      }
    });

    $form.submit(function(e) {
      if ( $el.val() == placeholder ) {
        $el.val("");
      }
    });
  })();
  
  (function() {
    var $form = $("#header_site_search_form");
    var $el = $form.find("input[name='query']");
    var placeholder = "Поиск по сайту";

    $el.val(placeholder).addClass('placeholder-mask');
    $el.focus(function() {
      if ($(this).val() == placeholder) {
        $(this).removeClass('placeholder-mask').val("");
      }
    });
    $el.blur(function() {
      if ($(this).val() == "") {
        $(this).addClass('placeholder-mask').val(placeholder);
      }
    });

    $form.submit(function(e) {
      if ( $el.val() == placeholder ) {
        $el.val("");
      }
    });
  })();

  $(".left-menu a.r_empty").click(function(e) {
    e.preventDefault();
    $("[id=sm" + this.id.replace('menu', '') + "]").toggle();
    $("[id=li" + this.id.replace('menu', '') + "]").toggleClass("arrow");
    $(this).toggleClass("arrow");
  });

  $(".calendar .calendar-wrap a").click(function(e) {
    if ($(this).closest('.calendar').hasClass('calendar-link')) { return true; }
    $(this).closest('.calendar').find(".calendar-form-wrap").toggle();
    e.preventDefault();
    return false;
  });
  
  $(".block-toggle-links a").live('click', function(e) {
    e.preventDefault();
    e.stopImmediatePropagation();
    $(this).closest('.list-links').find('li.toggle-hidden').toggle();
    $(this).parent().children().toggleClass('hid');
    return false;
  });

  $("input.input-datepicker").datepicker({
    inline: true,
    closeText: 'Закрыть',
    prevText: '&#x3c;Пред',
    nextText: 'След&#x3e;',
    currentText: 'Сегодня',
    monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
    monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', 'Июл','Авг','Сен','Окт','Ноя','Дек'],
    dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
    dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
    dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
    dateFormat: 'dd.mm.yy', 
    firstDay: 1,
    isRTL: false,
    yearRange: '1950:2020',
    buttonText: 'календарь',
    changeMonth: true,
    changeYear: true,
    //buttonImage: '/img/icons/calendar.png',
    //buttonImageOnly: 'true',
    showOn: 'both'
  });

  (function() {
    $(".visitor-signin-link").click(function(e) {
      var dw = $(document).width(),
          dh = $(document).height(),
          ww = $(window).width(),
          wh = $(window).height();
      $("#visitor_login_overlay").css({ opacity: '0.75' }).width(dw).height(dh).show();
      $("#visitor_login_dialog").css({ left: ww/2 - 150, top: wh/2 - 75 + $(window).scrollTop() }).show();
      $("#visitor_login_dialog input[name='v_login']").focus();
      e.preventDefault();
      return false;
    });

    $("#visitor_login_overlay, #visitor_login_cancel").click(function() {
      $("#visitor_login_overlay").hide();
      $("#visitor_login_dialog").hide();
    });

    $("#visitor_login_form").submit(function(e) {
      var login = $("#visitor_login_dialog input[name='v_login']").val(),
        password = $("#visitor_login_dialog input[name='v_password']").val(),
        url = $(this).attr('action');

      if (!login) { alert("Введите логин"); return false; }
      if (!password) { alert("Введите пароль"); return false; }

      $("#visitor_login_submit").attr('disabled','disabled');
      $("#visitor_login_dialog").css('cursor', 'wait');
      $.ajax({
        url: url,
        data: { type: 'ajax', v_login: login, v_password: password },
        type: 'POST',
        dataType: 'json',
        success: function(result) {
          $("#visitor_login_dialog").css('cursor', 'default');
          $("#visitor_login_submit").removeAttr('disabled');
          if (!result || !result.status) {
            alert("При отправке запроса произошла ошибка. Повторите попытку.");
          }
          if (result.status == "OK") {
            $("#visitor_login_dialog").hide();
            window.location.reload(true);
          } else if (result.status == "ERROR") {
            if (result.reason == 'ERR_LOGIN_FAILED') {
              alert("Неверный логин или пароль");
            } else if (result.reason == 'ERR_NOT_APPROVED') {
              alert("Ваша учетная запись ожидает проверки модератором");
            } else if (result.reason == 'ERR_BANNED') {
              alert("Ваша учетная запись заблокирована");
            } else if (result.reason == 'ERR_SERVICE_UNAVAILABLE') {
              alert("Данный функционал временно недоступен по техническим причинам.");
            } else {
              alert("При отправке запроса произошла ошибка. Повторите попытку.");
            }
          }
        },
        error: function() {
          $("#visitor_login_dialog").css('cursor', 'default');
          $("#visitor_login_submit").removeAttr('disabled');
          alert("При отправке запроса произошла ошибка. Повторите попытку.");
        }
      });

      return false;
    });
  })();

  $("a.comment-delete").live('click', function(e) {
    e.preventDefault();
    e.stopImmediatePropagation();
    var comment_id = $(this).attr('data-id'),
        url = $(this).attr('data-url');
    if (comment_id && url && confirm("Вы уверены, что хотите удалить комментарий?")) {
      $.ajax({
        type: 'POST',
        'url': url,
        'data': { 'act': 'delete', 'type': 'comment', 'comment_id': comment_id },
        dataType: 'json',
        error: function(xhr, status) {
          alert("При удалении комментария произошла ошибка. Пожалуйста, повторите попытку.");
        },
        success: function(result) {
          if (result.status == 'ERROR') {
            alert("При удалении комментария произошла ошибка. Пожалуйста, повторите попытку.");
          } else if (result.status == 'OK') {
            alert("Ваш комментарий удален.");
            window.location.reload(true);
          } else {
            alert("При отправке комментария произошла ошибка. Пожалуйста, повторите попытку.");
          }
        }
      });
    }
    return false;
  });

  $('ul.tree li:last-child').addClass('last');

});

function select_date(link, p) {
  document.location = link +'01.' +
    document.calendar.month.options[document.calendar.month.options.selectedIndex].value + '.' +
    document.calendar.year.options[document.calendar.year.options.selectedIndex].value +
    '&dft=' + p;
}

function switch_block (block_id) {
  var block = document.getElementById(block_id);
  if (block.style.display == 'none') { block.style.display = 'block'; }
  else { block.style.display = 'none'; }
}

function viewImage(imgSrc,width,height,title) {
  if (!width || !height) {
    pic_window = window.open('', 'image', '');

    var str = '<html><head><title></title></head><body style="margin: 0; padding: 0;">'+
              '<table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%"><tr>'+
              '<td align="center" valign="middle">' +
              '<img alt="' + title + '" src="' + imgSrc + '">' +
              '</td></tr></table></body></html>';
    pic_window.document.write(str);
    return;
  }

  var sWidth = screen.availWidth;
  var sHeight = screen.availHeight;

  var h = 50;
  if (title) {height = height + h};
  var pic_window = window.open('','', 'width=' + width + ', height=' + height + ',left='+(sWidth/2-350)+',top='+(sHeight/2-500));
  var str = '<html><head><title>' + title + '</title></head><body style="margin: 0; padding: 0;">' +
            '<img alt="' + title + '" src="' + imgSrc + '">' +
             '<div style="heigth: ' + h +
               '; width: 100%; text-align: center; font: 87.5%/150% Arial,sans-serif">'+ title +
             '</div>' +
             '</body></html>';
  pic_window.document.write(str);
  pic_window.document.close();
}

function newImage(arg) {
  if (document.images) {
    r = new Image();
    r.src = arg;
    return r;
  }
}

function change_img(img_id,old_img,new_img) {
  var $el = $('#' + img_id);
  $el.attr('src', $el.attr('src').replace(new RegExp(old_img), new_img) );
}

function resetForm(name) {
  $(':input',name)
   .not(':button, :submit, :reset, :hidden')
   .val('')
   .removeAttr('checked')
   .removeAttr('selected');
  var fResetUpdateAfter = $(name).data('updateAfter');
  if ($.isFunction(fResetUpdateAfter)) {
    fResetUpdateAfter();
  }
}
