(function($) { // closure and $ portability

  $(document).ready( function() {
  
    /* -- Document Load (All Pages) -- */
    
    // setup colorbox
    
    $('a.thumb').colorbox();
    $('a.zoom').click( function() {
       $(this).closest(".wrap-zoom").prev("a.thumb").click();  
       return false;
    });
  
  
    /* -- Document Load (Home Page) -- */
    
    // setup slideshow
    $('body#home').each( function() {
      $(this).find('#slides').slideshow({ delay: 0, interval: 3250 });
    });
    
    
  
    /* -- Document Load (Bookings Page) -- */
    
    // setup season changer

    var season = $('#season');
    var rp1 = $('#roompref1');
    var rp2 = $('#roompref2');
    
    function buildOptions( sel, html ) {
      
      var index = 0;
      var price = prices[season.val()];
      var val = sel.val();
      var valindex = 0;
      
      $.each( sel.get(0).options, function(i, option) {
        if (val == option.value) {
          valindex = i;
        }
      });
      
      if (price) {
        
        sel.empty();
        sel.append("<option>Choose Room...</option>");
        
        $.each( rooms, function(key, value) {
        
          var og = $(document.createElement("optgroup")).attr("label", key.replace(/&nbsp;/g, " "));
          
          $.each(value, function(i, room) {
            var ov = room + ' $' + price[index] + ' per night';
            var opt = $(document.createElement("option")).html(ov).attr("value", ov);
            og.append(opt);
            index++;
          });
        
          sel.append(og);
        });

      } else {
        // restore the original HTML
        sel.html(html);
        
      }

      // re-select the previously selected item 
      sel.get(0).options[valindex].selected = true;
    };
    
    var rp1HTML = rp1.html(); 
    var rp2HTML = rp2.html(); 
    
    season.change( function() {
      buildOptions(rp1, rp1HTML);
      buildOptions(rp2, rp2HTML);
    }).change();
    
    
  });
  
    
})(jQuery);