/**
 *@author Pascal Brewing
 *InterNetstores
 *@version 0.2 Beta
 * */
jQuery(function(){
	// Preloader
	jQuery(".internetStores-slider").children('.panel').hide().end().prepend('<p class="loading">Loading...<br /><img src="/fileadmin/_lgde/graphics/loader.gif" alt="loading..." /></p>');
	
});

var sliderCount = 1;
var sliderOn = true;
var panel_interval;
jQuery.fn.internetStoresSlider = function(settings) {

	settings = jQuery.extend({
		autoHeight: true,
		autoHeightEaseDuration: 1000,
		autoHeightEaseFunction: "easeInOutExpo",
		autoSlide: false,
		autoSlideInterval: 7000,
		autoSlideStopWhenClicked: true,
		dynamicTabs: true,
		dynamicTabsAlign: "center",
		dynamicTabsPosition: "top",
		firstPanelToLoad: 1,
		panelTitleSelector: "h2.title",
		slideEaseDuration: 1000,
		slideEaseFunction: "easeInOutExpo"
	}, settings);
	
	return this.each(function(){
		var slider = jQuery(this);
		panel_interval = setInterval(autoSlide, settings.autoSlideInterval);
		
		var panelWidth = slider.find(".panel").width();
		var panelCount = slider.find(".panel").size();
		var panelContainerWidth = panelWidth*panelCount;
		var navClicks = 0;
		
		jQuery('.panel', slider).wrapAll('<div class="panel-container"></div>');
		jQuery(".panel-container", slider).css({
			width: panelContainerWidth
		});
		
		var currentPanel = 0;
		jQuery(this).bind({
			mouseenter:function(event){
				clearInterval(panel_interval);
			},
			mouseleave:function(event){
				panel_interval = setInterval(autoSlide, settings.autoSlideInterval);
			}
		});
		
		// If we need a dynamic menu
		if (settings.dynamicTabs) {
			var dynamicTabs = '<div class="internetStores-nav" id="internetStores-nav-' + sliderCount + '"><ul></ul></div>';
			switch (settings.dynamicTabsPosition) {
				case "bottom":
					slider.parent().append(dynamicTabs);
					break;
				default:
					slider.parent().prepend(dynamicTabs);
					break;
			};
			ul = jQuery('#internetStores-nav-' + sliderCount + ' ul');
			// Create the nav items
			jQuery('.panel', slider).each(function(n) {
				ul.append('<li class="tab' + (n+1) + '"><a>' + jQuery(this).find(settings.panelTitleSelector).text() + '</a></li>');
			});
			navContainerWidth = slider.width() + slider.siblings('.internetStores-nav-left').width() + slider.siblings('.internetStores-nav-right').width();
			//ul.parent().css({ width: navContainerWidth });
			switch (settings.dynamicTabsAlign) {
				case "center":
					ul.css({
						width: (jQuery("li", ul).width() + 100) * panelCount
					});
					break;
				case "right":
					ul.css({
						float: 'right'
					});
					break;
			}
		}
		
		// If we need a tabbed nav
		jQuery('#internetStores-nav-' + sliderCount + ' a').each(function(z) {
			// What happens when a nav link is clicked
			jQuery(this).bind("click", function() {
				navClicks++;
				jQuery(this).addClass('current').parents('ul').find('a').not(jQuery(this)).removeClass('current');
				offset = - (panelWidth*z);
				currentPanel = z + 1;
				
				jQuery('.panel-container', slider).animate({
					marginLeft: offset
				}, settings.slideEaseDuration, settings.slideEaseFunction);
				clearInterval(panel_interval);
				panel_interval = setInterval(autoSlide, settings.autoSlideInterval);
				autoSlide();
			});
		});
		
		// Set the height of the first panel
		if (settings.autoHeight) {
			panelHeight = jQuery('.panel:eq(' + (currentPanel - 1) + ')', slider).height();
			slider.css({
				height: panelHeight
			})
		}
		
		// Trigger autoSlide
		if (settings.autoSlide) {
			slider.ready(function() {
				autoSlide();
			})
		}
		
		function autoSlide() {
			if (navClicks == 0 || !settings.autoSlideStopWhenClicked) {
				if (currentPanel == panelCount) {
					var offset = 0;
					currentPanel = 1;
				//					console.info('currentPanel == panelCount');
				} else {
					var offset = - (panelWidth*currentPanel);
					currentPanel += 1;
				}
				// Switch the current tab:
				slider.siblings('.internetStores-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (currentPanel - 1) + ') a').addClass('current');
				// Slide:
				jQuery('.panel-container', slider).animate({
					marginLeft: offset
				}, settings.slideEaseDuration, settings.slideEaseFunction);
			}
		}
		
		// Kill the preloader
		jQuery('.panel', slider).show().end().find("p.loading").remove();
		slider.removeClass("preload");
		
		sliderCount++;
		
	});
};

function imageSlider(){
	// für Tooltipp benötigt
	var tooltipsHeight	= jQuery('.panel').height();
	var tooltipsWidth	= jQuery('.panel').width();
	var tooltipWidth	= 201;
	var tooltipHeight	= 109;
	var tooltippHolder	= 'tooltipHolder';

	var redIcon_height	= 28;
	var redIcon_width	= 28;
	var maxTopDiff		= (tooltipsHeight - tooltipHeight);
	var maxLeftDiff		= (tooltipsWidth - tooltipWidth);


	jQuery("div."+tooltippHolder).bind({
		mouseenter: function(event){
			var mainClass = jQuery(event.currentTarget).attr('class');
			var isdialog = jQuery(this).has('div.dialog').addClass('transform');
			var pos = jQuery(this).offset();
			var orgLeft = jQuery('.transform .orgLeft').text();
			var orgTop = jQuery('.transform .orgTop').text();
			if (orgLeft >= maxLeftDiff && orgTop >= maxTopDiff ) {
				jQuery(this).animate({
					top: ((pos.top - tooltipsHeight)+ redIcon_height)+'px',
					left: orgLeft-tooltipWidth +redIcon_width ,
					width:	tooltipWidth+'px',
					height:	tooltipHeight+'px'
				}, 400 );
			}
			else if(orgTop >= maxTopDiff ){

				jQuery(this).animate({
					top: orgTop - tooltipHeight + redIcon_height,
					width:	tooltipWidth+'px',
					height:	tooltipHeight+'px'
				}, 400 );
				jQuery('.transform .redIcon').css('position','absolute').css('bottom','0px');
			}
			else{
				jQuery(this).animate({
					width:	tooltipWidth+'px',
					height:	tooltipHeight+'px'
				}, 400 );
			}

		}
		,
		click: function(event){
			var mainClass = jQuery(event.currentTarget).attr('class');
			var isdialog = jQuery(this).has('div.dialog').addClass('transform');
			var pos = jQuery(this).offset();
			var orgLeft = jQuery('.transform .orgLeft').text();
			var orgTop = jQuery('.transform .orgTop').text();
			if (orgLeft >= maxLeftDiff && orgTop >= maxTopDiff ) {
				jQuery(this).animate({
					top: ((pos.top - tooltipsHeight)+ redIcon_height)+'px',
					left: orgLeft-tooltipWidth +redIcon_width ,
					width:	tooltipWidth+'px',
					height:	tooltipHeight+'px'
				}, 400 );
			}
			else if(orgTop >= maxTopDiff ){

				jQuery(this).animate({
					top: orgTop - tooltipHeight + redIcon_height,
					width:	tooltipWidth+'px',
					height:	tooltipHeight+'px'
				}, 400 );
				jQuery('.transform .redIcon').css('position','absolute').css('bottom','0px');
			}
			else{
				jQuery(this).animate({
					width:	tooltipWidth+'px',
					height:	tooltipHeight+'px'
				}, 400 );
			}
		}
		,
		mouseleave: function(event){
			var mainClass = jQuery(event.currentTarget).attr('class');
			if(jQuery('.transform').size() > 0){
				var orgLeft = jQuery('.transform .orgLeft').text();
				var orgTop = jQuery('.transform .orgTop').text();
				//alert(newY);
				jQuery(this).animate({
					top: orgTop,
					left: orgLeft,
					width:	redIcon_width+'px',
					height:	redIcon_height+'px'
				}, 400 );
			}
			jQuery(this).has('div.dialog').removeClass('transform');
		}
	});//bind


	//coda slider ausführen
	this.doSlider = function (){
		jQuery('#internetStores-slider-1').internetStoresSlider(
		{
			autoSlide: true,
			autoSlideInterval: 8000,
			dynamicArrows : false
		}
		);
	};
}
