document.addEvent( 'domready', function() {
	
	// Compact login menu
	
	var compact_login = $('compact_login');
	if( compact_login ){
		compact_login.addEvent('click', function(event) {
			event.preventDefault();
			var compact_login_menu = document.id('compact_login_menu');
			if(!compact_login_menu.isVisible()){
				this.addClass('active');
				var loginStatus = new Request({
				    url: 'http://www.ragnarsoderbergsstiftelse.se/soderbergs/ragnar/inloggad',
					method: 'get',
				    onSuccess: function(html){
				        compact_login_menu.set('html', html)
						compact_login_menu.show();
				    }
				});
				loginStatus.send();
			}
			else {
				this.removeClass('active');
				compact_login_menu.hide();
			}
		});
	}
	
	// Extend footer if it diffs to viewport
	
	var viewport_height = window.getHeight();
	var footer = $('footer');
	var footer_bottom = footer.getCoordinates().bottom;
	
	if( viewport_height > footer_bottom ) {
		var diff = viewport_height - footer_bottom;
		footer.setStyle('height', (footer.getHeight() + diff) - 40 );
	}
	
	// Set up list view table
	
	$$('.list_view .trigger').addEvent('click', function(event){
	//	var all_content = $$('.list_view .hidden_content');
			//all_content.dissolve();
		var parent = (this.get('tag') == 'tr') ? this : this.getParent('tr');
			parent.toggleClass('active');
		var hidden_content = parent.getNext('tr').getElement('.hidden_content');
		var reveal = new Fx.Reveal( hidden_content, {duration: 300});
			reveal.toggle();
	});
	
	// Set up photographer info
	
	var photographer_overlay = null;
	
	$$('img[title]').addEvents({
		'mouseover': function(event) {
			var target = event.target;
			photographer_overlay = new Element('div',{
				id: 'photographer_overlay'
			}).setStyles({
				position: 'absolute',
				zIndex: 1000,
				width: target.getWidth(),
				left: target.getPosition().x,
				top:  target.getPosition().y,
				backgroundColor: '#000',
				opacity: '.8',
				color: '#fff',
				fontSize: '.8em',
				lineHeight: '2.5em',
				textIndent: '10px'
			});
			photographer_overlay.set('html', target.get('title'));
			photographer_overlay.inject(document.body);
		},
		'mouseout': function() {
			photographer_overlay.dispose();
		}
	});
	
	// Set up tag selects
	
	var tag_selects = $$('.tag_selects select');
	if( tag_selects.length > 0 ) {
		tag_selects.addEvent('change', function(event){
			var target = event.target;
			var selector = '';
			tag_selects.each( function(select){
				if( select.value != '' )
					selector = selector + '.' + select.value.toLowerCase().replace('å','a').replace('ä','a').replace('ö','o');
			});
			$$('.list_view').removeClass('tag_hide');
			$$('.list_view tbody tr').addClass('tag_hide');
			$$(selector).each( function(element) { element.removeClass('tag_hide') } );
		});
	}
	
	// Set up page tags
	
	$$('.tags a').addEvent('click', function(event) {
		event.preventDefault();
		var a = event.target;
		var view_all = $('view-all-tags');
		if( a.get('id') != 'view-all-tags' ) {
			var selector = '.' + a.get('href').replace('#','').toLowerCase();
			if( a.hasClass('inactive') ) {
				$$('.tags a').addClass('inactive');
				a.removeClass('inactive');
				$$('#content span[class],#search_result li[class]').addClass('tag_hide');
				$$(selector).each( function(element) { element.removeClass('tag_hide') } );
			}
			else {
				$$('.tag_hide').each( function(element) { element.removeClass('tag_hide') } );
				$$('.tags a').addClass('inactive');
				view_all.removeClass('inactive');
			}
		}
		else {
			$$('.tag_hide').each( function(element) { element.removeClass('tag_hide') } );
			$$('.tags a').addClass('inactive');
			a.removeClass('inactive');
		}
	});
	
	// Set up search criteria field
	
	var criteria_field = $('search');
	criteria_field.addEvents({
		'focus': function(){
			if( criteria_field.value == criteria_field.defaultValue ) {
				criteria_field.value = '';
				criteria_field.addClass('active')
			}
		},
		'blur': function(){
			if( criteria_field.value == '' ) {
				criteria_field.value = criteria_field.defaultValue;
				criteria_field.removeClass('active')
			}
		}
	});
	
	// Set up accordions
	
	if( $('accordion') ) {	
		var Accordion = new Fx.Accordion( $$('.accordion_trigger'), $$('.accordion_content'), {
		    alwaysHide: true,
			display: (location.hash) ? location.hash.replace('#','').toInt() : -1,
			onActive: function(toggler) { toggler.addClass('active'); }, 
			onBackground: function(toggler) { toggler.removeClass('active'); }
		});
	}
	
	//	Set up drop menus
	
	var top_navigation = $('navigation');
	var new_zindex = 1000;
	
	if( top_navigation ) {
		top_navigation.getElements('li').each( function( li, index ) {;
		
			var node_timer;
			var ul = li.getElement('ul');
			if( ul ) {
				ul.setStyle( 'zIndex', new_zindex++ );
				var top_pos = ( li.getParent().get('id') == 'navigation' ) ? li.getParent().getSize().y : -1;
				var left_pos = ( li.getParent().get('id') == 'navigation' ) ? 0 : 200;
				li.addClass('has_children');				
				li.addEvent( 'mouseover', function() {
					ul.setStyles({
						top: top_pos,
						left: left_pos
					});
					ul.show();
					clearTimeout( node_timer );
				});

				li.addEvent( 'mouseout', function() {
					node_timer = setTimeout( function(){ dp_close_menu_node( ul ) }, 200 ) ;
				});
	  	    }
	  	});	  	
	}
	else
		return false;
		
	// Setup info bubble
	
	var infoBubble = document.id('info-bubble');
	if(infoBubble) {
		infoBubble.getElement('b').addEvent('click', function(event) {
			infoBubble.hide();
		});
		showBubble.delay(1000)
	}
	
	function showBubble(){
		infoBubble.show()
	}
	
});

function dp_close_menu_node( node ) {
	node.hide();
}
