YAHOO.namespace("hCarouselSlider");
YAHOO.hCarouselSlider = function(container_name)
{
  var YEvent = YAHOO.util.Event, YDom = YAHOO.util.Dom, YLang = YAHOO.lang;
  var DS, container, pPanel = null;

  // Set container name.
  container = container_name;

  // Init object.
  init();

  /**
   * Init function.
   */
  function init()
  {
    DS = new YAHOO.util.XHRDataSource("/en/hotels/slides?");
    DS.maxCacheEntries = 100;
    DS.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
    DS.connXhrMode = "cancelStaleRequests";
    DS.generateRequest = function(query){return '?q='+query;};
    DS.responseSchema = {resultsList: "resultSet.list", metaFields: { count: "resultSet.count" }};
  }

  function showProgressPanel()
  {
    var cnode = YDom.get(container);
    cnode.innerHTML = '<div align="center" class="centerProgressSpinner"><img src="/images/spinner2.gif" alt=""/></div>';
  }

  function hideProgressPanel()
  {
    var cnode = YDom.get(container);
    cnode.innerHTML = '';
  }

  return {
    /* Load by ajax slides for top hotels of the city */
    loadSlidesFor: function(cityName)
    {
      var myCallback = function(sRequest, oResponse, bError)
      {
        hideProgressPanel();
        if (oResponse.meta.count)
        {
          var elements = '';
          for(var ix in oResponse.results) elements += oResponse.results[ix];
          var cnode = YDom.get(container);
          cnode.innerHTML = '<ul>' + elements + '</ul>';
          //alert('<ul class="slide">' + elements + '</ul>');
        }

        var carousel;
        carousel = new YAHOO.widget.Carousel("carouselHotels",
        {
          carouselEl: "UL",
          numVisible: 2,
          navigation: {prev: "prevHButton", next: "nextHButton" },
          isCircular: true
        }
      );
      carousel.render();
      carousel.show();

      // Register callbacks.
      YAHOO.util.Event.addListener('prevHButton', "click", function(e){carousel.scrollBackward();});
      YAHOO.util.Event.addListener('nextHButton', "click", function(e){carousel.scrollForward();});
      }

      var callback = {success : myCallback, failure : myCallback };
      showProgressPanel();
      DS.sendRequest("q="+cityName, callback);
    }
  }
};

