// JavaScript Document

$(function(){
	$('.column').sortable({
		connectWith: '.column',
		handle: 'h2',
		cursor: 'move',
		placeholder: 'placeholder',
		forcePlaceholderSize: true,
		opacity: 0.4,
		stop: function(event, ui){
			$(ui.item).find('h2').click();
			var sortorder='';
			$('.column').each(function(){
				var itemorder=$(this).sortable('toArray');
				var columnId=$(this).attr('id');
				sortorder+=columnId+'='+itemorder.toString()+'&';
			});
			ui.item.css({'top':'0','left':'0'});
			
			/*Pass sortorder variable to server using ajax to save state*/
			$('input#sortOrder').val(sortorder);
			
		}
	})
	.disableSelection();
	
	$('a#saveOrder').click(function(){
		
		$('a#saveOrder').html("<span>Bezig met opslaan...</span>");
		
		var sortorder = $('input#sortOrder').val();
		if(sortorder) {
			$.ajax({
				url: 		"/scripts/saveDashboardOrder.php",
				type: 		"get",
				data: 		{ uid: $('#currentUser').val(), sortorder: sortorder },
				dataType:	"html",
				timeout:	20000,
				tryCount: 	0,
				retryLimit:	3,
				success: 	function(data) {
				
					if(data == "succes") { 
						$('a#saveOrder').html("<span>Succesvol opgeslagen!</span>");
					}	
					else {
						$('a#saveOrder').html("<span>Niet opgeslagen!</span>");
					}
				},
				error: 		function(xhr, textStatus, errorThrown ) {
					if (textStatus == 'timeout') {
						this.tryCount++;
						if (this.tryCount <= this.retryLimit) {
						//try again
						$.ajax(this);
						return;
					}
						$('span#saveDBStatus').html('' + this.retryLimit + ' maal mislukt. Probeer het nog eens...');
						return;
					}
					if (xhr.status == 500) { $('span#saveDBStatus').html('Er lijkt een serverprobleem te zijn, probeer het later nog eens.'); } 
					else { $('span#saveDBStatus').html('Er is een probleem opgetreden, sorry.');	}
				}
			});
		}
	});
	
});
