// JavaScript Document
var floatingJamesInterval;
var JamesFloatTargetX = 0;
var JamesFloatTargetY = 0;
var openWork = ""; // used to track which category is open
var closedWork = ""; // used to restore hover to recently closed category
var workWindowY = 580;

var currentPageIndex = 0; // basically tracks how far the workwrapper is scrolled X


//alert(navigator.userAgent);
var isNotIE = (navigator.userAgent.indexOf('MSIE') < 0);
var isFForChrome = ((navigator.userAgent.toLowerCase().indexOf('chrome') > 0) || (navigator.userAgent.toLowerCase().indexOf('firefox') > 0));
var isMobileSafari = (navigator.userAgent.indexOf('Mobile') > -1 && navigator.userAgent.indexOf('AppleWebKit') > -1);
var isIE7orLower = false;

if (navigator.appVersion.indexOf("MSIE") != -1){
    version = parseFloat(navigator.appVersion.split("MSIE")[1]);
    if (version < 8){isIE7orLower = true};
}

$(document).ready(function(){
						   
	// show menus and announcement once bg image has loaded	
	
	// hide characters first
	showCharacters(false);
	startPreLoadImgs();	
	checkAnnouncement();
	
	// assign rollovers to characters
	if (!isMobileSafari){setHovers()};
	
});

function resetScroll(){
	// wait for page to catch up
	setTimeout(hideURLbar,500);
}

function hideURLbar(){
	window.scrollTo(0,1);
 }

var preImgList = ["img/printomatic_o.png","img/webasaurus_o.png","img/zee_o.png","img/drb_o.png","img/james_balloons.png","img/printomatic_icon.png","img/webasaurus_icon.png","img/zee_icon.png","img/drb_icon.png","img/loading_project_img.png"];
var imgObjList = new Array();

function startPreLoadImgs(){
	for (var f = 0; f < preImgList.length; f++){
		var preloadImg = new Image();
		preloadImg.src = preImgList[f];
		preloadImg.onLoad = showMyCharacter(preImgList[f]);
		imgObjList[f] = preloadImg;
	}
}

function showMyCharacter(f){
	// get the charactername
	// alert("showMyCharacter: " + f);
	var myGuy = f.split("/")[1].split("_")[0];
	// var normImg = new Image();
	$('#' + myGuy).css('visibility','visible');
}

function showCharacters(vis){
	var mystate = (vis)? 'visible' : 'hidden';
	$('#printomatic').css('visibility',mystate);
	$('#webasaurus').css('visibility',mystate);
	$('#zee').css('visibility',mystate);
	$('#drb').css('visibility',mystate);
	$('#james').css('visibility',mystate);
}



function checkAnnouncement(){
	// this checks if there is a cookie showing that the current announcement has been seen and hidden
}

function showMenus(){
	$('#topmenu').show();
	$('#announcementContainer').show();
}

function getCloud(){
	/*
	// this gets called once the page has loaded, so the big cloud overlay png loads last
	$('#overcloud img').attr('src','img/jnd_clouds.png');
	//alert(document.body.scrollHeight + " " + $('#content').css('height'));
	var visibleHeight = getNum($('#content').css('height')) + getNum($('#content').css('top'));
	$('#wrapper').css('height',visibleHeight.toString() + 'px');
	*/
	return false;
}

function getNum(str){
	// strip off "px" and return the number
	return Number(str.substr(0,str.length-2));
}

/************ ROLLOVER AND NAV FUNCTION FOR HOME PAGE CHARACTERS *********/

var canClickJames = true;

function goAbout(){
	if (canClickJames){
		// analytics
		_gaq.push(['_trackPageview', '/about']);
		
		canClickJames = false;
		$('#james a').css('cursor','default');
		if (openWork != "james" && openWork != ""){closeOpenWork()};
		openWork = "james";
		
		$('#james a').css("background", "url(img/james_balloons.png) no-repeat");
		//$('#james a:hover').css("background", "url(img/james_balloons.png) no-repeat");
		$('#james_b').css('visibility', 'hidden');
		
		$('#james a').unbind('mouseenter');
		$('#james a').unbind('mouseleave');
		$('#james a').unbind('hover');
		
		
		var isAboveClouds = ($('#about').css('display') == "block");
		
		if (isAboveClouds){
			returnToGround();
		} else {	
			$('#about').css('display','block');
			$('#content').css('top','-696px');
				
			// now float james up as the content moves down
			$('#james').animate({"top":-926,"left":850},3000,function(){jamesInSky();});
			$('#content').animate({"top":0},3000);
		
			// start floating timer
			floatingJamesInterval = setInterval(floatJames,160);		
		}
	}
	return false;
	
};

function returnToGround(){
	openWork = "";
	clearInterval(floatingJamesInterval);
	$('#james').animate({"top":-279,"left":813},2000, function(){resetJames();});
	$('#content').animate({"top":-696},2000, function(){resetGround();});
	
	return false;
};

function resetGround(){
	$('#content').css('top','0px');	
	$('#about').css('display','none');
}

function jamesInSky(){
	//alert("jamesInSky");
	$('#james a').css("background", "url(img/james_balloons.png) no-repeat");  // force
	
	canClickJames = true;
	$('#james a').css('cursor','pointer');
}

function resetJames(){
	if (!canClickJames){
		//alert("resetJames");
		$('#james a').css('cursor','pointer');
		$('#james a').css("background", "url(img/james.png) no-repeat");
		if (!isMobileSafari){
			$('#james a').hover(function(){
				$('#james a:hover').css("background", "url(img/james_balloons.png) no-repeat");
				$('#james_b').css('visibility', 'visible');
			},function(){
				$('#james a').css("background", "url(img/james.png) no-repeat");
				$('#james_b').css('visibility', 'hidden');
			});
		};
		
		canClickJames = true;
	}
};

function floatJames(){
	// first, get current position
	var jamesXstr = $('#james').css("left");
	var jamesX = Number(jamesXstr.substring(0, jamesXstr.length-2));
	var jamesYstr = $('#james').css("top");
	var jamesY = Number(jamesYstr.substring(0, jamesYstr.length-2));
	
	if (jamesY < -900){ // we are at the top, so can float
		if (jamesX == JamesFloatTargetX || JamesFloatTargetX == 0){JamesFloatTargetX = newTargetPx(840,30)};
		if (jamesY == JamesFloatTargetY || JamesFloatTargetY == 0){JamesFloatTargetY = newTargetPx(-926,10)};
		
		
		// now move james 1 pixel at a time for X & Y
		var newX = (jamesX > JamesFloatTargetX)? jamesX-1 : jamesX +1;
		var newY = (jamesY > JamesFloatTargetY)? jamesY-1 : jamesY +1;
		//alert(jamesXstr + " " + jamesYstr + " " + newX + " "+ newY);
		
		$('#james').css("left", String(newX) + "px");
		$('#james').css("top", String(newY) + "px");
	}
};

function newTargetPx(c,r){
	var myNum = c - r;
	myNum += Math.round(Math.random()*2*r);
	return myNum;
}

function closeOpenWork(){
	if (openWork != ""){
		
		if (openWork == "james"){
			returnToGround();
		} else {
			
			projImgPathList = [];  // this resets the preload queue and stops preloading existing images
			projImgIDlist = [];
			
			$("#" + openWork + "_b").hide();
							
			closedWork = openWork;
			$('#' + openWork).show();
			$('#introIcon img').hide();
			
			// kill any images still loading
			$(".jndimg img").each(function(){
				$(this).attr('src','img/shim.gif');
			});
			//$('#portfolio').html("");
						
			$('#' + openWork).css("cursor", "pointer");	
			if (openWork == "printomatic"){
				$("#printomatic").animate({"top":75,"left":147},700,function(){restoreHover();});
				$("#printIntro").slideUp();	
			}
			if (openWork == "webasaurus"){
				$("#webasaurus").animate({"top":36,"left":312},700,function(){restoreHover();});
				$("#webIntro").slideUp();	
			}
			if (openWork == "zee"){
				$("#zee").animate({"top":10,"left":486},700,function(){restoreHover();});
				$("#animIntro").slideUp();	
			}
			if (openWork == "drb"){
				$("#drb").animate({"top":-5,"left":634},700,function(){restoreHover();});
				$("#brandIntro").slideUp();	
			}
			

		}
	}
	
	$('html,body').animate({scrollTop:0},700);
	return false;
}

function setHovers(){
	if (!isMobileSafari){
		$('#printomatic a').hover(function(){$('#printomatic_b').css('visibility', 'visible')},function(){$('#printomatic_b').css('visibility', 'hidden')});
		$('#webasaurus a').hover(function(){$('#webasaurus_b').css('visibility', 'visible')},function(){$('#webasaurus_b').css('visibility', 'hidden')});
		$('#zee a').hover(function(){$('#zee_b').css('visibility', 'visible')},function(){$('#zee_b').css('visibility', 'hidden')});
		$('#drb a').hover(function(){$('#drb_b').css('visibility', 'visible')},function(){$('#drb_b').css('visibility', 'hidden')});
		$('#james a').hover(function(){$('#james_b').css('visibility', 'visible')},function(){$('#james_b').css('visibility', 'hidden')});
	};
	return false;
};

function restoreHover(){
	if (!isMobileSafari){
		$("#" + closedWork + "_b").show();
		$("#" + closedWork + "_b").css('visibility', 'hidden');
		
		//setHovers();
		if (isNotIE){
			if (closedWork == "printomatic"){$('#printomatic a:hover').css('background', 'transparent url(../img/printomatic_o.png) no-repeat;' )};
			if (closedWork == "webasaurus"){$('#webasaurus a:hover').css('background', 'transparent url(../img/webasaurus_o.png) no-repeat;' )};
			if (closedWork == "zee"){$("#zee a:hover").css('background', 'transparent url(../img/zee_o.png) no-repeat;')};
			if (closedWork == "drb"){$("#drb a:hover").css('background', 'transparent url(../img/drb_o.png) no-repeat;')};
		};
	};
	$('#portfolio').hide();
}


function goPrintomatic(){
	closeOpenWork();
	openWork = "printomatic";
	// disable hover by making hover image the same as 'a'
	if (isNotIE){
		$('#printomatic a:hover').css('background', 'transparent url(../img/printomatic.png) no-repeat;' );	
	}
	$("#printomatic").css("cursor", "default");
	$('html,body').animate({scrollTop:workWindowY},700);
	$("#printomatic").animate({"top":293,"left":772},700,function(){setWorkPage();});
	if (isIE7orLower){
		$("#printIntro").show();
	} else {
		$("#printIntro").slideDown(700);
	}
	return false;
};

function goWebasaurus(){
	//alert("1");
	closeOpenWork();
	
	openWork = "webasaurus";
	// disable hover
	if (isNotIE){
		$('#webasaurus a:hover').css('background', 'transparent url(../img/webasaurus.png) no-repeat;' );
		$("#webasaurus").css("cursor", "default");
	}
	$('html,body').animate({scrollTop:workWindowY},700);
	$("#webasaurus").animate({"top":246,"left":799},700,function(){setWorkPage();});
	if (isIE7orLower){
		$("#webIntro").show();
	} else {
		$("#webIntro").slideDown(700);
	}
	return false;
};

function goZee(){
	closeOpenWork();
	
	openWork = "zee";
	// disable hover
	if (isNotIE){
		$("#zee a:hover").css('background', 'transparent url(../img/zee.png) no-repeat;' );
		$("#zee").css("cursor", "default");
	}
	$('html,body').animate({scrollTop:workWindowY},700);
	$("#zee").animate({"top":230,"left":799},700,function(){setWorkPage();});
	if (isIE7orLower){
		$("#animIntro").show();
	} else {
		$("#animIntro").slideDown(700);
	}
	return false;
};

function goDrB(){
	closeOpenWork();
	
	openWork = "drb";
	// disable hover
	if (isNotIE){
		$("#drb a:hover").css('background', 'transparent url(../img/drb.png) no-repeat;' );
		$("#drb").css("cursor", "default");
	}
	$('html,body').animate({scrollTop:workWindowY},700);
	$("#drb").animate({"top":243,"left":800},700,function(){setWorkPage();});
	if (isIE7orLower){
		$("#brandIntro").show();
	} else {
		$("#brandIntro").slideDown(700);
	}
	return false;
};

var myWorkPage = "";

function setWorkPage(){
	
	
	$('#introIcon img').attr("src","img/" + openWork +"_icon.png");
	$('#introIcon img').show();
	$('#' + openWork).hide();
	// set positions
	var myTop = "682"; // printomatic default
	if (openWork == "webasaurus"){myTop = "657"};
	if (openWork == "zee"){myTop = "655"};
	if (openWork == "drb"){myTop = "662"};
	$('#introIcon').css("top", myTop + "px");
	
	$('#loading').slideDown(500);
	
	// now load the work page
	myWorkPage = "print";
	if (openWork == "webasaurus"){myWorkPage = "web"};
	if (openWork == "zee"){myWorkPage = "animation"};
	if (openWork == "drb"){myWorkPage = "identity"};
	
	//$("#work").attr("src", myWorkPage + ".html");
	$('#portfolio').hide();
	$('#portfolio').load(myWorkPage + ".html",showWork);
	
	// analytics
		_gaq.push(['_trackPageview', '/' + openWork]);
	};

var iframeHeight = 0;

function showWork(){
	$('#loading').hide();
	currentPageIndex = 0;
	
	prepWorkPage();
	$('#portfolio').slideDown();
}

function emailJames(){
	 var mailcall  = "mailto:james@jamesnorton.com.au?subject=I've been looking at your website";
   	location.href = mailcall;
	return false;
};

function emailJamie(){
	 var mailcall  = "mailto:jamie@tinc.com.au?subject=I've been looking at James Norton's website";
   	location.href = mailcall;
	return false;
};

  
function hideAnnouncement(){
	if (isNotIE){
		$('#announcementPanel').animate({"top":-400},700);
	} else {
		$('#announcementPanel').hide();
	}
	return false;
};

//************ UTILITY FUNCTIONS

function trace(msg){
	//$('#debug').html(msg);
}
