var EDFILMFEST = {
	fadingDivs: {
		FADING_DIVS: null,
		CURRENT_DIV: null,
		FADE_WAIT: 5000,
		FADE_DURATION: 600,
		TIMER: null,

		init: function() {
			EDFILMFEST.fadingDivs.FADING_DIVS = $("div.fade");
			EDFILMFEST.fadingDivs.CURRENT_DIV = Math.floor(
				Math.random() * EDFILMFEST.fadingDivs.FADING_DIVS.length);

			EDFILMFEST.fadingDivs.setToFade(
				EDFILMFEST.fadingDivs.FADING_DIVS.hide().eq(
				EDFILMFEST.fadingDivs.CURRENT_DIV).fadeIn(EDFILMFEST.fadingDivs.FADE_DURATION));
		},

		setToFade: function(elem) {
			clearTimeout(EDFILMFEST.fadingDivs.TIMER);
			EDFILMFEST.fadingDivs.TIMER = setTimeout(function() {
				EDFILMFEST.fadingDivs.fadeInOut(elem);},
				EDFILMFEST.fadingDivs.FADE_WAIT);
		},

		fadeInOut: function(elem) {
			var nextElem;
			if (EDFILMFEST.fadingDivs.CURRENT_DIV ==
					(EDFILMFEST.fadingDivs.FADING_DIVS.length - 1)) {
				nextElem = EDFILMFEST.fadingDivs.FADING_DIVS.eq(0);
				EDFILMFEST.fadingDivs.CURRENT_DIV = 0;
			}
			else {
				EDFILMFEST.fadingDivs.CURRENT_DIV++;
				nextElem = EDFILMFEST.fadingDivs.FADING_DIVS.eq(
					EDFILMFEST.fadingDivs.CURRENT_DIV);
			}
			EDFILMFEST.fadingDivs.fadeOut(elem);
			EDFILMFEST.fadingDivs.fadeIn(nextElem, function() {
				EDFILMFEST.fadingDivs.setToFade(nextElem);});
		},

		fadeOut: function(elem, func) {
			elem.fadeOut(EDFILMFEST.fadingDivs.FADE_DURATION, func);
		},

		fadeIn: function(elem, func) {
			elem.fadeIn(EDFILMFEST.fadingDivs.FADE_DURATION, func);
		}
	}
}

$(EDFILMFEST.fadingDivs.init);
