var currentElement;
var mainSlideStatus = eSliderStatus.IDLE;

var mainSlide;
function setCurrentElement(element) {
	currentElement = element;
}

function switchSection(element) {
	if ((currentElement != element) && (mainSlideStatus == eSliderStatus.IDLE)) {
	
		if (currentElement == "main_map") {
			GUnload();
		}
		
		currentElement = element;
		
		mainSlideStatus = eSliderStatus.SLIDING_OUT;
		
		showLoader();

		var options = {
			duration: 2000,
			transition: Fx.Transitions.Cubic.easeInOut,
			onComplete: onMainSlideComplete
		};
		
		mainSlide = new Fx.Slide('main_content',options);
	
		mainSlide.slideOut();
	}
}

function loadSection(element) {
	setAnchor(element);

	var options = {
		method: 'get',
		evalScripts: true,
		update: 'main_content',
		onComplete: switchSectionComplete
	};
	
	var ajax = new Ajax("elements/" + element + ".php", options).request();
}

function switchSectionComplete() {
	mainSlide.slideIn();
	
	mainSlideStatus = eSliderStatus.SLIDING_IN;
}

function onMainSlideComplete() {
	if (mainSlideStatus == eSliderStatus.SLIDING_OUT) {
		loadSection(currentElement);
	}
	else if(mainSlideStatus == eSliderStatus.SLIDING_IN) {
		hideLoader();
		
		mainSlideStatus = eSliderStatus.IDLE;
		
		//only for map
		if (currentElement == "main_map") {
			var options = {
				method: 'get',
				evalScripts: true,
				update: 'map_info_chart'
			};
		
			var ajax = new Ajax("/elements/map/info_chart.php", options).request();
		}
	}
}

function showLoader() {
	var effect = new Fx.Elements($('loader'),{duration: 500});
	effect.start({
		'0' : {
			'opacity': [0,1]
		}
	});
}

function hideLoader() {
	var effect = new Fx.Elements($('loader'),{duration: 500});
	effect.start({
		'0' : {
			'opacity': [1,0]
		}
	});
}
