window.multikoel = (function(){
	function getId(id) {
		return document.getElementById(id);
	};

	(function(){
		var oldRegister = secoya.menu.registerMenu;
		secoya.menu.registerMenu = function(){
			if (!window.core) {
				secoya.menu.setClass = function(li, className) {
					var classes = li.className.replace(/_?hover|_?normal/g, '').split(' ');
					classes = classes.unique();
					classes.removeElement(className);
					classes = classes.join(' ');
					li.className = classes.replace(/\w+/g, function(c) {
						return c + '_' + className + ' ' + c;
					}) + ' ' + className;
				}
			}
			oldRegister.apply(secoya.menu, arguments);
			var h = getId('header');
			h = h.getElementsByTagName('ul')[0];
			if (h) {
				var index = 0, className;
				for (var i = 0; i < h.childNodes.length; i++) {
					if (h.childNodes[i].nodeType == 1) {
						index++;
						className = h.childNodes[i].className;
						className = className.replace(/\s*index[0-9]+\s*/, ' ');
						className = className.replace(/\s+/, ' ');
						className += ' index'+index;
						h.childNodes[i].className = className;
					}
				}
			}
		};
	})();

	function getElementsByClassName(className, tag) {
		if (this.getElementsByClassName) {
			return this.getElementsByClassName(className);
		}
		if (!tag)
			tag = '*';
		var results = [];
		var elements = this.getElementsByTagName(tag);
		className = new RegExp('(?:^|\\s)'+className+'(?:\\s|$)');
		for (var i = 0; i < elements.length; i++) {
			if (className.test(elements[i].className)) {
				results.push(elements[i]);
			}
		}
		return results;
	};

	function slideshow() {
		var references = getId('references');

		(function() {
			function imageLoaded() {
				var dif = this.parentNode.clientHeight - this.height;
				if (dif > 0)
					this.style.marginTop = dif/2 + 'px';
			};
			var imgs = references.getElementsByTagName('img');
			for (var i = 0; i < imgs.length; i++) {
				if (imgs[i].complete)
					imageLoaded.call(imgs[i]);
				else
					imgs[i].onload = imageLoaded;
			}
		})();

		function setupSlideshow(parent, className) {
			var
				fx,
				elements = getElementsByClassName.call(parent, className),
				index = elements.length-1,
				element,
				nextElement,
				run = function() {
					if (references.parentNode) {
						element.style.zIndex = 0;
						element = nextElement;
						if (--index < 0)
							index = elements.length-1;
						nextElement = elements[index];
						element.style.zIndex = 2;
						nextElement.style.zIndex = 1;
						lightCore.setOpacity(nextElement, 100);
						fx.start();
					}
				};
			if (elements.length > 1) {
				element = elements[index--];
				nextElement = elements[index];
				element.style.zIndex = 1;
				nextElement.style.zIndex = 2;
				fx = new secoya.fx({
					from: 100,
					to: 0,
					duration: 1,
					callback: function(x) {
						lightCore.setOpacity(element, x);
					},
					finish: function() {
						setTimeout(run, 5000);
						element.style.zIndex = 1;
						nextElement.style.zIndex = 2;
					}
				});
				setTimeout(run, 5000);
			}
		};
		if (references) {
			setupSlideshow(references, 'item');
		}
	};
	return {
		slideshow: slideshow
	};
})();
