// scripts.js - Grinjo VOF
var subMenuTimeoutID, scrollTimeoutID, subMenuLockerTimeoutID;
var visible_sub_menu = false;
var sub_menu_blocker = false;
var section;
var lock = false;
var init = false;
var ie7 = false;

function getEmail(user)
{
	return user+"@leerengedragsadviezen.nl";
}

function addExternalLinks()
{
	if (!document.getElementsByTagName) { return; }
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++)
	{
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
		{
			anchor.target = "_blank";
		}
	}
}

function showSubMenu(mi)
{
	if (!lock)
	{
		if (visible_sub_menu != mi)
		{
			if (visible_sub_menu != false) { hideSubMenu(visible_sub_menu); }
			visible_sub_menu = mi;
		}

		mi = document.getElementById(mi);
		var smh = mi.childNodes[1]; // sub menu holder
		mi.childNodes[0].className = 'mo_item';
		//mi.background = '../images/bg_menu_item_jeugd.gif';
		//alert(mi.innerHTML);


		smh.style.display = 'block';
		smh.style.left = findPosX(mi) + 125 + 'px';
		smh.style.top = findPosY(mi) + 3 + 'px';
	}
	clearTimeout(subMenuTimeoutID);
}
function doSubMenu(mid)
{
	showSubMenu(mid);
	lock = true;
	setTimeout('clearLock()',700);

	//eval('document.getElementById(mid).onmouseout = function() { subMenuTimeoutID = setTimeout("hideSubMenu(\'' + mi.id + '\')",700);};
	eval('document.getElementById(\''+mid+'\').onmouseover = function() { showSubMenu(\'' + mid + '\'); };');
	eval('document.getElementById(\''+mid+'\').onmouseout = function() { subMenuTimeoutID = setTimeout(\'hideSubMenu("' + mid + '")\',700); };');
}
function clearLock()
{
	lock = false;
}
function hideSubMenu(mi)
{

	document.getElementById(mi).childNodes[1].style.display = 'none';
	document.getElementById(mi).childNodes[0].className = '';
	mi.onmouseout = null;
	eval('document.getElementById(\''+mi+'\').onmouseover = function() { doSubMenu(\'' + mi + '\'); };');

}

window.onload = function()
{
	if (document.all && typeof document.documentElement.style.maxHeight != "undefined") {
		ie7 = true;
	}

	var menu_items = document.getElementById('menu').childNodes;
	section = document.location.href.indexOf('ouders') == -1 ? 'jeugd' : 'ouders';

	for (var i = 0; i < menu_items.length; i++)
	{
		if (menu_items[i].childNodes.length > 1)
		{ // menu item heeft een submenu
			eval('menu_items[i].onmouseover = function() { doSubMenu(\'' + menu_items[i].id + '\'); };');
			//eval('menu_items[i].onmouseover = function() { showSubMenu(\'' + menu_items[i].id + '\'); };');
			//eval('menu_items[i].onmouseout = function() { subMenuTimeoutID = setTimeout(\'hideSubMenu("' + menu_items[i].id + '")\',700); };');
		}
	}

	if (document.all)
	{
		document.getElementById('content').style.clip = 'rect(0px,410px,490px,0px)';
		document.getElementById('scroll_up_'+section).onmouseover = function() { ScrollBar.doScroll(10,1); };
		document.getElementById('scroll_down_'+section).onmouseover = function() { ScrollBar.doScroll(-10,1); };

		document.getElementById('content').onmousewheel = function() {
			ScrollBar.doScroll((event.wheelDelta/12),1);
			ScrollBar.stopScroll();
			return false;
		};
	}
	ScrollBar.init('content');
	// open all rel="external" links in a new window
	addExternalLinks();

}

function findPosX(obj)
{ // taken from quirksmode.org
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{ // taken from quirksmode.org
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

var ScrollBar = {
	cur_y_pos: null,
	obj: null,
	target:null,
	left_margin: (document.all && !ie7 ? 24 : 29),
	bottom_margin:20,
	top_margin: 22,
	is_grabbed:false,
	grab_offset:null,
	content_top: (document.all || ie7 ? 0 : 116),
	clip_top:0,
	step:10,
	clip_height:490,
	init: function(target)
	{
		ScrollBar.left_margin = (document.all && !ie7 ? 24 : 29);
		ScrollBar.content_top = (document.all && !ie7 ? 0 : 116),

		ScrollBar.obj = document.getElementById('scroll_bar_'+section);
		ScrollBar.target = document.getElementById(target);

		if (ScrollBar.target.offsetHeight > ScrollBar.clip_height)
		{ // scroll bar is needed
			// position the scrollbar
			ScrollBar.obj.style.top = findPosY(ScrollBar.target.parentNode) + ScrollBar.top_margin + 'px';
			ScrollBar.obj.style.left = findPosX(ScrollBar.target.parentNode) + ScrollBar.target.offsetWidth + ScrollBar.left_margin + 'px';
			//ScrollBar.obj.style.height = Math.max((ScrollBar.target.offsetHeight - ScrollBar.clip_height),10) + 'px';
			ScrollBar.obj.style.height = (ScrollBar.clip_height*(ScrollBar.clip_height/ScrollBar.target.offsetHeight)) + 'px';

			// add event handlers
			ScrollBar.obj.onmousedown 	= ScrollBar.grabBar;
			document.onmouseup 		= ScrollBar.releaseBar;
			document.onmousemove 		= ScrollBar.moveBar;
			document.onmouseover 		= ScrollBar.showPointer;
			document.onmouseout 		= ScrollBar.hidePointer

			ScrollBar.cur_y_pos = findPosY(ScrollBar.obj) + ScrollBar.top_margin;
		}
		else
		{ // hide scroll bar
			ScrollBar.obj.style.display = 'none';
		}
	},
	doScroll:function(d,updateScrollBar)
	{
		if ((ScrollBar.clip_top - d) >= 0 && (ScrollBar.clip_top-d+ScrollBar.clip_height <= ScrollBar.target.offsetHeight))
		{
			ScrollBar.clip_top -= d;
			ScrollBar.content_top += d;
			ScrollBar.target.style.top = ScrollBar.content_top + 'px';
			ScrollBar.target.style.clip = 'rect(' + (ScrollBar.clip_top) + 'px 410px ' + (ScrollBar.clip_top + ScrollBar.clip_height) + 'px 0px)';
		}
		//document.getElementById('output').innerHTML = (clip_top+490) + ':' + obj.offsetHeight;

		if (updateScrollBar)
		{
			ScrollBar.obj.style.top = findPosY(ScrollBar.target.parentNode) + ScrollBar.top_margin + ((findPosY(ScrollBar.target.parentNode) + ScrollBar.top_margin - findPosY(ScrollBar.target)) / ScrollBar.target.offsetHeight) * ScrollBar.clip_height + 'px';
		}
		else
		{
			var updateScrollBar = false;
		}

		scrollTimeoutID = setTimeout('ScrollBar.doScroll(' + d + ',' + updateScrollBar +')',100);
	},
	stopScroll:function() {
		if (scrollTimeoutID != undefined) { clearTimeout(scrollTimeoutID); }
	},
	grabBar:function(e)
	{
		if (!e) var e = window.event;
		ScrollBar.is_grabbed = true;
		ScrollBar.grab_offset = e.clientY - findPosY(ScrollBar.obj) + ScrollBar.top_margin;
	},
	moveBar:function(e)
	{
		if (ScrollBar.is_grabbed)
		{
			if (!e) var e = window.event;
			// stop event bubling
			if (e.stopPropagation) e.stopPropagation();
			e.cancelBubble = true;

			var new_pos = e.clientY - ScrollBar.grab_offset;

			if (new_pos > findPosY(ScrollBar.target.parentNode) + ScrollBar.top_margin
					&& (new_pos+ScrollBar.obj.offsetHeight < findPosY(ScrollBar.target.parentNode)+ ScrollBar.top_margin+ScrollBar.clip_height))
			{
				ScrollBar.obj.style.top = new_pos + 'px';
				ScrollBar.doScroll((ScrollBar.cur_y_pos - findPosY(ScrollBar.obj))*ScrollBar.target.offsetHeight/ScrollBar.clip_height);
				ScrollBar.stopScroll();
				ScrollBar.cur_y_pos = findPosY(ScrollBar.obj);
			}
		}
	},
	releaseBar:function()
	{
		ScrollBar.is_grabbed = false;
	},
	showPointer: function()
	{
		ScrollBar.obj.style.cursor = 'pointer';
	},
	hidePointer: function()
	{
		ScrollBar.obj.style.cursor = '';
	}
}


