
Object.extend(Event, {
	unobserve: function(element) {
		if (!Event.observers) return;
		for (var i=0; i<Event.observers.length; i++) {
			var eh=Event.observers[i];
			if (eh[0]==element) {
				Event.stopObserving.apply(this, eh);
			}
		}
	}
});

var UrnaIntro = Class.create();

UrnaIntro.prototype = {
	initialize: function(isFrontPage) {
		this.isFrontPage=isFrontPage;
		setTimeout(this.init.bind(this), 1000);
		this.linkno=-1;
	},
	
	init: function() {
		var a=null;
		if (!$('linkimages')) return;
		$A($('linkimages').parentNode.getElementsByTagName('div'))._each(function(y) { if (y.className=='rightmenu') { a=y; } });
		if (a==null) { setTimeout(this.init.bind(this), 200); return; }
		this.links=$A(a.getElementsByTagName('a'));
		this.linkimages=$A($('linkimages').getElementsByTagName('img'));
		if (this.isFrontPage) {
			var interval=this.interval=setInterval(this.cycle.bind(this), 1000);
			Event.observe(a, "mouseover", (function() { Event.unobserve(a); this.stop(); }).bind(this)); 
		} else 
			this.stop();		
	},
	
	cycle: function() {
		if (this.linkno>=0) {
			this.linkimages[this.linkno].style.display='none';
			this.links[this.linkno].removeClassName('intro');
		}
		this.linkno++;
		if (this.linkno>=this.links.length) { this.linkno=0; this.stop(); return; }
		if (this.linkimages[this.linkno]) this.linkimages[this.linkno].style.display='inline';
		Element.addClassName(this.links[this.linkno], 'intro');		
	}, 
	
	stop: function() { 
		if (this.interval) clearInterval(this.interval); 
		if (this.linkimages[this.linkno]) this.linkimages[this.linkno].style.display='none';
		this.linkimages[0].style.display='inline';
		if (this.links[this.linkno]) Element.removeClassName(this.links[this.linkno], 'intro');
		
		for (var i=0; i<this.links.length; i++) {
			var link=this.links[i];
			link.myIndex=i;
			Event.observe(link, "mouseover", this.showImage.bind(this));
		}
	},
	
	showImage: function(ev) {
		this.linkimages._each(function(li) { li.style.display='none' });
		if (this.linkimages[Event.element(ev).myIndex]) this.linkimages[Event.element(ev).myIndex].style.display='inline';
	}
}

