var Site = {
	
	start: function(){
		
		var page = $$('.page').getProperty('id');

		if (page == 'page-index')
			Site.news();
		else if (page == 'page-faq')
			Site.faq();
		else if (page == 'page-projets')
			Site.projets();
		else if (page == 'page-projet')
			Site.projet();
		else if (page == 'page-releases') {
			//Site.filtreReleases();
			Site.releases(true);
		}
		Site.download($$('.download-link'));
		Site.statsOnline();
		Site.adblock();
		var lastReleasesTips = new mooTips($$('.lr-image'), {fixed: true, offsets: {'x': 100, 'y': 40}});

	},
	
	news: function(){
		
		$$('.news').each(function(news, index){
			news.setStyle('z-index', 100-index);

			if (index==0)
				news.setStyle('margin-top', '-30px');
			else if (index!=0) {
				var height = news.getSize().y;
				news.tween('margin-top', -height+27);
				news.getElement('.hidden').show();
				news.getElement('.visible').hide();

				news.getElement('.hidden').addEvent('click', function(){
					news.tween('margin-top', -30);
					news.getElement('.hidden').hide();
					news.getElement('.visible').show();

					if (news.getElement('.non-read')) {
						var id = news.get('id');
						id = id.substring(id.lastIndexOf("-")+1);
						new Request({method: 'post', url: 'request.php', evalScripts: true}).send('request=1&action=update_read_news&id='+id);
					}

				});

				$$(news.getElement('.visible'), news.getElement('.top')).addEvent('click', function(){
					var height = news.getSize().y;
					news.tween('margin-top', -height+27);
					news.getElement('.visible').hide();
					news.getElement('.hidden').show();
				});
			}
		});

		function init_more_news_request(){
			var from = this.get('href').substring(this.get('href').lastIndexOf("#")+1);

			new Request.HTML({method: 'post', url: 'request.php', onSuccess: function(a,b, resp_html) {
					$$('#news-more .main').set('html', resp_html);
					$$('#news-more .request a').addEvent('click', init_more_news_request);
				}
			}).send('request=1&action=more_news&from='+from);

		}

		$$('#news-more .request a').addEvent('click', init_more_news_request);

		
	},

	faq: function() {

		var indShow = window.location.href.lastIndexOf("#")+1;
		var el = $(window.location.href.substring(indShow));
		var show = (indShow != 0 && el != null) ? show = $$('.faq-message').indexOf(el.getNext()) : -1;
		var myAccordion = new Accordion($$('.faq-title'), $$('.faq-message'), {alwaysHide: true, show: show, opacity: false});

	},

	projets: function() {

		var projets = $$('.projet-1, .projet-2, .projet-3');

		projets.each(function(projet, ind){
			var fx = new Fx.Slide(projet, {
				mode: 'horizontal',
				duration: 250,
				transition: 'quad:in:out',
				link: 'link'
			});
			projet.store('wrapper', projet.getParent());
			projet.store('fx', fx);
		});

		function filtreProjets(filtre) {
			var pChain = new Chain();
			projets.each(function(projet,ind){
				var fx = projet.retrieve('fx');
				if (!projet.hasClass(filtre) && fx.open) {
					pChain.chain(
						function () {fx.slideOut().chain(
							function () {projet.retrieve('wrapper').setStyle('display', 'none'); pChain.callChain()}
						)}
					);
				}
				else if (projet.hasClass(filtre) && !fx.open) {
					pChain.chain(
						function () {projet.retrieve('wrapper').setStyle('display', 'block'); fx.slideIn().chain(
							function () {pChain.callChain()}
						)}
					);
				}
			});

			pChain.callChain();

		}

		function filtreProjetsReset() {
			projets.each(function(projet,ind){
				var fx = projet.retrieve('fx');
				if (!fx.open) {
					projet.retrieve('wrapper').setStyle('display', 'block');
					fx.slideIn();
				}
			})
		}

		$('filtre-scantrad').addEvent('click', function(){ filtreProjets('projet-1') });
		$('filtre-fansub').addEvent('click', function(){ filtreProjets('projet-2') });
		$('filtre-oneshot').addEvent('click', function(){ filtreProjets('projet-3') });
		$('filtre-tout').addEvent('click', filtreProjetsReset);

	},

	download: function(download_links) {

		download_links.addEvent('click', function() {
			var release_id = this.get('rel');
			new Request.HTML({methode: 'post', url: 'request.php', onSuccess: function(a, b, resp_html) {

				$('lightbox-download-content').set('html', resp_html);

				showLightbox($('lightbox-download'));

				function runDownload() {
				  window.location = $('download-link').getProperty('href');
				}
				var delayDownload = runDownload.delay(8000);

				$$('.close a').addEvent('click', function() {
					delayDownload = $clear(delayDownload);
				});
				
			}}).send('request=1&action=download&id='+release_id);
			
		});

	},

	set_releases: function(releases, show_first) {

		releases.each(function(release, ind) {
			var hide = (ind == 0 && show_first) ? false : true;
			
			var line = release.getElement('.release-ligne');
			var details = release.getElement('.release-details');
			var image = details.getElement('img');

			details.set('slide', {mode: 'vertical', duration: 500, link: 'cancel'});
			line.set('tween', {property: 'background-color', duration: 500});
			image.fade('hide');

			line.addEvents({
				'click': function(){ details.slide('toggle'); line.toggleClass('is-hide');},
				'mouseenter': function(e){ e.stop(); line.tween("#ffffff", "#d0d0d0"); image.fade('in');},
				'mouseleave': function(e){ e.stop(); line.tween("#d0d0d0", "#ffffff"); image.fade('out');}
			});

			details.addEvents({
				'mouseenter': function(e){ e.stop(); image.fade('in'); },
				'mouseleave': function(e){ e.stop(); image.fade('out'); }
			});

			if (ind != 0 || !show_first) {
				details.slide('hide');
				line.addClass('is-hide');
			}

		});

	},

	releases: function(firstIsHide) {

		// Fonction pour afficher ou masquer une release
		function filtre_release(release) {
			var has_id = (p_id == 'projet-0' || release.hasClass(p_id)) ? true : false;
			var has_type = (p_type == 'type-0' || release.hasClass(p_type)) ? true : false;
			var has_marketed = (p_marketed == 'marketed-0' || release.hasClass(p_marketed)) ? true : false;

			if (has_id && has_type && has_marketed) {
				release.getElement('.release-ligne').show();
			} else {
				release.getElement('.release-ligne').hide();
				release.getElement('.release-details').slide('out');
				release.getElement('.release-ligne').addClass('is-hide');
			}
		}

		// Fonction pour afficher ou masquer un array de releases
		// Et afficher un message si aucune release correspond au filtre
		function filtre_releases(releases) {

			this.p_id = $('filtre-projet').getSelected().get('value');
			this.p_type = $('filtre-type').getSelected().get('value');
			this.p_marketed = $('filtre-marketed').getSelected().get('value');

			releases.each(function(release) {
				filtre_release(release);
			});

			(function() {
				var allIsHide = $$('.release-ligne').every(function(el) {
					return !(el.getStyle('display') == 'block');
				});
				(allIsHide) ? $$('.no-result').show() : $$('.no-result').hide();
			}).delay(500);

		}


		// initialisation
		$$('#filtre-projet', '#filtre-type', '#filtre-marketed').addEvent('change', function() {filtre_releases($$('.release'))});

		$$('.no-result').hide();

		Site.set_releases($$('.release'));
		filtre_releases($$('.release'));

		//
		var limit = 20;
	var request_releases = new Request.HTML({url: "request.php"}).send("request=1&action=get_release&limit="+limit);;
	
	request_releases.onSuccess = function(results) {

		var size = results.length;

		if (size != 0) {

			var results_filtered = new Array();

			for (var i = 0 ; i < size ; i++) {
				var item = results.item(i);
				if (item != null && item.nodeType == 1)
					results_filtered.push(item);
			}

			results_filtered.each(function(el) {
				$('releases-main').grab(el);
			});

			Site.set_releases(results_filtered, false);
			filtre_releases(results_filtered);

			results_filtered.each(function(el) {
				var download_link = el.getElement('.download-link');
				if (download_link != null) {
					Site.download(download_link);
				}
			});

			limit += 5;

			(function() {request_releases.send("request=1&action=get_release&limit="+limit)}).delay(200);

		} else {
			$('loading').empty();
		}
	}




	},

	projet: function() {
		Site.set_releases($$('.release'), true);
	},


	statsOnline: function() {

		var slide_online_fx = new Fx.Slide('online-users').hide();

		var request_online = new Request.JSON({method: 'post', url: 'request.php', onSuccess: function(stats) {
			$('online-total').set('html', stats.total);
			$('online-details').set('html', stats.details);
			slide_online_fx.slideIn();
		}});

		$$('#list-online-users').addEvent('click', function() {
			if (!slide_online_fx.open)
				request_online.send('request=1&action=list_online_users');
			else
				slide_online_fx.slideOut();
			return false;
		});

		$$('#hide-online-users').addEvent('click', function() {
			slide_online_fx.slideOut();
			return false;
		});

	},

	adblock: function() {
		setTimeout(function(){
			if ($('adblock-test').offsetHeight == 0 && $('adblock-notice')) {
				$('adblock-notice').show();
				if ($('adblock-disable-notice')) {
					$('adblock-disable-notice').addEvent('click', function() {
						new Request({method: 'post', url: 'request.php', onSuccess: function(req_ok) {
							if (req_ok)
								$('adblock-notice').destroy();
						}}).send('request=1&action=adblock_disable_notice');
						return false;
					});
				}
			}
		},400);
	}
	
};

window.addEvent('domready', function(){
	Site.start();
});
