Mission.tasks(1).extend ( {

	setup : function ( cb ) {
		Portal.loadPage ( this, 'desktop/', null, function ( ) {
			if ( !window.main_chat ) {
				var i = setInterval ( function ( ) {
					if ( !window.Browser ) return;
					clearInterval ( i );
					Browser.history(true);
					Browser.load ( "lolcats/", "http://127.0.0.1/lolcats/", function ( ) {
						Browser.load ( "browser/fb-home/", "http://www.fakebook.com/", function ( ) {
							$("#browser").removeClass("hidden");
							$(window).resize();
						}, { title : "Fakebook" } );
					}, { title : "LOLCats" } );
				}, 50 );
				loadScript ( '/scripts/chat/chatclient.js', function ( ) {
					var interval = setInterval ( function ( ) {
						if ( !window.Chat ) return;
						clearInterval ( interval );

						window.main_chat = new Chat();
						window.chatClient = window.main_chat.getClient();
						window.chatClient.hideDrawer();
						loadConversation ( '/scripts/endoftheline/conversations/task-0.js', function ( s ) {
							if ( s ) window.main_chat.load ( window.scripts.TASK_0, cb );
						} );
					}, 100 );
				} );
			} else {
				cb();
			}
		} );
	},
	start : function ( cb ) {
		setStoppableTimeout ( this, function ( ) {
			var i = setInterval ( function ( ) {
				if ( !Browser || !Cursor ) return;
				clearInterval ( i );

				loadConversation ( '/scripts/endoftheline/conversations/task-1.js', function ( s ) {
					if ( s ) {
						loadScript ( "/scripts/chat/audio.js", function ( s ) {
							var i = setInterval ( function ( ) {
								if ( !window.Audio ) return;
								clearInterval ( i );
								setTimeout ( function ( ) {
									new Audio ( window.scripts.TASK_1_CALL, true, function ( ) {
										window.main_chat.play ( window.scripts.TASK_1, function ( ) {
											Browser.startPuzzle ( function ( success, message ) {
												if ( success ) {
													doAction ( '20dac0' );
													cb();
												} else {
													loadScript ( "/scripts/chat/txtmsg.js", function ( s ) {
														setTimeout ( function ( ) {
															var fail = function ( ) {
																Mission.fail ( message );
																fail = function ( ) { }
															}
															var timeout = setTimeout ( fail, 2500 );
															new TxtMsg ( window.scripts.TASK_1_TXT, true, function ( ) {
																clearTimeout ( timeout );
																fail();
															} );
														}, 2000 );
													} );
												}
											} );
										} );
									} );
								}, 2000 );
							}, 50 );
						} );
					}
				} );
			}, 100 );
		}, 500 );
	}

} );
