var preload = new Array();

var scCurrent 	= 0;
var scNum		= 0;
var scData		= new Array();
var scLastID	= 0;

var lb;
var lbFade;
var lbContainerFade;
var lbCurrent 	= 0;
var lbNum		= 0;
var lbImages	= new Array();

var Site = {
	
	init: function(){
		$$('a').each(function(el){
			el.addEvent('focus', function(){
				el.blur();
			});
		});
		
		if ($('teaser')) Site.initShowcases();
		if ($('nextImage')) Site.showNextImage();
		
		Site.initSubmit();
		
		Site.initVerify();
		
		if ($('notification')) Site.hideNotification();
	},
	
	start: function(){
		Site.preloadImages();
	},
	
	preloadImages: function(){
		var images = [];
		
		$$('.over').each(function(el){
			if (el.get('src')) {
				src	= el.get('src');
				src = src.replace(/_over/, '');
				
				var extension = src.substring(src.lastIndexOf('.'), src.length)
				
				images.push(src.replace(extension, '_over'+extension));
			}
		});
		
		new Asset.images(images, {
    		onComplete: function(){
        		Site.initMouseovers();
    		}
		});
	},
	
	initMouseovers: function(){
		var src;
		
		$$('.over').each(function(el){
			var clone = el.clone().injectAfter(el);
			
			el.dispose();
		});
		
		$$('.over').each(function(el){
			if (el.get('src')) {
				el.addEvent('mouseover', function(){
					src	= el.get('src');
					src = src.replace(/_active/, '');
					src = src.replace(/_inactive/, '');
					
					var extension = src.substring(src.lastIndexOf('.'), src.length)
					
					el.setProperty('src', src.replace(extension, '_over'+extension));
				});
				
				el.addEvent('mouseout', function(){
					el.setProperty('src', src);
				});     
			}                                              
		});
	},
	
	initShowcases: function(){
		var jsonRequest = new Request.JSON({url: site_url+uri+'/'+language, onComplete: function(result){
			if (result.rand == 'yes') {
				if (result.status == 'ok') {
					count = result.data.length;
					var normal = new Array();

					$each(result.data, function(showcase){
						normal.push(showcase);
						
						scNum++;
						scLast = showcase.id;
					});
					
					rand = normal.getRandom();
					
					normal.each(function(showcase){
						scData.include(rand);
						scData.include(showcase);
					});
				}	
			} else {
				if (result.status == 'ok') {
					$each(result.data, function(showcase){
						scData.push(showcase);
						
						scNum++;
						scLast = showcase.id;
					});
				}			
			}
			
			Site.nextShowcase();
		}}).post({'get': '1'});
	},

	showNextImage: function(){
		$('nextImage').addEvent('click', function(){
			Site.nextShowcase();
			$('loading').setStyle('display', 'block');
			$('overlay').setStyle('display', 'none');
			$('nextImage').setStyle('visibility', 'hidden');
		});
	},
	
	nextShowcase: function(){
		$$('.teaserImage').each(function(el){
			el.dispose();
		});
	
		var preloadImage = new Asset.images(scData[scCurrent].file, {
			onComplete: function(){
				var request = new Request.HTML({
					method: 'post',
					url: site_url+uri,
					update: scData[scCurrent].obj,
					data: 'id='+scData[scCurrent].id,
					evalScripts: true,
					onComplete: function(){
						if ($('loading')) $('loading').setStyle('display', 'none');

						var image = new Element('img').setOpacity(0).setProperty('class', 'teaserImage').set('src', scData[scCurrent].file).injectInside($('teaser'));
						var button = $('nextImage').setOpacity(0).setStyle('visibility', 'visible');
						$('overlay').setStyle('display', 'block');
						
						if (scData[scCurrent].url) {
							$('overlay').setStyle('cursor', 'pointer');
							
							$('overlay').addEvent('click', function(e){
								location.href = site_url+language+'/'+scData[scCurrent-1].url;
							})
						}
						
						image.fade('in');
						button.fade('in');

						if (scCurrent+1 == scNum) {
							scCurrent = 0;
						} else {
							scCurrent++;
						}
						
						Site.initMouseovers();
					}
				}).send();
			}
		});
	},
	
	initSubmit: function(){
		$$('.submit').each(function(el){
			var button 	= el.getElement('a');
			var form	= $(button.get('rel'));
			
			function submit(){
				el.getElements('a').each(function(button){
					button.dispose();
				});
				
				el.setHTML('');
				
				var loader = $('loader').clone().injectInside(el).setStyle('display', 'block');
				
				form.submit();
			}
			
			form.addEvent('submit', function(e){
				e = new Event(e).stop();
				
				submit();
			});
			
			button.addEvent('click', function(e){
				e = new Event(e).stop();
				
				submit();
			});
		});
	},	
	
	initVerify: function(){
		$$('a').each(function(el){
			if (el.get('rel') == 'confirm') {
				el.addEvent('click', function(e){
					if (confirm('Sind Sie sicher?') == false) {
						e = new Event(e).stop();
					}
				});
			}
		});
	},
	
	deleteObject: function(url, query, object){
		var request = new Request.HTML({
			method: 'post',
			url: site_url+url,
			update: $(object)
		}).send(query);
	},
	
	alternating: function(object){
		var i = 1;
		
		object.getElements('tr').each(function(el){
			if (el.hasClass('odd')) {
				el.removeClass('odd');
			} else if (el.hasClass('even')) {
				el.removeClass('even');
			}
			
			if (i == 1) {
				el.addClass('odd');
				
				i = 2;
			} else {
				el.addClass('even');
				
				i = 1;
			}
		});
	},
	
	sortables: function(object, url, alternating){
		var sortables = new Sortables(object, {
			handle: 'u',
			onComplete: function(){
				if (alternating == true) Site.alternating(object);
				
				var order 		= 1;
				var elements 	= new Array();
				
				object.getElements('li').each(function(el){
					elements.push(el.get('id')+'_'+order);
					
					order++;
				});
	
				var request = new Request.HTML({
					method: 'post',
					url: site_url+url
				}).send('elements='+elements.join(';'));
			}
		});
	},
	
	hideNotification: function(){
		var slide = new Fx.Slide($('notification'));
		
		(function(){ slide.slideOut(); }).delay(2000);
	}
	
};
		
window.addEvent('domready', Site.init);
window.addEvent('load', Site.start);