var ff=false;
if(navigator.userAgent.toLowerCase().indexOf("firefox")!=-1||navigator.userAgent.toLowerCase().indexOf("netscape")!=-1)ff=true;

var sf=false;
if(navigator.userAgent.toLowerCase().indexOf("safari")!=-1)sf=true;

function grab(nam){
	return document.getElementById(nam);
}

function openWindow(src,wid,hit){
	if(!wid)wid=1000;
	if(!hit)hit=650;
	var sw=screen.width;
	var sh=screen.height;
	var tLoc=Math.round((sw-wid)/2)-75;
	var lLoc=Math.round((sh-hit)/2);
	var winName="JBWPWindow";
	winVar=window.open(src,winName,"toolbar=no,directories=no,status=yes,scrollbars=yes,resizable=yes,menubar=yes,location=yes,copyhistory=no,width="+wid+",height="+hit);
	winVar.focus();
	return winVar;
}

var startButtonMode=0;
var selMod=100;
var selCat=100;
var selAss=100;
var hiItem=100;
var btnSpacer=23;
var btnWidth=122;
var btnLefPos=10;
var storedAssetLayer="";
var storedModeID="";
var curPage=0;

var butWidComp=0;
var hLinAdj=0
var vLinAdj=0
var butHit=17
if(ff||sf){
	butWidComp=-2;
	butHit=16;
	hLinAdj=1;
	vLinAdj=1;
}

var btnIds=new Array();
var colArr=new Array("green","lightblue","blue","orange","red","violet");
var colArr=new Array("orange","orange","orange","orange","orange","orange");


//================================================================ MANAGING MOUSEOVERS, DISPLAYS, AND CONTINUITY

function setButtonStates(){
	for(var b=0;b<btnIds.length;b++){
		var bID=btnIds[b];
		status=bID;
		var cc=grab(bID);
		if(cc){
			cc.style.backgroundColor="cccccc";
			if(bID==hiItem)cc.style.backgroundColor="orange";
			if(bID==selMod)cc.style.backgroundColor="ff6500";
			if(bID==selCat)cc.style.backgroundColor="ff6500";
			if(bID==selAss)cc.style.backgroundColor="ff6500";
		}
	}
	return true;
}

function hideAll(){
	var mt=grab("modTier");
	mt.style.visibility="hidden";
	var ct=grab("catTier");
	ct.style.visibility="hidden";
	var ret=hideAllAssetIcons();
	selMod=100;
	selCat=100;
	selAss=100;
	var ret=setModTierBars("cccccc");
	var ret=setCatTierBars("cccccc");
	var mh=grab("mainHead");
	mh.innerHTML="<span class=mainTitle>John Beezer</span><span class=mainTitle style=position:relative;left:-5;top:3>’</span><span style=position:relative;left:-13 class=mainTitle>s Web Presence</span>"
	var st=grab("stage");
	st.innerHTML="";
	st.style.visibility="hidden";
	return true;
}

function hideAllAssetIcons(){
	for(var a=1;a<6;a++){//was 8
		var at=grab("assTier"+a);
		at.style.visibility="hidden";
		var at=grab("assBar"+a);
		at.style.visibility="hidden";
	}
	var ct=grab("catBarExt");
	ct.style.visibility="hidden";
	return true;
}

function doStart(){
	var sb=grab("startButton");
	var startMode=sb.innerHTML;
	if(startMode=="Start"){
		var ret=hideAll();
		var mt=grab("modTier");
		mt.style.visibility="visible";
		var ret=setModTierBars("black");
		sb.innerHTML="Reset";
	}
	if(startMode=="See More"){
		curPage=0;
		var ret=hideAll();
		var mt=grab("modTier");
		mt.style.visibility="visible";
		var ret=setModTierBars("black");
		sb.innerHTML="Reset";
		selMod=storedModeID;
		if(storedAssetLayer!=""){
			var rawCode=storedAssetLayer;
			rawCode=rawCode.split("~|~");
			var sC=parseInt(rawCode[1]);
			var sA=parseInt(rawCode[2]);
			var sCol=parseInt(rawCode[3]);
			//re-set bar colors here?
			selCat=rawCode[5];
			selAss=rawCode[6];
			if(sA!=0)var ret=showCategoryTier();
			if(sC!=0)var ret=showAssetLayer(sC,sCol);
		}
		var ret=setButtonStates();
	}
	if(startMode=="Reset"){
		var ret=hideAll();
		sb.innerHTML="Start";
	}
}

// ===================================================================================== RESPOND TO USER ACTIONS

function doAction(m,c,a,col){
	storedAssetLayer="";
	var sb=grab("startButton");
	if(m!=1)showModeAsset(m);
	else{//this is portfolio
		storedAssetLayer=m+"~|~"+c+"~|~"+a+"~|~"+col+"~|~"+selMod+"~|~"+selCat+"~|~"+selAss;
		storedModeID=selMod;
		if(c==0){
			var ret=showCategoryTier(c);
		}
		else{
			if(a==0)var ret=showAssetLayer(c,col);
			else{
				var ret=hideAll();
				var ret=showCatAsset(c,a);
				sb.innerHTML="See More";//was "Continue"
			}
		}
	}
	analytics(m,c,a,col);
	return true;
}

function analytics(m,c,a,col){
	try{
		var str=m+"~|~"+c+"~|~"+a+"~|~"+col;
		var scr=document.createElement("script");
		scr.setAttribute("src","http://johnbeezer.com/analytics.php?d="+str);
		scr.setAttribute("type","text/javascript");
		document.body.appendChild(scr);
	}
	catch(e){
	}
	return true;
}


// ================================================================= DRAW NAVIGATION STRUCTURE

function getUIStr(){
	var sTxt="<div id=startButton class=startBut style=position:absolute;left:440;top:569 onclick=doStart()>Start</div>";
	var mTxt="<div id=modTier style=position:absolute;left:0;top:537;width:1000;height:28;visibility:hidden>";//create mode tier
	for(var m=0;m<3;m++){
		var assetCode=uiParams[m][0]["assetCode"];
		var capt=uiParams[m][0]["typ"];
		capt=capt.split(":");
		var typ=capt[0];
		var col=capt[2];
		capt=capt[1];
		var btnLefPos=295;
		var lef=btnLefPos+(m*(btnWidth+btnSpacer));
		var barLef=lef+Math.round(btnWidth/2);
		var idStr="dv-"+m+"-0-0";
		btnIds[btnIds.length]=idStr;
		mTxt+="<div id="+idStr+" class=button style=position:absolute;left:"+lef+";top:0;height:"+butHit+" onclick=mck(event,'x','y','"+idStr+"',"+col+");return false; onmouseover=mov(event,'x','y','"+idStr+"');return false; onmouseout=mot(event,'x','y','"+idStr+"');return false;>"+capt+"</div>";
		mTxt+="<img id=lin-"+m+"-0-0 class=linearDark src=images/blank.gif style=position:absolute;left:"+barLef+";top:"+(17+vLinAdj)+";width:1;height:7;>";
	}
	mTxt+="<img id=modBar class=linearDark src=images/blank.gif style=position:absolute;left:"+(btnLefPos+Math.round(btnWidth/2)+hLinAdj)+";top:24;width:"+(291-hLinAdj)+";height:1;>";//291 was 581
	mTxt+="<img id=startBarExt class=linearDark src=images/blank.gif style=position:absolute;left:501;top:25;width:1;height:7;>";
	mTxt+="</div>";
	var cTxt="<div id=catTier style=position:absolute;left:0;top:505;width:1000;height:28;visibility:hidden;>";//create category tier
	for(var c=1;c<6;c++){//was 8
		var assetCode=uiParams[1][c][0]["assetCode"];
		var capt=uiParams[1][c][0]["typ"];
		capt=capt.split(":");
		var typ=capt[0];
		var col=capt[2];
		capt=capt[1];
		var btnLefPos=5;
		var lef=btnLefPos+(col*(btnWidth+btnSpacer));
		var barLef=lef+Math.round(btnWidth/2);
		var idStr="dv-1-"+c+"-0";
		btnIds[btnIds.length]=idStr;
		cTxt+="<div id="+idStr+" class=button style=position:absolute;left:"+lef+";top:0;height:"+butHit+" onclick=mck(event,'x','y','"+idStr+"',"+col+");return false; onmouseover=mov(event,'x','y','"+idStr+"');return false; onmouseout=mot(event,'x','y','"+idStr+"');return false;>"+capt+"</div>";
		cTxt+="<img id=lin-1-"+c+"-0 class=linearDark src=images/blank.gif style=position:absolute;left:"+barLef+";top:"+(17+vLinAdj)+";width:1;height:7;>";
	}

	cTxt+="<img id=catBar class=linearDark src=images/blank.gif style=position:absolute;left:"+(211+hLinAdj)+";top:24;width:"+(581-hLinAdj)+";height:1;>";//wid=122

	cTxt+="<img id=modBarExt class=linearDark src=images/blank.gif style=position:absolute;left:501;top:25;width:1;height:7;>";

	cTxt+="</div>";
	var aTxt="";
	for(var c=1;c<6;c++){//was 8
		var maxA=uiParams[1][c].length;
		var minCol=7;
		var maxCol=0;
		aTxt+="<div id=assTier"+c+" style=position:absolute;left:0;top:"+(354-vLinAdj)+";width:1000;height:148;visibility:hidden;background-color:>";//create assets tiers
		for(var a=1;a<maxA;a++){
			var assetCode=uiParams[1][c][a]["assetCode"];
			var capt=uiParams[1][c][a]["typ"];
			capt=capt.split(":");
			var typ=capt[0];
			var col=capt[2];
			capt=capt[1];
			if(col<minCol)minCol=col;
			if(col>maxCol)maxCol=col;
			var catCol=uiParams[1][c][0]["typ"];
			catCol=catCol.split(":");
			catCol=catCol[2];
			var btnLefPos=5;
			var lef=btnLefPos+(col*(btnWidth+btnSpacer));
			var barLef=lef+Math.round(btnWidth/2);
			var idStr="im-1-"+c+"-"+a;
			btnIds[btnIds.length]=idStr;
			aTxt+="<img id="+idStr+" class=icon src=images/"+assetCode+".jpg style=position:absolute;left:"+lef+";top:0;height:120;width:120 onclick=mck(event,'x','y','"+idStr+"',"+catCol+");return false; onmouseover=mov(event,'x','y','"+idStr+"');return false; onmouseout=mot(event,'x','y','"+idStr+"');return false;>";
			var idStr="dv-1-"+c+"-"+a;
			aTxt+="<div id="+idStr+" class=button style=position:absolute;left:"+lef+";top:120;width:"+(btnWidth+butWidComp)+";height:"+butHit+" onclick=mck(event,'x','y','"+idStr+"',"+catCol+");return false; onmouseover=mov(event,'x','y','"+idStr+"');return false; onmouseout=mot(event,'x','y','"+idStr+"');return false;>"+capt+"</div>";
			aTxt+="<img id=lin-1-"+c+"-"+a+" class=linearDark src=images/blank.gif style=position:absolute;left:"+barLef+";top:"+(137+vLinAdj)+";width:1;height:7;>";
			var barLefPos=btnLefPos+(145*minCol)+Math.round(btnWidth/2);
			var barWid=145*(maxCol-minCol);
			aTxt+="<img id=assBar"+c+" class=linearDark src=images/blank.gif style=position:absolute;left:"+(barLefPos+hLinAdj)+";top:"+(143+hLinAdj)+";width:"+barWid+";height:1;>";
		}
		aTxt+="</div>";
	}
	aTxt+="<div id=assTierBars style=position:absolute;left:0;top:355;width:1000;height:148;visibility:hidden;background-color:>";
	aTxt+="<img id=catBarExt class=linearDark src=images/blank.gif style=position:absolute;left:444;top:143;width:1;height:7;>";
	aTxt+="</div>";
	var res=sTxt+mTxt+cTxt+aTxt;
	return res;
}

var navStr=getUIStr();


// =================================================================================== DISPLAY FUNCTIONS

function showModeAsset(m){
	storedModeID=selMod;
	ret=hideAll();
	var sb=grab("startButton");
	sb.innerHTML="See More";//was "Continue"
	var ma=grab("modAsset-"+m);
	var stuff=ma.innerHTML;
	var st=grab("stage");
	st.innerHTML=stuff;
	curPage=0;
	st.style.visibility="visible";
	var mh=grab("mainHead");
	mainHead.innerHTML="";
	return true;
}

function showCategoryTier(){
	storedModeID="";
	var ret=setModTierBars("cccccc");
	var ret=setCatTierBars("black");
	var cc=grab("catTier");
	cc.style.visibility="visible";
}

function showAssetLayer(c,col){
	var ret=hideAllAssetIcons();
	var ret=setModTierBars("cccccc");
	var ret=setCatTierBars("cccccc");
	var cc=grab("assTier"+c);
	cc.style.visibility="visible";
	var cc=grab("assBar"+c);
	cc.style.visibility="visible";
	var cc=grab("catBarExt");
	cc.style.visibility="visible";
	var catBarLefPos=5+(145*(col))+Math.round(btnWidth/2);
	cc.style.left=catBarLefPos;
	var mh=grab("mainHead");
	mh.innerHTML="<span class=mainTitle>"+uiParams[1][c][0]['title']+"</span>";
}

function showCatAsset(c,a){
	ret=hideAll();
	var sb=grab("startButton");
	sb.innerHTML="See More";//was "Continue"
	var ma=grab("catAsset-"+c+"-"+a);
	var stuff=ma.innerHTML;
	if(stuff.indexOf("~|~")!=-1){
		var cleanStuff="";
		stuff=stuff.split("~|~");
		for(var s=0;s<stuff.length;s++){
			cleanStuff+=stuff[s];
		}
		stuff=cleanStuff;
	}
	var st=grab("stage");
	st.innerHTML=stuff;
	st.style.visibility="visible";
	var mh=grab("mainHead");
	mh.innerHTML="";
	return true;
}

function setModTierBars(colr){
	for(var m=0;m<3;m++){
		var cc=grab("lin-"+m+"-0-0");
		cc.style.backgroundColor=colr;
	}
	var cc=grab("modBar");
	cc.style.backgroundColor=colr;
	var cc=grab("startBarExt");
	cc.style.backgroundColor=colr;
	return true;
}

function setCatTierBars(colr){
	for(var c=1;c<6;c++){//was 8
		var cc=grab("lin-1-"+c+"-0");
		cc.style.backgroundColor=colr;
	}
	var cc=grab("catBar");
	cc.style.backgroundColor=colr;
	var cc=grab("modBarExt");
	cc.style.backgroundColor=colr;
	return true;
}


// ======================================================================================== EVENT HANDLERS

function mov(e,x,y,idVal){
	hiItem=idVal;
	var ret=setButtonStates();
}

function mot(e,x,y,idVal){
	hiItem=100;
	var ret=setButtonStates();
}

function mck(e,x,y,idVal,col){

	//alert("Responding to mouse click:\r\re="+e+"\rx="+x+"\ry="+y+"\ridVal="+idVal+"\rcol="+col);

	if(!col)col=0;
	idValArr=idVal.split("-");
	var typ=idValArr[0];
	var mod=parseInt(idValArr[1]);
	var cat=parseInt(idValArr[2]);
	var ass=parseInt(idValArr[3]);
	if(ass!=0)selAss=idVal;
	else if(cat!=0)selCat=idVal;
	else selMod=idVal;
	var ret=setButtonStates();
	var ret=doAction(mod,cat,ass,col);
}

function directOpen(idVal){
	idValArr=idVal.split("-");
	var typ=idValArr[0];
	var mod=parseInt(idValArr[1]);
	var cat=parseInt(idValArr[2]);
	var ass=parseInt(idValArr[3]);
	var col=parseInt(idValArr[4]);
	if(ass!=0)selAss=idVal;
	else if(cat!=0)selCat=idVal;
	else selMod=idVal;
	var ret=setButtonStates();
	var ret=doAction(mod,cat,ass,col);
}

function slideClick(code,inc,maxPage){
	curPage+=inc;
	if(curPage>maxPage)curPage=0;
	if(curPage<0)curPage=maxPage;
	for(var p=0;p<=maxPage;p++){
		var np=grab(code+"-Slide-"+p);
		if(p==curPage)np.style.visibility="visible";
		else np.style.visibility="hidden";
	}

	var pn=grab(code+"-PageNumber");
	var la=grab(code+"-LeftArrow");
	var ra=grab(code+"-RightArrow");
	if(curPage!=0)pn.innerHTML=curPage+" / "+maxPage;
	else pn.innerHTML="Back - Next";

	var sb=grab("startButton");

	if(curPage==0){
		pn.style.visibility="hidden";
		la.style.visibility="hidden";
		ra.style.visibility="hidden";
		sb.style.visibility="visible";
	}
	else{
		pn.style.visibility="visible";
		la.style.visibility="visible";
		ra.style.visibility="visible";
		sb.style.visibility="hidden";
	}

	return true;
}

function setTZhilite(zon){
	var tb=grab("tZBarVert");
	var th=grab("tZBarHoriz"); 
	if(zon==-1){
		tb.style.visibility="hidden";
		th.style.visibility="hidden";
	}
	for(var z=0;z<4;z++){
		var tz=grab("zone"+z);
		var tc=grab("zoneCopy"+z);
		if(z==zon){
			tz.style.backgroundColor=colArr[z];
			//tb.style.backgroundColor=colArr[z];
			tb.style.visibility="visible";
			tb.style.left=parseInt(tz.style.left)+Math.round(parseInt(tz.style.width)/2);
			//th.style.backgroundColor=colArr[z];
			th.style.visibility="visible";
			tc.style.visibility="visible";
		}
		else{
			tz.style.backgroundColor="";
			tc.style.visibility="hidden";
		}
	}
}


// ======================================================================================== SET-UP FUNCTION

function setup(){
	var ser=document.location.search.substring(1);
	if(ser)directOpen(ser);
}



