/* main.js */

jQuery( function($) {

	// -------------------------------------------------------------------
	// Global vars
	// -------------------------------------------------------------------
	// Used in drag('init') and drag('end')
	// -------------------------------------------------------------------
	var startPosition = 0;
	var startTime     = 0;
	var dragBoxName   = 0;





	/**************************************************************************
	***************************************************************************
	***************************************************************************
	***************************************************************************
	***
	***  Start the chain...
	***  ...by selecting the draggable element
	***
	***************************************************************************
	***************************************************************************
	***************************************************************************
	***************************************************************************/
	$('.drag')


	/**************************************************************************
	***************************************************************************
	***************************************************************************
	***************************************************************************
	***
	***  Next in chain:
	***  Handle the dragging event...
	***  1. User pressed MouseBtn down...
	***
	***************************************************************************
	***************************************************************************
	***************************************************************************
	***************************************************************************/
	.drag('init',function(){

		// -------------------------------------------------------------------
		// Get startPosition and startTime for a new run
		// -------------------------------------------------------------------
		// startPosition = $( this ).offset().top;  	// Position relative to document
		startPosition = $( this ).position().top;		// Position relative to parent
		startTime     = (new Date).getTime();
		dragBoxName   = $( this ).attr('id');

		//$.fx.off;

	})
	// eoDrag("init")




	/**************************************************************************
	***************************************************************************
	***************************************************************************
	***************************************************************************
	***
	***  Next in chain:
	***  Handle the dragging event...
	***  1. User currently dragging...
	***
	***************************************************************************
	***************************************************************************
	***************************************************************************
	***************************************************************************/
	.drag(function( ev, dd ){

		// -------------------------------------------------------------------
		// Hint #1
		//    Wichtig, dass auch hier alle aktuellen Animationen gestoppt
		//    werden. Sonst verhaelt sich das Menue unzuverlaessig.
		// -------------------------------------------------------------------
		// Hint #2
		//    Wo werden Animationen sonst noch gestoppt?
		//    In slottyNavigation.snapInAnimation1()!
		// -------------------------------------------------------------------
		var currentPosition = dd.offsetY;  // Faengt bei 20px an, sollte aber bei 0px anfangen.

		// -------------------------------------------------------------------
		// Restrict movement to Y-Axis
		// -------------------------------------------------------------------
		// Hint
		//    Add option "relative: true" to function call
		//    it the drag is used inside a relatively positioned
		//    parent.
		// -------------------------------------------------------------------
		$( this ).css({
			// Restrict movement to Y-Axis
			//top: currentPosition + 'px'
			top: dd.offsetY

		});







	},
	// Add options for this drag function call
	{
		relative: true // true to use "position", false to use "offset"
	})
	//eoDrag()




	/**************************************************************************
	***************************************************************************
	***************************************************************************
	***************************************************************************
	***
	***  Next in chain:
	***  Handle the dragging event...
	***  2. User released the mousebtn...Dragging has ended
	***
	***************************************************************************
	***************************************************************************
	***************************************************************************
	***************************************************************************/
	.drag('end',function(){


		// -------------------------------------------------------------------
		// slottyNavigation.jquery.js - move it
		// -------------------------------------------------------------------
		var options = {
			action       : 'move',
			startPosition: startPosition,
			endPosition  : $( this ).position().top,		// Position relative to parent
			startTime    : startTime,
			endTime      : (new Date).getTime()

		};

		$( this ).slottyNavigation( options );



		if (0) {

			alert( 'stored data: '
			+ "\n"
			+ 'dragBoxName: '
			+ $( this ).data('slottyNavigationData').dragBoxName
			+ "\n"
			+ 'showSidebar: '
			+ $( this ).data('slottyNavigationData').showSidebar
			);

		}




		// -------------------------------------------------------------------
		// slottyContent.jquery.js - set content bg img
		// -------------------------------------------------------------------
		if (1) {

			var options = {
				action                         : 'contentMain',
				dragBoxName                    : $( this ).data('slottyNavigationData').dragBoxName,
				activeMenuItemId               : $( this ).data('slottyNavigationData').activeMenuItemId,
				filenameContentBackgroundImage : $( this ).data('slottyNavigationData').filenameContentBackgroundImage,
				filenameContentTextDivId       : $( this ).data('slottyNavigationData').filenameContentTextDivId

			};

			$( this ).slottyContent( options );

		}


		// -------------------------------------------------------------------
		// slottySidebar.jquery.js - set sidebar
		// -------------------------------------------------------------------
		// Disable this during debugging, damit die sidebar
		// nicht andauernd reinfaehrt
		// -------------------------------------------------------------------
		if (1) {

			var options = {
				action      : 'sidebarMain',
				showSidebar : $( this ).data('slottyNavigationData').showSidebar

			};

			$( this ).slottySidebar( options );

		}



	});
	// eoDrag("end")



});
// eojQuery(".drag")

