﻿function clearSearchPanel(panelId) {
    var textboxes = $("#" + panelId + " input:text").toArray();
    for (var i = 0; i < textboxes.length; i++) {
        textboxes[i].value = "";
    }

    var checkboxes = $("#" + panelId + " input:checkbox").toArray();
    for (var i = 0; i < checkboxes.length; i++) {
        checkboxes[i].checked = false;
    }

    var selects = $("#" + panelId + " select").toArray();
    for (var i = 0; i < selects.length; i++) {
        selects[i].selectedIndex = 0;
        onSearchSelectChange.call(selects[i]);
    }

    $('#searchPanel .search_button:first').removeAttr('disabled');

    if (directionsManager != null)
        directionsManager.reset();
}

var beautyTipOptions = {
    trigger: 'none',
    fill: '#F7F7F7',
    strokeStyle: '#B7B7B7',
    spikeLength: 10,
    spikeGirth: 10,
    padding: 8,
    cornerRadius: 0,
    positions: 'left',
    width: 400,
    shrinkToFit: true,
    cssStyles: {
        fontFamily: '"lucida grande",tahoma,verdana,arial,sans-serif',
        fontSize: '11px'
    }
};

var titleTextBox;
var currentTitleFilter;
var currentCloseTipTimeout = null;
var countValueText1;
var countValueText2;
var countValueText3;

$(function () {
    titleTextBox = $('#searchPanel #title');
    currentTitleFilter = titleTextBox.val();

    titleTextBox.blur(function () {
        if (titleTextBox.val() != currentTitleFilter) {
            currentTitleFilter = titleTextBox.val();
            updateCatalogItemsCount(titleTextBox);
        }
    });

    titleTextBox.keydown(function (event) {
        if (event.keyCode == '13')
            event.preventDefault();
    });
    titleTextBox.keyup(function (event) {
        if (event.keyCode == '13') {
            event.preventDefault();
            currentTitleFilter = titleTextBox.val();
            updateCatalogItemsCount(titleTextBox);
        }
    });

    var checkBoxes = $('#searchPanel input:checkbox');
    $('#searchPanel input:checkbox:lt(' + (checkBoxes.length - 3) + ')').change(function () {
        updateCatalogItemsCount(this);
    });
    $('#seasonTravel input:checkbox').change(function () {
        if ($('#seasonTravel select').attr('selectedIndex') != 0)
            updateCatalogItemsCount(this);
    });
    $('#seasonTravel select').change(function () {
        if ($('#seasonTravel input:checked').length > 0)
            updateCatalogItemsCount($('#seasonTravel .select_month_bg'));
    });
    $('#directionSearch select').change(function () {
        updateCatalogItemsCount(this.parentNode);
    });
});

function updateCatalogItemsCount(input) {
    var searchQueryString = createSearchQueryString();
    searchQueryString += (searchQueryString != '') ? '&' : '?';
    searchQueryString += 'catalogItemType=' + catalogItemType;

    $.ajax({
        type: 'POST',
        url: '/CatalogItemsCount.ashx' + searchQueryString,
        success: function (data) {
            if (data == '0')
                $('#searchPanel .search_button:first').attr('disabled', 'disabled');
            else
                $('#searchPanel .search_button:first').removeAttr('disabled');

            if (currentCloseTipTimeout != null)
                clearTimeout(currentCloseTipTimeout);

            $('#searchPanel *').btOff();
            var countValueText = getCountValueText(parseInt(data), countValueText1, countValueText2, countValueText3);
            
            var text = "<div>Выбрано " + data + " " + countValueText + "</div>";
            if (data != '0')
                text += "<div class='search_show'><a href='javascript:onSearchButtonClick()'>Показать</a></div>";

            $(input).bt(text, beautyTipOptions);
            input.btOn();
            currentCloseTipTimeout = setTimeout('closeAllTips()', 5000);
        }
    });
}

function closeAllTips() {
    currentCloseTipTimeout = null;
    $('#searchPanel *').btOff();
}

function getCountValueText(count, value1, value2, value3) {
    var lastDigit = count % 10;
    if (count >= 11 && count <= 14)
        return value3;
    else if (lastDigit == 1)
        return value1;
    else if (lastDigit >= 2 && lastDigit <= 4)
        return value2;
    else
        return value3;
}
