/****** TOP PRODUCTS ********/
		/* called from domready event */
		function initTopProducts() {
	          /***** NEW ARRIVALS *****/          
	          animateArrivalsRight = new Fx.Tween("new_inner", {duration: 1000, link: "cancel", transition: Fx.Transitions.Bounce.easeOut, onComplete: function() {
	            // alert("zu löschen --> Index: "+newArrivalsIndex+", ArraInhalt: "+newArrivalsArray[newArrivalsIndex].uid); 	         
/*			if(!$("arrivals_ani_"+newArrivalsArray[newArrivalsIndex].uid)) {
				alert("NewArrivalsIndex: "+newArrivalsIndex+", uid: "+newArrivalsArray[newArrivalsIndex].uid);
				arrayCheck(newArrivalsArray);

			} */
	            $("arrivals_ani_"+newArrivalsArray[newArrivalsIndex].uid).dispose(); /* newArrivalsIndex ist oft falsch? */
	            newArrivalsIndex = toIndex;  
	            var left = $("arrivals_nav").getFirst("a");
	            var right = $("arrivals_nav").getLast("a");
	            addTopProductsEvents(left,right,"arrivals");
	          }});                                                           
	          animateArrivalsLeft = new Fx.Tween("new_inner", {duration: 1000, link: "cancel", transition: Fx.Transitions.Bounce.easeOut, onComplete: function() {
	            $("arrivals_ani_"+newArrivalsArray[newArrivalsIndex].uid).dispose(); 
	            newArrivalsIndex = toIndex;                   
	            $("new_inner").setStyle("left","0px");
	            var left = $("arrivals_nav").getFirst("a");
	            var right = $("arrivals_nav").getLast("a");            
	            addTopProductsEvents(left,right,"arrivals");            
	          }});                                                                     
	          /* make the browse buttons visible */
	          $("arrivals_nav").getElements("a").each(function(el) {
	            el.setStyle("display","inline");
	          });
		  	if($("arrivals_nav").getFirst("a")) {
		          /* add the events to the Buttons */
		          var left = $("arrivals_nav").getFirst("a");
	        	  var right = $("arrivals_nav").getLast("a");          
		          addTopProductsEvents(left,right,"arrivals");                          
	              periodicalChangeArrivals.periodical(callPeriodical);
			}
	        
	          /***** SALES *****/
	          animateSalesRight = new Fx.Tween("sales_inner", {duration: 1000, link: "cancel", transition: Fx.Transitions.Bounce.easeOut, onComplete: function() {
	            $("sales_ani_"+salesArray[salesIndex].uid).dispose();
	            salesIndex = toSalesIndex;
	            /* set new link for the sales logo */           
	            $("rsalelink").set("href",salesArray[salesIndex].link);
	            var left = $("sales_nav").getFirst("a");
	            var right = $("sales_nav").getLast("a");
	            addTopProductsEvents(left,right,"sales");
	          }});                                                           
	          animateSalesLeft = new Fx.Tween("sales_inner", {duration: 1000, link: "cancel", transition: Fx.Transitions.Bounce.easeOut, onComplete: function() {
	            $("sales_ani_"+salesArray[salesIndex].uid).dispose();
	            salesIndex = toSalesIndex;        
	            $("rsalelink").set("href",salesArray[salesIndex].link);                       
	            $("sales_inner").setStyle("left","0px");
	            var left = $("sales_nav").getFirst("a");
	            var right = $("sales_nav").getLast("a");            
	            addTopProductsEvents(left,right,"sales");            
	          }});                 
	          /* make the browse buttons visible */
	          $("sales_nav").getElements("a").each(function(el) {
	            el.setStyle("display","inline");
	          });         
                  if($("sales_nav").getFirst("a")) {
	          	var left = $("sales_nav").getFirst("a");
		          var right = $("sales_nav").getLast("a");
	        	  addTopProductsEvents(left,right,"sales");          
                  	callPerChaSales.delay(salesAfterArrivals);
		  } 
		}

        function arrayCheck(arr) {
          var str = "";
          arr.each(function(item,index){
            str = str + "["+index+"] = "+item+"\n";
            if(item instanceof Object) {
              for(var e in item) {
                str = str +"--> "+e+" = "+item[e]+"\n";
              }
            }
          });            
          alert(str);
        }        
        
        
        /* Changes the new Arrivals Product --> maths the next Element */
        function changeTopProduct(direction,toElStr,mode) {
          if(direction=="right") {            
            /* from left to right */
            if(mode=="arrivals") {
	      /* Arrivals */                      
              toIndex = 0;
              if(newArrivalsArray[newArrivalsIndex+1]) {
                toIndex = newArrivalsIndex+1;
              }
              if(!newArrivalsArray[toIndex].imageEl) { 
			    newArrivalsArray[toIndex].imageEl = new Asset.image(newArrivalsArray[toIndex].image, {onload: function() {
	                var product = createElement(toIndex,newArrivalsArray,"arrivals",newArrivalsArray[toIndex].imageEl);
	                $(toElStr).setStyle("left","-170px");            
	                product.inject($(toElStr),"top");
	                animateArrivalsRight.start("left", "0");                
                }});
              }
              else {
                var product = createElement(toIndex,newArrivalsArray,"arrivals",newArrivalsArray[toIndex].imageEl);
                $(toElStr).setStyle("left","-170px");            
                product.inject($(toElStr),"top");
                animateArrivalsRight.start("left", "0");                              
              }                                                           
            }
            else {            
              /* Sales */
              toSalesIndex = 0;
              if(salesArray[salesIndex+1]) {
                toSalesIndex = salesIndex+1;
              }              
              if(!salesArray[toSalesIndex].imageEl) { 
			    salesArray[toSalesIndex].imageEl = new Asset.image(salesArray[toSalesIndex].image, {onload: function() {              
	              var product = createElement(toSalesIndex,salesArray,"sales",salesArray[toSalesIndex].imageEl);
	              $(toElStr).setStyle("left","-170px");            
	              product.inject($(toElStr),"top");
	              animateSalesRight.start("left", "0");
				}});
			  }
			  else {
	              var product = createElement(toSalesIndex,salesArray,"sales",salesArray[toSalesIndex].imageEl);
	              $(toElStr).setStyle("left","-170px");            
	              product.inject($(toElStr),"top");
	              animateSalesRight.start("left", "0");			  
			  }               
            }  
          }
          else {
            /* from right to left */          
            if(mode=="arrivals") {
              /* Arrivals */            
              toIndex = newArrivalsArray.length-1;
              if(newArrivalsIndex-1 >= 0) {
                toIndex = newArrivalsIndex-1;
              }
              if(!newArrivalsArray[toIndex].imageEl) { 
			    newArrivalsArray[toIndex].imageEl = new Asset.image(newArrivalsArray[toIndex].image, {onload: function() {
	              var product = createElement(toIndex,newArrivalsArray,"arrivals",newArrivalsArray[toIndex].imageEl);
	              product.inject($(toElStr),"bottom");
	              animateArrivalsLeft.start("left", "-190px");			    
			    }});
			  }
			  else {                  
	              var product = createElement(toIndex,newArrivalsArray,"arrivals",newArrivalsArray[toIndex].imageEl);
	              product.inject($(toElStr),"bottom");
	              animateArrivalsLeft.start("left", "-190px");             
	          }    
            }
            else {  
              /* Sales */              
              toSalesIndex = salesArray.length-1;
              if(salesIndex-1 >= 0) {
                toSalesIndex = salesIndex-1;
              }
              if(!salesArray[toSalesIndex].imageEl) { 
			    salesArray[toSalesIndex].imageEl = new Asset.image(salesArray[toSalesIndex].image, {onload: function() {  
	              var product = createElement(toSalesIndex,salesArray,"sales",salesArray[toSalesIndex].imageEl);
	              product.inject($(toElStr),"bottom");
	              animateSalesLeft.start("left", "-190px");            			    
			    }});
			  }
			  else {              
	              var product = createElement(toSalesIndex,salesArray,"sales",salesArray[toSalesIndex].imageEl);
	              product.inject($(toElStr),"bottom");
	              animateSalesLeft.start("left", "-190px");                           
	          }    
            }
          }
        }                                                        
                     
        function createElement(index,dataArray,mode,preloadedImg) {
          var el = new Element("div",{
            "class": "shopitem",
            "id": mode+"_ani_"+dataArray[index].uid
          });
          var imgDiv = new Element("div",{
            "class": "shopitemimg"
          });
          imgDiv.adopt(
            new Element("a",{
              "href": dataArray[index].link
            }).adopt(preloadedImg));
              
          var productDetails = new Element("div",{
            "class": "shopitemdesc"
          });
          productDetails.adopt(
            new Element("div",{
              "class": "itemtitle"
            }).adopt(
              new Element("a",{
                "href": dataArray[index].link,            
                "html": dataArray[index].title    
              })),            
            new Element("div",{
              "class": "itemprice",
              "html": dataArray[index].price
          }));
          el.adopt(imgDiv,productDetails);
          return(el);
        }             
                  
        function getTopProducts(direction,mode) {
	if(!theRequest) {
            theRequest = new Request({method: "get", url: xmlUrl, link: "ignore", onSuccess: function(responseText,responseXml) {
            getProductsXml = 1;
            /* fill newArrivals Array */                                                          	        
            var root = responseXml.getElementsByTagName("code");            
            var uids = root[0].getElementsByTagName("product");
            for(var i=0; i<uids.length; i++) {
              newArrivalsArray[i] = {
                "uid": uids[i].childNodes[0].firstChild.nodeValue,
                "title": uids[i].childNodes[1].firstChild.nodeValue,
                "image": uids[i].childNodes[2].firstChild.nodeValue,
                "price": uids[i].childNodes[3].firstChild.nodeValue,
                "link": uids[i].childNodes[4].firstChild.nodeValue               
              }
              if($("arrivals_ani_"+newArrivalsArray[i].uid)) {
                newArrivalsIndex = i;
              }
            }      
            /* fill sales array*/
            var uids = root[1].getElementsByTagName("product");
			for(var i=0; i<uids.length; i++) {
              salesArray[i] = {
                "uid": uids[i].childNodes[0].firstChild.nodeValue,
                "title": uids[i].childNodes[1].firstChild.nodeValue,
                "image": uids[i].childNodes[2].firstChild.nodeValue,
                "price": uids[i].childNodes[3].firstChild.nodeValue,
                "link": uids[i].childNodes[4].firstChild.nodeValue               
              }
              if($("sales_ani_"+salesArray[i].uid)) {
                salesIndex = i;
              }
            }
            if(mode=="arrivals") {
              changeTopProduct(direction,"new_inner",mode);
            }
            else {
              changeTopProduct(direction,"sales_inner",mode);
            }  
          }}).send();    
	}              
          return (1);
        }           
                 
        function topProductsEvent(direction,mode) {
          if(!getProductsXml) {
            /* new arrivals und sales per Ajax holen */              
            getTopProducts(direction,mode);
          }                            
          else {
            if(mode=="arrivals") {
              changeTopProduct(direction,"new_inner",mode); 
            }
            else {
              changeTopProduct(direction,"sales_inner",mode); 
            }  
          }        
          return (1);
        }         
        
        function addTopProductsEvents(leftA,rightA,mode) {
          leftA.addEvents({
            "click": function() {
              topProductsEvent("right",mode);
              if(mode=="arrivals") {
                lastArrivalsClick = 1;
                $clear(clearLastArrivalsClick);
                clearLastArrivalsClick = resetClickVarArrivals.delay(delayAfterClick);             
              }
              else {
                lastSalesClick = 1;              
                $clear(clearLastSalesClick);
                clearLastSalesClick = resetClickVarSales.delay(delayAfterClick);                             
              }  
              removeTopProductsEvents(leftA,rightA);              
            }
          });         
          rightA.addEvents({
            "click": function() {
              topProductsEvent("left",mode);
              if(mode=="arrivals") {
                lastArrivalsClick = 1;
                $clear(clearLastArrivalsClick);
                clearLastArrivalsClick = resetClickVarArrivals.delay(delayAfterClick);             
              }
              else {
                lastSalesClick = 1;              
                $clear(clearLastSalesClick);
                clearLastSalesClick = resetClickVarSales.delay(delayAfterClick);                             
              }                
              removeTopProductsEvents(leftA,rightA);                            
            }
          });        
        }
              
        function removeTopProductsEvents(left,right) {
          left.removeEvents("click");
          right.removeEvents("click");          
          return (1);
        }      
        
        var resetClickVarArrivals = function() {
            lastArrivalsClick = 0;
        }
        var resetClickVarSales = function() {
            lastSalesClick = 0;
        }        
        
        /* Funktion um automatisch arrivals zu wechseln --> wird alle 3 Sekunden ausgeführt */
        /* wird nur gemacht wenn 3 Sekunden lang nicht vor oder zurück gedrückt wurde */
        var periodicalChangeArrivals = function(){ 
          if(lastArrivalsClick==0 && $("arrivals_nav").getElements("a")) {
            $("arrivals_nav").getFirst("a").fireEvent("click");            
          }          
        }; 
        
        /* calls periodical change Sales with delay.. */
        var callPerChaSales = function() {
          periodicalChangeSales.periodical(callPeriodical);        
        }
        
        var periodicalChangeSales = function(){ 
          if(lastSalesClick==0 && $("sales_nav").getElements("a")) {
            $("sales_nav").getLast("a").fireEvent("click");                          
          }          
        };                       
       
/********* SUBANVI ********/
		function initSubnavi() {					
	          if($("menu_clothing").innerHTML!="") {
	            subnaviVisible = 1;           
	          } 
	          var currMainNav = $("mainmenu").getElement('a.act');
	          if(currMainNav && $("menu_clothing")) { 
	            var actLeft = currMainNav.getPosition().x - $("mainmenu").getPosition().x + 10;
	            $("menu_clothing").setStyle('padding-left', actLeft+"px");
	          }  
              var activeA = $("mainmenu").getElement('a.act');
              var einblenden = new Fx.Tween("menu_clothing", {link: "cancel", duration: 150});
              naviAni = new Fx.Tween("menu_clothing", {duration:300, link:"cancel", onComplete:function() {
                /*on complete effekt --> lis is a global var */
                $("menu_clothing").innerHTML = lis;       
              }});                            
	          $("mainmenu").getElement("ul").getElements("a").each(function(a) {
	            if(a.getParent().getProperty("id")) {                              
	              var toPageId = a.getParent().getProperty("id").substr(11);            
	              var navPointsLevel2 = 0;
	              if($("subnavi_js_"+toPageId) && $("subnavi_js_"+toPageId).getChildren().length>0) {
	                navPointsLevel2 = 1;
	              }
	              if($("subnavi_js_"+toPageId) && navPointsLevel2>0) {              
	                a.addEvents({
	                  'mouseenter': function(){                
	                    if(activeA && subnaviVisible || subnaviVisible) {
	                      subnaviVisible = 1;
	                      moveSubnavi(a,toPageId);                  
	                    }
	                    else {
	                      /* nur einblenden, mit Inhalt füllen und richtig positionieren! */                      
	                        naviAni.cancel();
	                        var hoverLeft = a.getPosition().x - $("mainmenu").getPosition().x + 10;                                          
	                        lis = $("subnavi_js_"+toPageId).innerHTML;            
	                        $("menu_clothing").setStyles({
	                          "padding-left": hoverLeft+"px",
	                          "opacity": 0
	                        });
	                        $("menu_clothing").innerHTML = lis;
	                        einblenden.start("opacity", 1);
	                        subnaviVisible = 1;
	                    }                          
	                  }
	                });
	              }
	            }    
	          });
	          
	          /* set variables needed for mouseleave event */
              var toPageId = 0;
              if(activeA && activeA.getParent().getProperty("id")) {                
                toPageId = activeA.getParent().getProperty("id").substr(11);                            
              }               
              var move=0;
              if($("subnavi_js_"+toPageId)) {
                if($("subnavi_js_"+toPageId).getChildren().length>0) {
                  move = 1;
                }
              }	          
	          $("menutopcontainer").addEvents({
	            'mouseleave': function(){     
	              /* nur zurück wenn die Maus auserhalb Navigationsleiste ist */              
	              if(subnaviVisible) {
	                if( move && activeA) {
                  		(function(){ moveSubnavi(activeA,toPageId); }).delay(150);  	                  
	                }                
	                else {       
	                  einblenden.start("opacity", 0); 
	                  subnaviVisible = 0;                                          
	                }  
	              }            
	            }  
	          });	
	          $("mainmenu").getElement("ul").getElements("a").each(function(a) {
				noUnderNav = 1;
	            if(a.getParent().getProperty("id")) {                              
	              var tmpPageId = a.getParent().getProperty("id").substr(11);            
	              var navPointsLevel2 = 0;
	              if($("subnavi_js_"+tmpPageId) && $("subnavi_js_"+tmpPageId).getChildren().length>0) {
	                noUnderNav = 0;
	              }
	            }  
	              // if($("subnavi_js_"+toPageId) && navPointsLevel2>0) {
	              
	            if(!a.getParent().getProperty("id") || noUnderNav) {	            
	                a.addEvents({	                
	                  'mouseenter': function(){
	              		if(subnaviVisible) {
	                		if( move && activeA) {
	                  			// (function(){ moveSubnavi(activeA,toPageId); }).delay(150);   
	                  			moveSubnavi(activeA,toPageId);	                  				                  
			                }                
	    		            else {     
	            		      einblenden.start("opacity", 0); 
	                  		  subnaviVisible = 0;                                          
	                		}  
	              		}   	                  	
	                  }
	                });              	
	            }
	          });                            	
		}

        /* moves the current clothing menu to the mainnav a element with the given page id */
        function moveSubnavi(a,toPageId) {          
          if($("menu_clothing")) { 
            var hoverLeft = a.getPosition().x - $("mainmenu").getPosition().x + 10;
            if(hoverLeft.toInt()!=$("menu_clothing").getStyle("padding-left").toInt()) {              
              lis = $("subnavi_js_"+toPageId).innerHTML;            
              /* $("menu_clothing").setStyle('padding-left', hoverLeft+"px"); */
	      	  naviAni.start("padding-left", hoverLeft);
  	    	}  
          }            
        }
