var baseImageUrl = '/gennth-theme/images/intro';

function Phase2(canvasId) {
	var context = document.getElementById(canvasId).getContext('2d');
	var canvasHeight = document.getElementById(canvasId).height;
	var sprites = new Array();
		
	var cosine = function(elapsed) {
		var pct = elapsed / this.duration;
		//             AMPLITUDE -v  FREQUENCY -v
		var x = this.position.x + 15 * Math.cos(5*pct*twoPi);
		var dy = Math.abs(this.endPosition.y-this.startPosition.y) * pct;
		//var y = this.position.y - (fl/this.duration * Math.abs(this.endPosition.y-this.startPosition.y));
		var y = this.startPosition.y - dy;
		return new Point(x, y);
	};
	
	var wiggleCosineDown = function(elapsed) {
		var pct = elapsed / this.duration;
		var x = this.position.x;// + 10 * Math.sin(5*pct*twoPi);
		var dy = (this.endPosition.y-this.startPosition.y) * pct;
		var y = this.startPosition.y + dy;
		//var y = this.position.y + (fl/this.duration * Math.abs(this.endPosition.y-this.startPosition.y));
		return new Point(x, y);
	}
	
	var wiggleCosineUp = function(elapsed) {
		var pct = elapsed / this.duration;
		var x = this.position.x;// - 10 * Math.sin(5*pct*twoPi);
		var dy = Math.abs(this.endPosition.y-this.startPosition.y) * pct;
		var y = this.startPosition.y - dy;//(fl/this.duration * Math.abs(this.endPosition.y-this.startPosition.y));
		return new Point(x, y);
	}
	
	var p3cosine = function(elapsed) {
		var pct = elapsed / this.duration;
		var x = this.position.x + 20 * Math.cos(2.75*pct*twoPi);
		var dy = Math.abs(this.endPosition.y-this.startPosition.y) * pct;
		var y = this.startPosition.y - dy;
		//var y = this.position.y - (fl/this.duration * Math.abs(this.endPosition.y-this.startPosition.y));
		return new Point(x, y);
	}
	
	var sine = function(elapsed) {
		var pct = elapsed / this.duration;
		var x = this.position.x + 10 * Math.sin(pct*twoPi);
		var dy = Math.abs(this.endPosition.y-this.startPosition.y) * pct;
		var y = this.startPosition.y - dy;
		//var y = this.position.y - (fl/this.duration * Math.abs(this.endPosition.y-this.startPosition.y));
		return new Point(x, y);
	};

	sprites.push(new FadeIn().init({
		delay:1400,
		duration: 500,
		url:baseImageUrl+'/phase5.jpg'
	}));
	
	sprites.push(new FadeIn().init({
		delay:1300,
		duration:1000,
		url:baseImageUrl+'/phase4.png'
	}));
		
	var phaseUrl = baseImageUrl + '/phase3-';
	
	sprites.push(new WiggleSprite().init(
		canvasHeight, {
			url:phaseUrl+'1.png',
			transitionImg: phaseUrl+'1-nh.png',
			position: new Point(52,526),
			endPosition: new Point(52, 113),
			duration: 900, 
			delay:500,
			path:cosine,
			paths: [
			    { path: sine, endPosition: new Point(52, 113), duration: 900, delay: 500 },
			    { path: wiggleCosineUp, endPosition: new Point(52, 98), duration: 200 },
			    { path: wiggleCosineDown, endPosition: new Point(52, 113), duration: 200 }
			]
		}
	));
	sprites.push(new Sprite().init(
			canvasHeight, {
				url:phaseUrl+'2.png',
				position: new Point(263,526),
				endPosition: new Point(263, 182),
				duration: 1000, 
				delay:550,
				frameCount: 15,
				path:p3cosine
			}
		));
	sprites.push(new Sprite().init(
			canvasHeight, {
				url:phaseUrl+'3.png',
				position: new Point(503,526),
				endPosition: new Point(503, 130),
				duration: 1000, 
				delay:500,
				frameCount: 15,
				path:cosine
			}
		));
	sprites.push(new Sprite().init(
			canvasHeight, {
				url:phaseUrl+'4.png',
				position: new Point(3,526),
				endPosition: new Point(3, 259),
				duration: 1000, 
				delay:350,
				frameCount: 15,
				path:p3cosine
			}
		));
	sprites.push(new Sprite().init(
			canvasHeight, {
				url:phaseUrl+'5.png',
				position: new Point(224,526),
				endPosition: new Point(224, 317),
				duration: 1100, 
				delay:500,
				frameCount: 15,
				path:cosine
			}
		));
	sprites.push(new Sprite().init(
			canvasHeight, {
				url:phaseUrl+'6.png',
				position: new Point(427,526),
				endPosition: new Point(427, 334),
				duration: 1000, 
				delay:500,
				frameCount: 15,
				path:cosine
			}
		));
	sprites.push(new Sprite().init(
			canvasHeight, {
				url:phaseUrl+'7.png',
				position: new Point(601,526),
				endPosition: new Point(601, 267),
				duration: 1000, 
				delay:550,
				frameCount: 15,
				path:p3cosine
			}
		));
	sprites.push(new Sprite().init(
			canvasHeight, {
				url:phaseUrl+'8.png',
				position: new Point(-32,526),
				endPosition: new Point(-32, 419),
				duration: 1000, 
				delay:500,
				frameCount: 15,
				path:cosine
			}
		));
	sprites.push(new Sprite().init(
			canvasHeight, {
				url:phaseUrl+'9.png',
				position: new Point(344,526),
				endPosition: new Point(344, 432),
				duration: 1000, 
				delay:500,
				frameCount: 15,
				path:cosine
			}
		));
	
	phaseUrl = baseImageUrl + '/phase2-';
	sprites.push(new WiggleSprite().init(
			canvasHeight, {
				url:phaseUrl+'1.png',
				position: new Point(574,526),
				endPosition: new Point(574, 8),
				path:cosine, 
				paths: [
					{ path:cosine, endPosition: new Point(574,8), duration: 500},
					{ path:wiggleCosineDown, endPosition: new Point(574, 38), duration: 450 },
					{ path:wiggleCosineUp, endPosition: new Point(574,8), duration: 450}
				]
			}
		));
	
		sprites.push(new WiggleSprite().init(
			canvasHeight, {
				url:phaseUrl+'2.png',
				position: new Point(689,526),
				endPosition: new Point(689,150),
				frameCount: 15,
				path:cosine,
				paths: [
				        { path: cosine, endPosition: new Point(689, 150), duration: 500 },
				        { path: wiggleCosineDown, endPosition: new Point(689, 160), duration: 225 },
				        { path: wiggleCosineUp, endPosition: new Point(689, 150), duration: 225 },
				        { path: wiggleCosineDown, endPosition: new Point(689, 170), duration: 225 },
				        { path: wiggleCosineUp, endPosition: new Point(689, 150), duration: 225 }
				]
			}
		));
		
		sprites.push(new WiggleSprite().init(
			canvasHeight, {
				url:phaseUrl+'3.png',
				position: new Point(579,526),
				endPosition: new Point(579, 206),
				delay: 150,
				frameCount: 15,
				path:cosine, 
				paths: [
				    { path: cosine, endPosition: new Point(579, 206), duration: 500 },
				    { path: wiggleCosineDown, endPosition: new Point(579, 231), duration: 225 },
				    { path: wiggleCosineUp, endPosition: new Point(579, 206), duration: 225 },
				    { path: wiggleCosineDown, endPosition: new Point(579, 196), duration: 225 },
				    { path: wiggleCosineUp, endPosition: new Point(579, 206), duration: 225 },
				    { path: wiggleCosineDown, endPosition: new Point(579, 231), duration: 225 },
				    { path: wiggleCosineUp, endPosition: new Point(579, 206), duration: 225 }
				]
			}
		));
		
		sprites.push(new WiggleSprite().init(
			canvasHeight, {
				url:phaseUrl+'4.png',
				position: new Point(323,526),
				endPosition: new Point(323, 187),
				duration: 500,
				path:cosine, 
				transitionImg: phaseUrl+'4-nh.png',
				paths: [
				    { path: cosine, endPosition: new Point(323, 187), duration: 500 },
				    { path: wiggleCosineDown, endPosition: new Point(323, 197), duration: 400 },
				    { path: wiggleCosineUp, endPosition: new Point(323, 187), duration: 400 },
				    { path: wiggleCosineDown, endPosition: new Point(323, 197), duration: 400 },
				    { path: wiggleCosineUp, endPosition: new Point(323, 187), duration: 400 }
				]
			}
		));
		
		sprites.push(new WiggleSprite().init(
			canvasHeight, {
				url:phaseUrl+'5.png',
				position: new Point(452,526),
				endPosition: new Point(452, 265),
				delay:225,
				frameCount: 15,
				path:sine,
				transitionImg: phaseUrl+'5-nh.png',
				paths: [
				   { path: sine, endPosition: new Point(452, 265), duration: 500, delay: 225 },
				   { path: wiggleCosineDown, endPosition: new Point(452, 290), duration: 500 },
				   { path: wiggleCosineUp, endPosition: new Point(452, 265), duration: 500 }
				   
				]
			}
		));
		
		sprites.push(new WiggleSprite().init(
			canvasHeight, {
				url:phaseUrl+'6.png',
				position: new Point(92,526),
				endPosition: new Point(92, 268),
				frameCount: 15,
				path:sine,
				transitionImg: phaseUrl+'6-nh.png',
				paths: [
				    { path: sine, endPosition: new Point(92, 268), duration: 500 }
				]
			}
		));
		
		sprites.push(new Sprite().init(
			canvasHeight, {
				url:phaseUrl+'7.png',
				position: new Point(393,526),
				endPosition: new Point(393, 493),
				delay:300,
				frameCount: 15,
				path:cosine
			}
		));
	
	return sprites;
}

function getGlowSprites(canvasId) {
	var context = document.getElementById(canvasId).getContext('2d');
	var canvasHeight = document.getElementById(canvasId).height;
	var sprites = new Array();
	
	var phaseUrl = baseImageUrl + '/phase2-';
	
	sprites.push(new FadeIn().init({
		position: new Point(0,0),
		url:baseImageUrl+'/phase6.png',
		duration: 10
	}));
	
	sprites.push(new GlowSprite().init({
		position: new Point(32,93),
		url:baseImageUrl+'/phase3-1-l.png',
		duration: 800, 
		delay:0,
		pauseBetweenRepeats: 0,
		repeats:true,
		maxRepeats:2
	}));
	
	sprites.push(new GlowSprite().init({
		position: new Point(493, 120),
		url:baseImageUrl+'/phase3-3-l.png',
		duration: 500, 
		delay:0,
		pauseBetweenRepeats: 10,
		repeats:true,
		maxRepeats:2
	}));
	
	sprites.push(new GlowSprite().init({
		position: new Point(313,177),
		url:phaseUrl+'4-l.png',
		duration: 500,
		pauseBetweenRepeats: 0,
		delay: 0,
		repeats:true,
		maxRepeats:3
	}));
	
	sprites.push(new GlowSprite().init({
		url:phaseUrl+'5-l.png',
		position: new Point(442,250),
		delay:0,
		duration: 500,
		repeats:true,
		pauseBetweenRepeats:75,
		maxRepeats:2
	}));
	
	/*sprites.push(new GlowSprite().init({
		position: new Point(579,206),
		url:phaseUrl+'3-l.png',
		fadeUrl:phaseUrl+'3-d.png',
		duration: 1100,
		pauseBetweenRepeats: 0,
		delay: 550,
		repeats:true
	}));
	
	sprites.push(new GlowSprite().init({
		position: new Point(689,150),
		url:phaseUrl+'2-l.png',
		fadeUrl:phaseUrl+'2-d.png',
		duration: 1000,
		pauseBetweenRepeats: 0,
		delay: 600,
		repeats:true
	}));
	
	sprites.push(new GlowSprite().init({
		position: new Point(564,-2),
		url:phaseUrl+'1-l.png',
		fadeUrl:phaseUrl+'1-d.png',
		duration: 800,
		pauseBetweenRepeats: 0,
		delay: 500,
		repeats:true
	}));*/
	
	return sprites;
	
}
/*
function sceneEvents(name) {
	if (name == 'Phase2') { // phase 2 done.  Fire phase 3.
		jQuery('#menu').fadeIn(500);
		jQuery('#phase6').animate({left: 68}, 500, "linear", function() {
			setTimeout(function(){
				jQuery('#skip').fadeOut(250);
				jQuery('#degree').fadeIn(500, "linear", function() {
					pulseDegree(3);
				}); }, 500);
			});
	} else if (name == 'Phase3') { // etc.

	} else if (name == 'Phase4') {

	} else if (name == 'Phase5') {

	}
}*/

function showIntroPortfolio(options) {
  options = options || {};
	if (!options.startIndex) {
		options.startIndex = 0;
	}
	jQuery('.oec-logo').fadeOut(500);
	jQuery('.intro-footer').fadeOut(500);
	jQuery('#outer-intro-wrap').fadeOut(500, function() {	
		jQuery('#portfolio-wrapper').fadeIn(500);
		jQuery('#portfolio-slider').nivoSlider({
			directionNav:false,
			directionNavHide:true,
			controlNav:false,
			effect:'fade',
			manualAdvance:false,
			pauseTime:options.pauseTime || 2000,
			captionOpacity:1.0,
			startSlide:options.startIndex || 0,
			afterChange: function() {
				var url = '/web/guest/portfolio?index=' + $(this).data('nivo:vars').currentSlide;
				jQuery('#portfolio-wrapper').bind('click', function() { location.href=url; });
			}
		});
	}); // end intro fade out
}

function skip(event) {
	if (scene) {
		scene.stop();
		if (glowScene) {
			glowScene.stop();
		}
		jQuery('#nointro-img').show();
		jQuery('#skip-intro').hide();
		jQuery('#intro-separator').css('left', '0px').show();
		jQuery('.nav-menu').show();
		jQuery('#phase6').css('left', '68px');
		jQuery('#degree').show();
		setTimeout('showIntroPortfolio()', 2000);
	} else if (jQuery.browser.msie) {
		jQuery('#skip-intro').hide();
		jQuery('#flash-intro').hide();
		jQuery('#intro-separator').css('left', '0px').show();
		jQuery('.nav-menu').show();
		jQuery('#phase6 img').hide();
		jQuery('#nointro-img').show();
		jQuery('#phase6').css('position', 'absolute').css('left', '68px').css('top: 0px');
		setTimeout('showIntroPortfolio()', 2000);
	} else {
		jQuery('#skip-intro').hide();
		jQuery('#phase6 img').hide();
		jQuery('#intro-separator').css('left', '0px').show();
		jQuery('#nointro-img').show();
		jQuery('.nav-menu').show();
		jQuery('#phase6').css('position', 'absolute').css('left', '68px').css('top: 0px');
		//jQuery('#degree').show();
		setTimeout('showIntroPortfolio()', 2000);
	}
}

function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
