function setCenter(item) {
    var windowHeight = document.documentElement.clientHeight,
            currentOffset = document.documentElement.scrollTop || document.body.scrollTop,
            pLeft = parseInt($(item).outerWidth() / 2);
    currentOffset = currentOffset + parseInt((windowHeight - $(item).outerHeight()) / 2);
    currentOffset = (currentOffset < 10) ? 10 : currentOffset;
    $(item).css({top:currentOffset,marginLeft:-pLeft}).show();
}

function showStatusPopup(msg){
    var successTime;
    $("#statusPopup h2").text(msg);
    clearTimeout(successTime);
    showPopup('statusPopup');
    successTime = setTimeout(function() {
        $('#statusPopup').find('.popup-close').trigger('click');
    }, 2000);
}

function showPopup(popup) {
    popup = $('#'+popup);
    setCenter(popup);
    createBlind(popup);
    popup.show().find('.popup-close, #fttx-close').click(function(){
        closePopup(popup);
        return false;
    });
}

function createBlind(popup) {
    var $blind = $('<div class="blind"></div>'),
            pageHeight = $(document).height();

    $blind.height(pageHeight).appendTo('body');
    $blind.click(function(){
        closePopup(popup);
    });
}

function closePopup(popup) {
	if(popup.hasClass('video-close')) $jw.getPlayers()[parseInt(popup.attr('rel'))].stop();
    $('div.blind').remove();
    popup.hide();
    return false;
}

function equalHeight(ctx) {
    var maxHeight = 0;

    $('.srvItem', $(ctx)).each(function() {
        if ($(this).height() > maxHeight) maxHeight = $(this).height();
    });

    $('.srvItem', $(ctx)).each(function() {
        $(this).height(maxHeight)
    })
}

var mapID = "",
    lon = 0,
    lat = 0,
    titleMark = "";

// Функция работы с яндекс.картами
function initMap () {
    var map = new YMaps.Map(YMaps.jQuery(mapID)[0]);
    map.setCenter(new YMaps.GeoPoint(lon,lat), 15, YMaps.MapType.MAP);
    map.addControl(new YMaps.Zoom());
    map.addControl(new YMaps.ToolBar());
    map.addControl(new YMaps.TypeControl([
        YMaps.MapType.MAP,
        YMaps.MapType.SATELLITE,
        YMaps.MapType.HYBRID
    ], [0, 1, 2]));

    YMaps.Styles.add("constructor#pmlbmPlacemark", {
        iconStyle : {
            href : "http://api-maps.yandex.ru/i/0.3/placemarks/pmlbm.png",
            size : new YMaps.Point(28,29),
            offset: new YMaps.Point(-8,-27)
        }
    });

    map.addOverlay(createObject("Placemark", new YMaps.GeoPoint(lon,lat), "constructor#pmlbmPlacemark", titleMark));

    function createObject (type, point, style, description) {
        var allowObjects = ["Placemark", "Polyline", "Polygon"],
            index = YMaps.jQuery.inArray( type, allowObjects),
            constructor = allowObjects[(index == -1) ? 0 : index];
            description = description || "";

        var object = new YMaps[constructor](point, {style: style, hasBalloon : !!description});
        object.description = description;

        return object;
    }
}

var send = false;

// Отправка сообщения
function sendMessage(cls,file,popup,text,data2){
    if(send) return false;
    send = true;
    popup = popup || false;
    data2 = data2 || {};
    text = text || "Ваше сообщение успешно отправлено";
    var data = $('form.'+cls).find('input:text, input:hidden, textarea, input:checked, select').add(data2);
    data.removeClass('error');
    $.post('/'+file+'_jx.php',data,
        function(msg) {
            if (msg.error) {
                alert("Ошибка при отправке сообщения.");
            } else {
                $('form.'+cls).find('input:text, textarea').val('');
                $('form.'+cls).find('input:checked').removeProp("checked");
                $('form.'+cls).find('select').removeProp("selected");

                if(popup) $('.'+popup).find('.popup-close').click();
                showStatusPopup(text);
                if(file == "order") clearCart();
            }
            send = false;
        },
    'json');

    return false;
}

function clearCart() {
    $('.cartWrap').html('<span class="noItems">В корзине ничего нет</span>');
}

function number_format( number, decimals, dec_point, thousands_sep ) {	// Format a number with grouped thousands
	//
	// +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +	 bugfix by: Michael White (http://crestidg.com)

	var i, j, kw, kd, km;

	// input sanitation & defaults
	if( isNaN(decimals = Math.abs(decimals)) ){
		decimals = 2;
	}
	if( dec_point == undefined ){
		dec_point = ",";
	}
	if( thousands_sep == undefined ){
		thousands_sep = ".";
	}

	i = parseInt(number = (+number || 0).toFixed(decimals)) + "";

	if( (j = i.length) > 3 ){
		j = j % 3;
	} else{
		j = 0;
	}

	km = (j ? i.substr(0, j) + thousands_sep : "");
	kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
	//kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).slice(2) : "");
	kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");


	return km + kw + kd;
}

// Вычисление общей суммы корзины
function cartSum() {
    var $sumPrice = $('.sumPrice em.total'),
        _totalSum = 0;

    $('.cartBlock tbody tr').each(function() {
        var amount  = parseInt($(this).find('.iText').val()) || 0,
            price   = parseFloat($(this).find('.itemPrice').text().replace(' ', '').replace(',', '.')) || 0;

        _totalSum += amount * price;
    });

    //_totalSum.toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');

    $sumPrice.text(number_format(_totalSum, 2, ',', ' ') || 'не известно ');
}

$(function() {

    $('.scrollBlock').each(function() {
        var liCount = $(this).find('li').length,
            arrows = $(this).find('.scrollArrow');

        if (liCount < 2) arrows.addClass('disabled');
    });


    $('.scrollHolder').jCarouselLite({
        btnPrev : '.sa-Left',
        btnNext: '.sa-Right',
        visible : 1,
        circular: 0,
        speed : 300
    });

    $('.srvScroll').jCarouselLite({
        btnPrev : '.srvScroll .ss-Left',
        btnNext: '.srvScroll .ss-Right',
        visible : 2,
        circular: 0,
        speed : 300
    });

    $('#longScroll-1').jCarouselLite({
        btnPrev : '#longScroll-1 .ss-Left',
        btnNext: '#longScroll-1 .ss-Right',
        visible : 2,
        circular: 0,
        speed : 300
    });

    $('#longScroll-2').jCarouselLite({
        btnPrev : '#longScroll-2 .ss-Left',
        btnNext: '#longScroll-2 .ss-Right',
        visible : 2,
        circular: 0,
        speed : 300
    });

    if ($('.srvScroll li').length < 3) $('.srvScroll .ssArrows').addClass('ssArrowsHide');
    if ($('#longScroll-1 li').length < 3) $('#longScroll-1 .ssArrows').addClass('ssArrowsHide');
    if ($('#longScroll-2 li').length < 3) $('#longScroll-2 .ssArrows').addClass('ssArrowsHide');

    equalHeight('#longScroll-1');
    equalHeight('#longScroll-2');


    $('#fttxLink').click(function() {
        showPopup('fttxPopup');
        return false;
    });

 $('.mvPreview a').click(function() {
        var $a = $(this),
                $holder = $a.parents('.miniViewer'),
                $img = $holder.find('.itemImg img');

        if( !$a.hasClass('mvActive') ) {
            $('.mvActive' , $holder).removeClass('mvActive');
            $a.addClass('mvActive');
            $img.attr('src' , $a.attr('href'));
        }

        return false;
    }).eq(0).click();

    if ($('.mvPreview a').length == 1) $('.mvPreview').hide();

/*    $('.mvPreview a').click(function() {

        var $a = $(this),
                $holder = $a.parents('.miniViewer'),
                $img = $holder.find('.itemImg img');

        if( !$a.hasClass('mvActive') ) {
            $('.mvActive' , $holder).removeClass('mvActive');
            $a.addClass('mvActive');
            $img.attr('src' , $a.attr('href'));
        }

        return false;
    });

    $('.mvPreview a:eq(0)').trigger('click');
*/

    $('#cb-Confirm').click(function() {
        showPopup('orderPopup');
        return false;
    });

    $('#enroll_phone').numeric('1');
    $('#enrollForm').validate({
        rules : {
            'enroll[seminar]' : {
                required : true
            },
            'enroll[fio]' : {
                required : true,
                minlength : 3
            },
            'enroll[phone]' : {
                required : true,
                minlength : 5
            },
            'enroll[email]' : {
                required : true,
                email : true
            }
        },
        submitHandler : function(form) {
            sendMessage('seminarForm', 'seminar', 'orderPopup', "Ваша заявка успешно принята");
        }
    });

    $('.enroll').click(function() {
        var o = $("#enroll_seminar option[value='"+$(this).attr("rel")+"']");
        var r = o.attr("rel");
        if (r) $("#enrollForm span.enrollDate").text(o.attr("rel"));
        o.prop("selected",true);

        $("#enroll_seminar").change(function(){
            var rel = $(this).find(":selected").attr("rel");
            if(rel) $("#enrollForm span.enrollDate").text(rel);
        });

        showPopup('enrollPopup');
        return false;
    });



    if( parseInt( $('.scrollBlock').height() , 10 ) % 2 == 1 ) {
        $('.scrollBlock').height( $('.scrollBlock').height() + 1 );
    }

    // Подсветка пункта меню
    $('.mainMenu a').hover(function() {
        $(this).parent('li').addClass('mmHover')
    }, function() {
        $(this).parent('li').removeClass('mmHover')
    });

    // Добвление в корзину
    (function() {
        var successTime;
        $('.itemCount .iText').numeric('1');
        $('a.addBacket').click(function() {
            var input = $(this).parents('tr').find("input.iText"),
            cntItem = input.val(),
            id = input.attr("id"),
            cost = input.attr("rel");

            if(send) return false;

            input.removeClass("error");
            if(cntItem <= 0){
                input.addClass("error");
            } else {
                send = true;
                $.post('/basket_jx.php',{id: id, cnt: cntItem, cost:cost, act: "add"},
                    function(msg) {
                        if (msg.error) {
                            alert("Ошибка при добавлении товара.");
                        } else {
                            $("#cnt_items").text(msg.result);
                            showStatusPopup("Товар успешно добавлен в корзину");
                        }
                        send = false;
                    },
                'json');
            }
            return false;
        });
    })();

    cartSum();
    $('.cartBlock .iText').bind({
        'keyup': cartSum,
        'change': function() {
            if ($(this).val() == '') $(this).val('0');
        }
    });

    $('.cb-Clear').click(function() {
        if(send) return false;
        send = true;
        $.post('/basket_jx.php',{act: "clear"},
            function(msg) {
                if (msg.error) {
                    alert("Ошибка при отчистки корзины.");
                } else {
                    $("#cnt_items").text(msg.result);
                    clearCart();
                }
                send = false;
            },
        'json');
        return false;
    });

    $('.itemRemove').click(function() {
        var $parentBlock = $(this).parents('.cartBlock'),
            tr = $(this).parents('tr'),
            id = tr.find("input.iText").attr("id");

        if(send) return false;
        send = true;
        $.post('/basket_jx.php',{id: id, act: "remove"},
            function(msg) {
                if (msg.error) {
                    alert("Ошибка при удалении товара.");
                } else {
                    $("#cnt_items").text(msg.result);
                    if ($parentBlock.find('tr').size() < 3) {
                        $parentBlock.remove();
                        if( !$('.cartBlock').length ) clearCart();
                    } else {
                        tr.remove();
                    }
                    cartSum();
                }
                send = false;
            },
        'json');

        return false;
    });

    // Валидация форма заказа продукции
    $('#order_phone').numeric('1');
    $('#orderForm').validate({
        rules : {
            'order[fio]' : {
                required : true,
                minlength : 3
            },
            'order[phone]' : {
                required : true,
                minlength : 5
            },
            'order[email]' : {
                required : true,
                email : true
            }
        },
        submitHandler : function(form) {
            sendMessage('orderForm', 'order', 'orderPopup', "Ваш заказ успешно отправлен", $(".cartBlock").find('input:text'));
        }
    });

    $('.orderReq a', '#orderForm').click(function() {
        $('.orderReqSlide', '#orderForm').slideToggle();
        return false;
    });

    // Все категории продукции
    $('.prodCol a').click(function() {
        var $nextSlide = $(this).next('.subProdList');

        if ($nextSlide.length) {
            $nextSlide.slideToggle();
            $(this).toggleClass('spActive');

            return false;
        }
    });

    $('.prodCol a').each(function() {
        var $nextSlide = $(this).next('.subProdList');

        if (!$nextSlide.length) {
            $(this).addClass('excLink');
        }
    });

    // Список вакансий
    $('.vacancyList dd').hide();
    $('.vacancyList dt a').click(function() {
        var $slideDD = $(this).parents('dt').next('dd');

        if ( $slideDD.is(':visible') ) {
            $slideDD.slideUp();
        } else {
            $('dd', '.vacancyList').slideUp();
            $slideDD.slideDown();
        }

        return false;
    });

    // Форма в контактах
    $('#cntSend').validate({
        rules : {
            'cs[name]' : {
                required : true
            },
            'cs[contact]' : {
                required : true
            },
            'cs[text]' : {
                required : true
            }
        },
        submitHandler : function(form) {
            sendMessage('cntSend', 'message');
        }
    });

    // Форма в вопрос-ответ
    $('#faqSend').validate({
        rules : {
            'faq[name]' : {
                required : true
            },
            'faq[email]' : {
                required : true,
                email: true
            },
            'faq[text]' : {
                required : true
            }
        },
        submitHandler : function(form) {
            sendMessage('cntSend', 'faq');
        }
    });

    // Форма комментариев в статьях
    $('#commentSend').validate({
        rules : {
            'coms[name]' : {
                required : true
            },
            'coms[text]' : {
                required : true
            }
        },
        submitHandler : function(form) {
            sendMessage('commentSend', 'comment');
        }
    });

    // Попапы
    $('.vIcon, .vLink', '.videoBox').click(function() {
        var vName = 'videoPp-' + $('.videoBox').index($(this).parents('.videoBox'));
        if ($('#' + vName).length) {
            if ($(this).closest('.sectLinks, .fttx-caro-item').length && !$('body > #' + vName).length) {
                $('#' + vName).appendTo('body');
            }
            showPopup(vName);
            return false;
        }
    });

    /* НАЧАЛО Страница сервис-центр */

    $('#reguLink').click(function() {
        showPopup('reguPopup');
        return false;
    });

    // Форма заявка на рекламент (сервис-центр)
    $('#reguForm').validate({
        rules : {
            'regu[name]' : {
                required : true
            },
            'regu[phone]' : {
                required : true
            }
        },
        submitHandler : function(form) {
            sendMessage('reguForm', 'regulations', 'reguPopup', "Ваша заявка успешно принята");
        }
    });

    $('.reguReq', '#reguForm').click(function() {
        $('.reguReqSlide', '#reguForm').slideToggle();
        return false;
    });

    $('input[name="regu[type]"]', '#reguForm').click(function(e) {
        if ( e.target.id == 'regu_repair' ) {
            $('.reguRepairSlide', '#reguForm').slideDown();
        } else {
            $('.reguRepairSlide', '#reguForm').slideUp();
        }
    });

    /* КОНЕЦ Страница сервис-центр */

    // Автоматический скрол к метке
    $('.sectLinksScrl').click(function() {
        var targetOffset = $('#' + this.href.split("#")[1]).offset().top;

        $('html, body').animate({
            scrollTop: targetOffset
        }, 300);

        return false;
    });

    // Галлерея изображений
    $('.ponGalleryHolder a, .picImg, .photoListItem').fancybox({
        padding: 20,
        overlayColor: '#fff',
        overlayOpacity: '.89',
        titlePosition: 'inside'
    });

    // Табы в контактах и выставках
    $('.pageTab').hide();
    $('.pageTabsList a').click(function(e) {
        var ctIndex = $('.pageTabsList a').index($(this)),
            currentST = $(document).scrollTop();

        if (!$(this).hasClass('ct-active')) {
            $('.ct-active').removeClass('ct-active');
            $(this).addClass('ct-active');

            $('.pageTab').hide();
            $('.pageTab').eq(ctIndex).show();
            if(typeof(YMaps) != "undefined" && ctIndex == 0) {
                var elm = $("div.citeMap");
                mapID = "#"+elm.attr("id")+" div";
                lon = parseFloat(elm.attr("data-lon"));
                lat = parseFloat(elm.attr("data-lat"));
                titleMark = elm.attr("data-titlemark");
                YMaps.load(initMap);
            }
        }
        
        $(document).scrollTop(currentST);        
        e.stopPropagation();
    }).eq(0).click();
    
    (function() {
        var targetLink = $('.pageTabsList a[href="'+ location.hash +'"]');
        
        if (targetLink.length) {
            targetLink.click();
        }
    })();
    
    // Раскрывашки в контактах - дистрибьютеры
    $('.cntShowMap a').click(function() {
        var elm = $(this).parent().next();
        elm.slideToggle('fast', function() {
            if(elm.is(":visible")){
                mapID = "#"+elm.attr("id")+ " div";
                lon = parseFloat(elm.attr("data-lon"));
                lat = parseFloat(elm.attr("data-lat"));
                titleMark = elm.attr("data-titlemark");
                YMaps.load(initMap);
            }
        });

        return false;
    });

    // Длинный текст в вопрос-ответ
    $('.faqExpanded').hide();
    $('.faqLong').show();
    $('.faqLong').click(function() {
        $(this).next('.faqExpanded').show().end().remove();
        return false;
    });

    // Раскрывашка в документах
    $('.docsPanels dd').hide();
    $('.docsPanels dt a').click(function() {
        var tempDD = $(this).parent().next();

        if (tempDD.is(':visible')) {
            tempDD.slideUp(200);
        } else {
            $('dd:visible', '.docsPanels').slideUp(200);
            tempDD.slideDown(200);
        }
        return false;
    });

	// Активный блок в спецпредложениях
    $('.action-hint__close').click(function() {

        var actionBox = $(this).closest('.action-hint'),
            textBox = $('.action-hint__text', actionBox);

        if (!actionBox.hasClass('action-hint_closed')) {
            actionBox.addClass('action-hint_closed');
            textBox.slideUp();
        } else {
            actionBox.removeClass('action-hint_closed');
            textBox.slideDown();
        }

        return false;
    });
	
	// Карусели на странице FTTx
    (function() {
        var maxHeight = 0;

        $('.fttx-caro-item').each(function() {
            $(this).jCarouselLite({
                btnPrev: $(this).find('[class*="ss-"]')[0],
                btnNext: $(this).find('[class*="ss-"]')[1],
                visible : 1,
                circular: false,
                speed : 300
            });

            maxHeight = maxHeight < $(this).find('> ul').height()
                ? $(this).find('> ul').height()
                : maxHeight;
        });

        $('.fttx-caro-item > ul').height(maxHeight);
    })();

    // Флипы на странице корзины
    (function() {
        var context = $('.basket-flips'),
            dd = $('dd', context),
            links = $('dt a', context);

        dd.hide();
        links.click(function() {
            var flipIndex = links.index($(this));
            dd.eq(flipIndex).slideToggle();

            return false;
        });
    })();

   $('.rent').click(function() {
        var rentId = $(this).data('rentId');
        $('#rent_product option[value="'+ rentId +'"]').prop('selected', true);

        showPopup('rentPopup');
        return false;
    });

    $('.rent-reqv-title').click(function() {
        $('.rent-reqv-text').slideToggle();
        return false;
    });

    $('#rentForm').validate({
        'rules': {
            'rent[product]': 'required',
            'rent[fio]': 'required',
            'rent[phone]': 'required',
            'rent[email]' : {
                required : true,
                email: true
            }
        },
        submitHandler : function(form) {
            sendMessage('rentForm1', 'rent', 'orderPopup');
        }
    });

});
