(function($){$.fn.OffersSearch=function(options){var container=this;var options=jQuery.extend({areasId:"areas",resortsId:"resorts",flightClassesId:"flightClasses",overlayId:"overlay",selectedArea:null,selectedResort:null},options);$.OffersSearch._areas=$("#"+options.areasId);$.OffersSearch._resorts=$("#"+options.resortsId);$.OffersSearch._flightClasses=$("#"+options.flightClassesId);$.OffersSearch._overlay=$("#"+options.overlayId);container.change(function(){$.OffersSearch.UpdateResorts(this)});$.OffersSearch._resorts.change(function(){$.OffersSearch.UpdateFlightClasses($.OffersSearch._resorts)});if(options.selectedArea&&options.selectedResort){container.val(options.selectedArea);$.OffersSearch._selectedResort=options.selectedResort;container.change()}return this};$.OffersSearch={_areas:null,_resorts:null,_selectedResort:null,UpdateResorts:function(elem){try{$.OffersSearch._overlay.show();_offerResultsProxy.RetrieveResortsAndFlightClasses($(elem).val(),$.OffersSearch.Offers_Callback,$.OffersSearch.OnOffersPageError)}catch(ex){LogError("OfferSearch.js - UpdateResorts(): "+ex)}},UpdateFlightClasses:function(elem){try{$.OffersSearch._overlay.show();_offerResultsProxy.RetrieveFlightClasses($(elem).val(),$.OffersSearch.Offers_Callback,$.OffersSearch.OnOffersPageError)}catch(ex){LogError("OfferSearch.js - UpdateFlightClasses(): "+ex)}},Offers_Callback:function(Result){eval(Result);$.OffersSearch._overlay.hide()},OnOffersPageError:function(Result){LogError("OfferSearch.js - OnOffersPageError(Result): "+Result.message)},ShowResortsAndFlightClasses:function(results){if(results&&$.OffersSearch._resorts){$.OffersSearch._resorts.empty();for(var i=0;i<results.resorts.length;i++){$.OffersSearch._resorts[0].options[i]=new Option(results.resorts[i].name,results.resorts[i].name)}}if(results&&$.OffersSearch._flightClasses){$.OffersSearch._flightClasses.empty();for(var i=0;i<results.flightClasses.length;i++){$.OffersSearch._flightClasses[0].options[i]=new Option(results.flightClasses[i].flightClass,results.flightClasses[i].flightClass)}}if($.OffersSearch._selectedResort){$.OffersSearch._resorts.val($.OffersSearch._selectedResort);$.OffersSearch._selectedResort=null}},ShowFlightClasses:function(results){if(results&&$.OffersSearch._flightClasses){$.OffersSearch._flightClasses.empty();for(var i=0;i<results.length;i++){$.OffersSearch._flightClasses[0].options[i]=new Option(results[i].flightClass,results[i].flightClass)}}},SetSearchCriteria:function(criteria){if(criteria){if(criteria.area&&criteria.area>0){$.OffersSearch._areas.val(criteria.area)}if(criteria.resorts&&criteria.resorts.length>0&&$.OffersSearch._resorts){$.OffersSearch._resorts.empty();for(var i=0;i<criteria.resorts.length;i++){$.OffersSearch._resorts[0].options[i]=new Option(criteria.resorts[i].name,criteria.resorts[i].name)}}if(criteria.resort&&$.OffersSearch._resorts){$.OffersSearch._resorts.val(criteria.resort)}if(criteria.flightClasses&&criteria.flightClasses.length>0&&$.OffersSearch._flightClasses){$.OffersSearch._flightClasses.empty();for(var i=0;i<criteria.flightClasses.length;i++){$.OffersSearch._flightClasses[0].options[i]=new Option(criteria.flightClasses[i].flightClass,criteria.flightClasses[i].flightClass)}}if(criteria.flightClass&&$.OffersSearch._flightClasses){$.OffersSearch._flightClasses.val(criteria.flightClass)}}$.OffersSearch._overlay.hide()}}})(jQuery);