function updateQueryResults() {

	$$('.queryresults .element').each(function(el, it) {
		if (el.hasClass('completed')) return;
		
		var curtain = el.getElement('img');
		var myFx = new Fx.Morph(curtain, {duration: 300, transition: Fx.Transitions.Quart.easeInOut}).set({'opacity' : 0.8});
		var elLoading = false;

		el.addEvent('mouseenter', function(ev){
			if (ev) ev.stop();
			if (elLoading) return;
			myFx.pause();
			myFx.start({'opacity': 1});
		});
		
		el.addEvent('mouseleave', function(ev){
			if (ev) ev.stop();
			if (elLoading) return;
			myFx.pause();
			myFx.start({'opacity': 0.8});
		});
		
		el.getElements('a').addEvent('click', function(ev) {
			if (ev) ev.stop();
			
			var movieId = $(this).get('href').split('/')[(this).get('href').split('/').length - 1];
			
			// !!!
			var movieDetails = $('superContent').getElement('.movieDetails');
			
			var newhref = document.location.href.split('#')[0] + '#';
			if (document.location.href.split('#').length > 1) {
				newhref += document.location.href.split('#')[1].split('!')[0];
			}
			newhref += '!' + movieId;
			
			document.location.href = newhref;
			
			var update = new Request.HTML({
				method: 'get',
				url: address + $(this).get('href'),
				async: true,
				evalScripts: true,
				update: movieDetails,
				onRequest: function() {
					myFx.pause();
					myFx.set({'opacity': 0.1});
					el.getElement('.loader').removeClass('index');
					movieDetails.addClass('index');
					elLoading = true;
				},
				onSuccess: function(response) {
					if (movieDetails.getElement('.adultConfirm')) {
						/*var adultBox = movieDetails.getElement('.adultConfirm');
						adultBox.getElement('a').addEvent('click', function(ev) {
							if (ev) ev.stop();
							
							var update = new Request({
								method: 'get',
								url: address + 'filmy/iamadult',
								async: true,
							}).send();
							
							adultBox.destroy();
							$('videoShowcase2').removeClass('index');					
							(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(100);
						});*/
					}
					setRater(movieDetails.getElement('.rater'));
					(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(500);
				},
				onFailure: function() {

				},
				onComplete: function() {
					myFx.pause();
					myFx.set({'opacity': 0.8});
					el.getElement('.loader').addClass('index');
					movieDetails.removeClass('index');
					elLoading = false;
				}
			}).send();
		});
		
		el.addClass('completed');
	});
	
	$$('.queryresults .list').each(function(el, it) {
		if (el.hasClass('completed')) return;

		el.getElements('a').addEvent('click', function(ev) {
			if (ev) ev.stop();
			
			var movieId = $(this).get('href').split('/')[(this).get('href').split('/').length - 1];
			
			// !!!
			var movieDetails = $('superContent').getElement('.movieDetails');
			
			var newhref = document.location.href.split('#')[0] + '#';
			if (document.location.href.split('#').length > 1) {
				newhref += document.location.href.split('#')[1].split('!')[0];
			}
			newhref += '!' + movieId;
			
			document.location.href = newhref;

			
			var update = new Request.HTML({
				method: 'get',
				url: address + $(this).get('href'),
				async: true,
				evalScripts: true,
				update: movieDetails,
				onRequest: function() {
					el.getElement('.loader').removeClass('index');
					movieDetails.addClass('index');
				},
				onSuccess: function(response) {
					if (movieDetails.getElement('.adultConfirm')) {
						/*var adultBox = movieDetails.getElement('.adultConfirm');
						adultBox.getElement('a').addEvent('click', function(ev) {
							if (ev) ev.stop();
							
							var update = new Request({
								method: 'get',
								url: address + 'filmy/iamadult',
								async: true,
							}).send();
							
							adultBox.destroy();
							$('videoShowcase2').removeClass('index');					
							(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(100);
						});*/
					}
					setRater(movieDetails.getElement('.rater'));
					(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(500);
				},
				onFailure: function() {

				},
				onComplete: function() {
					el.getElement('.loader').addClass('index');
					movieDetails.removeClass('index');
				}
			}).send();
		});
		
		el.addClass('completed');
	});
}

function loadMovie (movieId, dontScroll) {
	var movieDetails = $('superContent').getElement('.movieDetails');

	var update = new Request.HTML({
		method: 'get',
		url: address + 'filmy/pokaz/' + movieId,
		async: true,
		evalScripts: true,
		update: movieDetails,
		onRequest: function() {
			movieDetails.addClass('index');
		},
		onSuccess: function(response) {
			if (movieDetails.getElement('.adultConfirm')) {
				/*var adultBox = movieDetails.getElement('.adultConfirm');
				adultBox.getElement('a').addEvent('click', function(ev) {
					if (ev) ev.stop();
					
					var update = new Request({
						method: 'get',
						url: address + 'filmy/iamadult',
						async: true,
					}).send();
					
					adultBox.destroy();
					$('videoShowcase2').removeClass('index');					
					(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(100);
				});*/
			}
			setRater(movieDetails.getElement('.rater'));
			if (!dontScroll) { (function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(500); }
		},
		onFailure: function() {

		},
		onComplete: function() {
			movieDetails.removeClass('index');
		}
	}).send();
}

window.addEvent('domready', function() {

	/*(function() {
		$$('.AdIframe').each(function(el) {
			var tmp = el.clone();
			var parent = el.getParent();
			el.destroy();
			tmp.inject(parent);
		});
	}).periodical(60000);*/

	if (document.location.href.split('#').length > 1) {
		if (document.location.href.split('#')[1].split('!').length > 1) {
			loadMovie(document.location.href.split('#')[1].split('!')[1], true);
		}
	}
	
	$$('.loadMovie').each(function(el) {
		el.addEvent('click', function(ev) {
			if (ev) ev.stop();
			var elHref = el.get('href').split('/');
			
			var newhref = document.location.href.split('#')[0] + '#';
			if (document.location.href.split('#').length > 1) {
				newhref += document.location.href.split('#')[1].split('!')[0];
			}
			newhref += '!' + elHref[elHref.length - 1];
			
			document.location.href = newhref;
			
			loadMovie(elHref[elHref.length - 1]);
		});
	});

	$$('.searchForm').each(function(el) {
		var queryFocus = false;
		var input = el.getElement('.textInput');

		el.addEvent('mouseenter', function() {
			if (input.get('value') == 'Tytuł, fragment tytułu, gatunek, reżyser, scenarzysta, ...') {
				input.set('value', '');
			}
		});
		el.addEvent('mouseleave', function() {
			if (input.get('value') == '' && !queryFocus) {
				input.set('value', 'Tytuł, fragment tytułu, gatunek, reżyser, scenarzysta, ...');
			}
		});
		input.addEvent('blur', function() {
			queryFocus = false;
			if (input.get('value') == '') {
				input.set('value', 'Tytuł, fragment tytułu, gatunek, reżyser, scenarzysta, ...');
				input.setStyle('font-style', 'italic');
				input.setStyle('font-size', '15px');
			}
		});
		input.addEvent('focus', function() {
			queryFocus = true;
			input.setStyle('font-style', 'normal');
			input.setStyle('font-size', '18px');
		});
	});



	var mouseOn = false;
		
	$$('#latestmovies .element').each(function(el, it){
		
		var curtain = el.getElement('img');
		//var title = el.getElement('h3');
		var bigimg = el.getElement('.big-image');
		var myFx = new Fx.Morph(curtain, {duration: 300, transition: Fx.Transitions.Quart.easeInOut}).set({'opacity' : 0.8});
		//var myFx2 = new Fx.Morph(title, {duration: 300, transition: Fx.Transitions.Quart.easeInOut}).set({'top' : -200});
			
		el.addEvent('mouseenter', function(ev){
			if (ev) ev.stop();
			myFx.pause();
			myFx.start({'opacity': 1});
			//myFx2.pause();
			//myFx2.start({'top': 0});
			bigimg.setStyle('opacity', 1.0);
			
			mouseOn = it + 1;
		});
			
		el.addEvent('mouseleave', function(ev){
			mouseOn = false;
		
			if (ev) ev.stop();
			myFx.pause();
			myFx.start({'opacity': 0.8});
			//myFx2.pause();
			//myFx2.start({'top': -200});
			bigimg.setStyle('opacity', 0);
		});
		
		bigimg.addEvent('click', function(ev) {
			if (ev) ev.stop();
			// !!!
			var movieDetails = $('superContent').getElement('.movieDetails');
			var movieId = $(this).getParent().getElement('a').get('href').split('/')[$(this).getParent().getElement('a').get('href').split('/').length - 1];
			
			var newhref = document.location.href.split('#')[0] + '#';
			if (document.location.href.split('#').length > 1) {
				newhref += document.location.href.split('#')[1].split('!')[0];
			}
			newhref += '!' + movieId;
			
			document.location.href = newhref;
			
			var update = new Request.HTML({
				method: 'get',
				url: address + $(this).getParent().getElement('a').get('href'),
				async: true,
				evalScripts: true,
				update: movieDetails,
				onRequest: function() {
					elLoading = true;
					el.getElement('.loader').removeClass('index');
					bigimg.setStyle('opacity', 0);
					curtain.setStyle('opacity', 0.1);
					//movieDetails.addClass('index');
				},
				onSuccess: function(response) {
					if (movieDetails.getElement('.adultConfirm')) {
						/*var adultBox = movieDetails.getElement('.adultConfirm');
						adultBox.getElement('a').addEvent('click', function(ev) {
							if (ev) ev.stop();
							
							var update = new Request({
								method: 'get',
								url: address + 'filmy/iamadult',
								async: true,
							}).send();
							
							adultBox.destroy();
							$('videoShowcase2').removeClass('index');					
							(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(100);
						});*/
					}
					setRater(movieDetails.getElement('.rater'));
					(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(500);
				},
				onFailure: function() {

				},
				onComplete: function() {
					movieDetails.removeClass('index');
					el.getElement('.loader').addClass('index');
					curtain.setStyle('opacity', 0.8);
					elLoading = false;
					
					if (movieDetails.getElement('.showTrailer')) {
						movieDetails.getElement('.showTrailer').addEvent('click', function(ev) {
							if (ev) ev.stop();
							$(this).toggleClass('index');
							$('flashMovie').toggleClass('index');
						});
					}
				}
			}).send();
		});
		
	});
	
	$$('#videosplace .element a').addEvent('click', function(ev) {
		if (ev) ev.stop();
		
		var movieId = $(this).get('href').split('/')[(this).get('href').split('/').length - 1];
		
		// !!!
		var movieDetails = $('superContent').getElement('.movieDetails');
		
		var newhref = document.location.href.split('#')[0] + '#';
		if (document.location.href.split('#').length > 1) {
			newhref += document.location.href.split('#')[1].split('!')[0];
		}
		newhref += '!' + movieId;
		
		document.location.href = newhref;

		
		var update = new Request.HTML({
			method: 'get',
			url: address + $(this).get('href'),
			async: true,
			evalScripts: true,
			update: movieDetails,
			onRequest: function() {
				//el.getElement('.loader').removeClass('index');
				movieDetails.addClass('index');
			},
			onSuccess: function(response) {
				if (movieDetails.getElement('.adultConfirm')) {
					/*var adultBox = movieDetails.getElement('.adultConfirm');
					adultBox.getElement('a').addEvent('click', function(ev) {
						if (ev) ev.stop();
						
						var update = new Request({
							method: 'get',
							url: address + 'filmy/iamadult',
							async: true,
						}).send();
						
						adultBox.destroy();
						$('videoShowcase2').removeClass('index');					
						(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(100);
					});*/
				}
				setRater(movieDetails.getElement('.rater'));
				(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(500);
			},
			onFailure: function() {

			},
			onComplete: function() {
				//el.getElement('.loader').addClass('index');
				movieDetails.removeClass('index');
			}
		}).send();
	});
	
	updateQueryResults();
	
	function reloadElements (ids) {
		
		var req = new Request({
			method: 'get',
			url: address + 'filmy/request/' + ids.length,
			onComplete: function() {
				
			},
			onSuccess: function(response) {			
				var allTheElements = new Element('div', { 
												 'html' : response });
				var bigimgs = allTheElements.getElements('.big-image');
				allTheElements.getElements('.wrapper').each(function(el, it) {
					if (mouseOn == ids[it] + 1) return;
					
					el.setStyle('opacity', 0.0001);
					var oldWrapper = $$('#latestmovies .element')[ids[it]].getElement('.wrapper');
					var oldImg = $$('#latestmovies .element')[ids[it]].getElement('.big-image');
					
					bigimgs[it].inject($$('#latestmovies .element')[ids[it]], 'top');
					el.inject($$('#latestmovies .element')[ids[it]], 'top');
					
				
					var curtain = el.getElement('img');
					//var title = el.getElement('h3');
					var bigimg = el.getSiblings('.big-image')[0];
					var myFx = new Fx.Morph(curtain, {duration: 300, transition: Fx.Transitions.Quart.easeInOut}).set({'opacity' : 0.8});
					//var myFx2 = new Fx.Morph(title, {duration: 300, transition: Fx.Transitions.Quart.easeInOut}).set({'top' : -200});
						
					el.getParent().addEvent('mouseenter', function(ev){
						if (ev) ev.stop();
						myFx.pause();
						myFx.start({'opacity': 1});
						//myFx2.pause();
						//myFx2.start({'top': 0});
						bigimg.setStyle('opacity', 1.0);
						
						mouseOn = ids[it] + 1;
					});
						
					el.getParent().addEvent('mouseleave', function(ev){
						mouseOn = false;
					
						if (ev) ev.stop();
						myFx.pause();
						myFx.start({'opacity': 0.8});
						//myFx2.pause();
						//myFx2.start({'top': -200});
						bigimg.setStyle('opacity', 0);
					});
					
					SqueezeBox.assign(el.getElements('a'), {
						parse: 'rel'
					});
					
					(function(){var oldFx = new Fx.Morph(oldWrapper, {duration: 800, transition: Fx.Transitions.Quart.easeInOut}).start({'opacity' : 0});}).delay(1000 + 200*it);
					(function(){var newFx = new Fx.Morph(el, {duration: 800	, transition: Fx.Transitions.Quart.easeInOut}).start({'opacity' : 0.8});}).delay(1100 + 200*it);
					
					(function(){ oldWrapper.destroy(); oldImg.destroy(); }).delay(2000);
					
					bigimg.addEvent('click', function(ev) {
						if (ev) ev.stop();
						// !!!
						var movieDetails = $('superContent').getElement('.movieDetails');
						
						var update = new Request.HTML({
							method: 'get',
							url: address + $(this).getParent().getElement('a').get('href'),
							async: true,
							evalScripts: true,
							update: movieDetails,
							onRequest: function() {
								elLoading = true;
								bigimg.setStyle('opacity', 0);
								el.getElement('.loader').removeClass('index');
								curtain.setStyle('opacity', 0.1);
								//movieDetails.addClass('index');
							},
							onSuccess: function(response) {
								(function(){var myFx = new Fx.Scroll(window).toElement(movieDetails);}).delay(500);
							},
							onFailure: function() {

							},
							onComplete: function() {
								movieDetails.removeClass('index');
								el.getElement('.loader').addClass('index');
								curtain.setStyle('opacity', 0.8);
								elLoading = false;
							}
						}).send();
					});
				});
			},
			onFailure: function() {

			}
		}).send();
	}
	
	var rows = 2;
	var cols = 5;
	
	function autoDiagonal() {
		var ids = new Array();
		var next = Math.floor(Math.random() * cols);
		for (var i = 0; i < rows; i++) {
			var toBe = cols * i + next + i;
			while (toBe >= cols * (i + 1)) {
				toBe -= cols;
			}
			ids[ids.length] = toBe;
		}
		reloadElements(ids);
	}
	
	function autoDiagonal2() {
		var ids = new Array();
		var next = Math.floor(Math.random() * cols);
		for (var i = 0; i < rows; i++) {
			var toBe = cols * i + next - i;
			while (toBe < cols * i) {
				toBe += cols;
			}
			ids[ids.length] = toBe;
		}
		reloadElements(ids);
	}
	
	function autoRow() {
		var ids = new Array();
		var next = Math.floor(Math.random() * rows);
		for (var i = 0; i < cols; i++) {
			ids[ids.length] = cols * next + i;
		}
		reloadElements(ids);
	}
	
	function autoColumn() {
		var ids = new Array();
		var next = Math.floor(Math.random() * cols);
		for (var i = 0; i < rows; i++) {
			ids[ids.length] = next + i * cols;
		}
		reloadElements(ids);
	}
	
	function autoRandom() {
		var num = Math.max(cols, rows);
		var ids = new Array();
		for (var i = 0; i < num; i++) {
			while (true) {
				var toBe = Math.floor(Math.random() * cols * rows);
				var ok = true;
				for (var j = 0; j < ids.length; j++) {
					if (ids[j] == toBe) { 
						ok = false;
						break;
					}
				}
				if (ok) {
					ids[ids.length] = toBe;
					break;
				}
			}
		}
		reloadElements(ids);
	}
	
	var functionsArray = new Array(autoDiagonal, autoDiagonal2, autoColumn, autoRow, autoRandom, autoRandom);
	
	function autoChange() {
		var rd = Math.floor(Math.random() * functionsArray.length);
		functionsArray[rd]();
	}
	
	//(function(){autoChange();}).periodical(10000);
	
	
	
});

function setRater(rater) {
	if (!rater) return;

	var bg = rater.getElement('.background');
	var curWidth = Math.floor((parseFloat(rater.getElement('span').get('text')) / 10) * 240);
	var voted = false;

	bg.setStyle('width', curWidth);
	
	rater.getElement('.stars').getElements('a').each(function(el, it) {
		el.addEvent('mouseenter', function(ev) {
			if (voted) return;
			bg.setStyle('background', '#ff8725');
			bg.setStyle('width', (it + 1) * 24);
		});
		el.addEvent('mouseleave', function(ev) {
			if (voted) return;
			bg.setStyle('background', '#bbb');
			bg.setStyle('width', curWidth);
		});
		
		el.addEvent('click', function(ev) {
			if (ev) ev.stop();
			voted = true;
		});
	});
}

