/**
* deskJS-Functions
*
*  Parameters:
*    verzDebug: Debugstatus für den JSON-Output (bolean)
*    verzLocal: Request auf lokale/externe Daten (bolean)
*    verzUser: DBName des Benutzer (string)
*
*  Methods:
*    _loadStatus: Aufruf bei jeder Interaktion - Load, Request, usw (bereich, json-aktion)
*    _directLink: Aufruf durch direktlink Verz-Verz und Internen Seiten (mode = verz/site)
*    _afterRendering: Aufruf nach Einbindung der Plugins und Rendering des Templates
*/
var rand = '';
var almatec;
window.addEvent('domready',function(){

	deskJS = new deskJS();
	
	/*if (DOMAIN.indexOf('192.') != -1) {
		ROOT = DOMAIN;
	}*/
	
});

deskJS = new Class({
	
        // Implements
        Implements: addDeskJS
	
	// options
        ,options: {
		verzDebug: 1,
		verzLocal: 0,
		verzUser: 'almatec2',
		nameVal: []
        }
	
	// initialization
        , initialize: function(options){
		
		//set options
		this.setOptions(options);
		
		// pluginload
		this._jsPreload({
			templating: true,
			historymanager: false,
			menu: false,
			slider: true,
			scrollspy: false,
			popup: false,
			sortOn: false
		});
        }
	
	// Ladestatus der Plugins oder des Request
        ,_loadStatus: function(part, action){
		
        }
	
	// Aufruf durch Verzeichnisverlinkung
        ,_directLink: function(mode, DBstr, lrID, ldID){
		        
        }
	
	,_afterRendering: function(){
		almatec = new almatec();
	}
		
});
/**
* almatec-Functions
*
*  Parameters:
*
*  Methods:
*    initialize: Aufruf bei jeder Interaktion - Load, Request, usw (bereich, json-aktion)
*    regTabs: Registrierung und Initialisierung Tab-Funktionen auf der Startseite
*    tabFunction: Funktionsaufruf bei Klick auf Tab
*    initPic: Zoom-Funktion after Rendering
*    initProdFinder: Produktefinder initialisieren
*    genDropdowns: DropDowns für ProdFinder generieren anhan ReqObj
*    prodReq: Produkte-Request von ProdukteFinder
*    showPop: PopUp anzeigen
*    closePop: PopUp schliessen
*    blend: Ein-/Ausblend FX
*    login: Animation Login-Fenster
*    newsOverview: Übersicht Newseinträge / Accordion
*    changePanel: Startseite Panel mit Bilder / Hover FX
*    genSlider: Generierung Slider Startseite
*       
*/
almatec = new Class({
	
	Implements: deskJS,
	
	options:{
		
	},
	
	initialize: function(){
		
		//standard Req Dummy
		this.dummy = {
			type: 'all'
			,user: this.options.verzUser
			,table: {
				listingrows: 'lr'
			}
			,fields: 'lr.rubrikname'
			,order: ''
			,language: LANG
		}
		
		//Bilder-Funktionen für ProdukteTabs auf Folgeseiten
		if($defined($('miniPix'))) this.initPic();
		
		// Register Tabs change
		this.regTabs();
		
		if (AKTIVNAV == 'home') {
			
			// Impressionsbilder change
			this.changePanel();
		}
		
		//Newsmodul
		if (TAGS.news) this.newsOverview();
        	
		//Generierung Login-Animation
		this.login();

		$('overlay').addEvents({
			'click': function(){
				this.closePop();
			}.bind(this)
		},this);
	}
	
	//Initialisierung Tabs auf der Homepage
	,regTabs: function(){
		
		if(AKTIVNAV[0] == 'home' && MODE == ''){
			var tabs = new MGFX.Tabs('.tab', '.tabContent', {
				transitionDuration: 0
			});
			
			var allTab = $$('.tab');
			
			activeTab = window.location.href.split('tab=');
			activeTab = $defined(activeTab[1]) ? activeTab[1] : 0;
			
			tabs.showSlide(activeTab);
	
			this.tabFunction(activeTab);
			
			allTab.addEvents({
				//rufe bei click auf den Tab die Inhaltsfunction auf
				'click': function(e){
					
					this.tabFunction(e.target.id.split('_')[1]);
					
				}.bind(this)
			});
		}else{
			if ($('tabsContent')) {
				var tabs = new MGFX.Tabs('.tabsContent', '.contentTab', {
					transitionDuration: 0
				});
			}
		}
	}
	
	//Unterscheidung der Funktionen zu den diversen Tabs
	,tabFunction: function(tabNo){
		
		$$('.tabContent').setStyle('display','none');
		$('tabContent_'+tabNo).setStyle('display','block');
		
	
		
		tabNo = tabNo.toInt();
		
		if(tabNo == 0 || tabNo == 1){
				var slidPics = $$('#tabContent_'+tabNo+' .slider_prod_con');

				
				slidPics.addEvents({
					'mouseover': function(){
						
						this.getChildren('.slider_img')[0].setStyle('opacity',0.8);
						this.getChildren('.slider_text')[0].getChildren('a')[0].setStyle('color','#000');
					},
					'mouseleave': function(){
						this.getChildren('.slider_img')[0].setStyle('opacity',1);
						this.getChildren('.slider_text')[0].getChildren('a')[0].setStyle('color','#7F7867');
					}
				});
		}

		switch(tabNo){
			case 0: case 1:
				
				// Slider
				if($('box'+tabNo).get('html') == '') this.genSlider(tabNo);
				break;
			
			case 3:
				
				//ProdFinder
				if($('sel1').options.length < 2){
					this.initProdFinder($('tabContent_'+tabNo));
				}
				
				break;
		}

	}
	
	//BilderFunktionen (wenn Folgeseite mit Optionsbilder)
	,initPic: function(){
		
		ReMooz.assign('#bigPic', {'origin': 'img'});
		
		$('zoomBtn').destroy();
						
		xzoom = $('bigPic').clone().cloneEvents($('bigPic'));
		
		xzoom.setProperties({
			id: 'zoomBtn',
			src: ROOT + 'images/zoom.jpg',
			width: 39,
			height: 9
		})
		
		xzoom.inject($('zoom'));
		
		//Alle Mini-Bilder auswählen und Mit Event binden
		allPics = $$('#miniPix img');
		allPics.addEvents({
			'click': function(){
				
				$('zoomBtn').destroy();
				
				$('bigPic').destroy();
				
				newPic = '<img src="'+ this.src.replace('35x25','250x180')+'" name="'+this.src.replace('35x25','800x456')+'" style="cursor:pointer;" class="remooz-element" id="bigPic">';
				
				newPic = newPic.toDOM();
				
				newPic.inject($('zoom'),'before');

				ReMooz.assign('#bigPic', {'origin': 'img'});
						
				xzoom = $('bigPic').clone().cloneEvents($('bigPic'));
				
				xzoom.setProperties({
					id: 'zoomBtn',
					src: ROOT + 'images/zoom.jpg'
				})
				
				xzoom.inject($('zoom'));

			}
		})

	}
	
	//Request für Produktfinder-Selects ausführen
	,initProdFinder: function(cont){
		reqOver = {
			table: {
				listingrows: 'lr'
			}
			,condition:{}
			,fields: 'lr.rubrikname'
		};
		
		this._verzReqStr = this._verReqChange(this.dummy, reqOver);
		this._verzReq('genDropdowns');			
	}
	
	//Generierung Dropdowns anhand VerzReq
	,genDropdowns: function(lvlTree){
		
		lvlTree = lvlTree.result;
		
		//Dropdown Was
		lvlTree.each(function(treeEl,key){

			if(key != 0){
				newEntry = new Option(treeEl.lr.rubrikname, '', false, false);
				$('sel1').options[key] = newEntry;
				$('sel1').options[key].value = treeEl.lr.rubrikname;
			}
		});
		
		//wenn von backlick bereits vorgegebene values kommen
		dl = false;
		for(i=1;i<4;i++){
			if(eval('sel'+i) != ''){
				
				dl = true;
				$('sel'+i).value = eval('sel'+i);
			}
		}
		if(dl == true)this.prodReq();

		//styling dropdowns
		Custom.init('tabContent_3');
		
		//SearchAction
		$('sbmtSearch').addEvents({
			'click': function(){
				this.prodReq();
			}.bind(this)
		});
		
	}
	
	//FinderRequest
	,prodReq: function(){
		if (LANG == 'de') {
			$('sbmtSearch').setStyle('background','url("'+ROOT+'images/button_laden.jpg")');
		}else if (LANG == 'en') {
			$('sbmtSearch').setStyle('background','url("'+ROOT+'images/button_laden_en.jpg")');
		}else {
			$('sbmtSearch').setStyle('background','url("'+ROOT+'images/button_laden_fr.jpg")');
		}
				
		 reqOver = {
			table: {
				listingdatas: 'ld',
				listingrows: 'lr',
				listings: 'l'
			}
			,condition:{}
			,fields: 'ld.*'
			,language: LANG
		};
		
				
		reqOver = $H(reqOver);
		reqArr = ['lr.rubrikname','ld.wer','ld.wo'];
		
		//Alle Selects (Values) der Query adden
		for(i=1;i<4;i++){
			if($('sel'+i).value != 'all') reqOver.condition[reqArr[i-1]] = $('sel'+i).value;
		}
		
		
		this._verzReqStr = this._verReqChange(this.dummy, reqOver);

		(function(){
			
			new deskJS_template({
				autoLoad: true,
				target: $('popContent'),
				tpl: $('tpl_prodFinder'),
				data: this._verzReqStr,
				afterRendering: function(){
					if (LANG == 'de') {
						$('sbmtSearch').setStyle('background', 'url("' + ROOT + 'images/button_submit.jpg")');
					}else if (LANG == 'en') {
						$('sbmtSearch').setStyle('background', 'url("' + ROOT + 'images/button_submit_en.jpg")');
					}else {
						$('sbmtSearch').setStyle('background', 'url("' + ROOT + 'images/button_submit_fr.jpg")');
					}	
					//nach Request PopUp öffnen
					this.showPop();
				}.bind(this)
			});
			
		}.bind(this)).delay(600,this);
	}
	
	//PopUp anzeigen (PrdoFinder Res)
	,showPop:function(){
		$$('#popUp, #overlay').setStyles({
			'display': 'block',
			'opacity': 0
		});
		
		$('popContent').setStyles({
			'display': 'block'
		});
	
		$('overlay').setStyles({
			width: window.getScrollWidth() + 'px',
			height: window.getScrollHeight() + 'px'
		});
		this.blend($('popUp'),300,1);
		this.blend($('overlay'),200,0.8);

	}
	
	//PopUp schliessen
	,closePop: function(){
		this.blend($('popUp'),300,0);
		this.blend($('overlay'),200,0);
		
		$('popContent').setStyles({
			'display': 'none'
		});
	}

	//Blend-Funktion
	,blend: function(mE,dur,val){

		new Fx.Morph(mE, {
			duration: dur
		}).start({'opacity': val});
	}
	
	//Login Ein-/Ausblenden
	,login: function(){
		
		var mySlide = new Fx.Slide('logindown');
		mySlide.hide();
		$('logindown').setStyle('top', '28px');
		
		$('logindown').getParent('div').setStyle('width',500)
		
		$('toggle').addEvent('click', function(e){
			e = new Event(e);
			mySlide.toggle();
			e.stop();
		});

	}
	
	//Anzeigen News in Accordion wenn News-Tag auf Page
	,newsOverview: function(){
		 reqOver = {
			table: {
				listingdatas_news: 'ld'
				,listingrows_news: 'lr'
				,listings_news: 'l'
			}
			,condition:{}
			,fields: 'ld.*,lr.*'
			,order: 'ld.datum DESC'
			,language: LANG
		};
		
		reqOver = $H(reqOver);
		this._verzReqStr = this._verReqChange(this.dummy, reqOver);
		
		//Request/Accrodion
		new deskJS_template({
			autoLoad: true,
			target: $('newscontent'),
			tpl: $('tpl_news'),
			data: this._verzReqStr,
			afterRendering: function(){
				
				var toggles = $$('.newstoggles');
				var content = $$('.newscontent');
				var SubAccordionObject = new Accordion(toggles, content, {
					display: 0
					,opacity: 0
					,alwaysHide: true
					,duration: 300
					,onActive: function(toggler, element){
						toggler.removeClass('close');
						toggler.addClass('open');
					}
					,onBackground: function(toggler, element){
						toggler.removeClass('open');
						toggler.addClass('close');
					}
				}, this);
			}.bind(this)
		})
	}
	
	//Panel mit Mouseover FX
	,changePanel: function(){
		
		if (AKTIVNAV[0] == 'home' && MODE == '') {
			var pic = Asset.images([ROOT + 'images/impressionen/impression_1.jpg', ROOT + 'images/impressionen/impression_2.jpg', ROOT + 'images/impressionen/impression_3.jpg', ROOT + 'images/impressionen/impression_4.jpg'], {});
			var doppelpfeil = '<img style="padding-bottom:2px;" src="' + ROOT + 'images/doppelpfeil_o.png" border="0">';
			if (LANG == 'de') {
				var textArray =
					[''
					, 'Gehäuse für Voice-, Data-, Internet-, CATV- oder LAN-Technologien erfüllen höchste Ansprüche. Mit patentiertem Almatec-Kühlsystem. <a href="' + ROOT + 'index.php?id=28" border="0" target="_self">' + doppelpfeil + '</a>'
					, 'Gehäuse für Schalt- und Steuerungsanlagen erfüllen höchste Ansprüche. <a href="' + ROOT + 'index.php?id=29" border="0" target="_self">' + doppelpfeil + '</a>'
					, 'Gehäuse für Verkehrsleitsysteme, Signalisations- und Steuerungsanlagen erfüllen höchste Ansprüche. Mit patentiertem Almatec-Kühlsystem. <a href="' + ROOT + 'index.php?id=30" border="0" target="_self">' + doppelpfeil + '</a>'
					, 'Gehäuse für Schalt- und Steuerungsanlagen erfüllen höchste Ansprüche. Mit patentiertem Almatec-Kühlsystem. <a href="' + ROOT + 'index.php?id=31" border="0" target="_self">' + doppelpfeil + '</a>'
					];	
			}else if (LANG == 'en') {
				var textArray =
					[''
					, 'Enclosures for voice, data, Internet, CATV and LAN technologies to fulfill highest standards. With the patented Almatec cooling system. <a href="' + ROOT + 'index.php?id=188" border="0" target="_self">' + doppelpfeil + '</a>'
					, 'Enclosures for switch and control systems fulfill highest standards. <a href="' + ROOT + 'index.php?id=189" border="0" target="_self">' + doppelpfeil + '</a>'
					, 'Enclosures for traffic control systems, signaling and control systems fulfill highest standards. With the patented Almatec cooling system. <a href="' + ROOT + 'index.php?id=190" border="0" target="_self">' + doppelpfeil + '</a>'
					, 'Enclosures for switch and control systems fulfill highest standards. With the patented Almatec cooling system. <a href="' + ROOT + 'index.php?id=191" border="0" target="_self">' + doppelpfeil + '</a>'
					];
			}else {
				var textArray =
					[''
					, 'Les armoires destinées aux équipements téléphoniques, transmissions de données, Internet, télévision câblée et LAN répondent aux exigences les plus élevées. <a href="' + ROOT + 'index.php?id=108" border="0" target="_self">' + doppelpfeil + '</a>'
					, 'Les armoires pour les installations de distribution et de commande répondent aux exigences les plus élevées. <a href="' + ROOT + 'index.php?id=110" border="0" target="_self">' + doppelpfeil + '</a>'
					, 'Les armoires pour les systèmes de gestion du trafic, les installations de signalisation et de commande répondent aux exigences les plus élevées. Avec le système de refroidissement breveté Almatec. <a href="' + ROOT + 'index.php?id=111" border="0" target="_self">' + doppelpfeil + '</a>'
					, 'Les armoires pour les installations de distribution et de commande répondent aux exigences les plus élevées. Avec le système de refroidissement breveté Almatec. <a href="' + ROOT + 'index.php?id=112" border="0" target="_self">' + doppelpfeil + '</a>'
					];
			}
			
			var setDiv = $$('.imp-nav');
			var myContent = $('impimagecont');
			
			myContent.set('html', '<div class="impimagecont">' + textArray[1] + '</div>');
			setDiv.set('morph', {
				duration: 200
			});
			
			setDiv.addEvents({
				'mouseenter': function(el){
				
				
					allArrow = $$('.arrow');
					
					allArrow.each(function(arrow, key){
						arrow.src = arrow.src.replace('_o', '_g');
					})
					
					$('arrow_' + this.id).src = $('arrow_' + this.id).src.replace('_g', '_o');
					
					$$('.imp-nav').morph({
						'background': 'none',
						'color': '#000'
					});
					
					//Change background color on mouseover
					this.morph({
						'background': 'url(' + ROOT + 'images/imp_over_' + this.id + '.png) no-repeat',
						'color': '#fff',
						'cursor': 'pointer'
					});
					
					$('pic').src = '' + ROOT + 'images/impressionen/impression_' + this.id + '.jpg';
					myContent.set('html', '<div class="impimagecont" id=' + this.id + '>' + textArray[this.id] + '</div>');
				}
			});
		}
	}
	
	
	//Generierung Slider
	,genSlider: function(tabNo){

		cat = tabNo == 0 ? 'Outdoor' : 'Indoor';
		reqOver = {
			table: {
				listingdatas: 'ld'
				,listingrows: 'lr'
				,listings: 'l'
			}
			,condition:{
				'ld.wo': cat
			}
			,fields: 'ld.*'
			,language: LANG
		};
		
		this._verzReqStr = this._verReqChange(this.dummy, reqOver);
		
		//Request und Ausgabe in entsprechenden Slider
		new deskJS_template({
			autoLoad: true,
			target: $('box'+tabNo),
			tpl: $('tpl_slider'),
			data: this._verzReqStr,
			afterRendering: function(){

				//Generierung Slider aufgrund ReqResult
				new slider({
					box: $('box'+tabNo),
					items: $$('#box'+tabNo+' .page'),
					size: 865,
					fxOptions: {
						duration: 2800,
						transition: Fx.Transitions.Pow.easeOut,
						wait: false
					},
					autoPlay: false,
					addButtons: {
						previous: $('btnRW'+tabNo),
						next: $('btnFF'+tabNo)
					}
				});
				
				// PicEffects
				var slidPics = $$('#tabContent_'+tabNo+' .slider_prod_con');

				
				slidPics.addEvents({
					'mouseover': function(){
						
						this.getChildren('.slider_img')[0].setStyle('opacity',0.8);
						this.getChildren('.slider_text')[0].getChildren('a')[0].setStyle('color','#000');
					},
					'mouseleave': function(){
						this.getChildren('.slider_img')[0].setStyle('opacity',1);
						this.getChildren('.slider_text')[0].getChildren('a')[0].setStyle('color','#7F7867');
					}
				});

			}
		},this);		
	}	
});
