/* namespace für Filialensuche */
var filSearch = function() {

	
	/* URLs zu Slide-Bildern anpassen */
	var slideImages = [
		'/medias/sys_master/8540650257262192.jpg',
		'/medias/sys_master/8540818892693088.jpg',
		'/medias/sys_master/8540650258089808.jpg',
		'/medias/sys_master/8540650258466272.jpg',
		'/medias/sys_master/8540650258859184.jpg',
		'/medias/sys_master/8540650259189424.jpg'
	];	
	var filBaseURL = 'http://www.conrad.de/ce/de/ChainstoreInfo.html?detail&chainstorecode=';
	var durationDisplay = 6000; /* ms Anzeigezeit */
	var durationEffect = 1500; /* ms Dauer Übergangseffekt */
	var slideImage = 'none';
	var thisImage = 0;
	var hideTO = false;
	var slideTO = false;
	var faded = true;

	var pos = [];
	pos['CS_DE_KI']=[121,31];
	pos['CS_DE_HH_Wandsbek']=[120,68];
	pos['CS_DE_HH_Altona']=[111,67];
	pos['CS_DE_B_Steglitz']=[204,109];
	pos['CS_DE_B_Schoeneberg']=[213,105];
	pos['CS_DE_B_Kreuzberg']=[213,115];
	pos['CS_DE_BN']=[29,189];
	pos['CS_DE_D']=[24,169];
	pos['CS_DE_E']=[35,157];
	pos['CS_DE_DO']=[47,157];
	pos['CS_DE_HB']=[82,84];
	pos['CS_DE_BS']=[131,125];
	pos['CS_DE_H']=[111,117];
	pos['CS_DE_L']=[185,164];
	pos['CS_DE_DD']=[219,176];
	pos['CS_DE_F']=[78,220];
	pos['CS_DE_MZ']=[62,228];
	pos['CS_DE_SB']=[27,257];
	pos['CS_DE_MA']=[75,251];
	pos['CS_DE_S']=[91,278];
	pos['CS_DE_N']=[147,251];
	pos['CS_DE_AS']=[178,245];
	pos['CS_DE_RB']=[179,269];
	pos['CS_DE_M_Moosach']=[158,305];
	pos['CS_DE_M_Tal']=[167,309];
	
	var startSlides = function() {
		slideTO = setInterval(function() { slideImageChange(durationEffect) }, durationDisplay);
		if(slideImage=='none') {
			slideImage = 0;
			jQuery('#fil-slide-image0').attr('src', slideImages[thisImage]).show();
		}
	};
		
	var slideImageChange = function(fadetime) {
		if(!fadetime) fadetime = durationEffect;
		var visible = slideImage;
		var invisible = Math.abs(slideImage-1);
		thisImage++;
		if(thisImage > slideImages.length - 1) thisImage = 0;
		slideImage = invisible;
		jQuery('#filialen-suche #fil-slide-image'+invisible).attr('src', slideImages[thisImage]).unbind('load').load(function() { 
			if(faded) jQuery('#filialen-suche #fil-slide-image1').fadeIn(fadetime);
			else jQuery('#filialen-suche #fil-slide-image1').fadeOut(fadetime);
			faded = !faded;
		});
	}
	
	var generateDropdown = function() {
		jQuery('#filialen-suche #fil-addresses .city').each(function(i) {
			jQuery('#filialen-suche #fil-search ul.dropdown').append('<li rel="'+jQuery(this).attr('id').split('-')[1]+'">'+jQuery(this).html()+'</li>');
		});
	}
	
	var handleDropdown = function() {
		jQuery('#filialen-suche #fil-search a.select').click(function() {
			var list = jQuery('#filialen-suche #fil-search ul.dropdown');
			if(list.is(':visible')) list.slideUp('fast');
			else list.slideDown('fast');
			return false; 
		});
	}
	
	var handleSelect = function() {
		jQuery('#filialen-suche #fil-search ul.dropdown li, #filialen-suche #fil-search .map .hoverEl').click(function() {
			var cityId = jQuery(this).attr('rel');
			jQuery('#filialen-suche #fil-search ul.dropdown li').removeClass('active');
			jQuery('#filialen-suche #fil-search ul.dropdown li[rel='+cityId+']').addClass('active');
			jQuery('#filialen-suche #fil-search ul.dropdown').slideUp('fast');
			jQuery('#filialen-suche #fil-addresses').fadeIn('fast')
			jQuery('#filialen-suche #fil-addresses .address').hide();
			jQuery('#filialen-suche #fil-search a.select, #filialen-suche #fil-addresses .fil-city').html(jQuery('#filialen-suche #fil-addresses #city-'+cityId).html());
			jQuery('#filialen-suche #fil-addresses h1, #filialen-suche #fil-addresses #address-'+cityId).show();
			jQuery('#filialen-suche #fil-addresses a.fil-go').attr('href', filSearch.filBaseURL+cityId).show();
		});
	}
	
	var handleMap = function() {
		jQuery('#filialen-suche #fil-search .map .hoverEl').bind('mouseenter', function() {
			clearTimeout(hideTO);
			var cityId = jQuery(this).attr('rel');
			var cityName = jQuery('#filialen-suche #fil-addresses #city-'+cityId).html();
			jQuery('#filialen-suche #fil-search .map .marker').html(cityName).css('left', (pos[cityId][0]+1)+'px').css('top', (pos[cityId][1]-28)+'px').show()
		}).bind('mouseleave', function(e) {
			hideTO = setTimeout(function() {
				jQuery('#filialen-suche #fil-search .map .marker').hide();
			}, 100);	
		})
	}
	
	/* publicate */
	return {
		filBaseURL: filBaseURL,
		startSlides: startSlides,
		generateDropdown: generateDropdown,
		handleDropdown: handleDropdown,
		handleSelect: handleSelect,
		handleMap: handleMap
	}

}();

/* init */
jQuery(function() { 
	filSearch.startSlides();
	filSearch.generateDropdown();
	filSearch.handleDropdown();
	filSearch.handleSelect();
	filSearch.handleMap();
});
