var animatePlus = false;
var animate = false;
var hasFocus = false;

jQuery(document).ready(function() {
  	jQuery('#mainnav ul li').hover(
  		function () {
    		jQuery(this).addClass("hover");
  		},
  		function () {
    		jQuery(this).removeClass("hover");
  		}
	);

    // hide last spacer in metanavigation
    jQuery('#login-contact a').last().addClass('last');

    jQuery('#login_lnk').mouseenter(function(){
        jQuery('#ms-fly-login-box').removeClass("hidden");
        jQuery('#login_lnk').addClass('hover');
    }).mouseleave(function(){
        jQuery('#ms-fly-login-box').addClass("hidden");
        jQuery('#login_lnk').removeClass('hover');
    });

	var flyoutInputfieldFocussed = false;
    jQuery('#ms-fly-login-box').mouseleave(function(){
		if(!flyoutInputfieldFocussed){
            jQuery(this).addClass("hidden");
            jQuery('#login_lnk').removeClass('hover');
            jQuery('#login_lnk').next("span").css('visibility','visible');
            jQuery('#login_lnk').prev("span").css('visibility','visible');
        }
    }).mouseenter(function(){
        jQuery(this).removeClass("hidden");
        jQuery('#login_lnk').addClass('hover');
        jQuery('#login_lnk').next("span").css('visibility','hidden');
        jQuery('#login_lnk').prev("span").css('visibility','hidden');
    });

	jQuery("#lgn-email, #lgn-password").focus(function(){
		flyoutInputfieldFocussed = true;
	}).blur(function(){
		flyoutInputfieldFocussed = false;
	});
	
    jQuery('#search_lnk').mouseenter(function(){
        jQuery('.ms-rb-searchFormLayer').show();
        jQuery('#search_lnk').addClass('hover');
    }).mouseleave(function(){
        jQuery('.ms-rb-searchFormLayer').hide();
        jQuery('#search_lnk').removeClass('hover');
    });

    var serchFlyoutInputfieldFocussed = false;
    jQuery('.ms-rb-searchFormLayer').mouseleave(function(){
        if(!serchFlyoutInputfieldFocussed){
            jQuery(this).hide();
            jQuery('#search_lnk').removeClass('hover');
            jQuery('#search_lnk').next("span").css('visibility','visible');
            jQuery('#search_lnk').prev("span").css('visibility','visible');
        }
    }).mouseenter(function(){
        jQuery(this).show();
        jQuery('#search_lnk').addClass('hover');
        jQuery('#search_lnk').next("span").css('visibility','hidden');
        jQuery('#search_lnk').prev("span").css('visibility','hidden');
    });

    jQuery("#search").focus(function(){
        serchFlyoutInputfieldFocussed = true;
    }).blur(function(){
        serchFlyoutInputfieldFocussed = false;
    });
	

    jQuery('.subMenu li').mouseover(function(){
            jQuery(this).addClass('active');
            return false;
        });
    jQuery('.subMenu li').mouseout(function(){
            jQuery(this).removeClass('active');
            return false;
        });
		
	jQuery('.folding_link').click(function(){
		jQuery(this).parent().next('.folding_content').toggleClass('hidden');
	    jQuery(this).toggleClass('active');
	    return false;
	});

	jQuery(".productTooltip").mouseover(function(){
		var dataE = jQuery(this);
		var ptt = jQuery("#productTooltip");

		var data = {
			 headline:	jQuery(".headline",dataE).html()
			,title:		jQuery(".title",dataE).html()
			,titleUrl:	jQuery(".titleUrl",dataE).html()
			,price:		jQuery(".price",dataE).html()
			,descr:		jQuery(".descr",dataE).html()
			,itemNo:	jQuery(".itemNo",dataE).html()
			,itemNoUrl:	jQuery(".itemNoUrl",dataE).html()
			,imageUrl:	jQuery(".imageUrl",dataE).html()
			,imageAlt:	jQuery(".imageAlt",dataE).html()
			,footnote:	jQuery(".footnote",dataE).html()
		};

		jQuery(".headline .text",ptt).html(data.headline);
		jQuery(".image img",ptt).attr("src", data.imageUrl).attr("alt",data.imageAlt);
		jQuery(".title a",ptt).attr("href",data.titleUrl).html(data.title);
		jQuery(".price",ptt).html(data.price);
		jQuery(".descr",ptt).html(data.descr);
		jQuery(".itemNo a",ptt).attr("href",data.itemNoUrl).html(data.itemNo);
		jQuery(".footnote",ptt).html(data.footnote);

		var buttonPos = {
			 x : dataE.offset().left
			,y : dataE.offset().top
		};
		var tooltipDimensions = {
			 x : ptt.outerWidth()
			//,y : ptt.outerHeight()
		};
		var documentDimensions = {
			 x : jQuery(document).width()
			//,y : jQuery(document).height()
		};
		var tooltipPosition = {
			 x : buttonPos.x
			,y : buttonPos.y
		};
		if( buttonPos.x + tooltipDimensions.x > documentDimensions.x ){
			tooltipPosition.x -= buttonPos.x + tooltipDimensions.x - documentDimensions.x
		}

		ptt.css("left",tooltipPosition.x).css("top",tooltipPosition.y).show();
	});

	jQuery("#productTooltip").mouseleave(function(){
		jQuery("#productTooltip").hide();
	});
	jQuery("#productTooltip a.close").click(function(){
		jQuery("#productTooltip").hide();
		return false;
	});

	jQuery('.productRow').each(function(){
		maxHeight = 0;
		jQuery(this).children('.productTile').children('.productDescription').each(function(){
			height1 = jQuery(this).children('.head').height();
			height2 = jQuery(this).children('.productText').height();
			gesHeight = height1 + 20 + height2;
			if(gesHeight > maxHeight){maxHeight = gesHeight}
		});
		maxHeight +=0;
/*
		jQuery(this).children('.productTile').children('.productDescription').animate({
			height: maxHeight+"px"}
			,
			2000
		);
*/
		jQuery(this).children('.productTile').children('.productDescription').css('height', maxHeight+"px");
	});

    jQuery('.modalLayer').click(function(evt){
        if(jQuery(evt.target).hasClass('modalLayer')||jQuery(evt.target).hasClass('modalContent'))
        {
            togglePopup();
        }

    });

    jQuery('.modalContent').click(function(evt){
        if(jQuery(evt.target).hasClass('modalLayer')||jQuery(evt.target).hasClass('modalContent'))
        {
            togglePopup();
        }

    });
	// IE6-Ausnahmen
	if ( jQuery.browser.msie && jQuery.browser.version <= 6 ) {
		jQuery("#cart").hover(
			 function(){jQuery(this).addClass("hover")}
			,function(){jQuery(this).removeClass("hover")}
		)
	}

	// append data for background shift to menu items
	jQuery('div[id^="klippklar"]').data('offset', -100);
	jQuery('div[id^="hinweg"]').data('offset', -270);
	jQuery('div[id^="hierjetzt"]').data('offset', -390);
	jQuery('div[id^="holbring"]').data('offset', -530);

    jQuery('li[id^="mainSlide"]').data('item', '');
    jQuery('li[id^="klippklarSlide"]').data('item', 'klippklar_itm');
	jQuery('li[id^="hierjetztSlide"]').data('item', 'hierjetzt_itm');
	jQuery('li[id^="hinwegSlide"]').data('item', 'hinweg_itm');
	jQuery('li[id^="holbringSlide"]').data('item', 'holbring_itm');
    

   jQuery('.MenuItem').hover(
        function()
        {
            jQuery(this).addClass('highlight');
        },
        function()
        {
            jQuery(this).removeClass('highlight');
        }
    );
    
    jQuery('.MenuItem').click(function(){
    	
    	var isActiveOption = jQuery(this).hasClass('activeOption');
    	var id = jQuery(this).attr('id').split('_')[0];
    	var bgImgOffset = jQuery('div#' + id).data('offset') + 'px';

        jQuery('.marked').removeClass('marked');
    	jQuery(this).stop(true, true);
    	
        //the clicked item is selected
    	if(isActiveOption)
    	{
    		jQuery(this).removeClass('activeOption');
    		jQuery('#slideOutContent').removeClass('openDiv');
    		closePlusPackage();
    		jQuery('#slideOutContent').animate({right: '3px'},750, function(){
        		jQuery('img', 'div.backgroundImage').animate({left: -150}, 750, function(){
        			jQuery('.backgroundImage h1', '#content').show();
        		});
        	});
    		
    	}
    	else
    	{
    		var fetchedContent = jQuery('#' + id).html();
    		
    		// already one option selected
    		if(jQuery('div.activeOption', '.MyDashMenu').get(0))
    		{
    			jQuery('.MenuItem', '.MyDashMenu').removeClass('activeOption');
    			jQuery(this).addClass('activeOption');
    			
    			if(jQuery('.PlusContent').hasClass('openDiv'))
    			{
    				closePlusPackage();
    			}
    			if(jQuery(this).hasClass('noPlus'))
    			{
    				hidePlusPackage();
    			}
                else
                {
                    if(jQuery('.PlusLabel').hasClass('notShown'))
                    {
                        showPlusPackage();
                    }
                    
                }

    			// animation of content and plus package
                jQuery('div.versatileContent', '#slideOutContent').fadeOut(function(){
                	jQuery('div.versatileContent', '#slideOutContent').html(fetchedContent);
                	jQuery('div.versatileContent', '#slideOutContent').fadeIn();

                    jQuery('img', 'div.backgroundImage').animate({left: bgImgOffset}, 750);
                });
    		}
            //nothing selected
    		else
    		{
    			if(!jQuery(this).hasClass('noPlus'))
    			{
    				movePlusPackage();
    			}
                else
                {
                    hidePlusPackage()
                }
    			
    			jQuery('.backgroundImage h1', '#content').hide();
    			jQuery(this).addClass('activeOption');
    			jQuery('div.versatileContent', '#slideOutContent').html(fetchedContent);
    		}
    		
    		if(!jQuery('#slideOutContent').hasClass('openDiv'))
    		{
	    		jQuery('#slideOutContent').animate({right: '369px'},750,function(){
	            	jQuery('img', 'div.backgroundImage').animate({left: bgImgOffset}, 750);
	            	animate = false;
	            }).addClass('openDiv');
    		}
    	}
    	
        return false;
    });

    jQuery('.label').hover(
        function()
        {
            $(this).css('cursor', 'pointer');
            if(!animate && !animatePlus && !jQuery('.PlusContent').hasClass('openDiv'))
            {
                jQuery('.PlusLabel').animate({"right": "+=2px"}, 'fast');
            }
        },
        function()
        {
            $(this).css('cursor', 'default');
            if(!animate && !animatePlus && !jQuery('.PlusContent').hasClass('openDiv'))
            {
                jQuery('.PlusLabel').animate({"right": "-=2px"}, 'fast');
            }
        }
    );

    
    jQuery('.label').click(function(){
		if(!jQuery('.PlusContent').hasClass('openDiv'))
		{
            hideSlideshow();
			openPlusPackage();
			jQuery('.PlusContent').addClass('openDiv');
            if(!jQuery('div.activeOption', '.MyDashMenu').get(0))
            {
                jQuery('#hierjetzt_itm,#hinweg_itm,#holbring_itm').addClass('marked').addClass('openPlus');
            }
            else
            {
            	jQuery('div.activeOption', '.MyDashMenu').addClass('openPlus');
            }
			return false;
		}
		
		if(jQuery('.PlusContent').hasClass('openDiv'))
		{
            
			closePlusPackage();
			jQuery('.PlusContent').removeClass('openDiv');
            if(!jQuery('div.activeOption', '.MyDashMenu').get(0))
            {
                jQuery('#hierjetzt_itm,#hinweg_itm,#holbring_itm').removeClass('marked').removeClass('openPlus');
            }
            else
            {
            	jQuery('div.activeOption', '.MyDashMenu').removeClass('openPlus');
            }
            jQuery('.jCarouselLite').trigger('resumeCarousel');
            showIntervalSlideshow();
			return false;
		}
     });
/*
    jQuery(".jCarouselLite").jCarouselLite({
        auto: 4000,
        speed: 1500,
        vertical: true,
        pause: false,
		beforeStart: slideshowHeadlineHide,
		afterEnd: function(a) {
            slideshowHeadlineShow();
            if(jQuery('.jCarouselLite').css('display') != "none")
            {
                jQuery('.marked').removeClass('marked');
                var itm_id = jQuery(a[0]).data('item');
                if(itm_id)
                {
                    jQuery('#'+itm_id).addClass('marked');
                }
            }
        }
    });
*/
    jQuery('.backgroundImage').css('display', 'block');
    jQuery('.jCarouselLite').css('display', 'none');
    showIntervalSlideshow();

    


    jQuery('.login').mouseleave(function(){
      if(!hasFocus)
      {
         closeLayer();
      }
      
    });
    
    jQuery('.close', '.layerContent').click(function(e){
    	e.preventDefault();
    	e.stopPropagation();
    	closeLayer();
    });

});

function slideshowHeadlineShow(){
	jQuery("#content.MyDash .slideshow li h1").show();
}
function slideshowHeadlineHide(){
	jQuery("#content.MyDash .slideshow li h1").hide();
}
function hidePlusPackage()
{
	//jQuery('.PlusLabel').unbind('click');
	jQuery('.PlusLabel').animate({right:'373px'},750).addClass('notShown');
}

function showPlusPackage()
{    
	//jQuery('.PlusLabel').bind('click');
	jQuery('.PlusLabel').animate({right:'735px'},750).removeClass('notShown');
    jQuery('.PlusContent').animate({right:'517px'},750);
}

function movePlusPackage()
{
	var isSlideOutOpen    = jQuery('#slideOutContent').hasClass('openDiv');
	
	
	if(isSlideOutOpen)
	{
		jQuery('.PlusLabel').animate({right:'373px'},750);
		jQuery('.PlusContent').animate({right:'150px'},750);
		return false;
	}
	else
	{
		jQuery('.PlusLabel').animate({right:'735px'},750);
		jQuery('.PlusContent').animate({right:'517px'},750);
		return false;
	}
}

function openPlusPackage()
{
	var isSlideOutOpen = jQuery('#slideOutContent').hasClass('openDiv');
	if(true === isSlideOutOpen)
	{
		jQuery('.PlusLabel').animate({right:'957px'},750);
		jQuery('.PlusContent').animate({right:'737px'},750).addClass('openDiv');
	}
	else
	{
		jQuery('.PlusLabel').animate({right:'590px'},750);
		jQuery('.PlusContent').animate({right:'370px'},750).addClass('openDiv');
	}
	
	return false;
}

function closePlusPackage()
{
	var isSlideOutOpen = jQuery('#slideOutContent').hasClass('openDiv');
	if(isSlideOutOpen)
	{
		jQuery('.PlusLabel').animate({right:'735px'},750);
		jQuery('.PlusContent').animate({right:'517px'},750).removeClass('openDiv');
	}
	else
	{
		jQuery('.PlusLabel').animate({right:'371px'},750);
		jQuery('.PlusContent').animate({right:'150px'},750).removeClass('openDiv');
	}
	
	return false;
}

function togglePopup()
{
    jQuery('.modalLayer').toggleClass('hidden');
    jQuery('.modalContent').toggleClass('hidden');
    
}

function toggleDashLogin()
{
    jQuery('.MyDashMenu .login').toggleClass('hidden');
}

var interval;
function showIntervalSlideshow()
{
    
    if(!jQuery('.openDiv').get(0) && !jQuery('#slideOutContent').hasClass('openDiv'))
    {
        interval = setInterval ( "showSlideshow()", 5000 );
    }
        

}

function showSlideshow()
{
    clearInterval(interval);
    
    jQuery('.backgroundImage').hide()
    jQuery('.jCarouselLite').show();
    
    
    
}

function hideSlideshow()
{
    clearInterval(interval);
    jQuery('.jCarouselLite').trigger('pauseCarousel');
    if(!jQuery('.PlusContent').hasClass('openDiv'))
    {
        jQuery('.marked').removeClass('marked');
    }
    
    
    jQuery('.backgroundImage').show();
    jQuery('.jCarouselLite').hide();
}

function openLogin()
{
    jQuery('.login').removeClass('hidden');
    jQuery('#layerHead').html('Melden Sie sich an und starten Sie Ihre Buchung');
    jQuery('#layerContent').html(jQuery('#loginContent').html());
    jQuery('table :input').click(function() {hasFocus = true;}).blur(function() {hasFocus = false});

}

function openCancel()
{
    jQuery('.login').removeClass('hidden');
    jQuery('#layerHead').html('Melden Sie sich an und sagen Sie Ihren Termin ab.');
    jQuery('#layerContent').html(jQuery('#cancelContent').html());
    jQuery('table :input').click(function() {hasFocus = true;}).blur(function() {hasFocus = false});
}

function closeLayer()
{
    jQuery('.login').addClass('hidden');
    jQuery('#layerContent').html('');
}

