//product vars
var SLIDER_RANGE;
var SLIDER_VALUES;
var SLIDER;
var SLIDE = false;
var SLIDE_VAL = 0;
var TRACK;
var TRACK_BUTTON_UP;
var TRACK_BUTTON_DOWN;
var NAV_LINKS;
var TIMERID;
var CURRENT_PANE;
var FIRST_DIV = 'features';
var VIEWPORT_HEIGHT;
var INCREMENT = 5;

function initProductPage() {
	TRACK = $("track");
	TRACK_BUTTON_UP = $("scroll_up");
	TRACK_BUTTON_DOWN = $("scroll_down");
	NAV_LINKS = $("product_navigation").getElementsByTagName('a');
	VIEWPORT_HEIGHT = Element.getHeight(FIRST_DIV);
	var objs = document.getElementsByClassName('tool');//would this crash safari?
	for (var i = 0; i < objs.length; i++) {
		Element.hide(objs[i].id);

	}
//	if (exists("email_information")) { Element.hide("email_information"); }
//	if (exists("photo_gallery")) { Element.hide("photo_gallery");}
//	if (exists("watch_demo")) { Element.hide("watch_demo");}
	showDiv(FIRST_DIV);
	var oElementDown = document.getElementById("scroll_down");
	var oElementUp = document.getElementById("scroll_up");
	YAHOO.util.Event.addListener(oElementDown, "mousedown", slideDownStart);
	YAHOO.util.Event.addListener(oElementDown, "mouseup", slideEnd);
	YAHOO.util.Event.addListener(oElementUp, "mousedown", slideUpStart);
	YAHOO.util.Event.addListener(oElementUp, "mouseup", slideEnd);
}

function slideDownStart(e) {SLIDE = true;checkSlider();TIMERID = window.setInterval("slideDown()",15);}
function slideUpStart(e) {SLIDE = true;checkSlider();TIMERID = window.setInterval("slideUp()",15);}
function slideUp() { if (SLIDE == true) { if (SLIDE_VAL >= 0) { SLIDE_VAL = SLIDE_VAL-1;SLIDER.setValue(SLIDE_VAL);}}}
function slideDown() { if (SLIDE == true) { if (SLIDE_VAL <= SLIDER_RANGE) { SLIDER.setValue(SLIDE_VAL++);}}}
function slideEnd(e) { SLIDE = false;window.clearInterval(TIMERID);resetSlider()}

function resetSlider() {
	if (SLIDE_VAL < 0) {SLIDE_VAL = 0;
	} else if (SLIDE_VAL > SLIDER_RANGE) {SLIDE_VAL = SLIDER_RANGE;}
}

function checkSlider() {SLIDE_VAL = $(CURRENT_PANE).scrollTop;}

function getDivScrollHeight(id) {
	var totalHeight = $(id).scrollHeight;
	return totalHeight;
}

function showScroll(id) {
	if (getDivScrollHeight(id) > VIEWPORT_HEIGHT) {//we need a slider
		var stopAtHeight = (getDivScrollHeight(id) - Element.getHeight(id));
		var j = Math.round( stopAtHeight / INCREMENT);
		SLIDER_VALUES=new Array(j) ;
		var inc = 0;	
		for (var i = 0; i < j; i++) {
			if (inc < stopAtHeight) {
				SLIDER_VALUES[i] = inc;
				inc+= INCREMENT;
			}
		}
		SLIDER_RANGE=Math.round(stopAtHeight);
		SLIDER_VALUES[j]=SLIDER_RANGE;
		TRACK.style.visibility="visible";		
		TRACK_BUTTON_UP.style.visibility="visible";
		TRACK_BUTTON_DOWN.style.visibility="visible";				
		initSlider(SLIDER_RANGE,SLIDER_VALUES,id);
	} else {
		TRACK.style.visibility="hidden";
		TRACK_BUTTON_UP.style.visibility="hidden";
		TRACK_BUTTON_DOWN.style.visibility="hidden";				
	}
}

function showDiv(id) {
	reset(id);
	CURRENT_PANE = id;
	//$(id).scrollTop=0; /* crashing safari */
	$(id).style.visibility = 'hidden';
	$(id).style.display = 'block';
	showScroll(id);
	$(id).style.visibility = 'visible';
	$(id).style.display = 'none';
	new Effect.Appear(id, { duration: 0.5 });
}

function reset(id) {
	for (var i = 0; i < NAV_LINKS.length; i++) {
		(NAV_LINKS[i].id == ('nav_'+id)) ? NAV_LINKS[i].className = 'on' : NAV_LINKS[i].className = 'off';
		var divObj = $(getDivName(NAV_LINKS[i].id));
		Element.hide(divObj.id);
		divObj.style.visibility = 'hidden';
	}
}

function getDivName(str) {return divID = str.substring(4,str.length);}

function initSlider(SLIDER_RANGE,SLIDER_VALUES,divID) {
	SLIDER = new Control.Slider('handle',$('track_slot'),{axis:'vertical',range:$R(0,SLIDER_RANGE),
  	values:SLIDER_VALUES, 
    onSlide:function(v){document.getElementById(divID).scrollTop=v;},
    onChange:function(v){document.getElementById(divID).scrollTop=v;}});
}