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;
        
    });    
    $('a.participate').click(function(){
        if (!Site.User) {
            AuthPlease(this, 'участвовать в тендере');
            return false;
        }
        else {
            $(this).hide();
            $('form.participate').slideDown('normal');
        }
        return false;
    });
    $('form.participate a.reset').click(function(){
        $('form.participate').slideUp('normal');
        $('a.participate').show();
        return false;
    });
    
    $('.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');
    });
    
    /* Пример Всплывающего баннера */
    $('#example_popup_banner_show').click(function() {
    	$('#example_popup_banner').css('display', 'block').css('visibility', 'visible');
    });
    $('#example_popup_banner').click(function() {
    	$(this).css('display', 'none').css('visibility', 'hidden');
    });
    
    /* Меню Offers */
    $('#smSpecialOffers div.holder:not(.selected)').mouseenter(function() {
    	$(this).find('.so-descr').css('display', 'block');
    	$(this).addClass('big');
	});
    $('#smSpecialOffers div.holder:not(.selected)').mouseleave(function() {
    	$(this).find('.so-descr').css('display', 'none');
    	$(this).removeClass('big');
	});
    $('#smSpecialOffers div.holder').click(function(){
    	location.href = $(this).find('.h1 a').attr('href');
    });
    
    /* Пряталка сообщений об ошибках, см. 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').live('click', function(){
        return Site.Bookmark(this);
    });
    
    /* Избранное (Посты) */
    $('.fave').live('click', function(){
        return Site.Fave(this);
    });
    
    $('.likeActive .control').live('click', function() {
    	return Site.Like(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 button-blue" 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: (Site.User ? 210 : 270), /*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');
    })
    
    /* is Integer? */
    function isInt(val) {
		var num = parseInt(val);
		return !isNaN(num) && val==num;
	}
    /* Навигация */
    $('li.level-up a').click(function(){
    	var locPart, attrHref = $(this).attr('href');
      var href = location.protocol+'//' + location.host + (attrHref.indexOf('/')!==0 ? '/' : '') + attrHref;
      var locArr = location.href.split('/');
      while(locArr.length) {
      	locPart = locArr.pop();
      	if(isInt(locPart)) {
  				href += (href.indexOf('?')==-1 ? '?' : '&') + 'scrollTo=' + locPart;
  				break;
      	}
      }
      location.href = href;
      return false;
    });
    
    $.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 button-blue" onclick="return $(this).popup(\'hide\')"><span>Закрыть</span></a>');
        return false;
    });
    
    $('a.contacts').click(function(){
        $('#popup-window .popup-body-content').html('');
        options = {
            width: 600,
            height: 275,
            title: $(this).attr('title')
        };
        message = $('div.contacts').length ? $('div.contacts').clone() : false;
        
        $(message).popup(options);
        $(message).popup('addButton', '<a href="#" class="button" onclick="return $(this).popup(\'hide\')"><span>Закрыть</span></a>');
        return false;
    });
    
    $('a.about-popup').click(function(){
        $('#popup-window .popup-body-content').html('');
        
        var strOptions = $(this).attr('rel').split("|");
        var listOptions = new Array();
        
        
        if (strOptions[1] != undefined) {
            var listOptions = strOptions[1].split("x");
        }
        
        //console.info(listOptions);
        //console.info($(this).attr('rel'));
        
        options = {
            width: (listOptions[0] != undefined) ? listOptions[0] : 500,
            height: (listOptions[1] != undefined) ? listOptions[1] : 300,
            title: $(this).attr("title")
        };
        
        message = $('#' + strOptions[0]).length ? $('#' + strOptions[0]).clone() : false;
        
        if (!message) {
            message = '<div id="' + strOptions[0] + '">Справка по данному разделу в процессе составления.</div>';
            $.extend(options, {
                height: 100
            });
        }
        
        //console.info(options);
        $(message).popup(options);
        $(message).popup('addButton', '<a href="#" class="button" onclick="return $(this).popup(\'hide\')"><span>Закрыть</span></a>');
        return false;
    });
    $('.interview-apply-button a').click(function(){
    	if($('.interview-apply .captcha img').length) {
    		hWindow = 400;
    	} else {
    		hWindow = 300;
    	}
        $('#popup-window .popup-body-content').empty();
        var options = {
            width: 450,
            height: hWindow,
            title: $(this).attr("title")
        };
        var ia_form = $('.interview-apply').clone();
		ia_form.css('display', 'block');
        ia_form.popup(options);
        ia_form.popup('addButton', '<a href="#" class="button button-blue" onclick="return $(\'#popup-window form\').submit()"><span>Отправить</span></a>');
		ia_form.popup('addButton', '<a href="#" class="button" onclick="return $(this).popup(\'hide\')"><span>Закрыть</span></a>');
        $('#popup-window .captcha img').refresh();
        $('#popup-window form').submit(function(){
            $.ajax({
                url: '/json.form.interview',
                type: 'post',
                cache: false,
                dataType: 'json',
                data: $(this).serialize(),
                success: function(data){
                    if (data.status == 'success') {
                        $('#popup-window').popup('hide');
                        $('#popup-window .popup-body-content').empty();
                        var options = {
                            width: 400,
                            height: 100,
                            title: 'Заявка отправлена'
                        };
                        var ia_message = $('.interview-apply-success').clone();
						ia_message.css('display', 'block');
                        ia_message.popup(options);
                        ia_message.popup('addButton', '<a href="#" class="button" onclick="return $(this).popup(\'hide\')"><span>Закрыть</span></a>');
                        
                    }
                    else {
                        $('#popup-window form .alert').text(data.message);
                    }
                }
            });
            return false;
        });
        return false;
    });
    $('#settings-destroy-company').click(function(){
        $('#popup-window .popup-body-content').empty();
        var options = {
            width: 450,
            height: 60,
            title: $(this).attr("title")
        };
        var destroy_comp = $('#destroy-company-body').clone();
        destroy_comp.css('display', 'block');
        destroy_comp.popup(options);
        destroy_comp.popup('addButton', '<a href="#" class="button button-blue" onclick="return $(\'#popup-window form\').submit()"><span>Ликвидировать</span></a>');
        destroy_comp.popup('addButton', '<a href="#" class="button" onclick="return $(this).popup(\'hide\')"><span>Отмена</span></a>');
        return false;
    });
    $('#d-annex').click(function(){
        $('#popup-window .popup-body-content').empty();
        var options = {
            width: 250,
            height: 410,
            title: $(this).attr("title")
        };
        var discount_sys = $('#discount-system').clone();
        discount_sys.css('display', 'block');
        discount_sys.popup(options);
        return false;
    });    
    $('.opinions-add-button a').click(function(){
    	hWindow = $('.opinions-add .captcha img').length ? 440 : 360;
        $('#popup-window .popup-body-content').empty();
        var options = {
            width: 450,
            height: hWindow,
            title: $(this).attr("title")
        };
        var opa_form = $('.opinions-add').clone();
        opa_form.css('display', 'block');
        opa_form.popup(options);
        opa_form.popup('addButton', '<a href="#" class="button button-blue" onclick="return $(\'#popup-window form\').submit()"><span>Отправить</span></a>');
        opa_form.popup('addButton', '<a href="#" class="button" onclick="return $(this).popup(\'hide\')"><span>Закрыть</span></a>');
        $('#popup-window .popup-foot-buttons-container').css('width',options.width/2+'px');
        $('#popup-window dfn.opinions-hints > i').click(function(){
        	$('#popup-window input[name="opa_theme"]').val($(this).html());
        });
        $('#popup-window .captcha img').refresh();
        $('#popup-window form').submit(function(){
            $.ajax({
                url: '/opinions',
                type: 'post',
                cache: false,
                dataType: 'json',
                data: $(this).serialize(),
                success: function(data){
                	if (data.status == 'success') {
                        $('#popup-window').popup('hide');
                        $('#popup-window .popup-body-content').empty();
                        var options = {
                            width: 400,
                            height: 100,
                            title: 'Отзыв добавлен'
                        };
                        var opa_message = $('.opinions-add-success').clone();
                        opa_message.css('display', 'block');
                        opa_message.popup(options);
                        opa_message.popup('addButton', '<a href="#" class="button" onclick="return $(this).popup(\'hide\')"><span>Закрыть</span></a>');
                        
                    } else {
                    	$('#popup-window form .alert').text(data.message)
                    }
                }
            });
            return false;
        });
        return false;
    });
    /* Opinion */
    $('#mb_show_opinion').click(function(){
    	$('.opinions-add-button a').trigger('click');
	});
    if(document.location.hash == '#show_opinion')
    	$(window).load(function () { $('.opinions-add-button a').trigger('click'); });
    /* BlueRoundCorners (.blockWithRoundBlue) */
    if($.browser.msie)
    	$('.blockWithRoundBlue').prepend('<em class="lt"></em><em class="lb"></em><em class="rt"></em><em class="rb"></em>');
    
});
    
$.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 button-blue" 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;
    }
});

