
//dojo.require("dojo._base.fx");
//dojo.require("dojo._base.html");
dojo.require("dojo.fx");
//dojo.require("dojo.fx.easing");
dojo.require("dojox.fx");
//dojo.require("dojox.fx.split");


//dojo.require("dojox.image.ExtendedSlideShow");



dojoFx={
		_scopeName:				"dojoFx",
		mainPrefixed: 			"main_",
		subPrefixed:			"sub_",
		
		numObjects:				6,
		opacityWhenHidden:		"0",
		opacityWhenVisible:		"0.90",
			
		nav_domNumbers:  		["1", "2", "3", "4", "5", "6"],
		mainDomNodes:  			[],
		subDomNodes:   			[],
		tempNodeList:   		[],
		mainLink_a:				[],
		subLink_a:				[],
		
		slideImages_NodeList: 	{},
		slideImageNodes:   		[],
		slideControllNodes: 	[],
		
		slideTempList:{
			slideimages:  		[], 
			slideControll:		[] 
		},
		
		//fxObjectSlideIn:	[],
		//fxObjectSlideOut:	[],
		
		menuLoadStatus:			false,
		logObj:					console.log, 	// shortcut for console.log
		debug:					false,
		logs:					[],
									// this represents the fxScope for each element that been handled
		fxObjScope:				[],
		
		init: function() {
			dojoFx.getDomNodes();
			dojoFx.mapper();
			//dojoFx.linker();			 // Hier muss der Kommentar hin !
		},
		log: function(params) {
			if(dojoFx.debug) {
				dojoFx.logObj(params);
			}
		},
		mapper: function() { // hide each element and manipulate the dom
			dojo.forEach(dojoFx.subDomNodes, function(domNode,id){
				if(typeof domNode != "undefined") {
					domNode.fxMap={
						rootOffsetDomNode: 	domNode.offsetParent,
						rootNode: 			domNode.parentNode,
						scrollHeight:		domNode.offsetHeight,
						topOffset:			domNode.offsetTop,		// parentNode height
						menuOpenState:		true,
						
						init: function() {
							domNode.fxMap.fastHide();
							domNode.fxMap.close();
							domNode.fxMap.menuOpenState = false;
							domNode.fxMap.doEventMapping();
						},
						doEventMapping: function() {
						     dojo.connect(domNode.parentNode, 	"onmouseout" 	, function() {domNode.fxMap.close()});
						     dojo.connect(domNode.parentNode, 	"onmouseover" 	, function() {domNode.fxMap.open()});
						},
						fastHide: function() {
							dojo.style(domNode, "opacity", dojoFx.opacityWhenHidden);
							this.menuOpenState = false;
						},
						close: function() {
							dojox.fx.wipeTo({
					            node: domNode.id,    
					            height: 0
							}).play();
							this.menuOpenState = false;
						},
						open: function() {
							dojo.style(domNode, "opacity", dojoFx.opacityWhenVisible);
							dojox.fx.wipeTo({
					            node: domNode.id,    
					            height: this.scrollHeight
							}).play();
							this.menuOpenState = true;
						}
					};
					dojoFx.fxObjScope.push(domNode);
					domNode.fxMap.init();
				} /* end typeof */
			});
			
			dojoFx.debug = true;
			/* dojo slider functions */
			
			
			// create a NodeList from the slide images
			//dojoFx.slideImages_NodeList = new dojo.NodeList(dojo.byId("slideImages_NodeList"));
			// query the maskNodes and imageNodes
			//dojoFx.slideImageNodes 			= dojoFx.slideImages_NodeList.query("div[id^='slideImage']");
			//dojoFx.slideControllMaskNodes   = dojoFx.slideImages_NodeList.query("div[id^='mask']");
				//console.log(IMAGE_COA);
					
				//console.log(bgColors);
			/*		
			var linkBox = dojo.byId("sliderMask");
			var t1   = new dojo.fx.Toggler({
				node: linkBox,
				showDuration: 1000,
				hideDuration: 1000,
			});
			var imageBox = dojo.byId("slideImage-1");
			var t2   = new dojo.fx.Toggler({
				node: imageBox,
				showDuration: 1000,
				hideDuration: 1000,
			});
			
			var linkBox2 = dojo.byId("sliderMask");
			var t1_2  = new dojo.fx.Toggler({
				node: linkBox2,
				showDuration: 1000,
				hideDuration: 1000,
			});
			var imageBox2 = dojo.byId("slideImage-2");
			var t2_2   = new dojo.fx.Toggler({
				node: imageBox2,
				showDuration: 1000,
				hideDuration: 1000,
			});
			
			var visible = true;
			dojo.connect(linkBox, "onclick", function(evt) {
				if(visible) {
					t1.hide();
					t2.hide();
					linkBox2.style.zIndex  = "900";
					imageBox2.style.zIndex = "900";
					imageBox.style.zIndex  = "1000";
					linkBox.style.zIndex   = "1000";
					dojo.byId('slideImageSrc2').src = "typo3temp/GB/16b64b3068.jpg";
				} else {
					t1_2.show();
					t2_2.show();
					imageBox.style.zIndex  = "900";
					linkBox.style.zIndex   = "900";
					linkBox2.style.zIndex  = "1000";
					imageBox2.style.zIndex = "1000";	
					dojo.byId('slideImageSrc1').src = "typo3temp/GB/76d8b2a3c2.jpg";
				}
				visible = !visible;
			});
			*/
		},
		// this part is the fix for the domTabs object
		// domTab takes over all contents into a tab based view
		// TODO: implement dijit tabs
		linker: function() {
			// mainLink_a
			// subLink_a
			// mainPrefixed: 	"main_",
			// subPrefixed:		"sub_",
			//dojoFx.getDomNodes();	  
	
			// query the maskNodes and imageNodes
			var nl = dojo.query("div[id^='"+dojoFx.mainPrefixed+"']"); 
			dojo.forEach(nl,function(node) {
					var snl = new dojo.NodeList(node);
					var changeLinks = snl.query('a');
					
					dojo.forEach(changeLinks,function(node,i) {
						//console.log(changeLinks[i]);	
						var tabLink = changeLinks[0]+"#tab_";
						if(i>0) {
							
							var tabNr = changeLinks[i].search.substr(4,changeLinks[i].search.length);
							// Auskommentier da bei klick auf eine Unterseite die id der elternseite geladen wurde - und seite sollte heute noch funktionieren
							// schon mal daran gedacht einfach die linker funktion aus dem jonstruktor zu nehmen. Experten!
							changeLinks[i].href = tabLink+tabNr;
							dojo.connect(node,"onclick",function() { document.location.href=changeLinks[i].href; location.reload();});
							node.style.cursor = "pointer";
						}
					});
			});
			
			//nl.dojo.query(nl.id + " > div[id^='"+dojoFx.mainPrefixed+"']").forEach(function(subDomNode){
			//		dojoFx.log(subDomNode);
			//});

			//console.log(dojoFx.tempNodeList);
			//dojoFx.log(dojoFx.tempNodeList)
		},
		getDomNodes: function() {
			dojo.forEach(dojoFx.nav_domNumbers, function(i){
				subNode  = dojo.byId(dojoFx.subPrefixed  + i );
				mainNode = dojo.byId(dojoFx.mainPrefixed + i );
				if(typeof subNode != "undefined")  // define domNodes here
					dojoFx.subDomNodes[i]  = dojo.byId(dojoFx.subPrefixed  + i);
				if(typeof mainNode != "undefined") // define domNodes here
					dojoFx.mainDomNodes[i] = dojo.byId(dojoFx.mainPrefixed + i);				
			});
		}
};

dojo.addOnLoad(function() {
	dojoFx.init();
	//var extendedSlideShow = dijit.byId('extendedSlideShow');
	//console.dir(extendedSlideShow);
	//extendedSlideShow.toggleSlideShow();
});



