//static width values
var jsnav_width = 130; //width of my image
var jsnav_destinations_ar = new Array();
var jsnav_numdisplayed = 3; // the number of items displayed on screen


var currentposition; // used to display the current position
var maxpos; //used for the max number
var lasttab = "destinations"; //used for the last tab
var timeouts = new Array();
function testbegin(){
	loadupdestinations();
}
function lasttaboff(newtab){
	document.getElementById('jstab_'+lasttab).className = 'jsnav_'+lasttab;
	lasttab = newtab;
}
function loadupdestinations(){
	jsnav_populateimages("navpool_destinations");
	//document.getElementById('jsnav_colorbox').style.backgroundColor = "#b41d8d";
	lasttaboff("destinations");
	document.getElementById('jstab_destinations').className = "jsnav_destinations_on";
}
function loadupinspirations(){
	jsnav_populateimages("navpool_inspirations");
	//document.getElementById('jsnav_colorbox').style.backgroundColor = "#ec008c";
	lasttaboff("inspirations");
	document.getElementById('jstab_inspirations').className = "jsnav_inspirations_on";
}
function loaduptravelsmart(){
	jsnav_populateimages("navpool_travelsmart");
	//document.getElementById('jsnav_colorbox').style.backgroundColor = "#fec00d";
	lasttaboff("travelsmart");
	document.getElementById('jstab_travelsmart').className = "jsnav_travelsmart_on";
}
function loadupresources(){
	jsnav_populateimages("navpool_resources");
	//document.getElementById('jsnav_colorbox').style.backgroundColor = "#ed1b23";
	lasttaboff("resources");
	document.getElementById('jstab_resources').className = "jsnav_resources_on";
}

function jsnav_populateimages(idname){
	//document.getElementById('subbox_container').style.display = "none";
	var imagecollection = document.getElementById(idname).getElementsByTagName('img');
	maxpos = parseInt(imagecollection.length);
	var totalwidth = 0;
	var subwidth = 0;
	for (i=0; i <= maxpos-1; i++) {
		 if (0 == i) {
			jsnav_destinations_ar.push(totalwidth);
		} else {
			jsnav_destinations_ar.push(totalwidth = totalwidth+136);
		}
	}
	document.getElementById('imagebox').innerHTML = document.getElementById(idname).innerHTML;
	subwidth = (maxpos-2)*16+32;
/*	for (var i=0; i < maxpos; i++) {
		document.getElementById("subbox_"+i).className = "jsnav_minbox";
	}
	document.getElementById('subbox_container').style.width = subwidth+"px";
	document.getElementById('subbox_container').style.left = (448-subwidth+4)/2+"px";
	document.getElementById('subbox_container').style.display = "block";
*/
	currentposition = 0;
	fliptest(-totalwidth+(136*4),0,"imagebox")
	//js_submb_rndr(0);
}

function getFirstDiv(idname){
    return document.getElementById(idname).getElementsByTagName("div")[0];
}

function shiftnav(startingx,endingx,idname,idname2){fliptest(-startingx,-endingx,idname,idname2);}

function blinknav(xvalue,idname){document.getElementById(idname).style.left = -xvalue+"px";}


function fliptest(startingx,endingx,idname){
	var startx = startingx;
	while (timeouts.length > 0) {
	window.clearTimeout(timeouts.pop());
	}
    var endx = endingx; // where we end at
	var deltax = startx-endx; // how much we want to shift over by
    var numframes = 35;
	var framerate = 35;
	var prev_subnavstartx = 0;
    var incrementdifferences = new Array();
	var incrementdifferences_rev;
    for (var i=0; i < numframes; i++) {
        incrementdifferences.push(deltax*Math.sin(i*Math.PI/2/numframes));
    }
	incrementdifferences_rev = incrementdifferences.reverse();
	for (var i=0; i < numframes; i++) {
		startx = startingx-incrementdifferences_rev.pop();
		if (i== numframes-1){startx = endingx;}
//		var vartimeout = window.setTimeout("doframe("+idname+","+startx+");",framerate*i);
		var vartimeout = window.setTimeout("document.getElementById('"+idname+"').style.left = '"+parseInt(startx)+"px';",framerate*i);
		timeouts.push(vartimeout);

		// setting subnav animation here
		var subnavstartx = Math.floor(startx/-136);
		if (subnavstartx != prev_subnavstartx){
			//timeouts.push(window.setTimeout("js_submb_rndr("+subnavstartx+");",framerate*i+5));
			prev_subnavstartx = subnavstartx;
		}
	}
}

//************************************************************************
// scrollbar navigation stuff
//************************************************************************
// mouse utility movement stuff
var isIE = document.all?true:false;
if (!isIE) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = getMousePosition;
//document.body.onmouseup = deactivatescrollbar;
function getMousePosition(e) {
  var _x;
  var _y;
  if (!isIE) {
    _x = e.pageX;
    _y = e.pageY;
  }
  if (isIE) {
    _x = event.clientX + document.body.scrollLeft;
    _y = event.clientY + document.body.scrollTop;
  }
  jsnav_mousex = -_x
  if (jsnav_scrollmouseactive){
	jsnav_processscrollbar();  
  }
  return true;
}
var jsnav_scrollmouseactive = false;
var jsnav_xoriginclicked;
var jsnav_mousex;
var jsnav_subboxclickednum = 0;
function jsnav_activatescrollbar(num){
	if (document.getElementById("subbox_"+num).className == "jsnav_minbox_on"){
		jsnav_subboxclickednum = num;
		jsnav_scrollmouseactive = true;
		jsnav_xoriginclicked = jsnav_mousex;
		document.body.onmouseup = jsnav_deactivatescrollbar;
		temporarycurrentposition = currentposition;
	} else {
		jsnav_click_flipto(num);
	}
}
function jsnav_deactivatescrollbar(){
	if(jsnav_scrollmouseactive){
		jsnav_scrollmouseactive = false;
		currentposition = temporarycurrentposition;
	}
}
var temporarycurrentposition = 0;
function jsnav_processscrollbar(){
	var deltax = jsnav_xoriginclicked-jsnav_mousex;
	temporarycurrentposition = currentposition+Math.floor(deltax/16);
	if (temporarycurrentposition < 0) {temporarycurrentposition = 0}
	if (temporarycurrentposition > maxpos-jsnav_numdisplayed) {temporarycurrentposition = maxpos-jsnav_numdisplayed}
	//js_submb_rndr(temporarycurrentposition);
	blinknav(jsnav_destinations_ar[temporarycurrentposition],"imagebox");
}






















/*********
 * this function is used to move to the middle of position
 *********/
function jsnav_click_flipto(number){
	var xnumber= number-parseInt(jsnav_numdisplayed/2);
	if (xnumber <=0) {
		xnumber = 0;
	} else if(xnumber > maxpos-jsnav_numdisplayed) {
		xnumber = maxpos-jsnav_numdisplayed;
	} else {
		xnumber = number-parseInt(jsnav_numdisplayed/2);
	}
	jsnav_flipto(xnumber);
}
/*********
 * this function is used to move directly to position
 *********/
function jsnav_flipto(number){
	if(number >= maxpos){number = maxpos;}
	shiftnav(jsnav_destinations_ar[currentposition],jsnav_destinations_ar[number],"imagebox");
	currentposition = number;
}
var jssubnavoriginalstep = 0;
function js_submb_rndr(number){
////debug("subbox render:"+number+":"+maxpos);
	if (number == jssubnavoriginalstep) return; // apparently the subsequent funtions are fairly expensive in ie.. so I'm doing this to cut it short.
	if (number < 0) {number = 0}
	if (number > maxpos-jsnav_numdisplayed) {number = maxpos-jsnav_numdisplayed}
	for (var i=0; i < jsnav_numdisplayed; i++) {
		var prev_xnum = jssubnavoriginalstep+i;
		document.getElementById("subbox_"+prev_xnum).className = "jsnav_minbox";
	}
	for (var i=0; i < jsnav_numdisplayed; i++) {
		var xnum = number+i;
		document.getElementById("subbox_"+xnum).className = "jsnav_minbox_on";
	}
	jssubnavoriginalstep = number;
}
function jsnav_left5(){ var newpos = currentposition - jsnav_numdisplayed; if (newpos < 0) {newpos = 0} jsnav_flipto(newpos); }
function jsnav_right5(){ var newpos = currentposition + jsnav_numdisplayed; if (newpos >= maxpos-jsnav_numdisplayed) {newpos = maxpos-jsnav_numdisplayed} jsnav_flipto(newpos); }


// utility functions

//var js_subclk = false;
//var subscr_x = 0;
var subscr_offset = 0;
/*function js_subscr(xvar){
	if (js_subclk) {
		if (subscr_x != xvar+subscr_offset) {
		//debug("going to:"+xvar);
		js_submb_rndr(subscr_x = xvar+subscr_offset);
		}
	}
	//debug("subscr_x:"+subscr_x);
}

function js_sub_dwn(x){
	if ((x >=currentposition) && (x < (currentposition+5))){ 
		js_subclk = true;
		subscr_x = currentposition;
		subscr_offset = currentposition-x;
		//debug("offset at:"+subscr_offset+" currentposition:"+currentposition);
	}
}
function js_sub_up(x){
	if (js_subclk){
		js_subclk = false;
		if (subscr_x == currentposition){
			jsnav_click_flipto(x);
		} else {
			jsnav_click_flipto(subscr_x+parseInt(jsnav_numdisplayed/2));
		}
	} else {
		jsnav_click_flipto(x);
	}
}
*/



