/******************************************************************************************************
* copyright (c) 2010 MEDIAL MULTIMEDIA SERVICES
* client: gulp
* project: website
*
* version: 1.0.1
* date: 2012-01
*******************************************************************************************************/

var TimeoutNav;
var DelayNav = 250;
var isSpecialBrowser = false;
//var IE = document.all?true:false;
//var xMousePos = 0;
//var yMousePos = 0;
////var LoginHideTimeout;

//if (!IE) document.captureEvents(Event.MOUSEMOVE)
//document.onmousemove = getMouseXY;

//function getMouseXY(e) {
//	if (IE) { // grab the x-y pos.s if browser is IE
//		xMousePos = event.clientX + document.body.scrollLeft;
//		yMousePos = event.clientY + document.body.scrollTop;
//	}
//	else {  // grab the x-y pos.s if browser is non IE
//		xMousePos = e.pageX;
//		yMousePos = e.pageY;
//	}  
//	if (xMousePos < 0){xMousePos = 0;}
//	if (yMousePos < 0){yMousePos = 0;}  
//	return true;
//}

//window.onbeforeunload = function() {
    //ResetNav();
//};

$j(document).ready(function () {

    SetWorkAroundForSpecialBrowsers();

    $j(".content .unit.form.searchmask.home a.tab").each(
		function () {
		    if ($j(this).text() == $j.cookie("stab")) {
		        $j(".content .unit.form.searchmask.home a.tab").removeClass("active");
		        $j(this).addClass("active");

		        $j(".content .unit.form.searchmask.home .container").removeClass("active");
		        $j(".content .unit.form.searchmask.home .container:eq(" + $j(this).index() + ")").addClass("active");

		        $j(".facts .toggle-content").removeClass("active");
		        $j(".facts .toggle-content:eq(" + $j(this).index() + ")").addClass("active");
		    }
		}
	);

    $j(".content .unit.form.searchmask.home a.tab").bind("click", function () {

        $j(".content .unit.form.searchmask.home a.tab").removeClass("active");
        $j(this).addClass("active");
        $j.cookie("stab", $j(this).text(), { expires: 365 });

        $j(".content .unit.form.searchmask.home .container").removeClass("active");
        $j(".content .unit.form.searchmask.home .container:eq(" + $j(this).index() + ")").addClass("active");

        $j(".facts .toggle-content").removeClass("active");
        $j(".facts .toggle-content:eq(" + $j(this).index() + ")").addClass("active");

    });

    $j(".facts .unit ul.tab li").bind("click", function () {

        $j(".facts .unit ul.tab li").removeClass("active");
        $j(this).addClass("active");
        $j(".facts .unit .tab-content div").removeClass("active");
        $j(".facts .unit .tab-content div:eq(" + $j(this).index() + ")").addClass("active");

        //$j(".content .unit.search .wrapper a.tab").removeClass("active");
        //$j(this).addClass("active");

        //$j(".content .unit.search .wrapper .content").removeClass("active");
        //$j(".content .unit.search .wrapper .content:eq(" + $j(this).index() + ")").addClass("active");

        //$j(".facts .unit:eq(0), .facts .unit:eq(1)").addClass("inactive");
        //$j(".facts .unit:eq(" + $j(this).index() + ")").removeClass("inactive");
    });

    /* begin navigation */

    var ExtraStyle = '';
    ExtraStyle += '    <style type="text/css">';
    ExtraStyle += '      .nav ul.level-0 li:hover ul { display: none;  visibility: hidden;}';
    ExtraStyle += '      .nav ul.level-0 li ul { display: none;  visibility: hidden;}';
    ExtraStyle += '    </style>';
    $j('head').append(ExtraStyle);

    //    $j(document).bind('mousemove', function(e) {
    //        $j(document).unbind('mousemove');
    //        var NavInitiated = false;

    //        // for all nav elements:
    //        $j('ul.level-0 > li').each(function(Index, CurrentElement) {
    //            var Element = $j(CurrentElement);
    //            var offset = Element.offset();
    //            // if mouse is within element: bind InitNav on MouseOut
    //            if (e.pageX > offset.left && e.pageX < offset.left + Element.width() && e.pageY > offset.top && e.pageY < offset.top + Element.height()) {
    //                Element.bind('mouseleave', function() {
    //                    $j(this).unbind('mouseleave');
    //                    InitNav();
    //                });
    //                NavInitiated = true;
    //                return false;
    //            }
    //        });
    //        // mouse is not within any of the elements
    //        if (!NavInitiated) {
    //            InitNav();
    //        }
    //    });
    InitNav();

    $j('.nav ul.level-0 li.active > a').css('background-color', '#B9BBBF').css('color', '#FFFFFF');
    $j('.nav ul.level-0 li.active > a').bind('mouseout', function () {
        $j(this).removeAttr('style');
    });

});

function InitNav() {
	if (isSpecialBrowser) return;

	$j('.nav ul.level-0 > li').each(function (Index, Element) { $j(this).attr('rel', Index); });

	$j('.nav ul.level-0 > li').mouseenter(function (e) {
	    clearTimeout(TimeoutNav);
	    var NavElement = $j(this);
	    NavElement.addClass('has-hover');


	    var CurrentlyShowing = $j('.nav ul.level-0 > li.showing');
	    if (CurrentlyShowing.length) {
	        if ($j(CurrentlyShowing[0]).attr('rel') == NavElement.attr('rel'))
	            return;

	        CurrentlyShowing.removeClass('has-hover');
	        HideNav(CurrentlyShowing);
	        ShowNav(NavElement);
	    }
	    else
	        TimeoutNav = setTimeout(function () { ShowNav(NavElement) }, DelayNav);
	});

    $j('.nav ul.level-0 > li').mouseleave(function (e) {

        var NavElement = $j(this);
        // login-container: special check
        if (NavElement.parents('.login-container.not-logged-in').length)
            return;

        NavElement.removeClass('has-hover');
        if ($j(this).hasClass('showing'))
            setTimeout(function () { HideNav(NavElement) }, DelayNav);
    });

    if (!$j('.login-container').hasClass('logged-in')) {
        $j('.login-container').addClass('not-logged-in');

        for (var i = 1; i <= 4; i++) {
            $j('.body-wrapper').append('<div id="login-border' + i.toString() + '" class="login-border" style="border:1px solid transparent; position:absolute; display:none; z-index:1000"></div>');
        }

        $j('.login-border').mouseenter(function (e) {
            var NavElement = $j('.login-container ul.level-0 > li');
            NavElement.removeClass('has-hover');
            HideNav(NavElement);
            $j('.login-border').hide();
        });
    }
}

function ShowNav(NavElement) {
    
	if (!NavElement.hasClass('has-hover'))
        return;
    NavElement.addClass('showing');
    var Ul = NavElement.find('ul');
    Ul.css({
        'display': 'block',
        'visibility': 'visible'
    });
    //login-container: special check
    if (NavElement.parents('.login-container.not-logged-in').length) {
        var Border = 100;
        var Left = $j('.login-form').offset().left;
        var Top = $j('.login-form').offset().top - 40;
        var Width = $j('.login-form').width() + 40;
        var Height = $j('.login-form').height() + 60;
		if ($j.browser.msie && $j.browser.version == 7) Left = Left-10;
		//'backgroundColor': '#ff0000', 
        $j('#login-border1').css({ 'left': (Left - Border) + 'px', 'top': (Top - Border) + 'px', 'width': (Width + Border * 2) + 'px', 'height': Border + 'px' }).show();
        $j('#login-border2').css({ 'left': (Left - Border) + 'px', 'top': Top + 'px', 'width': Border + 'px', 'height': Height + 'px' }).show();
        $j('#login-border3').css({ 'left': (Left + Width) + 'px', 'top': Top + 'px', 'width': Border + 'px', 'height': Height + 'px' }).show();
        $j('#login-border4').css({ 'left': (Left - Border) + 'px', 'top': (Top + Height) + 'px', 'width': (Width + Border * 2) + 'px', 'height': Border + 'px' }).show();
    }
}

function HideNav(NavElement) {
    if (NavElement.hasClass('has-hover'))
        return;
    var Ul = NavElement.find('ul');
    Ul.css({
        'display': 'none',
        'visibility': 'hidden'
    });
    NavElement.removeClass('showing');
}

function ResetNav() {
    $j('ul.level-0 > li').removeClass('has-hover showing');
    $j('ul.level-1').css({
        'display': 'none',
        'visibility': 'hidden'
    });
	$j('.nav .close-nav').remove();
}
/* end navigation */

function SetWorkAroundForSpecialBrowsers()
{
	//check browser
	isSpecialBrowser = (
        //Detect iPhone
        (navigator.platform.indexOf("iPhone") != -1) ||
        //Detect iPad
        (navigator.platform.indexOf("iPad") != -1) ||
        //Detect iPod
        (navigator.platform.indexOf("iPod") != -1) ||
		//Detect Mobile Browser
		(navigator.userAgent.indexOf("Mobile") != -1) ||
		//Detect Android
		(navigator.userAgent.indexOf("Android") != -1)
	);
	
	if (!isSpecialBrowser) return;
	
	//prevent nav expand on mouseenter
	$j('.nav ul.level-0 li').bind('mouseenter', function(e) {
		e.preventDefault();
	});

	//click handler for click outside navigation
	$j('.header, .content-wrapper').bind('click', function(e) {
		ResetNav();		
	});
	
	//click handler for click inside navigation on empty areas
	$j('.nav ul.level-0 li ul.level-1').live('click', function(e) {
		ResetNav();		
	});

	//nav expand on click
	$j('.nav ul.level-0 li a').bind('click', function(e) {
		if ($j(this).parent().hasClass("has-hover")) {}
		else 	
		{
			if ($j(this).parent().parent().hasClass("level-2")) {}	
			else
			{
				e.preventDefault();
				ResetNav();
				var NavElement = $j(this).parent();
				NavElement.addClass("has-hover");
				ShowNav(NavElement);
				if ($j('.nav .close-nav').length==0)
				{
					$j('.nav').append("<a class='close-nav' href='#' style='padding-right:15px; color: #747880; font-weight: bold; position: absolute; left: 10px; top: 290px; z-index: 100; background:url(/images/redesign/ico-close.png) no-repeat right center scroll transparent;'>Schließen</a>");
					$j('.nav .close-nav').bind('click', function(e1) {
						e1.preventDefault();
						ResetNav();
					});
				}
			}			
		}
	});
}




