function captionOver(evel, over) {
	anc = evel.ancestors();
	evel = anc[0];
		
	labels = document.getElementsByClassName('caption')
				
	for(x = 0;x < labels.length; ++x) {
		if(
			labels[x].offsetTop == parseInt(evel.getStyle('top'))
			&&
			labels[x].offsetLeft == parseInt(evel.getStyle('left'))
		) {				
			duration = 0.3
					
			if(over == 'mouseover') {
				new Effect.Opacity(evel, {
					duration: duration,
					from: 0.0,
					to: 1.0
				})
			} else if(over == 'mouseout') {
				new Effect.Opacity(evel, {
					duration: duration,
					from: 1.0,
					to: 0.0
				})
			}
				
			break;
		}
	}
}

xhref = new Array()

Event.observe(window, 'load', function() {
	//najdi elementy co maji mit fadovaci popisek
	captions = $('contents').getElementsByClassName('caption')
	
	faderControl = 0
	fco = new faderController()
	
	for(x = 0;x < captions.length; ++x) {
		//--- POPISKY NA MOUSE OVER ---//
		captions[x].makePositioned()
		ximg = captions[x].getElementsByTagName('img')
		xhref[x] = captions[x].getElementsByTagName('a')
		
		//vytvor popisky
		fadingText = document.createElement('div')
		fadingText.className = 'fading-text'
		fadingText.id = 'fading-text-'+x
		
		fadingContent = document.createElement('div')
		fadingContent.className = 'fading-content'
		fadingContent.id = 'fading-content-'+x
		fadingContent.appendChild(document.createTextNode(ximg[0].alt))
		
		fadingText.appendChild(fadingContent)
		document.body.appendChild(fadingText)
		
		$('fading-text-'+x).setStyle({
			position: 'absolute',
			top: captions[x].offsetTop+'px',
			left: captions[x].offsetLeft+'px',
			opacity: 0.0,
			zIndex: 5
		})
		
		//vycentruj texty
		autoHeight = $('fading-text-'+x).down().getHeight()
		givenHeight = 110
		
		$('fading-text-'+x).down().setStyle({
			height: givenHeight+'px',
			paddingTop: ((givenHeight - autoHeight) / 2)+'px'
		});
		
		//opacita obsahu v ie, nejde pouzit pruhlednej png
		if(/MSIE/.test(navigator.userAgent) && !window.opera) {
			$('fading-text-'+x).down().setStyle({
				opacity: 0.7
			})
		}
				
		//mouseovery elementu zobrazujicich popisky
		$('fading-text-'+x).down().observe('mouseover', function(event){
			captionOver(Event.element(event), 'mouseover')
		})
		
		$('fading-text-'+x).down().observe('mouseout', function(event){
			captionOver(Event.element(event), 'mouseout')
		})
		
		$('fading-text-'+x).down().observe('click', function(event){
			parts = Event.element(event).id.split('-')
			num = parseInt(parts[parts.length - 1])			
			document.location.href = xhref[num][0]
		})
		
		//--- IMAGE FADERY MULTIPROJEKTU ---//
		if(ximg.length > 1) {
			fadingImageFaderBottom = document.createElement('div')
			fadingImageFaderBottom.id = 'bottom-fader-'+faderControl
			fadingImageFaderBottom.className = 'fimg-bottom'
			
			fadingImageFaderTop = document.createElement('div')
			fadingImageFaderTop.id = 'top-fader-'+faderControl
			fadingImageFaderTop.className = 'fimg-top'
			
			fadingImageCover = document.createElement('div')
			fadingImageCover.id = 'fader-cover-'+faderControl
			fadingImageCover.className = 'fimg-cover'
			
			document.body.appendChild(fadingImageFaderBottom)
			document.body.appendChild(fadingImageFaderTop)
			document.body.appendChild(fadingImageCover)

			$('bottom-fader-'+faderControl).setStyle({
				position: 'absolute',
				top: (captions[x].offsetTop) +'px',
				left: (captions[x].offsetLeft) +'px',
				backgroundImage: 'url('+ximg[0].src+')',
				zIndex: 2
			})
			
			$('top-fader-'+faderControl).setStyle({
				position: 'absolute',
				top: (captions[x].offsetTop) +'px',
				left: (captions[x].offsetLeft) +'px',
				backgroundImage: 'url('+ximg[1].src+')',
				opacity: 0.0,
				zIndex: 3
			})
			
			$('fader-cover-'+faderControl).setStyle({
				position: 'absolute',
				top: (captions[x].offsetTop) +'px',
				left: (captions[x].offsetLeft) +'px',
				zIndex: 4
			})

			fadingImgs = new Array()
			for(y = 0; y < ximg.length; ++y) {
				fadingImgs.push(ximg[y].src)
			}
			
			fco.addFader(faderControl, fadingImgs)
			
			++faderControl
		}
	}
	
	if(faderControl > 0) {
		new PeriodicalExecuter(function (exec) {
			fco.fadeImage()
		}, 9)	
	}
})

//objekt kontrolujici fadery
function faderController() {
	this.fadingImages = new Array()
	this.executer = null
	this.index = -1
	this.lastIndex = -1
	this.topEle = null
	this.bottomEle = null
	
	this.addFader = function (id, images) {
		this.fadingImages[id] = {state: 0, images: images}
	}
	
	this.fadeImage = function () {
		if(this.fadingImages.length > 1) {
			while(this.index == this.lastIndex)
			{
				this.index = Math.floor(Math.random() * this.fadingImages.length);
			}
		} else {
			this.index = 0		
		}
		this.lastIndex = this.index
		
		this.bottomEle = $('bottom-fader-'+this.index)
		this.topEle = $('top-fader-'+this.index)
		
		this.callNext.tlink = this
		
		this.executer = new Effect.Opacity(this.topEle, {
			duration: 1,
			from: 0.0,
			to: 1.0,
			afterFinish: this.callNext
		})
	}
	
	this.callNext = function() {
		arguments.callee.tlink.prepareNext()
	}
	
	this.prepareNext = function() {
		this.bottomEle.setStyle({
			backgroundImage: this.topEle.getStyle('backgroundImage')
		})
		
		++this.fadingImages[this.index]['state']
		this.topEle.setStyle({opacity: 0})
		
		bgimage = this.fadingImages[this.index]['images'][(this.fadingImages[this.index]['state'] + 1)]
		if(!bgimage) {
			bgimage = this.fadingImages[this.index]['images'][0]
			this.fadingImages[this.index]['state'] = -1
		}
		
		this.topEle.setStyle({
			backgroundImage: 'url('+bgimage+')'
		})
	}
}

