//Hilfsklasse
function ContentSlider(options)
{
	this.startContentSlider = startContentSlider;
	this.options = options;
	this.deactivateSubmenu = deactivateSubmenu;
	this.enableCE = enableCE;
	this.slide = slide;
	this.getSectionName = getSectionName;
	this.prepareSliding = prepareSliding;
	this.toggleClass = toggleClass;
}

/**
 * Deaktiviert das Submenu, so dass nicht zum Ziel navigiert wird,
 * sondern eben JS Animation angestoßen wird.
 * @return void
 */
function deactivateSubmenu()
{
	var cObj = this;
	
	//1.Element aktivieren
	$(this.options.menu + " li:first").addClass("act");
	
	$(this.options.menu + " li a").click(function(){
				
		var sectionName = cObj.getSectionName(this);
		cObj.slide("#c" + cObj.options[sectionName]);
		
		$(this).parent().siblings().removeClass("act");
		cObj.toggleClass($(this).parent(), "act");
		
		return false;
	});
}

/**
 * Aktiviert die Contentelemente für: Beratung, Print und Online 
 * zum klicken
 * @return void
 */
function enableCE()
{
	var cObj = this;
	
	$("#c" + this.options.beratung).addClass("pointer").click(function(){				
		cObj.slide(this);
	});
	$("#c" + this.options.print).addClass("pointer").click(function(){
		cObj.slide(this);
	});
	$("#c" + this.options.online).addClass("pointer").click(function(){
		cObj.slide(this);
	});
	
}

/**
 * Liefert den Bereichsname aus dem übergebenen Link
 * @param aElement
 * @return
 */
function getSectionName(aElement)
{
	return $(aElement).html().toLowerCase();
}

/**
 * Preprocessor damit das sliding eben klappt.
 * @return
 */
function prepareSliding()
{	
	$("#c" + this.options.beratung).parent().find(".pointer").wrapAll("<div class=\"slider\"></div>");
	$("#c" + this.options.beratung).parent().wrap("<div class=\"slider_container\"></div>");
	$(".slider_container").css("position", "relative").css("overflow", "hidden");
	$(".slider_container").height($(".slider_container").innerHeight());
	$(".slider_container .slider").css("position", "absolute");	
}

/**
 * Schiebt übergebenes CE nach oben
 * @param object
 * @return void
 */
function slide(object)
{	
	var offsetY = 0;
	
	$(object).prevAll().each(function(){
		 offsetY += $(this).height();	
	});
	
	$(object).parent().animate({
		top: -offsetY
	}, 250);
}

/**
 * Startet die Homepage JS Applikation
 * @return void
 */
function startContentSlider()
{
	this.deactivateSubmenu();
	this.enableCE();
	this.prepareSliding();
}

/**
 * Toggelt eine Klasse
 * @param Object element
 * @param String className
 * @return void
 */
function toggleClass(element, className)
{
	if ($(element).hasClass(className))
	{
		$(element).removeClass(className);
	}else
	{
		$(element).addClass(className);
	}
}
