/**
 * @author Dipl.-Ing. (FH) André Fiedler
 * 
 * Copyright (c) 2010 ö_konzept <http://oe-konzept.de>
 */

var Globals = Globals || {};

if(!Globals.el) Globals.el = {};
if(!Globals.fx) Globals.fx = {};

window.addEvents({
	
	'domready': function(){
		
		// Alternative Font einbinden
		//-------------------------------------------------------
		if (Browser.Engine.trident && navigator.userAgent.test('Windows NT 6.0')) { // nur bei Win Vista
			Globals.el.submenuDropdownWrapper = $('submenu-dropdown-wrapper');
			if(Globals.el.submenuDropdownWrapper)
				Globals.el.submenuDropdownWrapper.removeClass('hidden');
		}
		
		if (!Browser.Engine.trident || Browser.Engine.version > 4) { // nur wenn nicht IE oder IE > 6
			Cufon.now();
			Cufon('a.cufon, .ueberschrift, .headline, .advertise_label, .toggler, .zahnarztfinder', {
				hover: {
					color: '#666666'
				}
			});
		}
			
		if (Browser.Engine.trident && navigator.userAgent.test('Windows NT 5.1')) { // bei Win XP und IE cufon-margin zurücksetzen
			$$('cufon').setStyle('margin', 0);
		}
		
		if (Browser.Engine.trident && navigator.userAgent.test('Windows NT 6.0')) { // nur bei Win Vista
			if(Globals.el.submenuDropdownWrapper)
				Globals.el.submenuDropdownWrapper.addClass('hidden');
		}
		//-------------------------------------------------------
		
		// Internet Explorer 6 Upgrade-Meldung
		//-------------------------------------------------------
		if (Browser.Engine.trident && Browser.Engine.version < 5) {
			new Element('link', {
				'href': 'css/ie6.css',
				'rel': 'stylesheet',
				'type': 'text/css'
			}).inject(document.head, 'bottom');
			var shown = (Cookie.read('lorenz-dental.ie6check') || 0).toInt();
			if(shown == 0){
				alert('Sie nutzen eine veraltete Version des Internet Explorers, daher kann es zu Einschränkungen in Funktion und Darstellungen kommen. Bitte aktualisieren Sie Ihren Browser, wenn möglich!');
				Cookie.write('lorenz-dental.ie6check', 1, {
					'duration': false, // nur für die aktuelle Browsersitzung speichern
					'path': '/'
				});
			}
		}
		//-------------------------------------------------------
		
		// "NoScript"-Tag entfernen
		//-------------------------------------------------------
		$$('noscript').destroy();
		//-------------------------------------------------------
	
		// DOM-Elemente zwischenspeichern
		//-------------------------------------------------------
		Globals.el.frame = $('frame');
		Globals.el.cat = $('category');
		if(Globals.el.cat)
			Globals.el.cat_first = Globals.el.cat.getElement('a');
		Globals.el.mainmenu = $('mainmenu');
		if(Globals.el.mainmenu)
			Globals.el.mainmenu_first = Globals.el.mainmenu.getElement('ul');
		Globals.el.resizables = $$('.text, .hr');
		Globals.el.FE_mein_vertrauenszahnarzt = $('fe-mein_vertrauenszahnarzt');
		Globals.el.font_size_down = $('font_size_down');
		Globals.el.font_size_normal = $('font_size_normal');
		Globals.el.font_size_up = $('font_size_up');
		Globals.el.footer = $('footer');
		//-------------------------------------------------------
		
		// Hauptmenü "Roll"-Effekt
		//-------------------------------------------------------
		if (Globals.el.mainmenu) {
			
			// Check ob Maus beim Laden der Seite über dem Menü ist
			// Wenn ja, erst mal sperren
			Globals.mainmenuReady = false;
			Globals.catCoordinates = Globals.el.cat.getCoordinates();
			var fn = function(e){
				if (e.target && $(e.target).getParent('#category') === null) {
					Globals.mainmenuReady = true;
					//document.body.removeEvent('mousemove', fn);
				}
			}
			document.body.addEvent('mousemove', fn);
			
			// Rolloverbereich vergrößern
			if (!(Browser.Engine.trident && navigator.userAgent.test('Windows NT 5.1'))) { // bei Win XP nicht laden
				var coo = Globals.el.cat.getCoordinates(Globals.el.frame);
				Globals.el.catSensor = new Element('div', {
					'styles': {
						'margin': -10,
						'padding': 10,
						'width': coo.width,
						'overflow': 'hidden'
					}
				}).inject(Globals.el.cat, 'after').adopt(Globals.el.cat);
			} else {
				Globals.el.catSensor = Globals.el.cat;
			}
			
			Globals.fx.cat = new Fx.Slide(Globals.el.cat_first, {
				'duration': 200
			});
			Globals.fx.mainmenu = new Fx.Slide(Globals.el.mainmenu.getElement('div'), {
				'duration': 200
			});
			
			Globals.el.catSensor.addEvents({
				'mouseenter': function(){
					if (Globals.mainmenuReady) {
						Globals.fx.cat.cancel().slideOut();
						Globals.fx.mainmenu.cancel().slideOut();
					}
				},
				'mouseleave': function(){
					Globals.fx.cat.cancel().slideIn();
					Globals.fx.mainmenu.cancel().slideIn();
				}
			});
		}
		//-------------------------------------------------------
		
		// Hauptmenü - Dropdown-Submenü
		//-------------------------------------------------------
		Globals.el.ssub = $$('.submenu-dropdown');
		(function(){
		$$('#mainmenu div:nth-child(first) ul li').each(function(sub, i){
			var pos = sub.getCoordinates();
			var ssubWrapper = Globals.el.ssub[i].setPosition({
				'x': ( sub.hasClass('first') ? pos.left : pos.left + 15 ) - ( (232 - (pos.width - ( sub.hasClass('first') ? 0 : 15))) / 2 ),
				'y': 84
			}).inject(document.body);
			var ssub = ssubWrapper.getElement('.wrapper');
			var posSsub = ssub.getElement('ul').getCoordinates();
			ssubWrapper.fade('hide')
			ssub.setStyle('height', 0);
			new HoverGroup({
				'elements': [sub, ssubWrapper],
				'delay': 0,
				'onEnter': function(){
					ssubWrapper.set('tween', {
						'duration': 200
					}).fade('in');
					ssub.set('tween', {
						'duration': 500,
						'transition': 'cubic:out'
					}).get('tween').cancel().start('height', posSsub.height);
					sub.addClass('over');
				},
				'onLeave': function(){
					ssubWrapper.set('tween', {
						'duration': 50
					}).fade('out');
					sub.removeClass('over');
					ssub.set('tween', {
						'duration': 50,
						'transition': 'cubic:out'
					}).get('tween').cancel().start('height', 0);
				}
			});
		});
		}).delay(500); // "delay"-Fix for Safari 4.0.3, waiting for styles to get applied first
		//-------------------------------------------------------
		
		// Zahnarztfinder
		//-------------------------------------------------------
		if (Globals.el.FE_mein_vertrauenszahnarzt) {
			Globals.el.FE_mein_vertrauenszahnarzt.addEvents({
				'focus': function(){
					if (this.get('value') == this.get('defaultValue')) 
						this.set('value', '');
				},
				'blur': function(){
					if (this.get('value') == '') 
						this.set('value', this.get('defaultValue'));
				}
			});
			$('btn-mein_vertrauenszahnarzt').addEvent('click', function(e){
				e.stop();
				$('form-mein_vertrauenszahnarzt').submit();
			});
		}
		//-------------------------------------------------------
		
		// Schriftgröße/-Lesbarkeit Ändern
		//-------------------------------------------------------
		function setFontSize()
		{
			switch(Globals.fontSize)
			{
				case 0:
					Globals.el.resizables.removeClass('size-1');
					Globals.el.resizables.removeClass('size-2');
					Globals.el.resizables.removeClass('size-3');
					break;
					
				case 1:
					Globals.el.resizables.removeClass('size-2');
					Globals.el.resizables.addClass('size-1');
					break;
					
				case 2:
					Globals.el.resizables.removeClass('size-1');
					Globals.el.resizables.removeClass('size-3');
					Globals.el.resizables.addClass('size-2');
					break;
					
				case 3:
					Globals.el.resizables.removeClass('size-2');
					Globals.el.resizables.addClass('size-3');
					break;
			}
		}
		
		Globals.fontSize = (Cookie.read('lorenz-dental.font.size') || 0).toInt();
		if(Globals.fontSize < 0) Globals.fontSize = 0;
		if(Globals.fontSize > 3) Globals.fontSize = 3; // maximal 4 Stufen vergrößerbar
		
		setFontSize();
		
		if(Globals.el.font_size_down)
			Globals.el.font_size_down.addEvent('click', function(e){
				e.stop();
				this.blur();
				
				var size = (Cookie.read('lorenz-dental.font.size') || 0).toInt();
				if(size > 0) size--;
				Cookie.write('lorenz-dental.font.size', size, {
					'duration': 7, // 7 Tage speichern
					'path': '/'
				});
				Globals.fontSize = size;
				
				setFontSize();
				window.scrollTo(0, 99999);
			});
		if(Globals.el.font_size_normal)
			Globals.el.font_size_normal.addEvent('click', function(e){
				e.stop();
				this.blur();
				
				Cookie.write('lorenz-dental.font.size', 0, {
					'duration': 7, // 7 Tage speichern
					'path': '/'
				});
				Globals.fontSize = 0;
				
				setFontSize();
				window.scrollTo(0, 99999);
			});
		if(Globals.el.font_size_up)
			Globals.el.font_size_up.addEvent('click', function(e){
				e.stop();
				this.blur();
				
				var size = (Cookie.read('lorenz-dental.font.size') || 0).toInt();
				if(size < 3) size++;
				Cookie.write('lorenz-dental.font.size', size, {
					'duration': 7, // 7 Tage speichern
					'path': '/'
				});
				Globals.fontSize = size;
				
				setFontSize();
				window.scrollTo(0, 99999);
			});
		
		// Submenü & Zahnarztfinder mitscrollen
		//-------------------------------------------------------
		Globals.el.submenu = $('submenu');
		Globals.el.zahnarztfinder = $('zahnarztfinder');
		Globals.ie6orIEonWinXP = (Browser.Engine.trident && Browser.Engine.version < 5) || navigator.userAgent.test('Windows NT 5.1');
		if (Globals.el.submenu) {
			Globals.el.zahnarztfinderUndSubmenu = new Element('div').inject(Globals.el.submenu, 'before').adopt(Globals.el.submenu);
			if(Globals.el.zahnarztfinder)
				Globals.el.zahnarztfinderUndSubmenu.adopt(Globals.el.zahnarztfinder);
			Globals.zahnarztfinderUndSubmenuYPos = Globals.el.zahnarztfinderUndSubmenu.getPosition().y - 40;
			if (Globals.ie6orIEonWinXP) { // IE 6 oder IE auf Win XP
				Globals.fx.zahnarztfinderUndSubmenu = new Fx.Tween(Globals.el.zahnarztfinderUndSubmenu, {
					'property': 'margin-top',
					'wait': false,
					'duration': 800,
					'transition': 'circ:out'
				}).start(Math.max(10, window.getScrollTop() - Globals.zahnarztfinderUndSubmenuYPos));
			}
		}
		//-------------------------------------------------------
		
		// Zu Seiten-Anker Scrollen
		//-------------------------------------------------------
		new Fx.SmoothScroll({
			'duration': 400,
			'transition': 'circ:out'
		});
		//-------------------------------------------------------
		
		// CMS Editor "title" Fix
		//-------------------------------------------------------
		$$('div#content div[id^=content]').each(function(el){ el.erase('title'); });
		//-------------------------------------------------------
	},
	'resize': function(){
		
		// Hauptmenü - Dropdown-Submenü neu ausrichten
		//-------------------------------------------------------
		$$('#mainmenu div:nth-child(first) ul li').each(function(sub, i){
			var pos = sub.getCoordinates();
			var ssub = Globals.el.ssub[i].setPosition({
				'x': ( sub.hasClass('first') ? pos.left : pos.left + 15 ) - ( (232 - (pos.width - ( sub.hasClass('first') ? 0 : 15))) / 2 ),
				'y': 84
			});
		});
		//-------------------------------------------------------
		
		Globals.positionFooter();
	},
	'scroll': function(){
		if (Globals.ie6orIEonWinXP) { // IE 6 oder IE auf Win XP
			if(Globals.fx.zahnarztfinderUndSubmenu)
				Globals.fx.zahnarztfinderUndSubmenu.start.delay(400, Globals.fx.zahnarztfinderUndSubmenu, Math.max(10, window.getScrollTop() - Globals.zahnarztfinderUndSubmenuYPos));
		}
		else {
			if (Globals.el.zahnarztfinderUndSubmenu && window.getScrollTop() - Globals.zahnarztfinderUndSubmenuYPos >= 10) 
				Globals.el.zahnarztfinderUndSubmenu.setStyles({
					'position': 'fixed',
					'top': 0
				});
			else if (Globals.el.zahnarztfinderUndSubmenu)
				Globals.el.zahnarztfinderUndSubmenu.setStyles({
					'position': 'relative'
				});
		}
	},
	'load': function(){
		Globals.positionFooter();
		
		// Alternative Font einbinden
		//-------------------------------------------------------
		if (!(Browser.Engine.trident && navigator.userAgent.test('Windows NT 6.0')) &&  // bei Win Vista nicht laden
			(!Browser.Engine.trident || Browser.Engine.version > 4)) {                  // und nur wenn nicht IE oder IE > 6
			Cufon.now();
			Cufon('a.cufon, .ueberschrift, .headline, .advertise_label, .toggler, .zahnarztfinder', {
				hover: {
					color: '#666666'
				}
			});
			Cufon('a.more_cufon', {
				hover: {
					color: '#d40046'
				}
			});
		}
		if (Browser.Engine.trident && navigator.userAgent.test('Windows NT 5.1')) { // bei Win XP und IE cufon-margin zurücksetzen
			$$('cufon').setStyle('margin', 0);
		}
	}
});

Globals.positionFooter = function(){
	// Footer immer unten positionieren
	//-------------------------------------------------------
	if (Globals.el.footer) {
		(function(){
			var fs = Globals.el.frame.getSize();
			var ws = window.getSize();
			if (fs.y < ws.y) {
				var pos = Globals.el.footer.getCoordinates()
				Globals.el.footer.setStyles({
					'position': 'absolute',
					'top': ws.y - pos.height + 1 // 1 Pixel addieren, um Scrolleiste einzublenen. Verhindert "Springen"
				});
			}
		}).delay(20);
	}
	//-------------------------------------------------------
}

// Bildervergrößerung laden
//-------------------------------------------------------
Slimbox.scanPage = function() {
	
	Globals.popupImages = $$('div.images div.image, div.images-2 div.image, div.images-l div.image');
	
	Globals.popupImages.each(function(img){
		var captionEl = img.getChildren('div.template-low')[0];
		if($chk(captionEl) && captionEl.get('text', '').trim() == '')
			captionEl.destroy();
		
		img.addEvents({
			'mouseenter': function(){
				this.addClass('over');
			},
			'mouseleave': function(){
				this.removeClass('over');
			}
		});
	});
	
	Globals.popupImages.slimbox({overlayOpacity: 0.9, counterText: '({x}/{y})'}, function(img) {
		var captionEl1 = img.getChildren('div.caption');
		var captionEl = $chk(captionEl1) && captionEl1.length > 0 ? captionEl1[0].getChildren('div.template-low')[0] : false;
		var caption = $chk(captionEl) ? captionEl.get('text', '') : '';
		var imgEl = img.getChildren('div.template-img')[0];
		var imgSrc = $chk(imgEl) && $chk(imgEl.getChildren('img[rel^=popup]')[0]) ? imgEl.getChildren('img[rel^=popup]')[0].get('rel').replace(/^popup\(/, '').replace(/\)$/, '') : '';
		return [
			imgSrc,
			caption
		];
	});
	
	if($chk($('more_images')))
	{	
		$('more_images').addEvent('mousedown', function() {		
			Globals.popupImages[3].fireEvent('click');			
		});
	}
};
window.addEvent('domready', Slimbox.scanPage);
//-------------------------------------------------------

// FLV-Player laden
//-------------------------------------------------------
Globals.FlvPlayer = {};
Globals.FlvPlayer.scanPage = function() {
	
	var swf_file = 'swf/FLVPlayer-Content.swf';
				
	if(Browser.Plugins.Flash.version < 9)
	{
		swf_file = 'swf/expressInstall.swf';
	}
	
	Globals.videos = $$('div.template-video span');
	
	Globals.videos.each(function(span){
		
		var flv = span.get('rel', '');
		flv = flv.replace('administration/upload/', 'download.php?download=');
		var container = span.getParent();
		
		if (Browser.Plugins.Flash.version < 8) {
			container.empty().setStyles({
				'position': 'relative',
				'left': -14,
				'width': 472,
				'height': 290,
				'background': '#cccccc',
				'color': '#fff',
				'text-align': 'center',
				'line-height': 20
			}).set('html', 'Um das Video anzusehen, müssen Sie das Flash Player Plugin installiert haben!');
			return;
		}
		
		container.empty().setStyles({
			'position': 'relative',
			'left': -14,
			'width': 472,
			'height': 290,
			'background': '#cccccc url(grafiken/bg-flv-player.png) no-repeat'
		});
		
		new Swiff(swf_file, {
			'container': container,
			'width': 472,
			'height': 290,
			'params': {
				'wmode': 'transparent',
				'bgcolor': '#cccccc'
		    },
			'vars': {
				'src': flv
			},
			'callBacks': {
				'onStartLoading': function()
				{
					container.setStyle('background', '#cccccc');
				}
			}
		});
	});
};
window.addEvent('domready', Globals.FlvPlayer.scanPage);
//-------------------------------------------------------


// Wenn die Seite verlassen wird Umfrage-Formular anbieten
//-------------------------------------------------------
Globals.patientenUmfrage = {
	'currentUri': new URI(document.location.href),
	'nextUri': new Hash(),
	'clickedLink': false
}
window.addEvents({
	'domready': function(){
		var shown = (Cookie.read('lorenz-dental.umfrageCheck') || 0).toInt(); // Meldung nur ein Mal zeigen
		if (shown == 0) {
			var fn = function(e){
				Globals.patientenUmfrage.nextUri = new URI(this.get('href', ''));
				if (Globals.patientenUmfrage.nextUri.get('host', '') != Globals.patientenUmfrage.currentUri.get('host')) {
					$$('a').removeEvent('click', fn);
					Cookie.write('lorenz-dental.umfrageCheck', 1, {
						'duration': 180, // ca. 6 Monate speichern
						'path': '/'
					});
					if (confirm('Ihre Meinung ist uns wichtig! Mit der Beantwortung einer kurzen Umfrage helfen Sie, unser Informationsangebot zu optimieren. Es dauert nur 1 Minute! Wir danken für Ihr Interesse.')) {
						e.stop();
						Globals.patientenUmfrage.currentUri.set('file', (Globals.hn == 0 ? 'zap_umfrage.php' : 'umfrage.php')).set('data', {
							'href': Globals.patientenUmfrage.nextUri.toString()
						}).go();
					}
				}
				Globals.patientenUmfrage.clickedLink = true;
			};
			$$('a').addEvent('click', fn);
		}
	},
	'unload': function(){
		/*
		if (!Globals.patientenUmfrage.clickedLink && !confirm('Seite verlassen?')) {
			Globals.patientenUmfrage.currentUri.set('file', 'patientenumfrage.php').go();
			return false;
		}
		return true;
		*/
	}
});

