var Start = {
	important: function(){
	
		if ($$('.postquote'))
			$$('.postquote').setStyle('display', 'inline');

		if ($('moostick'))
			$('moostick').setStyle('display', 'block');
			
		if ($('quick_online'))
			$('quick_online').setStyle('display', 'block');

		if ($('comment_show'))
		{
			var commentSlide = new Fx.Slide('m_comment', {duration: 400, transition: Fx.Transitions.quadOut, wait: false}).hide();
			
			$('comment_show').addEvent('click', function(e){
				commentSlide.toggle();
				new Event(e).stop();
			});
		}
		
		try {document.execCommand('BackgroundImageCache', false, true);} catch(e) {}

	}
};

var Site = {
	start: function(){
	
		if ($('download')) Download.start();
		
		new SmoothScroll();
		
		if ($('quick_online'))
		{
			$('load_online').addEvent('click', function(e) {
				e = new Event(e).stop();

				new Ajax('include/user/load_online.php?v='+Math.random(), {
					method: 'get',
					update: $('ajax_online'),
					onComplete:  function() {
						$('quick_online').setStyle('display', 'none');
					}
				}).request();
				
				var p = new Preloader();
				$$('.preloadImage img').each(function(img) {
					p.addEventOnLoad(img.src, function() {
						img.getParent().setStyle('background', 'none');
						img.setStyle('opacity', 0)
						img.style.display = 'block';
						img.effect('opacity').start(0,1);
					});
					p.addToQueue(img.src);
				});				
			});
		}
		
		if ($('genre_tags'))
		{
			new Ajax('include/user/genre_tags.php?v='+Math.random(), {
				method: 'get',
				update: $('genre_tags'),
				onComplete:  function() {
					// Nothing yet
				}
			}).request();
		}
		
		if ($('pop_game'))
		{
			new Ajax('include/user/pop_game.php?v='+Math.random(), {
				method: 'get',
				update: $('pop_game'),
				onComplete:  function() {
					if ($('more_game'))
					{
						var sourceSlide = new Fx.Slide('more_game_con', {duration: 400, transition: Fx.Transitions.quadOut, wait: false}).hide();
			
						$('more_game').addEvent('click', function(e){
							sourceSlide.toggle();
							new Event(e).stop();
						});
					}
				}
			}).request();
		}
		


		
		if ($('post_source'))
		{
			var sourceSlide = new Fx.Slide('post_source_b', {duration: 400, transition: Fx.Transitions.quadOut, wait: false}).hide();
			
			$('post_source').addEvent('click', function(e){
				sourceSlide.toggle();
				new Event(e).stop();
			});
		}

		if ($('post_format'))
		{
			var formatSlide = new Fx.Slide('formats_s', {duration: 400, transition: Fx.Transitions.quadOut, wait: false}).hide();
			
			$('post_format').addEvent('click', function(e){
				formatSlide.toggle();
				new Event(e).stop();
			});
		}

		if ($('post_game'))
		{
			var gameSlide = new Fx.Slide('post_game_b', {duration: 400, transition: Fx.Transitions.quadOut, wait: false}).hide();
			
			$('post_game').addEvent('click', function(e){
				gameSlide.toggle();
				new Event(e).stop();
			});
		}

		if ($('genre_title'))
		{
			var genreSlide = new Fx.Slide('genres', {duration: 400, transition: Fx.Transitions.quadOut, wait: false}).hide();
			
			$('genre_title').addEvent('click', function(e){
				genreSlide.toggle();
				new Event(e).stop();
			});
		}

		
		/* Slider 1 */
		var mySlide = new Slider($('area'), $('knob'), {
			steps: 10,
			onChange: function(step){
				$('upd').setHTML(step);
				$('score_gameplay').value = step;
			}
		}).set(0);
		
		/* Slider 1 */
		var mySlide = new Slider($('area2'), $('knob2'), {
			steps: 10,
			onChange: function(step){
				$('upd2').setHTML(step);
				$('score_graphics').value = step;
			}
		}).set(0);
		
		/* Slider 1 */
		var mySlide = new Slider($('area3'), $('knob3'), {
			steps: 10,
			onChange: function(step){
				$('upd3').setHTML(step);
				$('score_audio').value = step;
			}
		}).set(0);
		
		/* Slider 1 */
		var mySlide = new Slider($('area4'), $('knob4'), {
			steps: 10,
			onChange: function(step){
				$('upd4').setHTML(step);
				$('score_presentation').value = step;
			}
		}).set(0);
		
		/* Slider 1 */
		var mySlide = new Slider($('area5'), $('knob5'), {
			steps: 10,
			onChange: function(step){
				$('upd5').setHTML(step);
				$('score_replay').value = step;
			}
		}).set(0);
		
	        if ($('morebox_hide'))
	        {
	            var moreboxSlide = new Fx.Slide('morebox', {duration: 400, transition: Fx.Transitions.quadOut, wait: false}).hide();
	            
	            $('morebox_hide').addEvent('click', function(e){
	                moreboxSlide.toggle();
	                new Event(e).stop();
	            });
	        }
 
	},
	
	caseVerify: function(){
	
		$('case_verify').addEvent('click', function(e) {
		
			url = $('req_case').value;

			e = new Event(e).stop();
	
			new Ajax('images/game/case/case_upload.php?url='+url+'&v='+Math.random(), {
				method: 'get',
				update: $('cover_case'),
				onComplete:  function() {
					$('req_case').value = $('cover_case').innerHTML;
					$('case_cover').setStyle('display', 'none');
					$('case_after').setStyle('display', 'none');
					$('case_confirm').value = '1';
				}
			}).request();
		});
		
	},

	deleteCase: function(id){
	
		if (id) {
 			new Ajax('images/game/case/case_delete.php?id='+id+'&v='+Math.random(), {
				method: 'get',
				update: $('remove_me'),
				onComplete:  function() {
					$('remove').setStyle('display', 'block');
					// alert('reaction');
				}
			}).request();
		}
	
	},

	deleteHead: function(id){
	
		if (id) {
 			new Ajax('images/game/head/head_delete.php?id='+id+'&v='+Math.random(), {
				method: 'get',
				update: $('remove_img'),
				onComplete:  function() {
					$('head_upload').setStyle('display', 'block');
					// alert('reaction');
				}
			}).request();
		}
	
	},
	
	sendGame: function(searchterm){
			
		
			// e = new Event(e).stop();
		
			if (searchterm) {
	 			new Ajax('include/user/search_game.php?search='+searchterm+'&v='+Math.random(), {
					method: 'get',
					update: $('pg_results'),
					onComplete:  function() {
						// Nothing yet
						// alert('reaction');
					}
				}).request();
			}
		
	},
	
	sendGamePost: function(searchterm){
		
	
		// e = new Event(e).stop();
	
		if (searchterm) {
 			new Ajax('include/user/search_game.php?search='+searchterm+'&page=1&v='+Math.random(), {
				method: 'get',
				update: $('pg_results'),
				onComplete:  function() {
					// Nothing yet
					// alert('reaction');
				}
			}).request();
		}
		
	},
	
	sendGameAllPost: function(searchterm){
		
	
		// e = new Event(e).stop();
	
		if (searchterm) {
 			new Ajax('include/user/search_game.php?search='+searchterm+'&page=2&v='+Math.random(), {
				method: 'get',
				update: $('pg_results'),
				onComplete:  function() {
					// Nothing yet
					// alert('reaction');
				}
			}).request();
		}
		
	},

	quickQuote: function(id, tid){
		if ($('comments')) {
 			new Ajax('include/user/quote.php?qid='+id+'&tid='+tid+'&v='+Math.random(), {
				method: 'get',
				update: $('req_message'),
				onComplete:  function() {
					// alert('reaction');
				}
			}).request();
		}
	},

	assoc_game: function(game_div, assoc_div){
		$(game_div).setStyle('display', 'block');
		$(assoc_div).setStyle('display', 'none');
	}
	
};

var Download = {

	start: function(){
		
		Download.trs = $$('tr.option');
		
		Download.chks = $$('#download div.check');
		
		Download.genre = $$('#genre div.check');
		
		Download.radios = $$('#compression-options div.check');
				
		Download.fx = [];
		Download.parse();
		
		var allinputs = $$(Download.genre, Download.chks, Download.radios);
		
		allinputs.each(function(chk){
			chk.inputElement = chk.getElement('input');
			chk.inputElement.setStyle('display', 'none');
		});
		
		allinputs.each(function(chk){
			if (chk.inputElement.checked) Download.select(chk);
		});
		
	},

	select: function(chk){
		
		chk.inputElement.checked = 'checked';
		
		Download.fx[chk.index].start({
			'background-color': '#454545',
			'color': '#FFF'
		});
		
		chk.addClass('selected');
		
		if (chk.inputElement.type == 'radio'){
			Download.radios.each(function(other){
				if (other == chk) return;
				Download.deselect(other);
			});
		}
	},
	
	all: function(){
		Download.chks.each(function(chk){
			Download.select(chk);
		});
		Download.genre.each(function(chk){
			Download.select(chk);
		});
	},
	
	none: function(){
		Download.chks.each(function(chk){
			Download.deselect(chk);
		});
		Download.genre.each(function(chk){
			Download.deselect(chk);
		});
	},

	deselect: function(chk){
		chk.inputElement.checked = false;
		Download.fx[chk.index].start({
			'background-color': '#383838',
			'color': '#595965'
		});
		chk.removeClass('selected');
		
	},

	parse: function(){
		Download.trs.each(function(tr, i){
			Download.fx[i] = new Fx.Styles(tr, {wait: false, duration: 300});

			var chk = tr.getElement('div.check');

			chk.index = i;

			tr.addEvent('click', function(){
				
				if (!chk.hasClass('selected')) Download.select(chk);
				else if (tr.hasClass('check')) Download.deselect(chk);
			});
			
			tr.addEvent('mouseenter', function(){
				if (!chk.hasClass('selected')){
					Download.fx[i].start({
						'background-color': '#454545',
						'color': '#b3b3bb'
					});
				}
			});
			
			tr.addEvent('mouseleave', function(){
				if (!chk.hasClass('selected')){
					Download.fx[i].start({
						'background-color': '#383838',
						'color': '#595965'
					});
				}
			});

		});
	}

};

window.addEvent('load', Start.important);
window.addEvent('load', Site.start);

window.addEvent('domready', function() {

	var p = new Preloader();
	$$('.preloadImage img').each(function(img) {
		p.addEventOnLoad(img.src, function() {
			img.getParent().setStyle('background', 'none');
			img.setStyle('opacity', 0)
			img.style.display = 'block';
			img.effect('opacity').start(0,1);
		});
		p.addToQueue(img.src);
	});

});

// Javascript Trigger
window.addEvent('load', function() {

	var divs = document.getElementsByTagName( 'div' );
	for( var i = 0; divs[i]; i++ ) {
		if( divs[i].className == undefined || divs[i].className != 'postmsg' ) continue;
		videos( divs[i] );
	}
} );


// Videos
function videos( div ) {
	var width = 400;
	var height = 326;

	var sites = {
		'youtube': { 'player': 'http://www.youtube.com/v/<vid>', 'var': 'video_id' },
		'youtubeuk': { 'player': 'http://uk.youtube.com/v/<vid>', 'var': 'video_id' },
		'metacafe': { 'player': 'http://images.metacafe.com/f/fvp/EmbedVideoPlayer_5.0.0.0.swf', 'var': 'itemID' },
		'google': { 'player': 'http://video.google.com/googleplayer.swf', 'var': 'docId' },
		'ifilm': { 'player': 'http://www.ifilm.com/efp', 'var': 'flvbaseclip' },
		'revver': { 'player': 'http://flash.revver.com/player/1.0/player.swf', 'var': 'mediaId' },
		'bolt': { 'player': 'http://www.bolt.com/video/flv_player_branded.swf', 'var': 'contentId' }
	}

	var addvideo = function( obj, site, vid ) {
		var div = document.createElement( 'div' );
		div.setAttribute( 'class', 'video' );
		var c = '<object type="application/x-shockwave-flash" data="<player>" width="'+width+'" height="'+height+'"><param name="movie" value="<player>" /><param name="FlashVars" value="<var>=<vid>" /><param name="wmode" value="transparent" /></object>';
		div.innerHTML = c.replace( /<player>/g, sites[site]['player'] ).replace( /<var>/g, sites[site]['var'] ).replace( /<vid>/g, vid );
		obj.parentNode.insertBefore( div, obj );
	}

	var as = div.getElementsByTagName( 'a' );
	for( var i = 0; as[i]; i++ ) {
		var a = as[i];
		if( a.href == undefined ) continue;
		if( vid = a.href.match( /^http:\/\/(?:www\.)?youtube\.com\/watch\?v=([^&]+)/ ) ) {
			addvideo( a, 'youtube', vid[1] );
		} else if( vid = a.href.match( /^http:\/\/(?:uk\.)?youtube\.com\/watch\?v=([^&]+)/ ) ) {
			addvideo( a, 'youtube', vid[1] );
		} else if( vid = a.href.match( /^http:\/\/www\.metacafe\.com\/watch\/([^\/]+)/ ) ) {
			addvideo( a, 'metacafe', vid[1] );
		} else if( vid = a.href.match( /^http:\/\/video\.google\.com\/videoplay\?docid=([^&]+)/ ) ) {
			addvideo( a, 'google', vid[1] );
		} else if( vid = a.href.match( /^http:\/\/www\.ifilm\.com\/video\/([^\?\/]+)/ ) ) {
			addvideo( a, 'ifilm', vid[1] );
		} else if( vid = a.href.match( /^http:\/\/one\.revver\.com\/watch\/([^\?\/]+)/ ) ) {
			addvideo( a, 'revver', vid[1] );
		} else if( vid = a.href.match( /^http:\/\/www\.bolt\.com\/[^\/]+\/video\/[^\/]+\/([^\?\/]+)/ ) ) {
			addvideo( a, 'bolt', vid[1] );
		}
	}
}




