<!--

function MM_swapImgRestore(o) { //v3.0.1
  var i,x,a=(o)?o:document.MM_sr;
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


if(typeof System == 'undefined') var System = new Object();
System.Browser = {};
System.Browser.name = navigator.appName;

System.Browser.isMSIE = function()
{
	var agent = navigator.userAgent.toLowerCase();
	return(agent.indexOf('msie') > 0);
};

System.Browser.isFF = function()
{
	var agent = navigator.userAgent.toLowerCase();
	return(agent.indexOf('firefox') > 0);
};

function debug()
{
	var v = '';
	var iL = arguments.length;
	for(var i=0; i<iL; i++) v += arguments[i] +' ';
	$('debug').innerHTML = v+ '<br>' + $('debug').innerHTML;
}

/********************************/

var isBusy = false;
var lastLoad = false;
var curPage;
var curMenu;
var prevMenu = 0;
var activeMenus = {};

/********************************/

function menuitem_click(pageId, hoverSource)
{
	// wanneer het menu item niet actief is
	if(pageId != curMenu)
	{
		// vorige menu item opslaan
		prevMenu = curMenu;
		curMenu  = pageId;
		
		MM_swapImgRestore();
		MM_swapImage('menu_img_'+ pageId, '', hoverSource, 1);
	}
}

function menuitem_out(pageId)
{
	if(pageId != curPage)
	{
		if(pageId != curMenu)
		{
			var img = $('menu_img_'+ pageId);
			if(img.oSrc) img.src = img.oSrc;
		}
	}
}

/********************************/

function switchPage(pageId, issub, news, archive)
{
	if(archive == undefined) archive = 0;
	
	var news = (news)
		? pageId
		: false;
	
	if(!isBusy)
	{
		isBusy = true;
		curPage = pageId;
		
		var succes_actions = function(transport)
		{
			var responseText = transport.responseText;
			
			// page content uitfaden
			new Effect.Opacity('pagecontent',
			{
				duration:	0.7,
				fps:		30,
				from:		1,
				to:			0,
				
				beforeStart: function()
				{
					$('pagecontent').style.opacity = "1.0";
					$('pagecontent').style.display = 'block';
				},
				
				// nieuwe content koppelen
				afterFinish: function()
				{
					$("pagecontent").innerHTML = responseText;
					
					try
					{
						$("tekstvlak").style.opacity	= "0.0"; 
						$("tekstvlak").style.filter		= "alpha(opacity=0)"; 
						$("tekstvlak").style.display	= "none";
					}
					catch(e){}
					
					// vervolgens weer infaden
					new Effect.Opacity('pagecontent',
					{
						duration:	1,
						fps:		30,
						from:		0,
						to:			1,
						
						afterFinish: function()
						{
							var finish = function()
							{
								addScrollArea('tekstvlakscroll',	585, (System.Browser.isMSIE()) ? 210 : 250);
								addScrollArea('tekstvlakscroll2',	585, (System.Browser.isMSIE()) ? 210 : 250);
								addScrollArea('tekstvlakscrollnieuws', 130, 358);
								addScrollArea('tekstvlakscrollnieuwscontent', 725, (System.Browser.isMSIE()) ? 370 : 400);
								addScrollArea('tekstvlakscrollcontactcontent', 725, (System.Browser.isMSIE()) ? 380 : 420);
								
								isBusy = false;
								
								if(lastLoad != false)
								{
									var args = lastLoad;
									lastLoad = false;
									
									if(args[0] != curPage)
									{
										switch(args.length)
										{
											case 1:		switchPage(args[0]);					break;
											case 2:		switchPage(args[0], args[1]);			break;
											default:	switchPage(args[0], args[1], args[2]);	break;
										}
									}
								}
							}
							
							if($("tekstvlak"))
							{
								$("tekstvlak").style.display = "block";
								new Effect.Opacity('tekstvlak',
								{
									duration:	0.6,
									fps:		30,
									from:		0,
									to:			1,
									
									afterFinish: function()
									{
										finish();
									}
								});
							}
							else
							{
								finish();
							}
						}
					});
				}
			});
		};
		
		if(news)
		{
			var parameters =
			{
				news			: news,
				calledbyajax	: true,
				issub			: issub,
				archive			: archive
			};
		}
		else
		{
			var parameters =
			{
				calledbyajax	: true,
				issub			: issub,
				page			: pageId,
				archive			: archive
			};
		}
		
		new Ajax.Request("/index.php",
		{
			method:			'get',
			parameters:		parameters,
			onSuccess:		succes_actions
		});
		
		return false;
	}
	else
	{
		lastLoad = arguments;
		return false;
	}
}


// globale array met alle scroll data objecten
var scrollers = [];
function addScrollArea(target, width, height, outside, padding, difference)
{
	if($(target) != null)
	{
		// hoeveel px moeten de pijlen buiten de content vallen (boven en onder)
		if(!outside) var outside = 0;
		// hoeveel px moet er boven en onder de slider zijn
		if(!padding) var padding = 4;
		// hoeveel px moet er bij de scroll content worden opgeteld
		if(!difference) var difference = 20;
		
		// de id van de nieuw aan te maken scroller
		var id = scrollers.length;
		
		// namen van de div's die worden gebruikt
		var scrollContent	= 'scrollContent_'+ id;
		var scrollContainer	= 'scroller_'+ id;
		var scrollTrack		= 'track_'+ id;
		var scrollSlider	= 'slider_'+ id;
		var sliderBody		= 'sliderbody_'+ id;
		
		// data object voor de aan te maken scroller
		var data =
		{
			'target':			target,
			'doScrollUp':		false,
			'scrollUpInt':		null,
			'doScrollDown':		false,
			'scrollDownInt':	null,
			
			'content':		scrollContent,
			'container':	scrollContainer,
			'track':		scrollTrack,
			'slider':		scrollSlider,
			'sliderBody':	sliderBody
		};
		
		// maak een backup van de originele content
		var b = $(target).innerHTML;
		// maak vervolgens een scroller content aan
		var c = '\n		<div class="scroll_content" id="'+ scrollContent +'"></div>'
			+	'		<div class="scroller" id="'+ scrollContainer +'">'
			+	'			<div class="but_up"><a onMouseDown="scrollUp(true, '+ id +');" onMouseUp="scrollUp(false, '+ id +');"><img src="/images/scroll_up.gif"></a></div>'
			+	'			<div class="track" id="'+ scrollTrack +'" style="margin-top: 0px; width: 10px;">'
			+	'				<div class="slider" id="'+ scrollSlider +'" style="cursor: n-resize; width: 10px;">'
			+	'					<div class="slider_body" id="'+ sliderBody +'"></div>'
			+	'				</div>'
			+	'			</div>'
			+	'			<div class="but_down"><a onMouseDown="scrollDown(true, '+ id +');" onMouseUp="scrollDown(false, '+ id +');"><img src="/images/scroll_down.gif"></a></div>'
			+	'		</div>';
		
		// geef target de scroller content
		$(target).innerHTML = c;
		// geef de scroll content div de originele content van target
		$(scrollContent).innerHTML = b;
		// breedte van de scroller van de scroll content aftrekken
		$(scrollContent).style.width = (width - 32) +'px';
		// positie van de scroller aangeven
		$(scrollContainer).style.marginTop = -outside +'px';
		$(scrollContainer).style.marginLeft = (width - 26) +'px';
		
		// hoogte van de scroller track uitrekenen
		var th = (height - 50 + (outside * 2));
		if(System.Browser.isMSIE() && target != 'tekstvlakscroll') th += 40;
		$(scrollTrack).style.height = th +'px';
		
		// padding toevoegen aan slider
		$(scrollSlider).style.paddingTop = padding +'px';
		$(scrollSlider).style.paddingBottom = padding +'px';
	
	
		// totale hoogte van de te scrollen content ophalen
		var scrollTH = $(scrollContent).offsetHeight;
		// totale hoogte wat buiten de scroll content valt
		// (en wat dus gescrollt moet worden)
		var scrollH = (scrollTH - height);
		
		// als er geen te scrollen hoogte is,
		// plaats de originele content weer terug in target
		if(scrollH <= 0)
		{
			$(target).innerHTML = b;
		}
		// anders events toevoegen en Control.Slider aanmaken
		else
		{
			// event gebaseerde functie die het scrollen met de
			// muis wiel mogelijk maakt
			var doScroll = function(event)
			{
				var delta = 0;
				
				/* For IE. */
				if(!event) event = window.event;
				if(event.wheelDelta)
				{ /* IE/Opera. */
					delta = event.wheelDelta/120;
					/** In Opera 9, delta differs in sign as compared to IE. */
					if(window.opera) delta = -delta;
				}
				else if(event.detail)
				{ /** Mozilla case. */
					/** In Mozilla, sign of delta is different than in IE.
					* Also, delta is multiple of 3.
					*/
					delta = -event.detail/3;
				}
		
				/** If delta is nonzero, handle it.
				* Basically, delta is now positive if wheel was scrolled up,
				* and negative, if wheel was scrolled down.
				*/
				if(delta) _scrollWheel(delta, id);
		
				/** Prevent default actions caused by mouse wheel.
				* That might be ugly, but we handle scrolls somehow
				* anyway, so don't bother here..
				*/
				if(event.preventDefault) event.preventDefault();
				
				event.returnValue = false;
			}
			
			// mozilla event toevoegen voor muis wiel
			Event.observe(scrollContent, 'DOMMouseScroll', doScroll);
			// IE/Opera event toevoegen voor muis wiel
			Event.observe(scrollContent, 'mousewheel', doScroll);
			
			
			// vervolgens scroll ratio uitrekenen
			var scrollRatio = (height/scrollTH);
				scrollRatio /= (10-(scrollRatio*scrollRatio));
			
			scrollH += ((outside * 2) + difference);
			
			$(scrollContent).style.height = (System.Browser.isMSIE()) ? height +'px' : (height - 40) +'px';
		
			var slideControl = new Control.Slider(scrollSlider, scrollTrack,
			{
				axis: 'vertical',
				
				onSlide: function(v)
				{
					$(scrollContent).scrollTop = (v * scrollH);
				},
				
				onChange: function(v)
				{
					$(scrollContent).scrollTop = (v * scrollH);
				}
			});
			
			Element.setOpacity(scrollContainer, 1);
		}
		
		data.ratio			= scrollRatio;
		data.slideControl	= slideControl;
		
		scrollers.push(data);
	}
}



	function _scrollWheel(delta, id)
	{
		var data = scrollers[id];
		var s = (delta < 1)
			? data.ratio
			: -data.ratio;
		
		data.slideControl.setValueBy(s*2);
	}

/********************************/

function _scrollUp(id)
{
	var data = scrollers[id];
		data.slideControl.setValueBy(-data.scrollRatio);
		data.scrollUpInt = setTimeout('_scrollUp('+ id +')', 10);
	
	scrollers[id] = data;
}

function scrollUp(activate, id)
{
	var data = scrollers[id];
	if(activate != true)
	{
		clearTimeout(data.scrollUpInt);
		data.doScrollUp = false;
	}
	else if(data.doScrollUp != true)
	{
		data.doScrollUp		= true;
		data.scrollUpInt	= setTimeout('_scrollUp('+ id +')', 10);
	}
	scrollers[id] = data;
}

function _scrollDown(id)
{
	var data = scrollers[id];
		data.slideControl.setValueBy(data.scrollRatio);
		data.scrollDownInt = setTimeout('_scrollDown('+ id +')', 10);
	
	scrollers[id] = data;
}

function scrollDown(activate, id)
{
	var data = scrollers[id];
	if(activate != true)
	{
		clearTimeout(data.scrollDownInt);
		data.doScrollDown = false;
	}
	else if(data.doScrollDown != true)
	{
		data.doScrollDown	= true;
		data.scrollUpInt	= setTimeout('_scrollDown('+ id +')', 10);
	}
	scrollers[id] = data;
}

if(document.layers) document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);

//-->


var MailForm =
{
	submit: function($button, $formName, $container)
	{
		var $params = {};
		var $form = document.forms[$formName +'_form'];
		var $alert = '';
		var $iL = $form.elements.length;
		for(var $i=0; $i<$iL; $i++)
		{
			var $elem = $form.elements[$i];
			if($elem.name)
			{
				var $name = $elem.name;
				var $value = $elem.value;
				
				$params[$name] = $value;
				$alert += $name +': '+ $value +"\n";
			}
		}
		
		$params['__form_name__'] = $formName;
		$button.disabled = true;
		
		new Ajax.Request('/includes/form.php',
		{
			method:		'post',
			parameters:	$params,
			
			onSuccess: function(ajax)
			{
				var $response = ajax.responseText;
				$($container).innerHTML = $response;
			},
			
			onError: function(ajax)
			{
				alert('oops.. error');
			}
		});
	}
};

