function initBox() {
	$('.box').append('<div class="clear"></div>');
	var borderRadiusAvailable = false;
	try {
		if ( document.body.style.borderRadius !== undefined || document.body.style.MozBorderRadius !== undefined || document.body.style.WebkitBorderRadius !== undefined ) {
			borderRadiusAvailable = true;
		}
	} catch(err) {}
	
	if ( !borderRadiusAvailable ) {
		box.init();
	}
}

var box = {
	init: function( ParentEle ) {
		var oBoxRegExp = new RegExp("(^|\\s)box-([a-z0-9-]+)($|\\s)");
		
		var boxCorners = {'tl': ['top','left'], 'tr': ['top','right'], 'br': ['bottom','right'], 'bl': ['bottom','left']};
		var boxArray = ( ParentEle !== undefined ? $('.box', ParentEle) : $('.box, .fotoleader') );
		boxArray.css( { position: 'relative' } ).each( function(i) {
			var oHoofd, oI1, oI2;
			
			var ele = $(this);
			$.each(boxCorners, function(name, row) {
				var eleCorner = $('<div class="'+name+'"></div>' );
				eleCorner.css( row[0], '0' ).css( row[1], '0' ).css( {position: 'absolute', height: '5px', width: '5px', background: 'url(images/misc/box.png) no-repeat '+row[0]+' '+row[1]} );
				ele.append( eleCorner );
			});
			
			return true;
		} );
	}
};

var menuSetup = { i: 0, t: false };
function initMenu() {
	menuSetup.i = $('#menu a.actief').index();
	$('#menu a').hover(
		function() { clearTimeout( menuSetup.t ); toonSubmenu( $(this).index() ); },
		function() { menuSetup.t = setTimeout( function() { toonSubmenu( menuSetup.i ); }, 1000 ); }
	);
	$('#submenu').hover(
		function() { clearTimeout( menuSetup.t ); },
		function() { menuSetup.t = setTimeout( function() { toonSubmenu( menuSetup.i ); }, 1000 ); }
	);
}

function toonSubmenu( Index ) {
	$('#menu a').removeClass('actief');
	$('#menu a:eq('+Index+')').addClass('actief');
	
	var submenuHtml = '';
	for ( var n = ( submenu[ Index ].length - 1 ); n >= 0; n-- ) {
		submenuHtml += '<a href="'+submenu[ Index ][n].u+'">'+submenu[ Index ][n].t+'</a>'+( n > 0 ? '<span>&nbsp;</span>' : '' );
	}
	$('#submenu').html( submenuHtml );
}

var agenda = {
	obj: new Date(),
	maand: 0,
	jaar: 0,
	maandNamen: ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'],
	punten: {},
	initialisatie: false,
	init: function() {
		this.obj.setDate(1);
		this.maand = agenda.obj.getMonth();
		this.jaar = agenda.obj.getFullYear();
		
		$('.agenda .kopnavigatie a').click( function() {
			if ( $(this).hasClass('vorige') ) {
				if ( agenda.maand == 0 ) { agenda.maand = 11; agenda.jaar--; } else { agenda.maand--; }
			} else {
				if ( agenda.maand == 11 ) { agenda.maand = 0; agenda.jaar++; } else { agenda.maand++; }
			}
			
			agenda.obj.setMonth(agenda.maand,1);
			agenda.obj.setYear(agenda.jaar);
			
			agenda.laad();
			return false;
		} );
		
		$('body').append('<div id="tooltip"></div>');
		
		this.laad();
	},
	laad: function() {
		$.ajax( {
			data: 'lijst=agenda&maand='+this.maand+'&jaar='+this.jaar,
			success: function(data) {
				agenda.punten = data;
				agenda.toon();
				if ( !agenda.initialisatie ) {
					agenda.initialisatie = true;
					initKolomrijen();
				}
			}
		} );
	},
	
	toon: function() {
		$('.agenda .kopnavigatie span').html(this.maandNamen[this.maand]+' '+this.jaar);
		
		var dagAantal = new Date(this.jaar, this.maand+1, 0);
		dagAantal = dagAantal.getDate();
		var dagKolom = this.obj.getDay();
		var weekRij = 1;
		
		var html = '<tr>';
		if ( !dagKolom ) {
			html += '<td colspan="6">&nbsp;</td>';
		} else if ( dagKolom > 1 ) {
			html += '<td colspan="'+(dagKolom-1)+'">&nbsp;</td>';
		}
		for ( var dag = 1; dag <= dagAantal; dag++ ) {
			if ( dagKolom == 1 || dagKolom >= 8 ) {
				dagKolom = 1;
				html += '</tr><tr>';
				weekRij++;
			}
			html += '<td>';
			if ( agenda.punten[dag] ) {
				html += '<a href="agenda.php" title="'+agenda.punten[dag].titel+'">'+dag+'</a>';
			} else {
				html += dag;
			}
			html += '</td>';
			
			dagKolom++;
		}
		html += '</tr>';
		if ( weekRij < 6 ) {
			for (; weekRij < 6; weekRij++ ) {
				html += '<tr><td colspan="7">&nbsp;</td></tr>';
			}
		}
				
		$('.agenda tbody').html( html );
		$('.agenda tbody td a').click( function() {
			var agendaPunt = agenda.punten[$(this).html()];
			var html = agendaPunt.omschrijving;
			
			var osTop = ( $(this).offset().top - $(document).scrollTop() );
			var osLeft = ( $(this).offset().left - $(document).scrollLeft() );
			
			var socialUrl = "http://www.diephuis.nl/agenda.php";
			var socialTitel = agendaPunt.titel;
			
			var html = '<p>'+agendaPunt.omschrijving+'</p>'+
			'<div class="socialmedia"><span id="network-hyves"><img src="images/icoon/hyves.png" alt="Hyves" /></span>'+
			// '<a href="http://www.twitter.com/home?status=Diephuis - '+encodeURIComponent( socialTitel )+': '+encodeURIComponent( socialUrl )+'" id="network-twitter" target="_blank"><img src="images/icoon/twitter.png" alt="Twitter" /></a>'+
			'<a href="http://www.twitter.com/home?status='+encodeURIComponent( socialTitel )+': htpp://www.diephuis.nl/agenda.php" id="network-twitter" target="_blank"><img src="images/icoon/twitter.png" alt="Twitter" /></a>'+
			'<span id="network-facebook"><img src="images/icoon/facebook.png" alt="Facebook" /></span>'+
			'<span id="network-delicious"><img src="images/icoon/delicious.png" alt="Del.icio.us" /></span></div>';
			
			$('#tooltip').dialog( "option", "position", [ osLeft - 288, osTop - 207 ] ).dialog( "option", "title", agendaPunt.titel ).html(html).bind("dialogopen", function(event, ui) {
				$('.socialmedia *[id^=network-]').each( function() {
					$(this).attr( 'title', 'Plaats op '+$('img', $(this)).attr('alt') );
				} );
				
				// Hyves
				Hyves.connect.tip( { title: socialTitel, body: 'Kom ook naar "[url='+socialUrl+']'+socialTitel+'[/url]" van Diephuis!', category: 12 }, null, 'network-hyves' );
				
				// Facebook
				$('.socialmedia #network-facebook').click( function() {
					window.open( 'http://www.facebook.com/share.php?u='+encodeURIComponent( socialUrl )+'&t='+encodeURIComponent( socialTitel ), 'sharer', 'toolbar=0,status=0,width=626,height=436' );
					return false;
				} );
				
				// Del.icio.us
				$('.socialmedia #network-delicious').click( function() {
					window.open( 'http://del.icio.us/post?v=4&noui&jump=close&url='+encodeURIComponent( socialUrl )+'&title='+encodeURIComponent( socialTitel ), 'delicious', 'toolbar=0,status=0,width=700,height=400' );
					return false;
				} );
			} ).dialog('open');
			
			tooltipStart();
			return false;
		} );
	}
};

function initFotoalbum() {
	if ( $.fn.fancybox ) {
		$('.galerij a[rel=item]').fancybox( {
			'opacity'		: true,
			'transitionIn'	: 'elastic',
			'transitionOut'	: 'none'
		} );
	}
}

function initKolomrijen() {
	$('.kolomrij').each( function() {
		var maxHoogte = 0;
		var grootsteKolom = false;
		
		// Stap 1: grootste kolom berekenen.
		$('.kolomlinks, .kolomrechts', $(this) ).each( function() {
			var hoogte = $(this).outerHeight();
			if ( hoogte > maxHoogte ) {
				maxHoogte = hoogte;
				grootsteKolom = $(this);
			}
		} );
		
			// Stap 2: laatste box in de kleinere kolommen groter maken.
		$('.kolomlinks, .kolomrechts', $(this) ).not( grootsteKolom ).each( function() {
			var boxLaatste = $('.box:last', $(this));
			boxLaatste.height( boxLaatste.height() + ( maxHoogte - $(this).height() ) );
		} );	
	} );
}

var tooltipTimer = false;
function tooltipStart() {
	tooltipStop();
	tooltipTimer = setTimeout( function() { $('#tooltip').dialog('close'); }, 2500 );
}
function tooltipStop() {
	if ( tooltipTimer ) { clearTimeout( tooltipTimer ); }
}

$(document).ready( function() {
	// Dialogen
	$('#pagina').append( '<div id="tooltip" title="Titel"></div>' );
	$('#tooltip').dialog( {
		autoOpen: false,
		width: 300,
		height: 200,
		modal: false,
		resizable: false,
		draggable: false,
		show: "fade",
		hide: "fade",
		open: tooltipStart,
		close: tooltipStop,
	} ).mouseover( tooltipStop ).mouseout( tooltipStart );
	
	$.ajaxSetup( {
		url: "/jx.php",
		dataType: 'json',
		type: "GET"
	} );
	
	// Pagina
	if ( typeof( initPagina ) != 'undefined' ) { 
		initPagina();
	}
	
	agenda.init();
	initKolomrijen();
	initBox();
	initMenu();
	initFotoalbum();
} );
