// JavaScript Document

/*if(jQuery.browser.msie && parseFloat(jQuery.browser.version) < 7)  {
alert("These pages are not optimized for the version of Internet Explorer" + " (" + jQuery.browser.version + ") you are using.\n\n Please use a standard-compliant browser like Firefox instead.");
document.write("<style type='text/css'>");
document.write("#containerGlobal  { display:none;background-color:#FFF; }");
document.write("</style>");
$(function()
{
    $("body").css("background-color","#FFF");
	
     
});
}*/



var element_temp = 0;
var element_temp_pos = 0;

var activate_navigation2 = null; var activate_navigation3 = null;
var activate_delay_navigations_stack = new Array();
var actual_hover_element = null;

function deactivateDataTableNavigation(element,element_position)
{
	element.style.visibility="hidden";
}


function hoverEffectNavigationLvl1Button(status,element)
{
	if(status=='hover')
	{
		element.getElementsByTagName('td')[0].style.backgroundPosition="0px -43px";
		element.getElementsByTagName('a')[0].style.color="white";
	}
	else if(status=='normal')
	{
		element.getElementsByTagName('td')[0].style.backgroundPosition="0px 0px";
		element.getElementsByTagName('a')[0].style.color="black";
	}
	else
	{
		alert("Fehler in Parameteruebergabe.");
	}		
}
function hoverEffectNavigationLvl4Button(status,element)
{
	if(status=='hover')
	{
		element.getElementsByTagName('td')[0].style.backgroundPosition="0px -37px";
		element.getElementsByTagName('a')[0].style.color="white";
	}
	else if(status=='normal')
	{
		element.getElementsByTagName('td')[0].style.backgroundPosition="0px 0px";
		element.getElementsByTagName('a')[0].style.color="black";
	}
	else
	{
		alert("Fehler in Parameteruebergabe.");
	}		
}



/* Banner Slider */
function bannerSlide(number_teaser_per_page,direction)
{
	switch(number_teaser_per_page)
	{
		case 1:
			var slideStep = 293;
			break;
		case 3:
			var slideStep = 879;
			break;			
		default:
		var slideStep = 879;
	}
	
	

	var thisValueMarginLeft = parseInt(document.getElementById("teaserSlider").style.marginLeft);
	
	if(direction=='left' && thisValueMarginLeft>-1758)
	{
		var newValueMarginLeft = (thisValueMarginLeft - slideStep) + "px";
		eval("doBannerSlide('" + newValueMarginLeft + "')");
	}
	if(direction=='right' && thisValueMarginLeft<0)
	{
		var newValueMarginLeft = (thisValueMarginLeft + slideStep) + "px";
		eval("doBannerSlide('" + newValueMarginLeft + "')");
	}

	/* Check for navigation-button-teaser to display */
	/*if(parseInt(newValueMarginLeft)>=0)
	{
		$("#navigationButtonTeaserRight").css("visibility","hidden");
	}
	if(parseInt(newValueMarginLeft)<=-1758)
	{
		$("#navigationButtonTeaserLeft").css("visibility","hidden");
	}
	else
	{
		$("#navigationButtonTeaserLeft").css("visibility","visible");
		$("#navigationButtonTeaserRight").css("visibility","visible");
	}*/	
}

function doBannerSlide(newValueMarginLeft)
{
	$("#teaserSlider").animate({ 
		marginLeft: newValueMarginLeft
		}, 600 );
}

$(document).ready(function(){
	$(window).unload(function(){
		$(".navigationLvl2, .navigationLvl3, .soccercard").css("visibility","hidden");					
		});
	$("#teaserSlider").animate({ 
        marginLeft: "0px"
      }, 600 );
	$(".navigationLvl2, .navigationLvl3").css("visibility","hidden");
	$(".callToActionLink").hover(
		function(){
		$(this).siblings(".closer").css("backgroundPosition","0 -25px");
		},
		function(){
		$(this).siblings(".closer").css("backgroundPosition","0 0");
		}		
	);
	$(".callToActionMainActionLink").hover(
		function(){
		$(this).siblings(".closer").css("backgroundPosition","0 -25px");
		},
		function(){
		$(this).siblings(".closer").css("backgroundPosition","0 0");
		}		
	);
	$(".modelDataTableCategoryLinkOpenClose").click(function(){
		$(this).css("backgroundPosition","0 -39px");
		$(this).parent("tr").next(".category").children(".categoryContent").css("border","1px solid red");											 
	});
	$("#modelName").css("cursor","pointer");
	$("#modelName").click(function(){
		location.replace("lacetti-overview.html");
	  });
	/* The difference between Menue-Holder-Element and first model-element results y-position for soccer-cards: */
	//soccerCardTopPosition = document.getElementById("navigationFirstModel").offsetTop;
	soccerCardTopPosition = $("#navigationFirstModel").offset();
	/*var arrayPosFirstElement = findPos(document.getElementById("navigationFirstModel"));
	alert(arrayPosFirstElement[0]);
	var soccercards = $(".navigationLvl2 ul.soccercard");*/
	/*$.each(soccercards, function(){
						arrayPosThis = findPos($(this));
						alert("This pos: " + arrayPosThis[0]);
						$(this).css("top", "-"+(arrayPosThis[1]-arrayPosFirstElement[1])+"px");
													 });*/
//	$(".navigationLvl2 ul.soccercard").css("top", topPosition+"px");
	
});

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}




/* V2.0: */


/* IDEE: Einen Status für HOVER, einen fuer SELECTED aktivieren. */


function textContains(targetString,searchString) {
	if(targetString)
	{
		var targetStringSplittet = targetString.split (" ");
		for(i=0;i<=targetStringSplittet.length;i++)
		{
			if(targetStringSplittet[i]==searchString)
			{
				return true;
			}
		}
		return false;
	}
	else
	{return false;}
}

function getParentNode(fromNode,targetNodeName,cssName)
{
	while(fromNode.nodeName!=targetNodeName || fromNode.nodeName=="BODY")
	{
		fromNode = fromNode.parentNode;
	}
	if(fromNode.nodeName=="BODY")
	{
		return false;	
	}
	if(cssName)
	{
		if(textContains(fromNode.className,cssName))
		{
			return fromNode;
		}
	}
	else if(cssName==0)
	{
		return fromNode;
	}
}
function getChildNode(fromNode,navLvl,targetNodeName,cssName)
{
	var fNTmp = fromNode;
	var i=0;
	//console.info("      getChildNode: "+fNTmp.nodeName+", "+targetNodeName+" navLvl: "+navLvl);
	while(fNTmp.nodeName!=targetNodeName && i<fromNode.childNodes.length)
	{
		if(navLvl=="lvl1")
			{fNTmp = fromNode.childNodes[i];}
		else
			{fNTmp = fromNode.childNodes[i];}
		//alert(fNTmp.nodeName+", "+fNTmp.className);
		i++;
	}
	if(fNTmp.nodeName==targetNodeName)
	{
		return fNTmp;
	}
	
}


function testNodeChildnode(testNode,isChildnodeOf)
{
	if(testNode && isChildnodeOf)
	{
		//alert("Test: "+testNode.nodeName+"("+testNode.className+") child of ?-> "+isChildnodeOf.nodeName+"("+isChildnodeOf.className+")");
		while(testNode!=isChildnodeOf && testNode.nodeName!="BODY")
		{
			testNode = testNode.parentNode;
		}
		if(testNode.nodeName==isChildnodeOf.nodeName)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
}

function deleteStack()
{
	if(navStack.length>0)
	{
		for(i=0;i<navStack.length;i=0)
		{
			window.clearTimeout(navStack[i]);
			navStack.shift();
		}
	}	
}

function setVisibleView(element,mode,targetElement)
{
	if(mode=="active")
	{
		$(element).addClass("selected");
	}
	else if(mode=="inactive")
	{
		var handleElements = $(element).children("li");
		$.each(handleElements, function(){
			if($(this)!=targetElement)
			{$(this).removeClass("selected");}	
		});
		//$(element).children("li").removeClass("selected");
	}			
	else{alert("Error in setting active-status.");}
}


var z=0;
var navStack = new Array();


function handle_main_nav(status,element,e,lvl)
{
	z++;

	// Bubbles
	if(!e){e = window.event;}
	if (e.stopPropagation) {
	e.stopPropagation();
	} else {
	e.cancelBubble = true;	}
		
	// Params
	this_element 		= element;
	parent_node 		= this_element.parentNode.parentNode;
	var target 			= e.target || e.srcElement || false;
	var fromElement 	= e.relatedTarget || e.fromElement || false;
	var toElement		= e.relatedTarget || e.toElement || false;
	var parentElement	= target;
	/* Go to next parentelement (LI) */
	if(lvl=="lvl1"){parentElement = getParentNode(target,"LI","navigationLvl1");}		
	if(lvl=="lvl2"){parentElement = getParentNode(target,"LI",0);}
	if(lvl=="lvl3"){parentElement = getParentNode(target,"LI",0);}
	


	deleteStack();

	if(status=="in")
	{
			//alert("level: " + lvl);
			targetElement = getChildNode(parentElement,lvl,"UL",0);
			
			if(lvl=="lvl1")
			{
				// reset and highlight:
				$("ul#navigationLvl1 > li").removeClass("hover");
				$(element).parent().parent("li").addClass("hover");
					
				if(targetElement)
				{
					// Deselect all submenues:
					$("ul.navigationLvl2").css("visibility","hidden");
					// Handles at the moment only one fix expected dropdown:
					$("ul.navigationLvl2").css("visibility","visible");					
				}
				else
				{
					// If exists, show submenu:
					if($(element).children("ul.navigationLvl2")){$(element).children("ul.navigationLvl2").css("visibility","visible");}
					// Deselect all submenues:
					$("ul#navigationLvl1 ul").css("visibility","hidden");
				}
			}
			else if(lvl=="lvl2" && target.nodeName=="A")
			{
				/* Activate Parent Element as View=Active: */
				$(element).parent("ul").parent("li").toggleClass("selected");
				//element.setAttribute('className','selected');
				
				/* Kind wurde gefunden(das Deselektieren aller Eintraege wird in der Subfunktion gemacht).
				   Damit der Eintrag nicht nochmal selektiert wird, wenn vom Kind auf den Eintrag gefahren wurde,
				   dies abfangen: Nur wenn fromElement von Nachbarn-Elementen, dies ausfuehren: */
				   
				// Reset for Hover-Effect:
				var thisElemHover = $("ul.navigationLvl2");
				setVisibleView(thisElemHover,"inactive",element);
				setVisibleView(element,"active",element);				
				if(targetElement)
				{	//console.info("target= "+targetElement.nodeName);
					res = window.setTimeout("delay_activate_navigation(this_element,targetElement,'" + lvl + "')", 280);
					navStack.unshift(res);			
				}
				/* Kein Kind gefunden - Eintraege manuell deselektieren, da anderes Element mit der Maus gewaehlt wurde */
				else
				{
					//console.info("KEIN KIND GEFUNDEN, gehe in Zweig 'deactivate lvl2'");
					res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'" + lvl + "')", 280);
					navStack.unshift(res);					
				}
			}
			else if(lvl=="lvl3" && target.nodeName=="A")
			{
				/* Kind wurde gefunden(das Deselektieren aller Eintraege wird in der Subfunktion gemacht).
				   Damit der Eintrag nicht nochmal selektiert wird, wenn vom Kind auf den Eintrag gefahren wurde,
				   dies abfangen: Nur wenn fromElement von Nachbarn-Elementen, dies ausfuehren: */
				// Set Element-Visible-View on Active:
				$("ul.navigationLvl2 li").removeClass("selected");
				$(element).parent("ul").parent("li").addClass("selected");
				
				// Reset for Hover-Effect:
				var thisElemHover = $("ul.navigationLvl3");
				setVisibleView(thisElemHover,"inactive",element);
				setVisibleView(element,"active",element);				
				
				if(targetElement)
				{	//console.info("target= "+targetElement.nodeName);
					setVisibleView(element,"active",element);
					res = window.setTimeout("delay_activate_navigation(this_element,targetElement,'" + lvl + "')", 280);
					navStack.unshift(res);			
				}
				/* Kein Kind gefunden - Eintraege manuell deselektieren, da anderes Element mit der Maus gewaehlt wurde */
				else
				{
					res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'" + lvl + "')", 280);
					navStack.unshift(res);					
				}
			}
			else if(lvl=="sc")
			{
				// Set Element-Visible-View on Active:
				$(element).parent("ul").parent("li").parent("ul").children("li").removeClass("selected");
				$(element).parent("ul").parent("li").addClass("selected");				
			}			
			else
			{
				//console.info("was ist datta denn?");
			}									

	}
	if(status=="out")
	{
		/* If mouse leaves lvl2, check toElement: If is an child-element or sibling-element, hide children. Else hide lvl2 + childs (=complete menu).   
		   If mouse leaves lvl3, check toElement:
		*/
		if(target.nodeName=="UL")
		{
			res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'lvl1')", 280);
			navStack.unshift(res);					
		}		
		/* SoccerCard: Acccept function only, if out is going real outside, not to in element of the SoccerCard */
		if(lvl=="sc" && textContains(toElement.className,"callToActionMainActionLink")==false && textContains(toElement.className,"wrapper")==false && textContains(toElement.className,"teaser")==false && textContains(toElement.className,"price")==false && textContains(toElement.className,"headline")==false && textContains(toElement.className,"callToActionLink")==false)
		{
			res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'sc')", 280);
			navStack.unshift(res);
			res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'lvl3')", 560);
			navStack.unshift(res);
			res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'lvl2')", 840);
			navStack.unshift(res);
			res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'lvl1')", 1120);
			navStack.unshift(res);	
		}
		else if(lvl=="lvl3" && textContains(toElement.className,"callToActionMainActionLink")==false && textContains(toElement.className,"wrapper")==false && textContains(toElement.className,"teaser")==false && textContains(toElement.className,"price")==false && textContains(toElement.className,"headline")==false && textContains(toElement.className,"sdtNavigation")==false)
		{
			var inactiveElement = $("ul.navigationLvl3");
			setVisibleView(inactiveElement,"inactive",element);
			res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'lvl2')", 280);
			navStack.unshift(res);
			res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'lvl1')", 360);
			navStack.unshift(res);				
		}		
		else if(lvl=="lvl2" && textContains(toElement.className,"callToActionMainActionLink")==false && textContains(toElement.className,"wrapper")==false && textContains(toElement.className,"teaser")==false && textContains(toElement.className,"price")==false && textContains(toElement.className,"headline")==false && textContains(toElement.className,"sdtNavigation")==false && fromElement!="LI")
		{
			var inactiveElement = $("ul.navigationLvl2");
			setVisibleView(inactiveElement,"inactive",element);
			res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'lvl1')", 280);
			navStack.unshift(res);				
		}
		else if(lvl=="lvl1" && textContains(toElement.className,"callToActionMainActionLink")==false && textContains(toElement.className,"wrapper")==false && textContains(toElement.className,"teaser")==false && textContains(toElement.className,"price")==false && textContains(toElement.className,"headline")==false && textContains(toElement.className,"sdtNavigation")==false && fromElement!="LI")
		{
			var inactiveElement = $("ul#navigationLvl2");
			setVisibleView(inactiveElement,"inactive",element);
	
			res = window.setTimeout("delay_deactivate_navigation(this_element,targetElement,'lvl1')", 120);
			navStack.unshift(res);				
		}	
	}
	
}


function delay_activate_navigation(activationElement,element,level)
{
	if(level=="lvl3")
	{
		$("ul.navigationLvl3 ul.soccercard").css("visibility","hidden");
	}
	else if(level=="lvl2")
	{
		$("ul.navigationLvl2 ul").css("visibility","hidden");
	}
	var abstandParent = $(activationElement).offset();
	$(activationElement).children(".soccercard").css("top","-" + (parseInt(abstandParent.top) - parseInt(soccerCardTopPosition.top)) + "px");
	$(element).css("visibility","visible");
}
function delay_deactivate_navigation(activationElement,element,level)
{
	if(level=="sc")
	{
		$("ul.navigationLvl3 ul").css("visibility","hidden");
	}	
	else if(level=="lvl3")
	{
		$("ul.navigationLvl2 ul").css("visibility","hidden");
	}
	else if(level=="lvl2")
	{
		$("ul.navigationLvl2 ul").css("visibility","hidden");
	}
	else if(level=="lvl1")
	{
		if(activate_delay_navigations_stack.length>0)
		{
			for(i=0;i<activate_delay_navigations_stack.length;i++)
			{
				window.clearTimeout(activate_delay_navigations_stack[i]);
			}
		}
		$("ul#navigationLvl1 li").removeClass("selected");
		$("ul.navigationLvl2, ul.navigationLvl2 ul").css("visibility","hidden");
		$("ul#navigationLvl1 > li").removeClass("hover");				
	}
}

function get_next_dom_element(dom_element,dom_element_search,i)
{
	if(!i){var i=0}
	if(dom_element)
	{
		/*console.info("***Rekursive Schleife***");
		console.log(i+": "+dom_element.nodeName);
		console.log(dom_element.nodeName);
		console.log(dom_element);*/
		var dom_element_search = dom_element_search;
		if(dom_element.nodeName!=dom_element_search){dom_element=dom_element.firstChild.nextSibling;get_next_dom_element(dom_element,dom_element_search,i)}
		else if(dom_element.nodeName==dom_element_search){i=i+1;alert("i hochzaehlen bitte!");}
	}
	return i;
}
function verify_dom_element(dom_element,dom_element_search,i)
{
	if(!i){var i=0}
	if(dom_element)
	{
		/*console.info("***Verify Dom Element***");
		console.log(i+": "+dom_element.nodeName);
		console.log(dom_element.nodeName);
		console.log(dom_element);*/
		var dom_element_search = dom_element_search;
		if(dom_element.getElementsByTagName(dom_element_search).length<1){return 0;}
		else if(dom_element.getElementsByTagName(dom_element_search).length>=1){return 1;}
		else {return -1;}
	}
}
