window.addEvent('domready', function() {

	function showAktuelles() {
		$('link-aktuelles').blur();
		$('tab-aktuelles').addClass('active');
		//$('tab-highlights').removeClass('active');
		$('tab-veranstaltungen').removeClass('active');
		$('tab-presse').removeClass('active');
		Cookie.write('homepage-content', 'aktuelles', {duration:0, path:"/"});
		req.send({url:'/ajax/homepage_aktuelles.html'});
	}

	/*
	function showHighlights() {
		$('link-highlights').blur();
		$('tab-aktuelles').removeClass('active');
		$('tab-highlights').addClass('active');
		$('tab-veranstaltungen').removeClass('active');
		$('tab-presse').removeClass('active');
		Cookie.write('homepage-content', 'highlights', {duration:0, path:"/"});
		req.send({url:'/ajax/homepage_highlights.html'});
	}
	*/
	function showVeranstaltungen() {
		$('link-veranstaltungen').blur();
		$('tab-aktuelles').removeClass('active');
		//$('tab-highlights').removeClass('active');
		$('tab-veranstaltungen').addClass('active');
		$('tab-presse').removeClass('active');
		Cookie.write('homepage-content', 'veranstaltungen', {duration:0, path:"/"});
		req.send({url:'/ajax/homepage_veranstaltungen.html'});
	}

	function showPresse() {
		$('link-presse').blur();
		$('tab-aktuelles').removeClass('active');
		//$('tab-highlights').removeClass('active');
		$('tab-veranstaltungen').removeClass('active');
		$('tab-presse').addClass('active');
		Cookie.write('homepage-content', 'presse', {duration:0, path:"/"});
		req.send({url:'/ajax/homepage_presse.html'});		
	}


	// homepage
	var req = new Request.HTML({
		update:$('homepage-content'), 
		onFailure: function() {
			$('homepage-content').set('text', 'Datei konnte nicht geladen werden.');
		}
	});
	
	if ($('homepage-content')!=null) {
		$('link-aktuelles').addEvent('click', function() {
			showAktuelles();
			return false;
		});
		/*
		$('link-highlights').addEvent('click', function() {
			showHighlights();
			return false;
		});
		*/
		$('link-veranstaltungen').addEvent('click', function() {
			showVeranstaltungen();
			return false;
		});
		$('link-presse').addEvent('click', function() {
			showPresse();
		return false;
		});
		$('link2-presse').addEvent('click', function() {
			showPresse();
			new Fx.Scroll(window).toElement('content');
			return false;
		});		
		
		if (Cookie.read('homepage-content') == 'aktuelles') {
			showAktuelles();
		//} else if (Cookie.read('homepage-content') == 'highlights') {
		//	showHighlights();
		} else if (Cookie.read('homepage-content') == 'veranstaltungen') {
			showVeranstaltungen();
		} else if (Cookie.read('homepage-content') == 'presse') {
			showPresse();
		}
	}
	

		
		
	// fontsize
	Fx.Font = new Class({
		initialize: function(sid, gid){
			if ($(gid)!=null) $(gid).onclick = function(){this.fontbig()}.bind(this);
			if ($(sid)!=null) $(sid).onclick = function(){this.fontsmall()}.bind(this);
			if(Cookie.read('fontSize') == 'large') this.fontbig();
		},
		fontbig: function(){
			$$('div.content-flow').each(function(el) {
				el.setStyle('font-size', '1em');
			});
			if ($('navi')!=null) $('navi').setStyle('font-size', '1.15em');
			if ($('left')!=null) $('left').setStyle('font-size', '1.15em');
			if ($('right')!=null) $('right').setStyle('font-size', '1.15em');
			if ($('tabs')!=null) $('tabs').setStyle('font-size', '1.15em');
			Cookie.write('fontSize','large',{duration: 1, path:"/"});
		},
		fontsmall: function(){
			$$('div.content-flow').each(function(el) {
				el.setStyle('font-size', '0.75em');
			});
			if ($('navi')!=null) $('navi').setStyle('font-size', '1em');
			if ($('left')!=null) $('left').setStyle('font-size', '1em');
			if ($('right')!=null) $('right').setStyle('font-size', '1em');
			if ($('tabs')!=null) $('tabs').setStyle('font-size', '1em');
			Cookie.write('fontSize','small',{duration: 1, path:"/"});		
		}						
	});
	new Fx.Font($('font-shrink'),$('font-grow'));



	//merkliste
	var saveNewOrder = function() {
		var liste = $('merkliste').getChildren();
		merkliste = new Array();
		for (var i=1; i<liste.length; i++) {
			newEntry = liste[i].get(["text"]) + '|' + liste[i].getChildren()[1].getProperty("href");
			merkliste.include(newEntry);
		}
		saveMerkliste();
	};
	
	var addMerklisteItem = function(entry, i, newItem) {	
		
		var name = entry.split('|')[0];
		var url = entry.split('|')[1];
		
		//create item
		var li = new Element('li', {id: 'item-'+i}); 
		
		
		var del = new Element('div', {id:'delete-'+i, 'class':'delete'});
		del.inject(li, 'top');
		
		del.addEvent('click', function(e) {
			removeMerklisteItem(entry);
		});				
		
		//var handle = new Element('div', {id:'handle-'+i, 'class':'drag-handle'});
		//handle.inject(li, 'top');
		
		var mllink = new Element('a', {href:url, 'class':'merkliste', text:name});
		mllink.inject(li, 'bottom');


		$('merkliste').adopt(li); // hinzufügen
		
		if (newItem) li.highlight('#f7e25e'); // nur highlighten, wenn neues item hinzugefügt
		
		sort.addItems(li);	//auch zum Sortable 
	}
	var removeMerklisteItem = function(entry) {	

		var name = entry.split('|')[0];
		var url = entry.split('|')[1];
		
		var allItems = $('merkliste').getElements('li a[href='+url+']');
		allItems[0].getParent().dispose();
		merkliste.erase(entry);
		updateInfo();		
		saveMerkliste();
	}

	var initMerkliste = function() {
		merklisteJSON = Cookie.read("merkliste");
		if (merklisteJSON) {
			merkliste = JSON.decode(merklisteJSON);
		}
		if (merkliste) {
			for (var i=0; i<merkliste.length; i++) {
				addMerklisteItem(merkliste[i], i, false);
			}
		}
		updateInfo();
	}

	var isOnMerkliste = function(entry) {
		var contains = merkliste.some(function(item, index) {
			return item[1]==entry[1];
		});		
		return contains;
	}

	var saveMerkliste = function() {
		Cookie.write("merkliste", JSON.encode(merkliste), {duration: 365, path: "/"});
	}
	var clearMerkliste = function() {
		merkliste = new Array();
		$('merkliste').empty();
		updateInfo();
		saveMerkliste();		
	}
	
	var updateInfo = function() {
		if ($('merkliste-info')!=null || $('merkliste-info-eng')!=null) {
			if ($('merkliste-info')!=null) { 
				var eng = false;	
				var info = $('merkliste-info');
			} else if ($('merkliste-info-eng')!=null) {
				var eng = true;
				var info = $('merkliste-info-eng');
			}
			info.empty()
			if (merkliste.length == 0) {
				info.appendText(eng?'Note pages by clicking on the star':'Notieren Sie Seiten durch Klick auf den Stern.');
			} else {
				if (eng) {
					var a = new Element('a', {id:'merkliste-clear', 'class':'trashcan', href:'#', text:'Clear list'});
				} else {
					var a = new Element('a', {id:'merkliste-clear', 'class':'trashcan', href:'#', text:'Liste löschen'});
				}
				info.grab(a);
				a.addEvent('click', function(e) {
					e.stop();
					clearMerkliste();
				});			
			}
			updateStar();
		}
	}
	
	var updateStar = function() {
		if ($('merkliste-add')!=null) {
			newEntry = getEntry();
			
			if (merkliste.contains(newEntry)) {
				$('merkliste-add').removeClass('star-inactive');
				$('merkliste-add').addClass('star-active');			
			} else {
				$('merkliste-add').removeClass('star-active');
				$('merkliste-add').addClass('star-inactive');			
			}
		}
	}
		
	var getEntry = function () {
		var domain = 'http://www.braunschweig.de';
		var url = document.URL.replace('index.html', '').replace(domain, '');
		if (url.indexOf('#')!=-1) {
			url = url.substring(0,url.indexOf('#'));
		}

		return $('merkliste-add').get('name').replace(/_/g,' ').clean() + '|' + url;
	}

	if ($('merkliste-add')!=null) {
		$('merkliste-add').addEvent('click', function(e) {
			e.stop();
			$('merkliste-add').blur();
			newEntry = getEntry();
			
			if (!merkliste.contains(newEntry)) {
				merkliste.include(newEntry);
				addMerklisteItem(newEntry, merkliste.length, true);
			} else {
				merkliste.erase(newEntry);
				removeMerklisteItem(newEntry);
			}
			updateInfo();
			saveMerkliste();
		});
	}
	
	var sort = new Sortables('.merkliste', {handle: '.drag-handle',	constrain: true, clone: true,  onComplete: saveNewOrder });
	var merkliste = new Array();
	initMerkliste();
	


	//smooth scroll
	var mySmoothScroll = new SmoothScroll();
	


	//lebenslagen,zielgruppen
	if ($('lebenslagen-more')!=null) {
		$('lebenslagen-more').addEvent('click', function(e){
			$('lebenslagen-more').setStyle('display', 'none');
			$('lebenslagen-less').setStyle('display', 'inline');
			$(document.body).getElements('.lebenslage-hidden').forEach(function (el) {el.setStyle('display', 'inline')});
			if ($('hideLinks')!=null) hideLinks.show();
			return false;
		});
		$('lebenslagen-less').addEvent('click', function(e){
			$('lebenslagen-less').setStyle('display', 'none');
			$('lebenslagen-more').setStyle('display', 'inline');
			$(document.body).getElements('.lebenslage-hidden').forEach(function (el) {el.setStyle('display', 'none')});
			if ($('hideLinks')!=null) hideLinks.show();
			return false;
		});
	}
	
	if ($('zielgruppen-more')!=null) {
		$('zielgruppen-more').addEvent('click', function(e){
			$('zielgruppen-more').setStyle('display', 'none');
			$('zielgruppen-less').setStyle('display', 'inline');
			$(document.body).getElements('.zielgruppe-hidden').forEach(function (el) {el.setStyle('display', 'inline')});
			if ($('hideLinks')!=null) hideLinks.show();
			return false;
		});
		$('zielgruppen-less').addEvent('click', function(e){
			$('zielgruppen-less').setStyle('display', 'none');
			$('zielgruppen-more').setStyle('display', 'inline');
			$(document.body).getElements('.zielgruppe-hidden').forEach(function (el) {el.setStyle('display', 'none')});
			if ($('hideLinks')!=null) hideLinks.show();
			return false;
		});
	}
	


	//content-addon secctions
	var toBottom = function() {
		if ($('footer-sitemap')!=null) {
			if (!sitemap.open) new Fx.Scroll(window).toBottom();		
		}
	}
	
	var toggleSection = function(section) {
		if ((slideImpressum!=null && slideImpressum.open) || (slideRecommend!=null && slideRecommend.open) || (slideFeedback!=null && slideFeedback.open) || (slideBookmark!=null && slideBookmark.open) ) {
			if (section == "recommend")	{ if (!slideRecommend.open) { slideRecommend.show(); reloadRecommendCapchta(); } else slideRecommend.slideOut(); }
			if (section == "feedback")	{ if (!slideFeedback.open) { slideFeedback.show(); reloadFeedbackCapchta() } else slideFeedback.slideOut(); }
			if (section == "impressum") { if (!slideImpressum.open) slideImpressum.show(); else slideImpressum.slideOut(); }
			if (section == "bookmark") { if (!slideBookmark.open) slideBookmark.show(); else slideBookmark.slideOut(); }
			
			if (slideRecommend!=null  && section != "recommend") slideRecommend.hide();
			if (slideFeedback!=null   && section != "feedback") slideFeedback.hide();
			if (slideImpressum!= null && section != "impressum") slideImpressum.hide();
			if (slideBookmark!=null   && section != "bookmark") slideBookmark.hide();
		} else {
			if (section == "recommend") slideRecommend.toggle(); 
			if (section == "feedback") slideFeedback.toggle(); 
			if (section == "impressum") slideImpressum.toggle();		
			if (section == "bookmark") slideBookmark.toggle();		
		}
	}	
	
	
	if ($('slide-impressum')!=null) {
		$('slide-impressum').setStyle('display', 'block');
		$('toggle-impressum').setStyle('display', 'block');
		var slideImpressum = new Fx.Slide('slide-impressum');
		slideImpressum.hide();
		$('toggle-impressum').addEvent('click', function(e){
			e.stop();
			$('toggle-impressum').blur();		
		 	toggleSection("impressum");
		});
		$('close-impressum').addEvent('click', function(e){
			e.stop();
			slideImpressum.slideOut();
		});
		slideImpressum.addEvent('complete', toBottom);
	}	
	
	if ($('slide-recommend')!=null) {
		$('slide-recommend').setStyle('display', 'block');
		$('toggle-recommend').setStyle('display', 'block');
		var slideRecommend = new Fx.Slide('slide-recommend');
		slideRecommend.hide();
		$('toggle-recommend').addEvent('click', function(e){
			e.stop();
			$('toggle-recommend').blur();		
			toggleSection("recommend");
		});
		$('close-recommend').addEvent('click', function(e){
			e.stop();
			slideRecommend.slideOut();
		});
		slideRecommend.addEvent('complete', toBottom);
		
		/* --- Recommend-Form --------------------------------------*/  
	
		var afterSendRecommend = function(responceText) {
			if( responceText.match('^<div class="message">')){
				$('recommend-form').reset();
				reloadRecommendCapchta();
			}
			$('recommend-form-message').innerHTML = responceText;
			return false;
		}
		
		var sendRecommend = function(evt){
			$('recommend-form').set('send', {method:'post', onSuccess: afterSendRecommend });
			$('recommend-form').send('/static_assets/sendRecommend.php');
			return false;
		}
		
		var reloadRecommendCapchta = function() {
			if ($('recommend-captcha')!=null) $('recommend-captcha').src = '/static_assets/securimage/securimage_show.php?sid=' +  Math.random();
			return false;
		}
	
		if ($('recommend-submit')!=null) $('recommend-submit').addEvent('click', sendRecommend );
		if ($('recommend-reload-captcha')!=null) $('recommend-reload-captcha').addEvent('click', reloadRecommendCapchta );		
	}


	if ($('slide-feedback')!=null) {
		
		$('slide-feedback').setStyle('display', 'block');
		$('toggle-feedback').setStyle('display', 'block');
		var slideFeedback = new Fx.Slide('slide-feedback');
		slideFeedback.hide();
		$('toggle-feedback').addEvent('click', function(e){
			e.stop();
			$('toggle-feedback').blur();
			toggleSection("feedback");
		});
		$('close-feedback').addEvent('click', function(e){
			e.stop();
			slideFeedback.slideOut();
		});
		slideFeedback.addEvent('complete', toBottom);


		/* --- Feedback-Form ---------------------------------------*/  
		var afterSendFeedback = function(responceText) {
			if( responceText.match('^<div class="message">')){
				$('feedback-form').reset();
				reloadFeedbackCapchta();
			}
			
			$('feedback-form-message').innerHTML = responceText;
			return false;
		}
		
		var sendFeedback = function(evt) {
			$('feedback-form').set('send', {method:'post', onSuccess: afterSendFeedback });
			if ( window.location.href.indexOf('/intranet/') > 0 ) {
				$('feedback-form').send('/intranet/form_mailer/sendFeedback.php');
			} else {
				$('feedback-form').send('/static_assets/sendFeedback.php');
			}
			return false;
		}
		
		var reloadFeedbackCapchta = function() {
			if ($('feedback-captcha')!=null) $('feedback-captcha').src = '/static_assets/securimage/securimage_show.php?sid=' + Math.random();
			return false;
		}
		
		if ($('feedback-submit')!=null) $('feedback-submit').addEvent('click', sendFeedback );
		if ($('feedback-reload-captcha')!=null) $('feedback-reload-captcha').addEvent('click', reloadFeedbackCapchta );

	}



	if ($('slide-bookmark')!=null) {
		$('slide-bookmark').setStyle('display', 'block');
		$('toggle-bookmark').setStyle('display', 'block');
		var slideBookmark = new Fx.Slide('slide-bookmark');
		slideBookmark.hide();
		$('toggle-bookmark').addEvent('click', function(e){
			e.stop();
			$('toggle-bookmark').blur();
			toggleSection("bookmark");
		});
		$('close-bookmark').addEvent('click', function(e){
			e.stop();
			slideBookmark.slideOut();
		});
		slideBookmark.addEvent('complete', toBottom);
	}


	// Sitemap
	if ($('footer-sitemap')!=null) {
		var sitemap = new Fx.Slide('footer-sitemap');
		
		if(Cookie.read('footer-sitemap') == 'off') {
			sitemap.hide();
			$('sitemap-more').addClass('active');
		} else {
			sitemap.show();
			$('sitemap-more').removeClass('active');				
		}
		$('sitemap-more').setStyle('display', 'inline');		
		$('sitemap-more').addEvent('click', function(e){
			e.stop();
			$('sitemap-more').blur();		
			if (sitemap.open) {
				sitemap.hide();
				Cookie.write('footer-sitemap', 'off', {duration:365, path:"/"});
				$('sitemap-more').addClass('active');
			} else {
				sitemap.show();
				Cookie.write('footer-sitemap', 'on', {duration:365, path:"/"});
				$('sitemap-more').removeClass('active');				
			}
			new Fx.Scroll(window).toBottom();		
		});
	}





	// Links
	if ($('hideLinks')!=null) {
		var hideLinks = new Fx.Slide('hideLinks');
		if(Cookie.read('LinksSection') == 'off') {
			hideLinks.hide();
			$('toggleLinks').addClass('active');
			$('hideLinks').getParent().getParent().addClass('one');
		} else {
			hideLinks.show();
			$('toggleLinks').removeClass('active');				
			$('hideLinks').getParent().getParent().removeClass('one');
		}
		$('toggleLinks').addEvent('click', function(e){
			e.stop();
			$('hideLinks').setStyle('display', '');
			$('toggleLinks').blur();		
			if (hideLinks.open) {
				hideLinks.slideOut();
				Cookie.write('LinksSection', 'off', {duration:365, path:"/"});
				$('toggleLinks').addClass('active');
				$('hideLinks').getParent().getParent().addClass('one');
			} else {
				hideLinks.slideIn();
				Cookie.write('LinksSection', 'on', {duration:365, path:"/"});
				$('toggleLinks').removeClass('active');	
				$('hideLinks').getParent().getParent().removeClass('one');
			}
		});
	}


	// Pressemeldungen
	if ($('hidePresse')!=null) {
		var hidePresse = new Fx.Slide('hidePresse');
		if(Cookie.read('presseSection') == 'off') {
			hidePresse.hide();
			$('togglePresse').addClass('active');
			$('hidePresse').getParent().getParent().addClass('one');
		} else {
			hidePresse.show();
			$('togglePresse').removeClass('active');				
			$('hidePresse').getParent().getParent().removeClass('one');
		}
		$('togglePresse').addEvent('click', function(e){
			e.stop();
			$('hidePresse').setStyle('display', '');
			$('togglePresse').blur();		
			if (hidePresse.open) {
				hidePresse.slideOut();
				Cookie.write('presseSection', 'off', {duration:365, path:"/"});
				$('togglePresse').addClass('active');
				$('hidePresse').getParent().getParent().addClass('one');
			} else {
				hidePresse.slideIn();
				Cookie.write('presseSection', 'on', {duration:365, path:"/"});
				$('togglePresse').removeClass('active');	
				$('hidePresse').getParent().getParent().removeClass('one');
			}
		});
	}

	// Heute in Braunschweig
	if ($('hideHeute')!=null) {
		var hideHeute = new Fx.Slide('hideHeute');
		if(Cookie.read('heuteSection') == 'off') {
			hideHeute.hide();
			$('toggleHeute').addClass('active');
			$('hideHeute').getParent().getParent().addClass('one');
		} else {
			hideHeute.show();
			$('toggleHeute').removeClass('active');				
			$('hideHeute').getParent().getParent().removeClass('one');
		}
		$('toggleHeute').addEvent('click', function(e){
			e.stop();
			$('hideHeute').setStyle('display', '');
			$('toggleHeute').blur();		
			if (hideHeute.open) {
				hideHeute.slideOut();
				Cookie.write('heuteSection', 'off', {duration:365, path:"/"});
				$('toggleHeute').addClass('active');
				$('hideHeute').getParent().getParent().addClass('one');
			} else {
				hideHeute.slideIn();
				Cookie.write('heuteSection', 'on', {duration:365, path:"/"});
				$('toggleHeute').removeClass('active');	
				$('hideHeute').getParent().getParent().removeClass('one');
			}
		});
	}



	// info tooltip
	var myTips = new Tips($$('.tooltip-info'), {
		showDelay: 500,
		hideDelay : 0,
		maxTitleChars: 50,
		maxOpacity: .9
	});
	
	// info tooltip
	var tooltips = new Tips('.showtooltip', {showDelay: 200, maxOpacity: .8});

	if ($('searchinput')!=null) new OverText($('searchinput'));

});

