Igglo.Default.Search.Index = {
	
	initialize: function(object) {

		Object.extend(this, object);
	
		var 
			module,
			date = new Date(this.timestamp * 1000);
	
		(new (Igglo('Search')))
		
			.register(
				new Igglo.Search.Component.History()
			)
			
			.register(
				new Igglo.Search.Component.Layout({
					prefix: 'search/index/',
					element: $('search'),
					titleElement: $('search-title'),
					modulesElement: $('search-modules-list'),
					viewsElement: $('search-views-list')
				})
			)
		
			.register(
				new Igglo.Search.Component.IggloSearch({
					inputElement: $('igglo_id')
				})
			)
			
			.register(
				new Igglo.Search.Component.Location({
					flagOfSwitzerlandButton: true,
					inputElement: $('magicbox'),
					locationSelectElement: $('search-magicbox-open-location-select')
				})
			)
			
			.register(
				module = new Igglo.Search.Component.Module.AdApartmentSell({
					element: $('search-module-ad-apartment-sell'),
					formElement: $('apartmentsell'),
					locationElement: $('apartmentsell').down('select.location'),
					collapsedElement: $('apartmentsell').down('input.collapsed'),
					collapseElement: $('search-module-ad-apartment-sell-collapse'),
					uncollapseElement: $('search-module-ad-apartment-sell-uncollapse'),
					collapseElements: $$('div#search-module-ad-apartment-sell .collapse')
				}),
				module.getCardType() == this.cardType
			)
		
			.register(
				module = new Igglo.Search.Component.Module.AdFarmSell({
					element: $('search-module-ad-farm-sell'),
					formElement: $('farmsell'),
					locationElement: $('farmsell').down('select.location'),
					collapsedElement: $('farmsell').down('input.collapsed'),
					collapseElement: $('search-module-ad-farm-sell-collapse'),
					uncollapseElement: $('search-module-ad-farm-sell-uncollapse'),
					collapseElements: $$('div#search-module-ad-farm-sell .collapse')
				}),
				module.getCardType() == this.cardType
			)
		
			.register(
				module = new Igglo.Search.Component.Module.AdLotSell({
					element: $('search-module-ad-lot-sell'),
					formElement: $('lotsell'),
					locationElement: $('lotsell').down('select.location'),
					collapsedElement: $('lotsell').down('input.collapsed'),
					collapseElement: $('search-module-ad-lot-sell-collapse'),
					uncollapseElement: $('search-module-ad-lot-sell-uncollapse'),
					collapseElements: $$('div#search-module-ad-lot-sell .collapse')
				}),
				module.getCardType() == this.cardType
			)
			
			.register(
				module = new Igglo.Search.Component.Module.AdParkingSell({
					element: $('search-module-ad-parking-sell'),
					formElement: $('parkingsell'),
					locationElement: $('parkingsell').down('select.location'),
					collapsedElement: $('parkingsell').down('input.collapsed'),
					collapseElement: $('search-module-ad-parking-sell-collapse'),
					uncollapseElement: $('search-module-ad-parking-sell-uncollapse'),
					collapseElements: $$('div#search-module-ad-parking-sell .collapse')
				}),
				module.getCardType() == this.cardType
			)
			
			.register(
				module = new Igglo.Search.Component.Module.AdVacationhomeSell({
					element: $('search-module-ad-vacationhome-sell'),
					formElement: $('vacationhomesell'),
					locationElement: $('vacationhomesell').down('select.location'),
					collapsedElement: $('vacationhomesell').down('input.collapsed'),
					collapseElement: $('search-module-ad-vacationhome-sell-collapse'),
					uncollapseElement: $('search-module-ad-vacationhome-sell-uncollapse'),
					collapseElements: $$('div#search-module-ad-vacationhome-sell .collapse')
				}),
				module.getCardType() == this.cardType
			)
			
			.register(
				new Igglo.Search.Component.View.List({
					date: date,					
					element: $('search-view-list'),
					formElement: $('sublist'),
					viewElement: $('search-view-list-view'),
					countElements: $$('div#search-view-list .count'),
					offsetElements: $$('div#search-view-list .offset'),
					previousElements: $$('div#search-view-list .previous'),
					nextElements: $$('div#search-view-list .next'),
					noResultsElement: $('search-view-list-no-results'),
					bannerUrl: '/search/banner/list'
				}),
				true // Set this to be the active view
			)
			
			.register(
				new Igglo.Search.Component.View.Map({
					date: date,
					element: $('search-view-map'),
					formElement: $('submap'),
					viewElement: $('search-view-map-view'),
					legendElement: $('search-view-map-legend')
				})
			)
			
			.register(
				new Igglo.Search.Component.LinkUpdater({
					rssLinkElement: $('search-rss-link'),
					profileLinkElement: $('search-profile-link'),
					profileLinkContainerElement: $('search-profile-link-container')
				})
			)
			
			.load();
		
	}
	
};
