jQuery().ready
(
	function() 
	{
		jQuery( 'td.view-day-dates' ).bind('mouseenter', function( e,i ){
			var infobox = jQuery( '#calendar-day-detail');
			var details = jQuery( 'div.view-day-info', this );
			if ( details.length > 0 ) {
				infobox
					.css( 'left', e.pageX-25)
					.css( 'top', e.pageY+27)
					.css( 'position', 'absolute' )
					.appendTo( 'body' )
					.show();
				infobox = infobox[0];
				
				if ( typeof infobox.firstChild.innerHTML == 'undefined' || infobox.firstChild.innerHTML != details[0].firstChild.innerHTML ) {
					infobox.innerHTML='';
					
					jQuery.each( details[0].childNodes, function( i, n ) {
						if ( n.nodeName == 'H2' || n.nodeName == 'DIV' ) infobox.appendChild( n.cloneNode( true ) );
					} );
				}
			} else infobox.innerHTML='';

		}).mousemove(function(e,i){
			var infobox = jQuery( '#calendar-day-detail');
			var details = jQuery( 'div.view-day-info', this );
			if ( details.length > 0 ) {
				infobox
					.css( 'left', e.pageX-25)
					.css( 'top', e.pageY+27);
			}
	    }).bind('mouseleave', function(i){
	        jQuery( '#calendar-day-detail').hide();
		});
	}
);

	function event_source( e ) {
		if( typeof event == 'object' && event.srcElement ) {
			return event.srcElement;
		} else if( e.target ) {
			return e.target
		} else {
			return false;
		}
	}

	function calendar_event_day_over( cell, state, day, month, month_name, year, pos_week, pos_day ) {
		if( state == 'out' ) return;
		var debug = false;
		
		var day_detail = document.getElementById( 'calendar-day-detail' );
		var day_detail_date = document.getElementById( 'calendar-day-detail-date' );
		var day_detail_dates = document.getElementById( 'calendar-day-detail-dates' );
		//alert( 'over: ' +day );
		var cell_pos = getAnchorPosition( 'anchor-'+month+'-'+day );
		
		if( debug ) {
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML = '<b>DEBUG</b><br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'day='+day+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'month='+month+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'month_name='+month_name+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'year='+year+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'pos_week='+pos_week+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'pos_day='+pos_day+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'cell_w='+cell.offsetWidth+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'cell_h='+cell.offsetHeight+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'cell_left='+cell_pos.x+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'cell_top='+cell_pos.y+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'display_pos=';
		}
		
		// ermittelt alle nodes die keine textnodes sind -3 fuer 2 div's die nicht mitgezaehlt werden sollen (datum, "heute" und more ...)
		var div_rows = -3;
		for( i = 0; i < cell.childNodes.length; i++ ) {
			if( !cell.childNodes[i].tagName ) continue;
			div_rows++;
		}
		
		var div_height = 45 + ( 60 * ( div_rows ) );
		if( div_height > 250 ) div_height = 250;
		var div_width = 300;
		var div_left = 0;
		var div_top = 0;
		
		/*if( div_rows <= 0 ) {
			day_detail.style.display = 'none';
			return;
		}*/
		
		if( pos_week < 3 ) {
			if( debug ) document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'drunter';
			div_top = cell_pos.y - 1 + cell.offsetHeight;
		} else {
			if( debug ) document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'drueber';
			div_top = cell_pos.y - div_height;
		}
		
		if( pos_day < 3 ) {
			if( debug ) document.getElementById( 'calendar-day-detail-debug' ).innerHTML += ' rechts';
			div_left = cell_pos.x - 1;
		} else {
			if( debug ) document.getElementById( 'calendar-day-detail-debug' ).innerHTML += ' links';
			div_left = cell_pos.x - div_width + cell.offsetWidth;
		}
		if( debug ) {
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += '<br />';
		
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'div_left='+div_left+'<br />';
			document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'div_top='+div_top+'<br />';
		}
		
		/*day_detail.style.display = 'inline';
		day_detail.style.left = div_left;
		day_detail.style.top = div_top;*/
		day_detail.style.width = div_width;
		day_detail.style.height = div_height;
		
		day_detail_date.innerHTML = '';
		day_detail_dates.innerHTML = '';
		
		// datum
		//var node = cell.childNodes[0].cloneNode( true );
		//day_detail_date.appendChild( node );
		day_detail_date.appendChild( document.createTextNode( day+'. '+month_name+' '+year ) );
		
		
		// termine
		if( debug ) document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'child_length='+cell.childNodes.length+'<br />';
		for( i = 0; i < cell.childNodes.length; i++ ) {
			
			if( !cell.childNodes[i].tagName ) continue;
			if( cell.childNodes[i].getAttribute( 'id' ) != 'date' ) continue;
			
			if( debug ) document.getElementById( 'calendar-day-detail-debug' ).innerHTML += 'append_child('+i+')<br />';
			var node = cell.childNodes[i].cloneNode( true );
			day_detail_dates.appendChild( node );
		}
	}
	
	/*
	function calendar_event_day_close( ) {
		var day_detail = document.getElementById( 'calendar-day-detail' );
		day_detail.style.display = 'none';
	}*/
	
