
var WindowImagePreviewReference = null;

$(function(){

  $.headJS("/js/popup.js");
  $('.hover').live('mousemove', function(/* Event */ ev){
    var x = ev.pageX, y = ev.pageY;
    if (!$('.hover-big').length) {
      var i = $(this);
      if ($(i).get(0).tagName != 'IMG') {
        i = $(i).find('img');
      }
      var src = $(i).attr('longdesc');

      if (!src) return false;

      $('body').append('<div class="hover-big" style="display:none;"></div>');
      $('.hover-big').css({backgroundImage : "url('" + src + "')"});
      $('.hover-big').show();
      if ($.browser.msie) $('.hover-big').append('<iframe></iframe>');
    }
    var setPreview = function() {
      var dim = {w : $('.hover-big').width(), h : $('.hover-big').height()};
      dim.l = ev.clientX + 25;
      dim.t = ev.clientY - $('.hover-big').height() / 2;
      dim.r = $(window).width() - dim.l - dim.w;
      dim.b = $(window).height() - dim.t - dim.h;

      if (dim.t < 10) { /* под курсором */
        dim.t = y + 25;
      } else if (dim.b < 10) { /* над курсором */
        dim.t = y - 25 - dim.h;
      } else { /* по центру */
        dim.t = y - dim.h / 2;
      }

      if (dim.r < 10) { /* слева курсора */
        dim.l = x - 25 - dim.w;
      } else { /* справа курсора */
        dim.l = x + 25;
      }
      $('.hover-big').css({top : dim.t + 'px', left : dim.l + 'px'});

      $('.hover-big iframe').css({
        width  : (dim.w + 6) + 'px',
        height : (dim.h + 6) + 'px',
        top  : '-3px',
        left : '-3px'
      });
    }

    setPreview();

  })
  $('.hover').live('mouseout', function(ev){
    $('.hover-big').remove();
  })

  $('a > img.hover').click(function(){
    var a = $(this).parent();

    if (!$(a).hasClass('original')) return jsiBoxOpen($(a).get(0));

    return true;

  });

  $('.filter input, .filter select, .filter option, .filter textarea').focus(function(){$(this).addClass('focused')});
  $('.filter input, .filter select, .filter option, .filter textarea').blur(function(){$(this).removeClass('focused')});

  /* Пряталка сообщений об ошибках, см. validateForm() */
  $('.required input, .required textarea, .required select').live('click', function(){
    $('cite.error').remove();
    $('.required input, .required textarea, .required select').removeClass('error');
  });

  /* Принтер */
  $('.printer a').click(function(){
    return Site.Print(this);
  });

  /* Избранное */
  $('.bookmark a').click(function(){
    return Site.Bookmark(this);
  });

  /* Лоты */
  $('.tender .lots table tr:first').addClass('first-row');
  $.each($('.tender .lots table tr'), function(i, item){$(item).find('td:first').addClass('fcm_first')});

  /* Форма отправки письма */
  $('a.mailto').click(function() {
    var smForm = $('form.mailto');
    $('#popup-window .popup-body-content').empty();
    if ($(smForm).length) $(smForm).remove();
    
    var html, title, subject, className;
    
    title   = $(this).hasClass('vacancy') ? 'Отправить резюме' : 'Написать письмо';
    subject = $(this).hasClass('vacancy') ? 'Резюме' : '';
    className = $(this).hasClass('vacancy') ? 'vacancy' : '';
    if(!$('.bbs_card')) {
    	var recipient = '<label>Кому:</label>\
    					<div class="dd recipient"></div>';
    } else {
    	var recipient = '';
    }
    
    var html = '<form class="mailto ' + className + '" action="' + $(this).attr('href').split('#').join('') + '" method="post" enctype="multipart/form-data">\
      <input type="hidden" name="json" value="1" />\
      <div>\
        <div class="dl-dt-dd">' + recipient + '\
        <label for="m_from">Ваше имя: <i>*</i></label>\
        <div class="dd"><input name="m_from" id="m_from" /></div>\
        <label for="m_addr">Эл. почта: <i>*</i></label>\
        <div class="dd"><input name="m_addr" id="m_addr" class="email" /></div>';
        
     if (!$(this).hasClass('vacancy')) html+= '<label for="m_subj">Тема: <i>*</i></label>\
        <div class="dd"><input name="m_subj" id="m_subj"/></div>';
        
     html+= '<label for="m_body">Сообщение: <i>*</i></label>\
        <div class="dd"><textarea name="m_body" id="m_body"></textarea></div>';

     if ($(this).hasClass('vacancy')) html+= '<label for="m_file">Резюме: <i>*</i></label>\
        <div class="dd"><input name="m_file" id="m_file" type="file"/></div>';
        
     html+= (Site.User ? '' : '<label for="m_captcha" class="dt captcha">Введите код: <i>*</i></label>\
        <div class="dd captcha"><input name="m_captcha" id="m_captcha" /><img src="/captcha" width="90" height="40" title="Введите символы, изображенные на картинке" alt="Введите символы, изображенные на картинке" /><a onclick="return $(\'.captcha img\').refresh()" href="/captcha" title="Обновить код на картинке">обновить код</a></div>') +
        '<a class="button submit" href="' + $(this).attr('href') + '" onclick="$(\'form.mailto\').submit(); return false;"><span>Отправить</span></a>\
        <input type="submit" class="hidden-submit" />\
      </div>\
      </div>\
      </form>';
    
    $('body').append(html);
    smForm = $('form.mailto');

    $(smForm).find('.recipient').html($(this).attr('lang'));
    $(smForm).children('div').popup({title:title, form:true, width:450, height: 'auto', /*height: Site.User ? 0 : 0,*/ overflow:'visible',  modal:false});

    $('form.mailto').submit(function(){
    	return $.mailto(this);
    	//onsubmit="console.info("submit"); return false;$.mailto(this); return false;" 
    });
    
    $.getJSON($(this).attr('href').split('#').join(''), {'current-user':1, 'json':1}, function(json){
      if (json.name) $('#m_from').val(json.name);
      if (json.email) $('#m_addr').val(json.email);
    });

    return false;
  });

  $('form.mailto').find('input, textarea').live('click', function(){
    $(this).removeClass('error');
  })

  $.headJS("/js/popup.js");

  var gmapSlideDown = function(scrollTo)
  {
    $('iframe.gmap').slideDown('slow', function() {

      var coord = $(scrollTo).offset();
      console.info('position %o, offset %o', $(scrollTo).position(), $(scrollTo).offset());
      window.scrollTo(coord.left, coord.top);
    });
  }

  $('h2 a.gmap').click(function(){
    if ($('iframe.gmap').length) {
      if ($('iframe.gmap:visible').length) $('iframe.gmap').slideUp('slow');
      else gmapSlideDown($(this));
    } else {
      $(this).parent().after('<iframe frameborder="no" scrolling="no" hspace="0" vspace="0" width="620" height="420" src="' + $(this).attr('href') + '" class="gmap" style="display: none;"></iframe>');
      gmapSlideDown($(this));
    }
    return false;
  });


    $('span.about-this a').click(function(){ /* Справка о текущем разделе */
        $('#popup-window .popup-body-content').html('');
        options = {
            width: 600,
            height: 400,
            title: 'О разделе'
        };
        message = $('#content-about-this').length ? $('#content-about-this').clone() : false;
        if(!message){
            message = '<div id="content-about-this">Справка по данному разделу в процессе составления.</div>';
            $.extend(options, {height: 100});
        } else $.extend(options, {title: $('.section-name', message).text()});
        $(message).popup(options);
        $(message).popup('addButton', '<a href="#" class="button" onclick="return $(this).popup(\'hide\')"><span>Закрыть</span></a>');
        return false;
    });


});

$.extend({
  mailto : function(form)
  {
	console.info('mailto');
    var errors = false;
    form = form ? $(form) : $('form.mailto');
    
    $.each($(form).find('input[type=text], textarea'), function(i, item){
      $(item).removeClass('error');
      if (!$(item).val()) {
        $(item).addClass('error');
        errors = true;
      }
      if ($(item).val() && $(item).hasClass('email')) {
        if ($(item).val().search(/^[\w][\w\.-]*[\w]@[\w][\w\.-]*[\w]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/) == -1) {
          $(item).addClass('error');
          errors = true;
        }
      }
    });

    if (!errors) {
      
      if ($(form).hasClass('vacancy')) return true;
      
      $('#popup-window').addClass('loading');
      $.post($('form.mailto').attr('action'), $('form.mailto').serialize(), function(json){
        $('#popup-window').removeClass('loading');
        if (json.message) {
          $('#popup-window .popup-body-content').append('<p class="response" style="display: none">' + json.message + '</p>');
          var re = $('#popup-window .popup-body-content p.response');
          if (!json.sendmail) {
            re.append('. <a href="back">Вернуться</a>');
            re.find('a').click(function(){
              $('#popup-window .popup-body-content form div').show();
              $(this).parent().remove();
              $('form.mailto #m_captcha').val('');
              $('form.mailto .captcha img').refresh();
              re.popup('clearButtons');
              re.popup('addButton', '<a class="button submit" href="' + $('form.mailto').attr('action') + '" onclick="return $.mailto()"><span>Отправить</span></a>');
              return false;
            });
          }
          re.css({'text-align':'center', 'line-height':$('#popup-window .popup-body-content').height() + 'px'});
          re.popup('clearButtons');
          re.popup('addButton', '<a onclick="return $(this).popup(\'hide\')" href="/company/26610/mailto/close/" class="button submit"><span>Закрыть</span></a>');
          $('#popup-window .popup-body-content form div').hide();
          re.show();
        }
      }, "json");
    }

    return false;
  }
});