(function ($) {
	$.fn.cardSlider = function (options) {
		var defaults = {
			breite: 950,
			dauer: 400,
			breite_card: 300,
			cards: 'card',
			cardTitle: 'card_title',
			imageShadow: 'cc_cardslider_schatten'
		};
		var options = $.extend(defaults, options);
		return this.each(function () {
			var current = $(this);
			var anzahl = current.find('.'+options.cards).size();
			var abstand = Math.round(options.breite/anzahl);

			// Titel anordnen
			var title_height = current.find('.'+options.cardTitle).css("fontSize")
			var title_height =  parseInt(title_height.substr(0, title_height.length-2));
			var title_margin = 10;
			var zahler2=0;
			current.find('.'+options.cardTitle).each(function(){
				$(this).css({bottom: title_margin+'px'});
				if (zahler2<Math.round(anzahl/2)){ title_margin = title_margin+title_height; }
				else { title_margin = title_margin-title_height; }
				zahler2++;
			});

			// Karten anordnen
			var zahler = 0;
			current.children('.'+options.cards).each(function(){
				var left = zahler*abstand;
				$(this).css({left: left+'px'});
				zahler++;
			});
			// Rechten Schatten setzen
			current.children('.'+options.imageShadow).css({right: "-20px"});
			
			// Funktion für Hover setzen
			current.children('.'+options.cards).hover(function(){
				current.find('.'+options.imageShadow).stop().animate({right: "-5px"},options.dauer);
				$(this).addClass("current");
				zahler=0;
				abstandhover=(options.breite-options.breite_card)/(anzahl-1);
				zusatz=0;
				current.find('.'+options.cards).each(function(){
					if (zahler==0){
						zahler++;
						if ($(this).hasClass("current")){
							zusatz=options.breite_card-abstandhover;
						}
					}
					else {
						var left = (zahler*abstandhover)+zusatz;
							$(this).stop().animate({left: left+"px"},options.dauer);
						if ($(this).hasClass("current")){
							zusatz=options.breite_card-abstandhover;
						}
						zahler++;
					}
				});
			},
			function(){
				current.find('.'+options.imageShadow).stop().animate({right: "-20px"},options.dauer*5);
				$(this).removeClass("current");
				zahler=0;
				current.find('.'+options.cards).each(function(){
					var left = zahler*abstand;
					$(this).stop().animate({left: left+"px"},options.dauer+300);
					zahler++;
				});
			});
		});
	}
})(jQuery);

jQuery(document).ready(function(){
	startCardSlider();
});
