/* Copyright BRONNI.RU , 2002-2008 | www.bronni.ru
* -----------------------------------------------------------
* Dictionaries Proxy library, version 1.0
* Прокси-класс для получения данных по справочникам
*/
function Dictionaries(url)
{
    this["getCurrencies"] = function (callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getCurrencies", [], [], callback);
    }

    this["getCurrenciesByIds"] = function (currenciesIds, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getCurrenciesByIds", [currenciesIds], ["currenciesIds"], callback);
    }

    this["getDestinationCountriesByDepartureCity"] = function (departureCityId, tourTypeId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getDestinationCountriesByDepartureCity", [departureCityId, tourTypeId], ["departureCityId", "tourTypeId"], callback);
    }

    this["getDestinationCountries"] = function (tourTypeId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getDestinationCountries", [tourTypeId], ["tourTypeId"], callback);
    }

    this["getCountriesWithHotels"] = function (callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getPrincipalCountriesWithPrincipalHotels", [], [], callback);
    }

    this["getDestinationCities"] = function (countryId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getDestinationCities", [countryId], ["countryId"], callback);
    }

    this["getAgenciesByPortal"] = function (cityId, portalId, metroStationId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getAgenciesByPortal", [cityId, portalId, metroStationId], ["cityId", "portalId", "metroStationId"], callback);
    }

    this["getCitiesWithHotels"] = function (countryId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getPrincipalCitiesWithPrincipalHotels", [countryId], ["countryId"], callback);
    }
    this["getCitiesByPortal"] = function (portalId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getCitiesByPortal", [portalId], ["portalId"], callback);
    }
    this["getMetroStationsByCity"] = function (cityId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getMetroStationsByCity", [cityId], ["cityId"], callback);
    }
    this["getHotels"] = function (countryId, cityIds, starIds, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getHotels", [countryId, cityIds, starIds], ["countryId", "cityIds", "starIds"], callback);
    }

    this["getHotelsEx"] = function (countryId, cityIds, starIds, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getHotelsEx", [countryId, cityIds, starIds], ["countryId", "cityIds", "starIds"], callback);
    }

    this["getPrincipalHotels"] = function (cityId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getPrincipalHotels", [cityId], ["cityId"], callback);
    }

    this["getStars"] = function (callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getStars", [], [], callback);
    }

    this["getDepartureCitiesByDestinationCountry"] = function (destinationCountryId, tourTypeId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getDepartureCitiesByDestinationCountry", [destinationCountryId, tourTypeId], ["destinationCountryId", "tourTypeId"], callback);
    }

    this["getDepartureCities"] = function (tourTypeId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getDepartureCities", [tourTypeId], ["tourTypeId"], callback);
    }

    this["getMeals"] = function (callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getMeals", [], [], callback);
    }

    this["getOperators"] = function (callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getOperators", [], [], callback);
    }

    this["getOperatorsByDepartureCityAndDestination"] = function (departureCityId, includeNullDepartureCities, countryId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getOperatorsByDepartureCityAndDestination", [departureCityId, includeNullDepartureCities, countryId], ["departureCityId", "includeNullDepartureCities", "countryId"], callback);
    }

    this["getTime"] = function (callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getTime", [], [], callback);
    }
    this["getCities"] = function (countryId, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getCities", [countryId], ["countryId"], callback);
    }

    this["getGlobalTourTypes"] = function (callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("getGlobalTourTypes", [], [], callback);
    }

    this["searchHotels"] = function (countryId, cityId, starId, name, onlyWithImages,
            onlyWithDescriptions, onlyWithPrices, onlyWithVirtualTours, callback)
    {
        var ajax = new AJAX(url);
        return ajax.call("searchHotels", [countryId, cityId, starId, name, onlyWithImages,
            onlyWithDescriptions, onlyWithPrices, onlyWithVirtualTours],
             ["countryId", "cityId", "starId", "name", "onlyWithImages",
            "onlyWithDescriptions", "onlyWithPrices", "onlyWithVirtualTours"], callback);
    }

    var url = typeof (url) === 'string' ? url : 'http://remote.module.bronni.ru:8080/Dictionaries.ashx';
}

Dictionaries.rpcMethods = ["getCurrencies", "getCurrenciesByIds",
 "getDestinationCountriesByDepartureCity", "getDestinationCountries",
  "getDestinationCities", "getHotels", "getHotelsEx", "getStars",
   "getDepartureCities", "getMeals", "getOperators",
    "getOperatorsByDepartureCityAndDestination", "getTime",
     "getPrincipalCountriesWithPrincipalHotels", "getPrincipalCitiesWithPrincipalHotels",
     "getMetroStationsByCity", "getCitiesByPortal", "getAgenciesByPortal", "getCities", "getGlobalTourTypes"];

