var Missions = new Class({

	Implements:[Options,Events],
	options:{
		game:$empty,
		getGames:false,
		clickElements:$empty
	},
	initialize: function(els,wrapper,flashPosition,options){
		wrapper.addClass('flash');
		flashPosition.setStyle('display','block');
		this.setOptions(options);
		this.game = this.options.game;
		this.els = els;
		
		
		if(this.options.getGames){
			this.getAvailableGames();	
		} else {
			this.els = $$(this.els);
			this.attachListeners();
		}
		
	},
	addOverlays:function(){
		$$('#mission-selector .mission-block img').setOpacity(0);
			$$('#mission-selector .mission-block').each(function(elem){
				
				var theImg = elem.getElement('img');
				if(theImg){
					var myFx = new Fx.Morph(theImg,{duration:400});
					elem.addEvents({
						'mouseenter':function(e){
							myFx.cancel();
							myFx.start({'opacity':1});		
						},
						'mouseleave':function(){
							myFx.cancel();
							myFx.start({'opacity':0});
						}
					});
				}
		});
		
		
		
	},
	removeOverlays:function(el){
		el.setOpacity(1);
		
		$$('#mission-selector .mission-block.active').removeEvents();
	},
	getAvailableGames:function(){
		
		var games = new Request({method:'get',url:'game-release-schedule.php',onComplete:function(responseText){
			var gamesArray = eval(responseText);
			
			this.preloader = gamesArray[gamesArray.length -1].game.preloader;
			this.filepath = gamesArray[gamesArray.length -1].game.filepath;
			//console.log(this.preloader);
			//write in the release games
			for(var i =0; i < gamesArray.length;i++){
				this.options.clickElements[i].innerHTML = '<a href="'+gamesArray[i].game.path+'" class="mission-target"><img src="images/mission-blocks/mission-'+(i+1)+'-on.png" alt="" /></a>';
			}
			
//			this.options.clickElements[gamesArray.length - 1].addClass('active');
			this.options.clickElements[0].addClass('active');
			
//			this.game = gamesArray[gamesArray.length -1].game.path;
			this.game = gamesArray[0].game.path;

			var autoSetImg = $$('#mission-selector .mission-block.active img');
			
			
			
			
			this.addOverlays();
			this.els = $$(this.els);
			this.attachListeners();
			this.embedSwiff();
			this.removeOverlays(autoSetImg[0]);
		}.bind(this)});
		
		games.send({data:{'info':'all'}});
	},
	attachListeners:function(){
		this.els.addEvent('click',this.changeGame.bind(this));
	},
	changeGame:function(e){
		e.stop();
		$$('#mission-selector .mission-block img').removeClass('active');
		$$('#mission-selector .mission-block.active').removeClass('active');
		e.target.getParent('.mission-block').addClass('active');
		this.addOverlays();
		this.removeOverlays(e.target);
		this.game = e.target.getParent().href;
		this.embedSwiff();
	},
	embedSwiff: function(){
		
		if(Browser.Plugins.Flash.version >= 10){
			new Swiff(this.preloader,{
				id:"sanctuarySite",
				properties: {
					name:"sanctuarySite"
				},
				params: {
					menu: "true",
					scale: "showAll",
					allowFullScreen: "true",
					align: "middle",
					showMenu: "false",
					wmode: "transparent",
					allowScriptAccess:"always"
				},
				vars: {
					lang: "en",
					filePath: this.filepath,
					mission:this.game
				},
				width:640,
				height:360,
				container:"flash-mission"
			});
		} else {
			$('flash-mission').set('html',"<p class='upgrade-flash'>Please upgrade your Flash Player <a href='http://www.adobe.com/products/flashplayer/'>here</a></p>.");
		} 
	}

});
