﻿function ChangeSkin() {
    __doPostBack('lbChangeSkin', '');
}

//addHandler(document, "mouseup", ResetPopups);
//function ResetPopups() {
//    if (document.getElementById('hKostil') != null) {
//        if (document.getElementById('hKostil').value == 0) {
//            document.getElementById('divCountry').className = '';
//            if (document.getElementById('divUser') != null) document.getElementById('divUser').className = 'b-usernav';
//            document.getElementById('divSearch').className = '';
//        }
//        else
//            document.getElementById('hKostil').value = 0;
//    }
//}

//function CountryClick() {
//    if (document.getElementById('divUser') != null) document.getElementById('divUser').className = 'b-usernav';
//    document.getElementById('divSearch').className = '';

//    if (document.getElementById('divCountry').className.length == 0) {
//        document.getElementById('divCountry').className = 'tn-region-open';
//    }
//    else {
//        document.getElementById('divCountry').className = '';
//    }
//}

//function UserClick() {
//    document.getElementById('divCountry').className = '';
//    document.getElementById('divSearch').className = '';

//    if (document.getElementById('divUser').className.length <= 9) {
//        document.getElementById('divUser').className = 'b-usernav b-usernav-open';
//    }
//    else {
//        document.getElementById('divUser').className = 'b-usernav';
//    }
//}

//function SearchClick() {
//    document.getElementById('divCountry').className = '';
//    if (document.getElementById('divUser') != null) document.getElementById('divUser').className = 'b-usernav';

//    if (document.getElementById('divSearch').className == "") {
//        document.getElementById('divSearch').className = 'tn-search-open';
//    }
//    else {
//        document.getElementById('divSearch').className = '';
//    }
//    if (document.getElementById('searchText') != null) document.getElementById('searchText').focus();
//}

//New Header (Countries, Search and other)
$(function() {
    $("#searchText").unbind("keydown").keydown(function(e) {
        var keynum;
        if (window.event) // IE
            keynum = e.keyCode;
        else if (e.which) // Netscape/Firefox/Opera
            keynum = e.which;
        if (keynum == 13 && $(this).val() == "")
            return false;
        else
            return keynum;
    });
});

$(document).bind("mousedown", function() {
    $("#aspnetForm").removeAttr("onsubmit");
    ResetPopups();
});

function ResetPopups() {
    $('#divCountry').removeClass('tn-region-open');
    $('#divUser').removeClass('b-usernav-open');
    $('#divSearch').removeClass('tn-search-open');
    $('#divFave').removeClass('tn-fave-open');
    $("#dlArticleBookmark").removeClass("b-social-bkmrk-open");
}

function CountryClick() {
    $('#divUser').removeClass('b-usernav-open');
    $('#divSearch').removeClass('tn-search-open');
    $('#divFave').removeClass('tn-fave-open');
    $('#divCountry').toggleClass('tn-region-open');
    $("#divCountry").mousedown(function() { return false });
}

function FaveClick() {
    $('#divCountry').removeClass('tn-region-open');
    $('#divUser').removeClass('b-usernav-open');
    $('#divSearch').removeClass('tn-search-open');
    $('#divFave').toggleClass('tn-fave-open');
    $("#divFave").mousedown(function() { return false });
}

function UserClick() {
    $('#divCountry').removeClass('tn-region-open');
    $('#divSearch').removeClass('tn-search-open');
    $('#divFave').removeClass('tn-fave-open');
    $('#divUser').toggleClass('b-usernav-open');
    $("#divUser").mousedown(function() { return false });
}

function SearchClick() {
    $('#divCountry').removeClass('tn-region-open');
    $('#divUser').removeClass('b-usernav-open');
    $('#divFave').removeClass('tn-fave-open');
    $('#divSearch').toggleClass('tn-search-open');
    $("#divSearch").mousedown(function() { $('#searchtext').focus(); return false });
    $('input#searchText').focus();
}
//End New Header

function addHandler(object, event, handler) {
    if (typeof object.addEventListener != 'undefined')
        object.addEventListener(event, handler, false);
    else if (typeof object.attachEvent != 'undefined')
        object.attachEvent('on' + event, handler);
    else
        throw "Incompatible browser";
}

String.prototype.replaceAll = function(search, replace) {
    return this.split(search).join(replace);
}

$(document).ready(function () {
    $("span[id=spanSkin]").html($("input[id$=hSkinText]").val());
    if ($("#hideSkin").size() == 0) {
        $(".tn-skin").show();
    }

    $('#ddlManufacturers').change(function () {
        RefreshSeriesDropDown();
    });

    $('#ddlSeries').change(function () {
        $('#hSelectedSeriesValue').val($(this).val());
    });

    ValidateInput();

    GTBlockHandlers()
});

//Функции формы поиска по авто с пробегом
function ValidateInput() {
    $("#btnFind").click(function() {
        var errors = "";
        var priceFrom = parseInt($('#tbCostFrom').val().replace(" ", "").replace(" ", "").replace(" ", "").replace(" ", ""));
        var priceTo = parseInt($('#tbCostTo').val().replace(" ", "").replace(" ", "").replace(" ", "").replace(" ", ""));
        if (priceFrom > priceTo) {
            errors += "Начальная цена должна быть меньше конечной.<br />";
            $("#tbCostFrom").attr("style", "border:solid 1px #d22333;");
            $("#tbCostTo").attr("style", "border:solid 1px #d22333;");
        }

        if (errors != "") {
            $("#btnFind").attr("disabled", "disabled");
            var divFilterError = $("#divFilterError");
            divFilterError.html(errors).fadeIn("fast").fadeTo(4000, 1);
            divFilterError.fadeOut(3000, function() {
                $("#btnFind").attr("disabled", "");
                $("#tbCostFrom").attr("style", "border:solid 1px #999999;");
                $("#tbCostTo").attr("style", "border:solid 1px #999999;");
            });
            return false;
        }
    });

    var reg = /[^0-9]/;
    $('#tbCostFrom').keyup(function() {
        if (this.value.match(reg)) {
            this.value = this.value.toLowerCase().replaceAll(reg, "");
        }
    });

    $('#tbCostTo').keyup(function() {
        if (this.value.match(reg)) {
            this.value = this.value.toLowerCase().replaceAll(reg, "");
        }
    });
}

function RefreshSeriesDropDown() {
    var pid = $('#ddlManufacturers').val();
    var ddlSeries = $('#ddlSeries');

    ddlSeries.attr('disabled', true);
    ddlSeries.html('<option value="">- Не важно -</option>');

    if (pid.length != 0) {
        $.ajax({
            type: "POST",
            url: "/Default.aspx/GetSeriesForManufacturer",
            data: "{pid : '" + pid + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(response) {
                var options = '<option value="">- Не важно -</option>';
                var series = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
                for (var i = 0; i < series.length; i++) {
                    options += '<option value="' + series[i].value + '">' + series[i].text + '</option>';
                }
                ddlSeries.html(options);
                ddlSeries.attr('disabled', false);
            }
        });
    }
}

//Функции блока журнала
function GTBlockHandlers() {
    $('#techshow').cycle();
    
    $(document).everyTime(10000, "timer1", function(i) {
        GTItemChange("right");
    });
    $("span[class=larr]").click(function() {
        GTItemChange("left");
    });
    $("span[class=rarr]").click(function() {
        GTItemChange("right");
    });
}

function GTItemChange(type) {
    var max = 5;
    if ($("div[class=item gtvisible]").size() > 0) {
        var id = parseInt($("div[class=item gtvisible]")[0].id.split("_")[1]);
        if (type == "left") {
            id--;
            if (id < 1) {
                id = max;
            }
        }
        else {
            id++;
            if (id > max) {
                id = 1;
            }
        }

        $("div[class=item]").hide();
        $("div[class=item gtvisible]").hide();
        $("div[class=item gtvisible]").removeClass("gtvisible");
        $("div[id=gtitem_" + id + "]").fadeIn(700, function() {
            $("div[id=gtitem_" + id + "]").addClass("gtvisible");
        });
    }
}

function TechItemChange(type) {
    var max = 5;
    if ($("div[class=item gtvisible]").size() > 0) {
        var id = parseInt($("div[class=item gtvisible]")[0].id.split("_")[1]);
        if (type == "left") {
            id--;
            if (id < 1) {
                id = max;
            }
        }
        else {
            id++;
            if (id > max) {
                id = 1;
            }
        }

        $("div[class=item]").hide();
        $("div[class=item gtvisible]").hide();
        $("div[class=item gtvisible]").removeClass("gtvisible");
        $("div[id=gtitem_" + id + "]").fadeIn(700, function() {
            $("div[id=gtitem_" + id + "]").addClass("gtvisible");
        });
    }
}

jQuery.fn.extend({
    everyTime: function(interval, label, fn, times, belay) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, times, belay);
        });
    }
});

jQuery.event.special

jQuery.extend({
    timer: {
        global: [],
        guid: 1,
        dataKey: "jQuery.timer",
        regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
        powers: {
            // Yeah this is major overkill...
            'ms': 1,
            'cs': 10,
            'ds': 100,
            's': 1000,
            'das': 10000,
            'hs': 100000,
            'ks': 1000000
        },
        timeParse: function(value) {
            if (value == undefined || value == null)
                return null;
            var result = this.regex.exec(jQuery.trim(value.toString()));
            if (result[2]) {
                var num = parseFloat(result[1]);
                var mult = this.powers[result[2]] || 1;
                return num * mult;
            } else {
                return value;
            }
        },
        add: function(element, interval, label, fn, times, belay) {
            var counter = 0;

            if (jQuery.isFunction(label)) {
                if (!times)
                    times = fn;
                fn = label;
                label = interval;
            }

            interval = jQuery.timer.timeParse(interval);

            if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
                return;

            if (times && times.constructor != Number) {
                belay = !!times;
                times = 0;
            }

            times = times || 0;
            belay = belay || false;

            var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});

            if (!timers[label])
                timers[label] = {};

            fn.timerID = fn.timerID || this.guid++;

            var handler = function() {
                if (belay && this.inProgress)
                    return;
                this.inProgress = true;
                if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
                    jQuery.timer.remove(element, label, fn);
                this.inProgress = false;
            };

            handler.timerID = fn.timerID;

            if (!timers[label][fn.timerID])
                timers[label][fn.timerID] = window.setInterval(handler, interval);

            this.global.push(element);

        },
        remove: function(element, label, fn) {
            var timers = jQuery.data(element, this.dataKey), ret;

            if (timers) {

                if (!label) {
                    for (label in timers)
                        this.remove(element, label, fn);
                } else if (timers[label]) {
                    if (fn) {
                        if (fn.timerID) {
                            window.clearInterval(timers[label][fn.timerID]);
                            delete timers[label][fn.timerID];
                        }
                    } else {
                        for (var fn in timers[label]) {
                            window.clearInterval(timers[label][fn]);
                            delete timers[label][fn];
                        }
                    }

                    for (ret in timers[label]) break;
                    if (!ret) {
                        ret = null;
                        delete timers[label];
                    }
                }

                for (ret in timers) break;
                if (!ret)
                    jQuery.removeData(element, this.dataKey);
            }
        }
    }
});

jQuery(window).bind("unload", function() {
    jQuery.each(jQuery.timer.global, function(index, item) {
        jQuery.timer.remove(item);
    });
});
//Функции блока журнала

