﻿
var advSearchOpen = false;
var advSearchArray = new Array();
var priceFrom = null;
var priceTo = null;
var advFilterString = '';
var isShowMap = true;
var srvListLastPosition = null;


function showAddress() {
    var txtAddressValue = $("#txtSearchName").val();
    if (txtAddressValue == '') return;

    if (MapControl == undefined) return;

    if (MapControl.mapObjectsArray['Yandex'] == undefined) {
        MapControl.ShowMap('Yandex');
        window.setTimeout(showAddress, 1000);
    }
    else {
        MapControl.ShowAddress(txtAddressValue);
    }

}


function LoadMapPoints() {
    if (ymap.getBounds().getLeftBottom().equals(ymap.getBounds().getRightTop())) {
        return;
    }
    
    var points = ymap.getBounds().getLeftBottom().getX() + ',' + ymap.getBounds().getLeftBottom().getY() + ',' + ymap.getBounds().getRightTop().getX() + ',' + ymap.getBounds().getRightTop().getY();
    var dateStart = $("#txtTopDateStart").val();
    var dateEnd = $("#txtTopDateEnd").val();
    var advancedFilterString = advFilterString;
    var serviceTypes = '';
    $("#searchTypes input:checked").each(function() {
        serviceTypes += $(this).val() + ",";
    });
    $.get("ajxdata/service_list.aspx", { bounds: points, type: "map", ServiceTypes: serviceTypes, DateStart: dateStart, DateEnd: dateEnd, AdvFilter: advancedFilterString, pFrom: priceFrom, pTo: priceTo}, LoadMapPointsCallback, "text");
}

function LoadMapPointsCallback(retValue) {
    //map.clearOverlays();
    //YObjManager.removeAll();
    ymap.removeAllOverlays();
    //lastSelectedMapObject = null;
    eval(retValue);
}

function LoadListPoints() {

    if (ymap.getBounds().getLeftBottom().equals(ymap.getBounds().getRightTop())) {
        return;
    }

    var points = ymap.getBounds().getLeftBottom().getX() + ',' + ymap.getBounds().getLeftBottom().getY() + ',' + ymap.getBounds().getRightTop().getX() + ',' + ymap.getBounds().getRightTop().getY();
    var serviceTypes = '';
    var dateStart = $("#txtTopDateStart").val();
    var dateEnd = $("#txtTopDateEnd").val();
    var advancedFilterString = advFilterString;
    $("#searchTypes input:checked").each(function() {
        serviceTypes += $(this).val() + ",";
    });
    $("#tabs").tabs('url', 0, 'ajxdata/service_list.aspx?type=list&bounds=' + points + '&ServiceTypes=' + serviceTypes + '&DateStart=' + dateStart + '&DateEnd=' + dateEnd + '&AdvFilter=' + advancedFilterString + '&pFrom=' + priceFrom + '&pTo=' + priceTo);
    $("#tabs").tabs('load', 0);
}



function hilightMapPoint(serviceId) {
    //        if (lastSelectedMapObject != null) {
    //            lastSelectedMapObject.setImage(getIcon('red').image);
    //        }
    //        
    //        var mapObject = null;
    //        for (i = 0; i < mapObjectsArray.length; i++) {
    //            if (mapObjectsArray[i][0] == serviceId) {
    //                mapObject = mapObjectsArray[i][1];
    //                break;
    //            }
    //        }
    //        if (mapObject == null) return;
    //        mapObject.setImage(getIcon('blue').image);
    //        lastSelectedMapObject = mapObject;
}


function ShowFullDescription(serviceId, tabIndex) {
    
    //Если первый переход, то добавляем закладки
    if ($("#tabs").tabs('length') == 1) {
        //Информация
        $("#tabs").tabs('add', 'ajxdata/service_full_info.aspx?Tab=1&ServiceID=' + serviceId, 'Описание');
        //Фотографии
        $("#tabs").tabs('add', 'ajxdata/service_full_info.aspx?Tab=2&ServiceID=' + serviceId, 'Фото');
        //Доступность и цены
        $("#tabs").tabs('add', 'ajxdata/service_full_info.aspx?Tab=3&ServiceID=' + serviceId + '&dateStart=' + $("#txtTopDateStart").val(), 'Цены и Заказ');
        //FeedBack
        $("#tabs").tabs('add', 'ajxdata/service_full_info.aspx?Tab=4&ServiceID=' + serviceId, 'Общение');
        //Links
        $("#tabs").tabs('add', 'ajxdata/service_full_info.aspx?Tab=5&ServiceID=' + serviceId, 'Ссылки');
    }

    $("#tabs").tabs('url', 1, 'ajxdata/service_full_info.aspx?Tab=1&ServiceID=' + serviceId);
    $("#tabs").tabs('url', 2, 'ajxdata/service_full_info.aspx?Tab=2&ServiceID=' + serviceId);
    $("#tabs").tabs('url', 3, 'ajxdata/service_full_info.aspx?Tab=3&ServiceID=' + serviceId + '&dateStart=' + $("#txtTopDateStart").val());
    $("#tabs").tabs('url', 4, 'ajxdata/service_full_info.aspx?Tab=4&ServiceID=' + serviceId);
    $("#tabs").tabs('url', 5, 'ajxdata/service_full_info.aspx?Tab=5&ServiceID=' + serviceId);
    if (tabIndex == 1) {
        $("#tabs").tabs('select', tabIndex);
    }
    $("#tabs").tabs('load', 4);
    $("#tabs").tabs('load', 3);
    $("#tabs").tabs('load', 2);
    $("#tabs").tabs('load', 1);
    if (tabIndex == 3) {
        $("#tabs").tabs('select', tabIndex);
    }

    try {
        selectedId = serviceId;
    }
    catch (e) { }
}

function ShowHotelDescription(HotelCode) {
    var dateStart = $("#txtTopDateStart").val();
    var dateEnd = $("#txtTopDateEnd").val();
    $("#hotelCode").val(HotelCode);
    $("#hotelStartDate").val(dateStart);
    $("#hotelEndDate").val(dateEnd);
    window.document.forms["hotelsForm"].submit();

}

function CheckInt(CheckedField) {
    if (CheckedField.value == '') { return true; }

    var intValue = parseInt(CheckedField.value, 10);
    if (isNaN(intValue)) {
        CheckedField.value = '';
        return false;
    }
    CheckedField.value = intValue;
    return true;
}
function CheckDecimal(CheckedField) {
    if (CheckedField.value == '') { return true; }

    var decimalValue = parseFloat(CheckedField.value.replace(",", "."));
    if (isNaN(decimalValue)) {
        CheckedField.value = '';
        return false;
    }
    CheckedField.value = decimalValue;
    return true;
}

function GetAdvancedFilterString() {
    var retVal = '';
    for (i = 0; i < advSearchArray.length; i++) {
        if (advSearchArray[i] == true) {
            retVal += i + ':1|';
        }
        else if (advSearchArray[i] != undefined && advSearchArray[i] != 'Error') {
            retVal += i + ':' + advSearchArray[i] + '|';
        }
    }
    return retVal;
}

function SetAdvSearchValue(prp_id, type) {
    var objField = eval('$("#txtPrp_' + prp_id + '")');
    if (type != null && (!CheckInput(objField[0].id, false, 'int', '', 'Значение должно быть числом', 200, true))) {
        advSearchArray[prp_id] = 'Error';
        return;
    }
    if (objField.val() != '') {
        if (prp_id == -1) {
            priceFrom = objField.val();
        }
        else if (prp_id == -2) {
            priceTo = objField.val();
        }
        else {
            advSearchArray[prp_id] = objField.val();
        }
    }
    else {
        if (prp_id == -1) {
            priceFrom = null;
        }
        else if (prp_id == -2) {
            priceTo = null;
        }
        else {
            advSearchArray[prp_id] = undefined;
        }
    }
    //advFilterString = GetAdvancedFilterString();
    //MapMoved();
    searchChanged();
}

function searchChanged() {
    if (FilterControl != undefined) {
        if (MapControl._curMapType == undefined) { ShowMap('Google'); }
        FilterControl.filterChanged();
    }
}

function toggleAdvancedSearch() {
    if (!advSearchOpen) {
        $("#AdvancedSearchPanel").slideDown();
        $("#advancedSearchTriangle").removeClass('rightTriangle');
        $("#advancedSearchTriangle").addClass('bottomTriangle');
        advSearchOpen = true;
    }
    else {
        $("#AdvancedSearchPanel").slideUp();
        $("#advancedSearchTriangle").removeClass('bottomTriangle');
        $("#advancedSearchTriangle").addClass('rightTriangle');
        advSearchOpen = false;
        ResetAdvancedSearch();
    }
}

function ResetAdvancedSearch() {
    for (i = 0; i < advSearchArray.length; i++) {
        if (advSearchArray[i] == true) {
            var objIcon = eval('$("#icoPrp_' + i + '")');
            objIcon.removeClass('SearchIconPrp_' + i + '_Selected');
            objIcon.addClass('SearchIconPrp_' + i);
            advSearchArray[i] = undefined;
        }
        else if (advSearchArray[i] != undefined) {
            var objField = eval('$("#txtPrp_' + i + '")');
            objField.val('');
            advSearchArray[i] = undefined;
            HideAlert(objField[0].id);
        }
    }

    if (advFilterString != '' || priceFrom != null || priceTo != null) {
        advFilterString = '';
        priceFrom = null;
        $("#txtPrp_-1").val('');
        priceTo = null;
        $("#txtPrp_-2").val('');
        //MapMoved();
        searchChanged();
    }
    
}

function toggleSearchIcon(prp_id) {
    var objIcon = eval('$("#icoPrp_' + prp_id + '")');
    if (objIcon.hasClass('SearchIconPrp_' + prp_id + '_Selected')) {
        objIcon.removeClass('SearchIconPrp_' + prp_id + '_Selected');
        objIcon.addClass('SearchIconPrp_' + prp_id);
        advSearchArray[prp_id] = undefined;
    }
    else {
        objIcon.removeClass('SearchIconPrp_' + prp_id);
        objIcon.addClass('SearchIconPrp_' + prp_id + '_Selected');
        advSearchArray[prp_id] = true;
    }
    //advFilterString = GetAdvancedFilterString();
    searchChanged();
    //MapMoved();
}

function mainTabSelected() {
    var $tabs = $('#tabs').tabs();
    var selected = $tabs.tabs('option', 'selected');
    if (selected == 0) {
        srvListLastPosition = $('#tabs-1').scrollTop();
    }
}

function mainTabShowed() {
    var $tabs = $('#tabs').tabs();
    var selected = $tabs.tabs('option', 'selected');
    if (selected == 0 && srvListLastPosition != '') {
        $('#tabs-1').scrollTop(srvListLastPosition);
    }
}


