// JavaScript Document
/*
Additional JavaScript that can be useful.
*/

function show(id){
	obj = tvl_sb_getObject(id);
	if(obj != undefined){
		obj.style.display = 'block';
	}
}

/*
JavaScript needed for the scrollbar.

Created by: TvL Design
Date: 05 january 2009
Version: 0,2 * Beta
Prefix: tvl_sb stands for TvL Design Scrollbar and is just to make sure you are not overruling any of your variables and functions
*/

var tvl_sb_height = 0;
var tvl_sb_mousex = 0;
var tvl_sb_mousey = 0;
var tvl_sb_grabx = 0;
var tvl_sb_graby = 0;
var tvl_sb_orix = 0;
var tvl_sb_oriy = 0;
var tvl_sb_elex = 0;
var tvl_sb_eley = 0;
var tvl_sb_algor = 0;
var tvl_sb_maxHeight = 0;
var tvl_sb_scrollHeight; //totalheight - height venster
var tvl_sb_slidebarHeight;
var tvl_sb_textboxObj;
var tvl_sb_sliderObj;
var tvl_sb_scroll = true;
var tvl_sb_box_pos;

var tvl_sb_dragobj = null;

if (window.addEventListener){
	window.addEventListener('DOMMouseScroll', tvl_sb_wheel, false);
}
window.onmousewheel = document.onmousewheel = tvl_sb_wheel;

function tvl_sb_init(tvl_sb_box_id, tvl_sb_box_content_id, tvl_sb_slider_id, tvl_sb_slidebar_id){
	
	tvl_sb_box_height = tvl_sb_getObject(tvl_sb_box_id).offsetHeight;
	tvl_sb_box_pos = tvl_sb_findPos(tvl_sb_getObject(tvl_sb_box_id));
	tvl_sb_box_content_height = tvl_sb_getObject(tvl_sb_box_content_id).offsetHeight;
	tvl_sb_slider_height = tvl_sb_getObject(tvl_sb_slider_id).offsetHeight;
	tvl_sb_slidebar_height = tvl_sb_getObject(tvl_sb_slidebar_id).offsetHeight;
	
	if(tvl_sb_box_content_height <= tvl_sb_box_height){
		tvl_sb_scroll = false;
		tvl_sb_getObject(tvl_sb_slidebar_id).style.display = 'none';
		tvl_sb_getObject(tvl_sb_slider_id).style.display = 'none';
	}
	
	tvl_sb_scrollHeight = (tvl_sb_box_content_height - tvl_sb_box_height);
	tvl_sb_slidebarHeight = (tvl_sb_slidebar_height - tvl_sb_slider_height);
	tvl_sb_textboxObj = tvl_sb_box_content_id;
	tvl_sb_sliderObj = tvl_sb_slider_id;
	document.onmousemove = tvl_sb_getMouseXY;
	tvl_sb_getMouseXY();
	if(tvl_sb_maxHeight == 0){
		tvl_sb_obj = tvl_sb_getObject(tvl_sb_sliderObj);
		tvl_sb_pos = tvl_sb_findPos(tvl_sb_obj);
		tvl_sb_maxHeight = tvl_sb_pos[1] - 100;
	}
}

function tvl_sb_handle(tvl_sb_delta) {
	if(tvl_sb_scroll != false){
		var tvl_sb_difference = 20;
		if(navigator.userAgent.indexOf("Opera") == 0){
			tvl_sb_difference = -20;
		}
		var tvl_sb_temp = tvl_sb_delta * tvl_sb_difference;
		tvl_sb_height += tvl_sb_temp;
		tvl_sb_sliderHeight = tvl_sb_maxHeight - (tvl_sb_height * (tvl_sb_slidebarHeight / tvl_sb_scrollHeight));
		if(tvl_sb_height >= 0){
			tvl_sb_height = 0;
		}
		if(tvl_sb_height <= -tvl_sb_scrollHeight){
			tvl_sb_height = -tvl_sb_scrollHeight;
		}
		if(tvl_sb_sliderHeight <= tvl_sb_maxHeight){
			tvl_sb_sliderHeight = tvl_sb_maxHeight;
		}
		if(tvl_sb_sliderHeight >= (tvl_sb_maxHeight + tvl_sb_slidebarHeight)){
			tvl_sb_sliderHeight = (tvl_sb_maxHeight + tvl_sb_slidebarHeight);
		}
		tvl_sb_getObject(tvl_sb_textboxObj).style.marginTop = tvl_sb_height + 'px';
		tvl_sb_getObject(tvl_sb_sliderObj).style.top = tvl_sb_sliderHeight + 'px';
	}
}

function tvl_sb_wheel(event){
	if(tvl_sb_scroll != false){
		var tvl_sb_delta = 0;
		if(!event){
			event = window.event;
		}
		if (event.wheelDelta){
			tvl_sb_delta = event.wheelDelta/120; 
			if (window.opera){
				tvl_sb_delta = -tvl_sb_delta;
			}
		}
		else if (event.detail){
			tvl_sb_delta = -event.detail/3;
		}
		if(tvl_sb_delta){
			tvl_sb_handle(tvl_sb_delta);
		}
	}
}

function tvl_sb_falsefunc(){
	return false;
}

function tvl_sb_findPos(tvl_sb_obj) {
	var tvl_sb_curleft = tvl_sb_curtop = 0;
	if (tvl_sb_obj.offsetParent) {
		tvl_sb_curleft = tvl_sb_obj.offsetLeft
		tvl_sb_curtop = tvl_sb_obj.offsetTop
		while (tvl_sb_obj = tvl_sb_obj.offsetParent) {
			tvl_sb_curleft += tvl_sb_obj.offsetLeft
			tvl_sb_curtop += tvl_sb_obj.offsetTop
		}
	}
	return [tvl_sb_curleft,tvl_sb_curtop];
}

function tvl_sb_anchor(tvl_sb_obj) {
	var temp_obj = tvl_sb_getObject(tvl_sb_obj);
	var temp_pos = tvl_sb_findPos(temp_obj);
	
	var temp_height = temp_pos[1] - tvl_sb_box_pos[1];
	var scroll_height = (temp_height / tvl_sb_scrollHeight) * (tvl_sb_maxHeight + tvl_sb_slidebarHeight);
	tvl_sb_height = -(temp_height);
	
	if(temp_height > tvl_sb_scrollHeight){
		temp_height = tvl_sb_scrollHeight;
		tvl_sb_height = -(tvl_sb_scrollHeight);
		scroll_height = tvl_sb_maxHeight + tvl_sb_slidebarHeight;
	}
	
	tvl_sb_getObject(tvl_sb_textboxObj).style.marginTop = -(temp_height) + 'px';
	tvl_sb_getObject(tvl_sb_sliderObj).style.top = scroll_height + 'px';
}

function tvl_sb_getMouseXY(e){
	if(tvl_sb_scroll != false){
		if(!e){
			e = window.event;
		}
		if(e){ 
			if(e.pageX || e.pageY){
				tvl_sb_mousex = e.pageX;
				tvl_sb_mousey = e.pageY;
				tvl_sb_algor = '[e.pageX]';
				if (e.clientX || e.clientY){
					tvl_sb_algor += ' [e.clientX] ';
				}
			}
			else if(e.clientX || e.clientY){
				tvl_sb_mousex = e.clientX + document.body.scrollLeft;
				tvl_sb_mousey = e.clientY + document.body.scrollTop;
				tvl_sb_algor = '[e.clientX]';
				if(e.pageX || e.pageY){
					tvl_sb_algor += ' [e.pageX] ';
				}
			}
		}
	}
}

function tvl_sb_grab(){
	if(tvl_sb_scroll != false){
		document.onmousedown = tvl_sb_falsefunc;
		tvl_sb_dragobj = tvl_sb_getObject(tvl_sb_sliderObj);
		//dragobj = context;
		//dragobj.style.zIndex = 100;
		document.onmousemove = tvl_sb_drag;
		document.onmouseup = tvl_sb_drop;
		tvl_sb_grabx = tvl_sb_mousex;
		tvl_sb_graby = tvl_sb_mousey;
		tvl_sb_pos = tvl_sb_findPos(tvl_sb_dragobj);
		
		tvl_sb_elex = tvl_sb_orix = tvl_sb_pos[0];
		tvl_sb_eley = tvl_sb_oriy = tvl_sb_pos[1];
		tvl_sb_getMouseXY();
	}
}

function tvl_sb_drag(e){
	if(tvl_sb_scroll != false){
		if (tvl_sb_dragobj){
			document.body.style.cursor = 'pointer';
			tvl_sb_elex = tvl_sb_orix + (tvl_sb_mousex-tvl_sb_grabx);
			tvl_sb_eley = tvl_sb_oriy + (tvl_sb_mousey-tvl_sb_graby);
			//dragobj.style.position = "absolute";
			//dragobj.style.left = elex + 'px';
			if(tvl_sb_eley <= tvl_sb_maxHeight){
				tvl_sb_height = 0;
				tvl_sb_dragobj.style.top = tvl_sb_maxHeight + 'px';
				tvl_sb_getObject(tvl_sb_textboxObj).style.marginTop = 0 + 'px';
			}
			else if(tvl_sb_eley >= (tvl_sb_maxHeight + tvl_sb_slidebarHeight)){
				tvl_sb_height = -tvl_sb_scrollHeight;
				tvl_sb_dragobj.style.top = (tvl_sb_maxHeight + tvl_sb_slidebarHeight) + 'px';
				tvl_sb_getObject(tvl_sb_textboxObj).style.marginTop = -tvl_sb_scrollHeight + 'px';
			}
			else{
				tvl_sb_height = -((tvl_sb_scrollHeight/tvl_sb_slidebarHeight)*(tvl_sb_eley-tvl_sb_maxHeight));
				tvl_sb_dragobj.style.top = tvl_sb_eley + 'px';
				tvl_sb_getObject(tvl_sb_textboxObj).style.marginTop = tvl_sb_height + 'px';
			}
		}
		tvl_sb_getMouseXY(e);
		return false;
	}
}

function tvl_sb_drop(){
	if(tvl_sb_scroll != false){
		if (tvl_sb_dragobj){
			document.body.style.cursor = 'default';
			//dragobj.style.zIndex = 0;
			tvl_sb_dragobj = null;
		}
		tvl_sb_getMouseXY();
		document.onmousemove = tvl_sb_getMouseXY;
		document.onmouseup = null;
		document.onmousedown = null;
	}
}

function tvl_sb_getObject(id){
	tvl_sb_obj = document.getElementById(id);
	if(tvl_sb_obj != undefined){
		return tvl_sb_obj;
	}
}

function getPixelsFromTop(obj){
	objFromTop = obj.offsetTop;
	while(obj.offsetParent!=null) {
		objParent = obj.offsetParent;
		objFromTop += objParent.offsetTop;
		obj = objParent;
	}
	return objFromTop;
}