var deskJS;
var tooltip;
window.addEvent('domready',function(){
	/**
	 *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
	 *	showNews:darstellen der kleinen Newstexte
	 *	showDetail: darstellen der detailierten Newstexte
	 *	googlemap: generierung Googlemap
	 *	updateTooltip: (Organigram) Tooltip positionieren
	 */
	deskJS = new Class({
		// Implements
		Implements: addDeskJS
		// options
		,options: {
			verzDebug: 1,
			verzLocal: 0,
			verzUser: 'sigmatau'
		}
		// initialization
		,initialize: function(options){
			
			
			
			//Aufruf Organigram wenn SeitenID = 12
			if (ID == 12) {
				//positionierung Tooltip
				document.onmousemove = this.updateTooltip;
				$$('#wrapper area').addEvents({
					//Organigram: Tooltip einblenden
					'mouseover':function(e){
						tooltip=$('d'+e.target.id);
						if($defined(tooltip)) tooltip.style.display = "block";
					},
					//Organigram: Tooltip ausblenden
					'mouseleave':function(){
						if($defined(tooltip)) tooltip.style.display = "none";
					}
				});
			}
			//aufruf googlemap
			if (map == 'true') this.googlemap();
			
			//Optionen setzen
			this.setOptions(options);
			
			// pluginload
			this._jsPreload({
				templating: true
			});
			
			this._verzReqStr = {
				type: 'all'
				,user: this.options.verzUser
				,table: {
					listingdatas_news: 'ld'
					,listingrows_news: 'lr'
					,listings_news: 'l'
				}
				,condition: {}
				,fields: 'lr.*,ld.*'
				,order: 'ld.datum DESC'
				,language: LANG
			};this._verzReq('showNews');
			
			
		}
		// Ladestatus der Plugins oder des Request
		,_loadStatus: function(part, action){
			
		}
		// Aufruf durch Verzeichnisverlinkung
		,_directLink: function(mode, DBstr, lrID, ldID){
			
		}
		
		,_afterRendering: function(){
			if (TAGS.faq) this.prepairFaq();
			
		}
		
		/**
		 * User-Functions
		 *
		 *  Methods:
		 *
		 */
		//Funktion zum darstellen der kleinen Newstexte
		,showNews: function(res){
			$('news').empty();
			res.result.each(function(item, key){
				var obj = item.ld;
				if (obj.text != '') {
					var tmpText = obj.text.text[0].substring(0, 100);
					//ermittle letzte Position eine Lehrzeichens im tmpText
					var pos = tmpText.lastIndexOf(' ');
					var txt = '<div style="margin-bottom:10px;"><h2>' + obj.title + '</h2>' + tmpText.substring(0, pos) + ' ... <a class="lnkNews" style="color: #cb5924;" id="lnkNews_' + key + '" href="#">[mehr]</a>';
					txt = txt.toDOM();
					txt.inject($('news'));
				}
			}, this);
			//event adden für link [mehr]
			$$('.lnkNews').addEvents({
				'click': function(e){
					e.stop();
					var nr = e.target.id.split('_')[1];
					this.showDetail(res.result[nr].ld);
				}.bind(this)
			});
		}
		//Funktion zum darstellen der Newstexte
		,showDetail: function(item){
			$('content').empty();
			$('content').innerHTML='<h1 class="title">' + item.title + '</h1>' + item.text.text[0];
		}
		//generierung Googlemap
		,googlemap: function(){
			if (GBrowserIsCompatible()) {
				var map = new GMap2(document.getElementById("map"));
				map.addControl(new GSmallZoomControl());
				map.addControl(new GMapTypeControl());
				map.setCenter(new GLatLng(47.286064736589616, 7.946891784667969), 15);
				var point = new GLatLng(47.286064736589616, 7.946891784667969, 15);
				var html = '<div style="float:left;"><b>sigma-tau Pharma AG</b><br>Luzernerstrasse 2<br>4800 Zofingen<br><br><a href="http://maps.google.com/maps?f=d&source=s_d&saddr=&daddr=sigma-tau+Pharma+AG,4800+Zofingen,+Switzerland&hl=de&geocode=%3BFU_HzwIdKPSBACFUB8O_sKt3Og&mra=ls&sll=47.286064736589616,7.946891784667969&sspn=0.055676,0.125656&ie=UTF8&ll=47.286064736589616,7.946891784667969&spn=0.055676,0.125656&z=50" target="_blank">Route berechnen</a>&nbsp;&nbsp;&nbsp;</div>';
				marker = new GMarker(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml(html);
			}
		}
		//Organigram: Tooltip positionieren
		,updateTooltip : function(e){
			x = (document.all) ? window.event.x + document.documentElement.scrollLeft : e.pageX;
			y = (document.all) ? window.event.y + document.documentElement.scrollTop : e.pageY;
			if ($defined(tooltip)) {
				if (y > 600) y = y - 300;
				if (x < 330) x = x + 150;
				else if (x > 950) x = x - 150;
				tooltip.style.left = (x - 300) + "px";
				tooltip.style.top = (y + 50) + "px";
			}
		}
		
		//Anzeigen FAQ in Accordion wenn FAQ-Tag auf Page
		,prepairFaq: function(){
			
			var reqObj = {
				type: 'all'
				,user: this.options.verzUser
				,table: {
					listingrows_faq: 'lr'
				}
				,condition: {
					 
				}
				,fields: 'lr.rubrikname, lr.id'
				,order: ''
				,language: LANG
			};
			

			// Templateaufbau
			this.faqResult = new deskJS_template({
				autoLoad: true
				,target: $('faqOverview')
				,tpl: $('tpl_faq')
				,data: reqObj
				,afterRendering: function(){
						
				}
			});
			
		}
		,loadAccFaq: function(comboRID){

			var reqObj = {
				type: 'all'
				,user: this.options.verzUser
				,table: {
					listingdatas_faq: 'ld'
					,listingrows_faq: 'lr'
					,listings_faq: 'l'
				}
				,condition: {
					 'lr.id': comboRID
				}
				,fields:  'ld.*, lr.*'
				//,group: 'lr.rubrikname'
				,order: ''
				,language: LANG
			};
			
			this.showLoader();
			
			this.showAccFaq.delay(2000,this);
			this._verzReqStr = reqObj;
				
		}
		
		,showLoader: function(){
			$('faqAccordion').set('html','<div style="padding:20px 150px;"><img src="'+DOMAIN+'images/loader.gif" width="16" height="16" /></div>')

		}
		
		,showAccFaq: function(){
			// Templateaufbau
			this.faqResult = new deskJS_template({
				autoLoad: true
				,target: $('faqAccordion')
				,tpl: $('tpl_faqacc')
				,data: this._verzReqStr
				,afterRendering: function(){
					
					var toggles = $$('.faqtoggles');
					var content = $$('.faqelements');
					var SubAccordionObject = new Accordion(toggles, content, {
						display: 0
						,opacity: 0
						,alwaysHide: true //Bei wiederholtem Klick Close Toggle
						,duration: 300
						,onActive: function(toggler, element){
							toggler.removeClass('close');
							toggler.addClass('open');
						}
						,onBackground: function(toggler, element){
							toggler.removeClass('open');
							toggler.addClass('close');
						}
					}, this);
						
				}
			});
		}
	});
	deskJS = new deskJS();
});
