$(window).load(function() {
	if($("#background img").length!=0){
		$("#background").background({items:$("#background img"),interval:8});
	};
	if($("#contentright img").length>0){
		$('#contentright').background({items:$('#contentright img'), interval:8});
	}
});

$(document).ready(function(){
	
	if($(".gallery-container").length!=0){		
		$(".gallery-container").gallery({nextCtrl:$("a.next"), prevCtrl:$("a.prev"),altContainer: $('#my-content')[0]});
	};
	
	if($('.teaseritem').length !=0){
		$('#teaserbox').teaserGallery({items:$('.teaseritem'),prevCtrl:$('#prev_teaser'),nextCtrl:$('#next_teaser')});
	};
	
	if($('.ec-back').length != 0){
		$('#content').append($('.ec-back'));
	};
	
	if($('.ec-front').length != 0){
		$('body').append($('.ec-front'));
	};
	
	if($(".items").length!=0){
		var headerHeight = $('#header').height();
		$('#header').delay(1000).animate({top:-headerHeight},2000,"swing");
		
		var footerHeight = $('#footer').height();
		$('#footer').delay(1000).animate({bottom:-footerHeight},2000,"swing");
		$('#content').css({top:0,bottom:0});
		$('.lookcontainer').css({top:0,bottom:0});
		$(".items").lookbook({nextCtrl:$("a.next"), prevCtrl:$("a.prev")});
	};
	
	if ($('#map').length != 0){
		$("#map").customMap({
			lat: 51.356545,
			lng: 7.9,
			zoom: 14,
			zoomCtrlOptStyle: google.maps.ZoomControlStyle.LARGE,
			streetViewCtrl: false,
			mapMarkers: $(".map_marker"),
			mapConfig: $(".map-config")
		});
	};
});

//------------------------------------------------------------------------
//#################			LOOKBOOK		##############################
//------------------------------------------------------------------------
(function($){
	var	container,
		settings = {nextCtrl:null,prevCtrl:null};
	
	function resizeContainer(){
		container.find("img").each(function(){
			var item = $(this);
			var imgRatio = item.width()/item.height();
			item.css({width:container.height()*imgRatio,height:container.height()});
		});
		//container.find("img").css('height',container.height()).attr('height',container.height());
	};
	
	$.fn.lookbook = function(options){
		if (options) { 
			$.extend(settings,options);
		}
		container = $(this);
		$('.lookcontainer').append( $('<div>').addClass('lookbook-close-button').css({cursor:'pointer'}).click(function(){
			$('#header').animate({top:0},1000,"swing");
			$('#footer').animate({bottom:0},1000,"swing");
			$(this).empty();
			$(this).remove();
		}));
		$(window).resize(resizeContainer);
		resizeContainer();
		settings.prevCtrl.hide();
		container.find("div").hide().first().show().find("img").each(function(){ $(this).attr('src',$(this).attr('data-src'));});
		settings.prevCtrl.click(function(){
			if(container.find("div:visible").prev().length > 0){
				container.find("div:visible").fadeOut().prev().fadeIn().find("img").each(function(){ $(this).attr('src',$(this).attr('data-src'));});
				settings.nextCtrl.show();
			}else {
				//container.find("div").fadeOut().last().fadeIn().find("img").each(function(){ $(this).attr('src',$(this).attr('data-src'));});
			}
			if(container.find("div:visible").prev().length == 1){
				settings.prevCtrl.hide();
			}
		});
		settings.nextCtrl.click(function(){
			if (container.find("div:visible").next().length > 0){
				container.find("div:visible").fadeOut().next().fadeIn().find("img").each(function(){ $(this).attr('src',$(this).attr('data-src'));});
				settings.prevCtrl.show();
			}else {
				//container.find("div").fadeOut().first().fadeIn().find("img").each(function(){ $(this).attr('src',$(this).attr('data-src'));});
			}
			if (container.find("div:visible").next().length == 1){
				settings.nextCtrl.hide();
			}
		});		
	};
})(jQuery);
//------------------------------------------------------------------------ 205 133
//#################			GALLERY			##############################
//------------------------------------------------------------------------
(function($){
	var	container,
		scrollPos = 0,
		settings = {nextCtrl:null,prevCtrl:null,altContainer:null, gap: 72};
	
	function onWindowResize(){
		var tempWidth = settings.gap;
		container.find('.gallery-preview').each(function(index, value){
			$(this).show();
			var imgRatio = $(this).width()/$(this).height();
			$(this).height($(window).height()-(205+133+2*10));
			$(this).width(imgRatio*$(this).height());
			$(this).css('left', ((index)*settings.gap+tempWidth));
			$(this).css('top', (container.height()/2)-($(this).height()/2) );
			tempWidth = tempWidth + $(this).width();
			$(this).fadeIn();
		});
		tempWidth = parseInt(container.find('.gallery-preview').last().css('left'))+container.find('.gallery-preview').last().width()+settings.gap;
		container.append($('<div>').css('left', tempWidth).css('top', 0).css('bottom',0).css('position','absolute').width(40));
		updateControls();
	};
	
	function updateControls(){
		settings.prevCtrl.css('top', parseInt(container.css('top'))+(container.height()/2)-(settings.prevCtrl.height()/2));
		settings.nextCtrl.css('top', parseInt(container.css('top'))+(container.height()/2)-(settings.nextCtrl.height()/2));
		settings.prevCtrl.css('left', 20);
		settings.nextCtrl.css('right', 20);
		settings.nextCtrl.css('z-index', 1);
		settings.prevCtrl.css('z-index', 1);
	};
	
	function openFullscreenMode(e){
		var mainDiv = $('<div>')
			.addClass('fullscreen-container')
			.css('left',0)
			.css('right',0)
			.css('top',0)
			.css('bottom',0)
			.css('background','#000000')
			.css('z-index', 1000)
			.css('position', 'absolute').hide();
		mainDiv.append(container.find('.gallery-fullscreen').clone());
		mainDiv.find('.gallery-fullscreen').each(function(){
			$(this).attr('src', $(this).attr('data-src'));
		}).fadeIn();
		mainDiv.append(settings.prevCtrl.clone().css('z-index', 1000));
		mainDiv.append(settings.nextCtrl.clone().css('z-index', 1000));
		$('body').append(mainDiv.fadeIn());
		mainDiv.fullscreen({elements:'.gallery-fullscreen',prevCtrl:mainDiv.find('a.prev'),nextCtrl:mainDiv.find('a.next'),loadPosition:$(e.currentTarget).attr('data-id')});
	};
	
	function closeFullscreenMode(){
		
	};
	
	$.fn.gallery = function (options){
		if (options) { 
			$.extend(settings,options);
		}
		if (!settings.altContainer){container = $(this);}else {container = $(settings.altContainer);};
		container.find('.gallery-item').css({"opacity": 1});
		container.find('.gallery-item').each(function(index, value){
			$(this).find('.gallery-preview').attr('data-id',index+1);
			$(this).find('.gallery-fullscreen').attr('data-id',index+1);
		});
		onWindowResize();
		container.scrollLeft(0);
		$(window).resize(onWindowResize);
		if (container.find('.gallery-item').length < 2){
			settings.prevCtrl.hide();
			settings.nextCtrl.hide();
		};
		settings.prevCtrl.click(function(){container.animate({scrollLeft: container.scrollLeft()-500}, 500, 'swing');});
		settings.nextCtrl.click(function(){container.animate({scrollLeft: container.scrollLeft()+500}, 500, 'swing');});
		container.find('.gallery-item').each(function(){
			if( $(this).attr('data-video-mov') != '' ){
				var ahref = $(this).attr('data-video-mov');
				$(this).find('.gallery-preview').click(function(){
					window.open(ahref); return false;
				});
			}else {
				$(this).find('.gallery-preview').click(openFullscreenMode);
			}
		});
		//container.find('.gallery-preview').click(openFullscreenMode);
	};
})(jQuery);
//------------------------------------------------------------------------
//#################	FULLSCREEN(GALLERY) 	##############################
//------------------------------------------------------------------------
(function($){
	var container = null,
		currentPosition = 1,
		numberOfItems = 0,
		controlsMargin = 20,
		closeButton = null,
		closeButtonDims = {right:46,top:40};
		settings = {
			elements: [],
			prevCtrl: null,
			nextCtrl: null,
			loadPosition: 0
	};
	
	function onWindowResize(){
		var tempWidth = 0;
		var containerRatio = $(window).width()/$(window).height();
		settings.elements.each(function(index, value){
			var element = $(this);
			element.show();
			var marginX = 0;
			var marginY = 0;
			var imgRatio = element.width()/element.height();
			if (containerRatio>imgRatio){	
				element.width(container.width());
				element.height(element.width()/imgRatio);
				marginY = (element.height()-container.height())/2;
				element.css('clip', cropper(container.width(),marginX,element.height(),marginY));
				element.css('top', -marginY);
			}else {
				element.height(container.height());
				var calcWidth = element.height()*imgRatio;
				marginX = (calcWidth-container.width())/2;
				element.css('clip','rect(0px '+(calcWidth-marginX)+'px '+container.height()+'px '+marginX+'px)');
				element.width(calcWidth);
			}
			element.css('left', tempWidth-marginX).css('position','absolute');
			tempWidth = tempWidth + container.width();
			element.fadeIn();
		});
		container.scrollLeft(container.width()*(currentPosition-1));
		updateControls(false);
	};
	
	function updateControls(effect){
		closeButton.css({'left':(container.width()*(currentPosition))-closeButtonDims.right});
		settings.nextCtrl.hide().css('left',container.width()*currentPosition-settings.nextCtrl.width()-controlsMargin)
			.css('top',container.height()/2-settings.nextCtrl.height()/2);	
		settings.prevCtrl.hide().css('left',controlsMargin+container.width()*(currentPosition-1))
			.css('top',container.height()/2-settings.prevCtrl.height()/2);
		if(currentPosition == numberOfItems){
			effect ? settings.prevCtrl.delay(750).fadeIn() : settings.prevCtrl.show();
		}else if(currentPosition == 1){				
			effect ? settings.nextCtrl.delay(750).fadeIn() : settings.nextCtrl.show();
		}else {
			effect ? settings.nextCtrl.delay(750).fadeIn() : settings.nextCtrl.show();
			effect ? settings.prevCtrl.delay(750).fadeIn() : settings.prevCtrl.show();
		};	
	}
	
	function cropper(width,marginX,height,marginY){
		return 'rect('+marginY+'px '+(width-marginX)+'px '+(height-marginY)+'px '+(marginX)+'px)';
	};
	
	function closeFullscreen(){
		container.fadeOut();
		setTimeout(function(){
			container.empty();
			container.remove();
		},1000);
	};
	
	$.fn.fullscreen = function(options){
		container = $(this);
		if (options) { 
			$.extend(settings,options);
			if (!(settings.elements=container.find(settings.elements))) throw 'elements not found!';
			if (!(settings.prevCtrl=container.find(settings.prevCtrl))) throw 'prevCtrl not found!';
			if (!(settings.nextCtrl=container.find(settings.nextCtrl))) throw 'nextCtrl not found!';
		}
		currentPosition = (settings.loadPosition != 0) ? settings.loadPosition : 1;
		closeButton = $('<div>').addClass('gallery-close-button').click(closeFullscreen);
//		closeButtonDims.right = parseInt(closeButton.css('right'));
//		closeButton.css('right', );
//		closeButtonDims.top = closeButton.css('top');
		container.append(closeButton);
		container.css('overflow','hidden');
		numberOfItems = settings.elements.length;
		settings.prevCtrl.css('z-index',1023);
		$(window).resize(onWindowResize);
		onWindowResize();
		settings.nextCtrl.click(function(){
			container.animate({scrollLeft: container.scrollLeft()+container.width()}, 1000, 'swing');
			currentPosition++;
			updateControls(true);
		});
		settings.prevCtrl.click(function(){
			container.animate({scrollLeft: container.scrollLeft()-container.width()}, 1000, 'swing');
			currentPosition--;
			updateControls(true);
		});
	};
})(jQuery);
//------------------------------------------------------------------------
//#################			CUSTOMMAP		##############################
//------------------------------------------------------------------------
(function($){
	var	map,
		mapContainer, 
		settings = {mapMarkers: {}},
		markerBounds = null,
		markerArray = [],
		storeInfo	= [];
	
	function resizeWindow(){
		$('#blackOverlay').css('top', mapContainer.position().top).css('left',mapContainer.position().left).width(mapContainer.width()).height(mapContainer.height());
	}
	
	function selectFlagship(){
		if (typeof $('#flagshipChooser option:selected').attr('data-id') === 'undefined' || $('#flagshipChooser option:selected').attr('data-id') === false) {
			selectAll();
			return;
		}
		var selectedCity = $('#flagshipChooser').val();

		var selectedCityId = $('#flagshipChooser option:selected').attr('data-id');
		var bounds = new google.maps.LatLngBounds();
		for(var i=0;i<storeInfo.length;i++){
			if (storeInfo[i].city == selectedCity && storeInfo[i].isFlagship){
				bounds.extend(new google.maps.LatLng(storeInfo[i].lat,storeInfo[i].lng));				
			}
		}
	    map.fitBounds(bounds);
	}
	
	function selectContinent(){
		var selectedContinent = $('#continentChooser').val();
		$('#countryChooser').empty();
		
		$('#countryChooser').append('<option>'+settings.mapConfig.attr('data-label-country-select')+'</option>');
		$('#countryChooser').append('<optgroup></optgroup>');		
		
		$(storeInfo).each(function(){		
			if (selectedContinent == this.continent){
				var allreadyExists = false;
				var countryChooserOptions = $('#countryChooser option');
				
				for(var i=0; i<countryChooserOptions.length;i++){
					if ($(countryChooserOptions[i]).text() == this.country){
						allreadyExists = true;
					}
				};	
				if(!allreadyExists) $('#countryChooser optgroup').append('<option>'+this.country+'</option>');
			}
		});
		
		var sorted = $.makeArray($("#countryChooser optgroup option")).sort(function(a,b){
			return $(a).text() > $(b).text() ? 1:-1;
		});
		$("#countryChooser optgroup").empty().append(sorted);
		
		$('#countryChooser optgroup option:first-child').attr('selected',true);

		
		selectCountry();
	}
	
	function selectCountry(){
		var selectedCountry = $('#countryChooser').val();
		$('#cityChooser').empty();
		
		$('#cityChooser').append('<option>'+settings.mapConfig.attr('data-label-city-select')+'</option>');
		$('#cityChooser').append('<optgroup></optgroup>');			
		
		$(storeInfo).each(function(){		
			if (selectedCountry == this.country){
				var allreadyExists = false;
				var cityChooserOptions = $('#cityChooser option');
				for(var i=0; i<cityChooserOptions.length;i++){
					if ($(cityChooserOptions[i]).text() == this.city){
						allreadyExists = true;
					}
				};	
				if(!allreadyExists) $('#cityChooser optgroup').append('<option data-id="'+this.id+'">'+this.city+'</option>');
			}
		});	
		
		var sorted = $.makeArray($("#cityChooser optgroup option")).sort(function(a,b){
			return $(a).text() > $(b).text() ? 1:-1;
		});
		$("#cityChooser optgroup").empty().append(sorted);
		//$('#cityChooser optgroup option:first-child').attr('selected',true);
	}
	
	function selectCity(){
		//try {if (storeInfo[$('#cityChooser option:selected').attr('data-id')].isFlagship) return;}catch(e){};
		var selectedCity = $('#cityChooser').val();
		if (selectedCity == '') {
			selectAll();
			return;
		}
		var selectedCityId = $('#cityChooser option:selected').attr('data-id');
		var bounds = new google.maps.LatLngBounds();
		for(var i=0;i<storeInfo.length;i++){
			if (storeInfo[i].city == selectedCity){
				bounds.extend(new google.maps.LatLng(storeInfo[i].lat,storeInfo[i].lng));				
			}
		}
	    map.fitBounds(bounds);
	}
	
	function selectAll(){
		var bounds = new google.maps.LatLngBounds();
		$(storeInfo).each(function(i,v){
			bounds.extend(new google.maps.LatLng(this.lat,this.lng));
		});
		map.fitBounds(bounds);
	}
	
	$.fn.customMap = function(options) {
		if (options) { 
			$.extend(settings,options);
		}
		markerBounds = new google.maps.LatLngBounds();
		mapContainer = $(this);
		
		// map controler stuff
		// 
		$('#mapwrapper').prepend( $('<div>').addClass('map_searchbar').append( $('<div>').addClass('map_searchbar_controls') ) );
		$('.map_searchbar_controls').append( $('<select>').addClass('map_location_chooser').attr('id', 'flagshipChooser'));
		$('.map_searchbar_controls').append( $('<select>').addClass('map_location_chooser').attr('id','continentChooser'));
		$('.map_searchbar_controls').append( $('<select>').addClass('map_location_chooser').attr('id', 'countryChooser'));
		$('.map_searchbar_controls').append( $('<select>').addClass('map_location_chooser').attr('id', 'cityChooser'));
		
		
		
		map = new google.maps.Map( mapContainer[0], {
			zoom: settings.zoom,
			zoomControlOptions: {style: settings.zoomCtrlOptStyle, position: settings.zoomCtrlOptPosition},
			panControl: false,
			streetViewControl: settings.streetViewCtrl,
			mapTypeId: google.maps.MapTypeId.HYBRID,
			center: new google.maps.LatLng(settings.lat, settings.lng)
		});		
		settings.mapMarkers.hide().each(function(index,element){
			var marker = $(this);
			marker.attr("id", "markerId"+index);
			storeInfo.push({
				isFlagship:	(marker.attr('data-flagship')==1?true:false),
				continent:	marker.attr('data-continent'),
				country:	marker.attr('data-country'),
				city:		marker.attr('data-city'),
				lat:		marker.attr('data-latitude'),
				lng:		marker.attr('data-longitude'),
				id:			index
			});
			marker.css('left', mapContainer.width()/2-marker.width()/2);
			marker.css('top', mapContainer.height()/2-marker.height()/2);
			var newMarker = new google.maps.Marker({map:map,
				position: new google.maps.LatLng(marker.attr("data-latitude"),marker.attr("data-longitude")),
				icon:settings.mapConfig.attr("data-markersrc")});
			google.maps.event.addListener(newMarker, "click", function(){
//				console.debug(this);
				var marker2 = $("#markerId"+index);
//				console.debug(marker2);
				settings.mapMarkers.hide();
				marker2.show().find('.store_viewport').mapGallery({prevCtrl:marker2.find('.previous_store'),nextCtrl:marker2.find('.next_store'),items:marker2.find('.store_viewport img')});
				mapContainer.prepend($("<div>").css('background','black').css('position','absolute')
						.attr('id', 'blackOverlay')
						.css('opacity', 0.6)
						.css('top', 0).css('bottom', mapContainer.position().bottom)
						.css('left',mapContainer.position().left).css('right',mapContainer.position().right)
						.css('z-index','888').width(mapContainer.width()).height(mapContainer.height()).click(function(){
							marker2.fadeOut();
							$(this).fadeOut();
							$(this).empty();
							$(this).remove();
							$(window).unbind('resize',resizeWindow);
						}).fadeIn());
				$(window).resize(resizeWindow);
			});
			marker.find(".way_to").click(function(){
				var marker2 = $("#markerId"+index);
				window.open("http://maps.google.com/maps?daddr="+marker2.find(".contact_address").text()+","+marker2.find(".contact_plzcity").text());
			});
			marker.find('.contact_label').text(settings.mapConfig.attr('data-label-contact'));
			marker.find('.contact_phone_label').text(settings.mapConfig.attr('data-label-phone'));
			marker.find('.contact_fax_label').text(settings.mapConfig.attr('data-label-fax'));
			marker.find('.opening_hours_label').text(settings.mapConfig.attr('data-label-opening'));
			marker.find('.way_to').text(settings.mapConfig.attr('data-label-way-to'));
			if (marker.find('.contact_fax').text() == ''){
				marker.find('.contact_fax_label').hide();
				marker.find('.contact_fax').hide();
			};
			markerBounds.extend(newMarker.position);
			markerArray.push(newMarker);
			map.fitBounds(markerBounds);
		});
//		console.log(storeInfo); data-label-flagship-select
		$('#flagshipChooser').append('<option>'+settings.mapConfig.attr('data-label-flagship-select')+'</option>');
		$('#flagshipChooser').append('<optgroup></optgroup>');
		$('#continentChooser').append('<option>'+settings.mapConfig.attr('data-label-continent-select')+'</option>');
		$('#continentChooser').append('<optgroup></optgroup>');
		$(storeInfo).each(function(){
			var continentChooserOptions = $('#continentChooser option');
			var allreadyExists = false;
			for(var i=0; i<continentChooserOptions.length;i++){
				if ($(continentChooserOptions[i]).text() == this.continent){
					allreadyExists = true;
				}
			};
			if (!allreadyExists) $('#continentChooser optgroup').append('<option>'+this.continent+'</option>');
			
			
			if(this.isFlagship){
				
				var allreadyExists = false;
				var cityChooserOptions = $('#flagshipChooser optgroup option');
				for(var i=0; i<cityChooserOptions.length;i++){
					if ($(cityChooserOptions[i]).text() == this.city){
						allreadyExists = true;
					}
				};									
				if(!allreadyExists) $('#flagshipChooser optgroup').append('<option data-id="'+this.id+'">'+this.city+'</option>');
			}
		});
		$('#continentChooser optgroup option:first-child').attr('selected',true);
		$('#continentChooser').change(selectContinent);
		$('#countryChooser').change(selectCountry);
		$('#cityChooser').change(selectCity);
		$('#flagshipChooser').change(selectFlagship);
		selectContinent();
	};
})(jQuery);
//------------------------------------------------------------------------
//#################			MAPGALLERY		##############################
//------------------------------------------------------------------------
(function($){
	var container,
		settings={
			prevCtrl:null,
			nextCtrl:null,
			items:null,
			padding:{
				top:6,
				right:6,
				bottom:6,
				left:6}
		},
		position=0,
		length=0;
	
	function resize(){
		var padding = settings.padding;
		var containerRatio = (container.width()-(padding.right+padding.left))/(container.height()-(padding.top+padding.bottom));
		settings.items.each(function(index, value){
			var item = $(this);
			var marginX = 0;
			var marginY = 0;
			var imgRatio = item.width()/item.height();
			if (containerRatio>=imgRatio){	
				item.width(container.width());
				item.height(item.width()/imgRatio);
				marginY = (item.height()-container.height())/2;
				item.css('clip', cropper(container.width(),marginX,item.height(),marginY));
				item.css('top', -marginY+padding.top);
			}else {
				item.height(container.height());
				var calcWidth = item.height()*imgRatio;
				marginX = (calcWidth-container.width())/2;
				item.css('clip','rect(0px '+(calcWidth-marginX)+'px '+container.height()+'px '+marginX+'px)');
				item.width(calcWidth);
				item.css('top', padding.top);
			}
			item.css('left', -marginX+padding.left).css('position','absolute');
		});
	}
	
	function cropper(width,marginX,height,marginY){
		return 'rect('+marginY+'px '+(width-marginX)+'px '+(height-marginY)+'px '+(marginX)+'px)';
	};
	
	$.fn.mapGallery = function(options){
		container = $(this);
		if (options) { 
			$.extend(settings,options);
		}
		length = settings.items.length;
		settings.items.hide().css({'left':0,'top':0,'right':'0','bottom':'0','position':'absolute'});
		
		settings.items.fadeOut(1000);
		resize();
		$(settings.items[position%(length)]).fadeIn(1000);		
		settings.prevCtrl.hide();
		if (length <= 1) {
			settings.nextCtrl.hide();
		}else {
			settings.nextCtrl.show();
		};
		settings.prevCtrl.click(function(){
			position--;
			settings.items.fadeOut(1000);
			$(settings.items[Math.abs(position%length)]).fadeIn(1000);
			if (position == 0){
				settings.prevCtrl.hide();
			}else {
				if (length > 1){
					settings.nextCtrl.show();
				}
			};
		});
		settings.nextCtrl.click(function(){
			position++;
			settings.items.fadeOut(1000);
			$(settings.items[Math.abs(position%length)]).fadeIn(1000);
			if (position == (length-1)){
				settings.nextCtrl.hide();
			}else {
				if (length > 1) {
					settings.prevCtrl.show();
				}
			}
		});
	};
})(jQuery);
//------------------------------------------------------------------------
//#################			TEASERGALLERY	##############################
//------------------------------------------------------------------------
(function($){
	var container,
		itemContainer,
		settings={
			prevCtrl:null,
			nextCtrl:null,
			items:null,
			padding:{
				top:6,
				right:6,
				bottom:6,
				left:6}
		},
		position=0,
		length=0,
		scrollPos = 0;
	function resize(){
		var winDims = {width: $(window).width(), height: $(window).width()};
		container.css({left: (winDims.width/2)-(container.width()/2) });
		settings.items.each(function(index,value){
			var item = $(this);
//			console.debug(item.css('margin-right'));
			item.css('left', index*(item.width()+parseInt(item.css('margin-right'))));
		});
	};
	
	$.fn.teaserGallery = function(options){
		container = $(this);
		if (options) { 
			$.extend(settings,options);
		}
		length = settings.items.length;
		container.scrollLeft(0);
		$(window).resize(resize);
		resize();
		itemContainer = container.find('#teaseritems');
		if ( length < 4 ){
			settings.prevCtrl.hide();
			settings.nextCtrl.hide();
		}else {			
			settings.prevCtrl.click(function(){
				if(position!=0){	
					settings.nextCtrl.show();
					position--;
					itemContainer.animate({scrollLeft: itemContainer.scrollLeft()-itemContainer.width()}, 1000, 'swing');
				}else {
					settings.prevCtrl.hide();
				};
			});
			settings.nextCtrl.click(function(){
				if(position<length-3){
					settings.prevCtrl.show();
					itemContainer.animate({scrollLeft: itemContainer.scrollLeft()+itemContainer.width()}, 1000, 'swing');
					position++;
				}else {
					settings.nextCtrl.hide();
				};
			});
		}
	};
})(jQuery);

(function($){
	var container,
		settings={
			items:null,
			interval:10
		},
		position=-1,
		length=0,
		itemDims={ratio:0,width:0,height:0},
		itemsDim=[];
	function onResize(){
		var tempWidth = 0,
			conDims	= {
				width: 	container.width(),
				height:	container.height(),
				ratio:	container.width()/container.height()
			};
		for(var i=0;i<length;i++){
			var item	= $(settings.items[i]),
				margin	= {x:0,y:0},
				padding	= {top:0,right:0,bottom:0,left:0},
				newDims = {ratio:0,width:0,height:0};
			if (conDims.ratio>=itemsDim[i].ratio){
//				console.debug('conDims.ratio>=itemsDim[i].ratio');
				newDims.width	= conDims.width;
				newDims.height	= conDims.width/itemsDim[i].ratio;
				margin.y		= (newDims.height-conDims.height)/2;	//	newDims.height>conDims.height
			}else {
//				console.debug('conDims.ratio<itemsDim[i].ratio');
				newDims.height	= conDims.height;
				newDims.width	= conDims.height*itemsDim[i].ratio;
				margin.x		= (newDims.width-conDims.width)/2;
			}
			
			item.width(newDims.width);
			item.height(newDims.height);
			item.css({
				'width':	newDims.width+'px',
				'height':	newDims.height+'px'
			});
			item.css({
				'clip':	'rect('+(margin.y+padding.top)+'px '+(margin.x+newDims.width-padding.right)+'px '+(margin.y+newDims.height-padding.bottom)+'px '+(margin.x+padding.left)+'px)',
				'left':	-margin.x+'px',
				'top':	-margin.y+'px'
			});
//			console.debug('rect('+(margin.y+padding.top)+'px '+(margin.x+newDims.width-padding.right)+'px '+(margin.y+newDims.height-padding.bottom)+'px '+(margin.x+padding.left)+'px)');
//			console.debug('image resized to '+newDims.width+'x'+newDims.height);
		}
	};

	function nextPicture(){
		if(position!=-1) $(settings.items[position%length]).fadeOut(3000);
		position++;
		$(settings.items[position%length]).fadeIn(3000);
//		console.debug(container.width());
		if (length == 1) return;
		setTimeout(nextPicture,settings.interval*1000);
	}
	$.fn.background = function(options){
		container = $(this);
		if (options) { 
			$.extend(settings,options);
		}
		length = settings.items.length;
		for(var i=0;i<length;i++){
			$(settings.items[i]).hide().css('position', 'absolute');
			var _itemDim = {
					width:		$(settings.items[i]).width(),
					height:		$(settings.items[i]).height(),
					ratio:		$(settings.items[i]).width()/$(settings.items[i]).height()				
			};
			itemsDim.push(_itemDim);
		}
//		console.debug(itemsDim);
		$(window).resize(onResize);
		onResize();
		nextPicture();
	};
})(jQuery);

(function($){
	$.resizer = function(options){
		container = $(this)[0];
		if (options) { 
			$.extend(settings,options);
		}		
	};
});


(function($){
	$.debug = function(msg){
		console.debug(msg);
	};
	$.fn.debug = function(){
		console.debug(this);
		return this;
	};
})(jQuery);
