
// --------------------- HP Scroller code -----------------------------------------

var setmove = null;
var setmovestep = null;

// set the delay speed at which the scroller moves to the new position (1 = no delay; larger numbers = more delay)
	divMove = 4;

var divrepos = 170;



var posfix = 0;
var count = 0;
var fixcount = 0;


function scrollNav(move,step) {
	if (move == 'stop') {
		if (setmove != null) clearTimeout(setmove);
		if (setmovestep != null) clearTimeout(setmovestep);
		setmove = null;
		setmovestep = null;
		scrollmove('stop');
		return;
	}

	if (step != null && (setmove != null || setmovestep != null)) {
		return;
	}
	else if (step != null && timers.length > 0) {
	//	return;
	}
	else if (step != null && (setmove == null && setmovestep == null)) {
		resettimers();
	}

	scrollmove(move,step);
	//count++;
	//fixcount++;
}

function scrollbars(divpos,scrollend) {
	var divback = document.getElementById('scrollback');
	var divfwd = document.getElementById('scrollfwd');

	if (divpos >= 0) {
		if (divback.style.visibility == 'visible') {
			fade(divback.id,100,0,.2);
			hideback = setTimeout('document.getElementById("'+divback.id+'").style.visibility="hidden"',300);
			timers.push(hideback);
		}
	}

	if (scrollend <= (divrepos * scroll_cols)) {
		if (divfwd.style.visibility == 'visible') {
			fade(divfwd.id,100,0,.2);
			hidefwd = setTimeout('document.getElementById("'+divfwd.id+'").style.visibility="hidden"',300);
			timers.push(hidefwd);
		}
	}
}

function scrollmove(move,step) {
	scrolldiv = document.getElementById ? document.getElementById('scrollsubshell2') : document.all('scrollsubshell2');
	var divback = document.getElementById('scrollback');
	var divfwd = document.getElementById('scrollfwd');

	//divrepos = 170;
	scrollw = divrepos * (scroll_items);
	divpos = scrolldiv.offsetLeft;
	scrollend = divpos + scrollw;
	divStep = null;

	if (move == "stop") {
		scrollbars(divpos,scrollend);
		return;
	}

	if (divMove < 1) {
		divMove = 1;
	}

	if (step != null) {
		//divStep = step;
		divStep = divMove;
	}
	else {
		divStep = divMove;
	}

	count++;

	if ((divrepos/divMove) != parseInt(divrepos/divMove)) {
		if (count == divStep) {
			posfix = ((divrepos/divMove) - parseInt(divrepos/divMove)) * divMove;
			count = 0;
		}
	}

//document.getElementById('test').innerHTML += count + ", " + posfix + "<br>";

	if (move == 'back') {
		if (divpos < 0) {
			if (divfwd.style.visibility != 'visible') {
				divfwd.style.visibility = 'visible';
				fade(divfwd.id,0,100,.2);
			}
			divpos = divpos + Math.floor(divrepos/divStep) + posfix;
		}
		/*else {
			if (divback.style.visibility == 'visible') {
				fade(divback.id,100,0,.2);
				hideback = setTimeout(divback.style.visibility='hidden',300)
				timers.push(hideback);
			}
		}*/
	}
	else if (move == 'fwd') {
		if ((scrollend > ((divrepos * scroll_cols) /*+ fixcount*/))) {
			if (divback.style.visibility != 'visible') {
				divback.style.visibility = 'visible';
				fade(divback.id,0,100,.2);
			}
			divpos = divpos - Math.floor(divrepos/divStep) - posfix;
		}
		/*else {
			if (divfwd.style.visibility == 'visible') {
				fade(divfwd.id,100,0,.2);
				hidefwd = setTimeout(divfwd.style.visibility='hidden',300)
				timers.push(hidefwd);
			}
		}*/
	}

	posfix = 0;

	//setmovestep = setTimeout('document.getElementById("'+scrolldiv.id+'").style.left="'+divpos+'px"',0);
	scrolldiv.style.left = divpos + "px";
	if (step != null) {
		for (i=1; i<divMove; i++) {
			setmovestep = setTimeout("scrollNav('"+move+"')", (100*i));
		}
		setTimeout("scrollNav('stop')", (100*divMove));
	}
	else if (setmovestep == null) {
		setmove = setTimeout("scrollNav('"+move+"')", 100);
	}
}



function scrollinit() {
	if (scroll_items > scroll_cols) {
		var scrollbar_fwd = document.getElementById('scrollfwd');
		scrollbar_fwd.style.visibility = "visible";
		setopacity(scrollbar_fwd.id,100)
	}
}


// --------------------- Layer Fade code -----------------------------------------


timers = new Array();

function resettimers() {
	for(i=0; i<timers.length; i++) {
		clearTimeout(timers[i]);
	}
	timers = new Array();
}

function setopacity(thisdiv,percent,ignore) {
	thefadediv = document.getElementById(thisdiv);
	if (thefadediv) {
		thefadediv.style.opacity = (percent/101);
		thefadediv.style.MozOpacity = (percent/101);
		thefadediv.style.KhtmlOpacity = (percent/100);
		if (ignore != 'ignore_ie') thefadediv.style.filter = "alpha(opacity=" + percent + ")";
	}
}

function fade(thisdiv,start,end,dur,fps,ignore) {
	if (!fps) {
		fps = 15;
	}

	if (!ignore) {
		ignore = null;
	}

	if (!dur && (fade_duration && fade_duration != null)) {
		dur = fade_duration;
	}

	var fadesteps = (dur * fps);
	var fadestepdur = Math.round((dur * 1000) / fadesteps);

	fadeopac = start;
	if (start < end) {
		var opacstep = ((end - start) / fadesteps);
		for(i=0; i<=fadesteps; i++) {
			window['fade' + i] = setTimeout("setopacity('" + thisdiv + "'," + fadeopac + ",'" + ignore + "')",(i * fadestepdur));
			timers.push(window['fade' + i]);
			fadeopac = (i==(fadesteps-1)) ? end : (fadeopac + opacstep);
		}
	}
	else if (start > end) {
		var opacstep = ((start - end) / fadesteps);
		for(i=0; i<=fadesteps; i++) {
			window['fade' + i] = setTimeout("setopacity('" + thisdiv + "'," + fadeopac + ",'" + ignore + "')",(i * fadestepdur));
			timers.push(window['fade' + i]);
			fadeopac = (i==(fadesteps-1)) ? end : (fadeopac - opacstep);
		}
	}
}


// --------------------- Features Resize code -----------------------------------------

function setfeaturesize() {
	var sizearr = new Array();
	var htdiff = document.getElementById('featureimg1').height; // height of the feature images
	var col1 = document.getElementById('column1');
	var col2 = document.getElementById('column2');
	var scrolldiv1 = document.getElementById('scrollarea');
	var scrolldiv2 = document.getElementById('scrollsubshell1');
	var scrolldiv3 = document.getElementById('scrollsubshell2');
	var scrollbar_back = document.getElementById('scrollback');
	var scrollbar_fwd = document.getElementById('scrollfwd');

	var ftdivs = col1.getElementsByTagName("div");

	for(var i=0;i<ftdivs.length;i++) {
		if (ftdivs[i].className == "feature") {
			sizearr[i] = ftdivs[i].offsetHeight;
		}
	}
	sizearr[sizearr.length] = (col2.offsetHeight - htdiff);

	sizearr.sort(function(a,b){return b - a})

	for(var i=0;i<ftdivs.length;i++) {
		if (ftdivs[i].className == "feature") {
			ftdivs[i].style.height = sizearr[0] + 'px';
		}
	}
	col2.style.height = (sizearr[0] + htdiff) + 'px';
	scrolldiv1.style.height = (sizearr[0] + htdiff) + 'px';
	scrolldiv2.style.height = (sizearr[0] + htdiff) + 'px';
	scrolldiv3.style.height = (sizearr[0] + htdiff) + 'px';
	scrollbar_back.style.height = (sizearr[0] + htdiff) + 'px';
	scrollbar_fwd.style.height = (sizearr[0] + htdiff) + 'px';
}


// -------------------------------------------------------------------------------


window.onload=function() {
	setfeaturesize();
	scrollinit();
}


