if(typeof(console) == "undefined") {
  var console = {};
  console.log = function(msg) {};
  console.info = function(msg) {};
  console.warn = function(msg) {};
}



var GF_TICK = 2000; // How long between navigation change steps?
var GF_MINOR_TICK = 40; // How long between animation steps?
var GF_NUMBER_SCREENSHOTS = 5; // How many screenshots are there per app?
var GF_VIDEO_BOTTOM_OFFSET = 380;
var GF_VIDEO_TOP_OFFSET = -13;
var GF_SCREEN_WIDTH = 219;
var GF_GALLERY_PATH = "/img/gallery/";
var GF_IMAGE_PATH = "/img/";

var GF_navAnimated = true;
var GF_screenOnly = false;
var GF_screenIndex = 0;

function rand(min, max) {
	if (min === null) {
		min = 0;
		max = 2147483647;
	} else if (max === null) {
		max = min;
		min = 0;
	}
	return Math.floor(Math.random() * (max - min + 1)) + min;
}

function $(id) {
	return document.getElementById(id);
}

function GF_name(nr) {
	switch(nr){
		case 1: return "PushupFu";
		case 2: return "SquatFu";
		case 3: return "PullupFu";
		case 4: return "CrunchFu";
		case 5: return "SquatFuLt";
	}
}
/*
function GF_lowerCaseFirst(str) {
	return str.substring(0,1).toLowerCase()+str.substring(1);
}*/

var nav = [];

function GF_mouseover(nr,over) {
	return function() {
		GF_select(nr,over,true);		
	};
}
function GF_mouseclick(nr) {
	return function() {
		GF_select(GF_curLi,false);
		GF_curLi = nr;
		GF_select(GF_curLi,true);
		GF_navAnimated = false;
		GF_screenOnly = true;
		GF_screenIndex = 0;
	};
}
function GF_img(src,parent) {
	var el = document.createElement('img');
	el.src = src;
	if (parent) parent.appendChild(el);
	return el;
}
function GF_preloadImages(preload) {
	var nm;
	GF_img(GF_IMAGE_PATH+"gymfu-logo-active.gif",preload);
	GF_img(GF_IMAGE_PATH+"buy-color.jpg",preload);
	GF_img(GF_IMAGE_PATH+"buy-bw.jpg",preload);
	for (var i =1; i<=5;i++) {
		nm = GF_name(i);
		GF_img(GF_IMAGE_PATH+nm.toLowerCase()+"-icon-color.jpg",preload);
		GF_img(GF_IMAGE_PATH+nm.toLowerCase()+"-icon-bw.jpg",preload);
		for (var j=1;j<=GF_NUMBER_SCREENSHOTS;j++) {
			GF_img(GF_GALLERY_PATH+nm.toLowerCase()+j+".jpg",preload);
		}	
	}
}

var GF_screen, GF_screen2;

function GF_init() {
	GF_screen = $('screen');
	GF_screen2 = $('screen2');
	for (var i =1; i<=5;i++) {
		nav.push($(GF_name(i)));
	}
	for (var i = 0; i< nav.length; i++) {
		console.log(nav[i]);
		nav[i].onmouseover = GF_mouseover(i+1,true);
		nav[i].onmouseout = GF_mouseover(i+1,false);
		nav[i].onclick = GF_mouseclick(i+1);
	}
	GF_preloadImages($('preload'));
	setTimeout(GF_tick,GF_TICK);
}

function GF_select(nr,sel,minor) {
	//var nm = GF_name(GF_curLi);
	var nm = GF_name(nr);
	if (typeof sel == "undefined" || sel === null) {
		sel = true;
	}
	var el = $(nm);
	if (!minor) {
		el.className = sel?"selected":"";
	} else {
		el.minor = sel;
	}
	if ((minor && el.className != "selected") || (!minor && !el.minor)) {
		el = $(nm+"Icon");
		el.src = GF_IMAGE_PATH+nm.toLowerCase()+"-icon"+(sel?"-color":"-bw")+".jpg";
		el = $(nm+"Buy");
		el.src = GF_IMAGE_PATH+"buy"+(sel?"-color":"-bw")+".png";
	}
}

function GF_screenTick() {
	var stop = false;
	var cur = parseInt(GF_screen2.style.left);
	cur = cur - 10;
	if (cur <= 0) {
		cur = 0;
		stop = true;
	}
	GF_screen2.style.left = cur+"px";
	GF_screen2.style.width = (GF_SCREEN_WIDTH-cur)+"px";
	if (!stop) {
		setTimeout(GF_screenTick,GF_MINOR_TICK);
	} else {
		GF_screen.src = GF_screen2.src;
		GF_screen.style.backgroundImage = "url("+GF_screen2.src+")";
		setTimeout(GF_tick,GF_TICK);		
	}
}

var GF_curLi = 1;
function GF_tick() {
	if (GF_screenOnly) {
		GF_screenIndex++;
		if (GF_screenIndex > GF_NUMBER_SCREENSHOTS) {
			GF_screenOnly = false;
			GF_navAnimated = true;
		}
	}
	if (GF_navAnimated) {
		GF_select(GF_curLi,false);
		var newLi = (parseInt(Math.random()*1000000)%4)+1;
		if (newLi >= GF_curLi) newLi += 1;
		if (GF_curLi == newLi) console.log('SAME!');
		GF_curLi = newLi;
		GF_select(GF_curLi,true);
		GF_screenIndex = rand(1,GF_NUMBER_SCREENSHOTS);
	}
	if (GF_navAnimated || GF_screenOnly) {
		//GF_screen2.onload = function() {	
		//}
		GF_screen2.style.width = "1px";
		GF_screen2.style.left = (GF_SCREEN_WIDTH-1)+"px";
		GF_screen2.src = GF_GALLERY_PATH+GF_name(GF_curLi).toLowerCase()+GF_screenIndex+".jpg";// pushupFuHome.jpg
		GF_screen2.style.backgroundImage = "url("+GF_screen2.src+")";
		setTimeout(GF_screenTick,GF_MINOR_TICK);

	} else {
		setTimeout(GF_tick,GF_TICK);

	}
}


var GF_videoDirection;
var GF_videoContainer = false;
var GF_video = false;
function GF_videoAnimate() {
	var cur = parseInt(GF_videoContainer.style.top);
	var proportion = 2*(cur - GF_VIDEO_TOP_OFFSET)/(GF_VIDEO_BOTTOM_OFFSET - GF_VIDEO_TOP_OFFSET);
	if (proportion > 1) proportion = 2-proportion;
	var speed = 10+(Math.pow(proportion,1.5))*20;
	cur = cur + speed*GF_videoDirection;
	if (cur < GF_VIDEO_TOP_OFFSET) {
		cur = GF_VIDEO_TOP_OFFSET;
	}
	if (cur > GF_VIDEO_BOTTOM_OFFSET) {
		cur = GF_VIDEO_BOTTOM_OFFSET;
	}
	
	GF_videoContainer.style.top = cur+"px";
	
	if (cur == GF_VIDEO_TOP_OFFSET) {
		GF_video.style.display = "block";		
		if (GF_videoEmbedCache) GF_video.innerHTML = GF_videoEmbedCache;
	} else if (cur == GF_VIDEO_BOTTOM_OFFSET) {
		GF_videoContainer.style.display = "none";
		GF_navAnimated = true;
	} else {
		setTimeout(GF_videoAnimate,GF_MINOR_TICK);
	}
	
}
var GF_videoEmbedCache = false;
function GF_loadVideo(load) {
	GF_navAnimated = false;
	if (typeof load == "undefined" || load === null) {
		load = true;
	}
	if (!GF_videoContainer) {
		GF_videoContainer = $('videoContainer');
		GF_video = $('video');
	}
	if (!GF_videoContainer.style.top) {
		GF_videoContainer.style.top = (load?GF_VIDEO_BOTTOM_OFFSET:GF_VIDEO_TOP_OFFSET)+"px";
	}
	GF_video.style.display = "none";
	if (!GF_videoEmbedCache) {
		GF_videoEmbedCache = GF_video.innerHTML;
	}
	GF_video.innerHTML = "";
	GF_videoContainer.style.display = "block";
	GF_videoDirection = load?-1:1;
	GF_videoAnimate();
}










window.onload = GF_init;
