var speedProductTab = 500;
var speedPartnersTab = 500;
var phone_regexp = /0[1-9][0-9]{8}/;
var seconds_left = 0;
var timer = null;

(function($) {
    $(document).ready(
        function() {

            $("div.header-phone-input input").focus(
                function() {
                    if ($(this).val() == "Введите свой номер") {
                        $(this).val("").parent().addClass("header-phone-input-active");
                    }
                }
            );

            $("div.header-phone-input input").blur(
                function() {
                    if ($(this).val() == "") {
                        $(this).val("Введите свой номер").parent().removeClass("header-phone-input-active");
                    }
                }
            );

            $("div.header-phone-input input").keyup(
                function() {
                    var curSubmit = $(this).parent().parent().find("div.header-phone-submit");
                    if ($(this).val().length == 10 && $(this).val().match(phone_regexp)) {
                        curSubmit.addClass("header-phone-submit-active");
                        if ($.browser.msie && ($.browser.version == "6.0")) {
                            curSubmit.find("input").css("background-position", "left -24px");
                        }
                    } else {
                        curSubmit.removeClass("header-phone-submit-active");
                        if ($.browser.msie && ($.browser.version == "6.0")) {
                            curSubmit.find("input").css("background-position", "left top");
                        }
                    }
                }
            );
            $("div.header-phone-input input").change(
                function() {
                    var curSubmit = $(this).parent().parent().find("div.header-phone-submit");
                    if ($(this).val().length == 10 && $(this).val().match(phone_regexp)) {
                        curSubmit.addClass("header-phone-submit-active");
                        if ($.browser.msie && ($.browser.version == "6.0")) {
                            curSubmit.find("input").css("background-position", "left -24px");
                        }
                    } else {
                        curSubmit.removeClass("header-phone-submit-active");
                        if ($.browser.msie && ($.browser.version == "6.0")) {
                            curSubmit.find("input").css("background-position", "left top");
                        }
                    }
                }
            );

            $("a.product-tabs-prev").click(
                function() {
                    var curIndex = $("div.product-tabs-menu-links span").index($("div.product-tabs-menu-links span.active"));
                    curIndex--;
                    if (curIndex < 0) {
                        curIndex = $("div.product-tabs-menu-links span").length - 1;
                    }
                    if ($.browser.msie && ($.browser.version == "6.0")) {
                        $("div.product-tabs-menu-links span.active").css("background-position", "left -100px");
                    }
                    $("div.product-tabs-menu-links span.active").removeClass("active");
                    $("div.product-tabs-menu-links span").eq(curIndex).addClass("active");
                    if ($.browser.msie && ($.browser.version == "6.0")) {
                        $("div.product-tabs-menu-links span.active").css("background-position", "center bottom");
                    }

                    $("div.product-tabs-inner").animate({left: "-" + (curIndex * 1000) + "px"}, speedProductTab);

                    return false;
                }
            );

            $("a.product-tabs-next").click(
                function() {
                    var curIndex = $("div.product-tabs-menu-links span").index($("div.product-tabs-menu-links span.active"));
                    curIndex++;
                    if (curIndex == $("div.product-tabs-menu-links span").length) {
                        curIndex =  0;
                    }
                    if ($.browser.msie && ($.browser.version == "6.0")) {
                        $("div.product-tabs-menu-links span.active").css("background-position", "left -100px");
                    }
                    $("div.product-tabs-menu-links span.active").removeClass("active");
                    $("div.product-tabs-menu-links span").eq(curIndex).addClass("active");
                    if ($.browser.msie && ($.browser.version == "6.0")) {
                        $("div.product-tabs-menu-links span.active").css("background-position", "center bottom");
                    }

                    $("div.product-tabs-inner").animate({left: "-" + (curIndex * 1000) + "px"}, speedProductTab);

                    return false;
                }
            );

            $("div.product-tabs-menu-links a").click(
                function() {
                    if (!$(this).parent().hasClass("active")) {
                        var curIndex = $("div.product-tabs-menu-links a").index($(this));

                        if ($.browser.msie && ($.browser.version == "6.0")) {
                            $("div.product-tabs-menu-links span.active").css("background-position", "left -100px");
                        }
                        $("div.product-tabs-menu-links span.active").removeClass("active");
                        $("div.product-tabs-menu-links span").eq(curIndex).addClass("active");
                        if ($.browser.msie && ($.browser.version == "6.0")) {
                            $("div.product-tabs-menu-links span.active").css("background-position", "center bottom");
                        }

                        $("div.product-tabs-inner").animate({left: "-" + (curIndex * 1000) + "px"}, speedProductTab);
                    }
                    return false;
                }
            );

            if (window.location.hash.toString()) {
                if ($("div.product-tabs-menu-links a[href='" + window.location.hash.toString() + "']").length == 1) {
                    $("div.product-tabs-menu-links a[href='" + window.location.hash.toString() + "']").trigger("click");
                }
            }

            $("div.menu ul").each(
                function() {
                    var curUL = $(this);

                    var curWidth = 0;

                    curUL.find("li").each(
                        function() {
                            curWidth += $(this).width() + 53;
                        }
                    );
                    curUL.parent().css("width", (curWidth - (curUL.find('li.active').length ? 53 : 3)) + "px");
                }
            );

            $("div.menu ul li.active").each(
                function() {
                    var curMenu = $(this);
                    var curMenuLeft = curMenu.offset().left - curMenu.parent().parent().parent().offset().left;
                    $("div.submenu div").css("min-width", (1000 - curMenuLeft - 20) + "px");
                }
            );

            $("div.partners-all a").click(
                function() {
                    var curLink = $(this);
                    if (curLink.hasClass("partners-all-active")) {
                        $("div.partners-content").animate({height: "106px"}, speedPartnersTab);
                        var curText = curLink.html();
                        curLink.html(curLink.attr("rel"));
                        curLink.attr("rel", curText);
                        curLink.removeClass("partners-all-active");
                    } else {
                        $("div.partners-content").animate({height: $("div.partners-content-inner").height() + "px"}, speedPartnersTab);
                        var curText = curLink.html();
                        curLink.html(curLink.attr("rel"));
                        curLink.attr("rel", curText);
                        curLink.addClass("partners-all-active");
                    }
                    return false;
                }
            );

            $("div.partners-content-inner img").hover(
                function() {
                    var curImg = $(this);
                    var curLink = curImg.parent();
                    var curSrc = curImg.attr("src");
                    curImg.attr("src", curLink.attr("rel"));
                    curLink.attr("rel", curSrc);
                },

                function() {
                    var curImg = $(this);
                    var curLink = curImg.parent();
                    var curSrc = curImg.attr("src");
                    curImg.attr("src", curLink.attr("rel"));
                    curLink.attr("rel", curSrc);
                }
            );

            $('.header-phone form').submit(function(){
                var tel = $(".header-phone-input input", this).val();

                if(tel.length == 10 && tel.match(phone_regexp))
                {
                    $.post(
                        '/ajax/',
                        {phone: tel, page: page},
                        function(data)
                        {
                            pieces = data.split(":", 2);
                            if (pieces[0] == 'OK')
                            {
                                $('.header-block-code').hide('slow');
                                $('.header-phone').hide('slow');
                                $('.call-text-1').hide('slow');
                                $('.call-text-2').hide('slow');
                                $('.calling-gif-1').html('<img src="/design/images/calling_black.gif?rnd=' + Math.random() + '" alt="Ждите звонка!" />');
                                $('.calling-gif-2').html('<img src="/design/images/calling.gif?rnd=' + Math.random() + '" alt="Ждите звонка!" />');
                                $('.calling-gif-1, .calling-gif-2').fadeIn('slow');
                                $('#text-top').html('мы перезвоним к Вам в течение <div class="countdown">10</div> секунд!');
                                $('.call-text-3').html('...мы перезвоним к Вам');
                                $('.call-text-4').removeClass('wait');
                                $('.call-text-4').html('<span>...</span>в течение <strong><div class="countdown">10</div> секунд!</strong>');
                                seconds_left = 10;
                                downTimer();
                            }
                            else if (pieces[0] == 'LIMIT')
                            {
                                alert('Вы исчерпали допустимое количество вызовов на этот номер телефона.');
                            }
                            else if (pieces[0] == 'LCK_PHN' || pieces[0] == 'LCK_IP')
                            {
                                alert('За превышение ограничения на количество звонков Ваш ' +
                                    (pieces[0] == 'LCK_PHN' ? 'номер телефона' : 'IP-адрес') +
                                    ' блокирован на ' + pieces[1] + ' часов.');
                            }
                            else if (pieces[0] == 'NOT_UA')
                            {
                                alert('Ваш IP-адрес определен как адрес не из Украины.');
                            }
                            else if (pieces[0] == 'NOT_WT')
                            {
                                alert(worktime_message);
                            }
                            else if (pieces[0] == 'OFF')
                            {
                                alert('Звонок с сайта в данный момент не доступен. Пожалуйста, перезвоните по указанному на сайте номеру телефона');
                            }
                            else if (pieces[0] == 'PHN_DIS')
                            {
                                alert('Простите, Ваш номер телефона заблокирован.');
                            }
                            else if (pieces[0] == 'WAIT_IP' || pieces[0] == 'WAIT_PHN')
                            {
                                seconds_left = parseInt(pieces[1]);
                                var warning = 'Услуга будет доступна ';
                                $('#text-top').html('<span class="wait">' + warning + 'через <div class="countdown">' + seconds_left + '</div> секунд!</span>');
                                $('.call-text-3').html('<span class="wait">' + warning + '</span>');
                                $('.call-text-4').html('через <strong><div class="countdown">' + seconds_left + '</div> секунд!</strong>');
                                $('.call-text-4').addClass('wait');
                                downTimer();
                            }
                        }
                    );
                }
                return false;
            });

            $("div.content table").not('[class]').each(
                function() {
                    var curTable  = $(this);
                    var curWidth  = curTable.width() + 2;
                    var wrapHTML  = '<div class="content-table-wrap clear"><div class="content-table" style="width:' + curWidth + 'px"></div></div>';
                    var afterHTML = '<div class="content-table-t-l"></div>';
                    afterHTML    += '<div class="content-table-t-r"></div>';
                    afterHTML    += '<div class="content-table-b-r"></div>';
                    afterHTML    += '<div class="content-table-b-l"></div>';

                    curTable.wrap(wrapHTML);
                    curTable.after(afterHTML);
                }
            );

        }
    );
    
})(jQuery);

function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}


function getUrlVariable(name) {
    var vars = getUrlVars();
    return vars[name];
}


function downTimer(){
    if (timer)
    {
        clearTimeout(timer);
    }
    function alertTimer(){
        if (seconds_left > 0) {
            --seconds_left;
            $('div.countdown').text(seconds_left);
            timer = window.setTimeout(alertTimer, 1000);
        }
    }
    timer = window.setTimeout(alertTimer, 1000);
}
