var fixedElements
var firstBannerNumber = 3;
var firstBannerPos = 2;
var secondBannerNumber = 6;
var secondBannerPos = 5;

function initSortables () {
	var sortablesContainer = $('sortables')
	if (sortablesContainer) {
		
		Sortable.create('sortables',{tag:'div', handle: 'sortableHandle', scroll:window, onUpdate:checkAndSaveSortableList, starteffect:customStartEffect, endeffect:customEndEffect});
		
		var lastpositions = getCookie('sortablesPositions');		
		if (lastpositions && lastpositions.length > 2) {
			try {
				var positions = lastpositions.evalJSON()
				if (positions.push) {
					var currentPositions = Sortable.sequence('sortables');;
					if (positions.length < currentPositions.length) {
						for (var ii=positions.length+1; ii<=currentPositions.length; ii++) {
							positions.push(ii);
						}
					}
					positions = correktBannerPosition(positions);					
					Sortable.setSequence ('sortables',positions);
				}
			} catch (e) {
				// einfach nichts machen				
			}
		}
	}
}


function customStartEffect (element) {
	element.className = 'sortableItemDragging';
	element._opacity = Element.getOpacity(element);
	Draggable._dragging[element] = true;
	new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); 
}

function customEndEffect (element) {
	element.className = 'sortableItem';
	
	var toOpacity = typeof element._opacity == 'number' ? element._opacity : 1.0;
	new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, 
		queue: {scope:'_draggable', position:'end'},
		afterFinish: function(){ 
			Draggable._dragging[element] = false;
		}
	});
} 

function checkAndSaveSortableList () {
	var i=0;
	var buffer;
	var newOrder = Sortable.sequence('sortables');
	
	newOrder = correktBannerPosition(newOrder);

	Sortable.setSequence ('sortables',newOrder);
	
	var json = "/*-secure-" + newOrder.toJSON() + "*/";
	setCookie('sortablesPositions',json,999);
}


function correktBannerPosition (order) {
	if (order && order.push) {
		var pos = order.indexOf(firstBannerNumber)
		if (pos > firstBannerPos) {
			for (i=pos; i>firstBannerPos; i--) {
				buffer = order[i]
				order[i] = order[i-1];
				order[i-1] = buffer
			}
		} else if (pos < firstBannerPos) {
			for (i=pos; i<firstBannerPos; i++) {
				buffer = order[i]
				order[i] = order[i+1];
				order[i+1] = buffer
			}
		}
	
		var pos = order.indexOf(secondBannerNumber)
		if (pos > secondBannerPos) {
			for (i=pos; i>secondBannerPos; i--) {
				buffer = order[i]
				order[i] = order[i-1];
				order[i-1] = buffer
			}
		} else if (pos < secondBannerPos) {
			for (i=pos; i<secondBannerPos; i++) {
				buffer = order[i]
				order[i] = order[i+1];
				order[i+1] = buffer
			}
		}
		return order;
	} else {
		return [];
	}
}

function donothing () {
}


registerOnLoadFunction (initSortables);