var Launcher = new Class
({
 options:
 {
 ss_sel: '.slideshow',
 elem: 'listings',
 form: 'realziForm',
 rg_sel: '.slider',
 map_elem: 'listings',
 map_sel: '.map',
 maps_elem: 'map_search',
 pane_elem: 'panels'
 },

 initialize: function(data, options)
 {
 this.setOptions(options);
 this.data = data;
 },

 panels: function()
 {
 new Panels(this.options.pane_elem);
 },

 slideshows: function(type)
 {
 $ES(this.options.ss_sel, this.options.elem).each
 (
 function (el, i)
 {
 if ($defined(this.data.slides[el.title])) new SlideShow(el, this.data.slides[el.title]);
 }.bind(this)
 );
 },

 rangers: function()
 {
 $ES(this.options.rg_sel, this.options.form).each
 (
 function (el, i)
 {
 var data = Json.evaluate(el.title);
 el.title = '';
 new Ranger(el, data);
 }.bind(this)
 );
 },

 maps: function()
 {
 $ES(this.options.map_sel, this.options.map_elem).each
 (
 function (el, i)
 {
 var id = el.title;
 el.title = '';
 if ($defined(this.data.maps[id])) new Map.Simple(el, this.data.maps[id], this.data.map);
 }.bind(this)
 );
 },

 mapsearch: function()
 {
 new Map.Search($(this.options.maps_elem), this.data.map);
 }
});

Launcher.implement(new Events, new Options);