// woensdag 30 november 2011  -  2011-11-30

/* Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 *
 * Version: 3.0.2
 * 
 * Requires: 1.2.2+
 */
;(function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(f){var d=[].slice.call(arguments,1),g=0,e=true;f=c.event.fix(f||window.event);f.type="mousewheel";if(f.wheelDelta){g=f.wheelDelta/120}if(f.detail){g=-f.detail/3}d.unshift(f,g);return c.event.handle.apply(this,d)}})(jQuery);
/*   
	Copyright (c) 2010 Frank Fahner (http://wijmakenhet.nl)
	met dank aan Brandon Aaron, want deze funcie leunt op  jquery.mousewheel.js / jquery.mousewheel.min.js  .... 
*/

/*
	in de HEAD <script.....>
	
	var gWH = 0; var gWW = 0; // var raam1so = null;

$(document).ready(function (){
	gWH = $(window).height(); gWW = $(window).width();

	knopA = [ -40, -1, 190, 57, "", 6 , ".png" ];
	raam1so = new jq_scrollObj("raam1");

	knopA = [ -12, -5, 45, 50, "b", 6 , ".png" ]; // "b"  is de prefix  in de naam
	raam2so = new jq_scrollObj("raam2");
});  </scrip>...
	
	in de BODY
	<div id='raam1'> </div> voor het raam en <div id='raam1_inhoud' > </div>   voor de tekst 
*/
function jq_scrollObj(ra, knA) // als het raam niet tot aan de bodem vh venster moet reiken...
{
	this.maxp = knA[5];
	this.naam = ra;
	this.raamid = "#"+ra;
	this.$raam = $(this.raamid); //.parent();
	this.$raam_inhoud = this.$raam.children(":first");
	// left, top, width en height zijn al in <style>...</style>  bepaald,    width evt ook
	raamleft = this.$raam.position().left; raamtop = this.$raam.position().top;
	raamwidth = this.$raam.width();  raamheight = this.$raam.height();
	this.$raam.css({ overflow:'hidden' });

	if (this.$raam_inhoud.height() < raamheight) this.$raam_inhoud.height(raamheight); 
	// toon het aan de wereld...
	this.$raam.css({visibility: 'visible'});

	$("<div id='" + this.naam + "_ka' ></div><div id='" + this.naam + "_kb' ></div>").insertAfter(this.$raam);
	this.$ka = $(this.raamid + "_ka");
	this.$kb = $(this.raamid + "_kb");
	
	knx = knA[0];kny = knA[1];knwidth = knA[2];knheight = knA[3];
	knleft = raamleft + knx;katop = raamtop + kny;
	kbtop = (raamtop + raamheight) -(kny + knheight);
	this.knpre = knA[4];  //  a als apup1.jpg  of   bal als balpup1.png en balpdown1.gif.  MEESTAL "" empty dus....
	this.maxp = knA[5];
	this.knext = knA[6]; // bv   ".png"   of    ".jpg"   

	this.$ka.css({ position: 'absolute', backgroundColor:'transparent', lineHeight:'1px', fontSize:'1px', zIndex:'91'  });

	this.$ka.css({top : katop, left : knleft , width : knwidth , height : knheight , backgroundImage : 'url(gifjpg/basis/' + this.knpre + 'pup' + this.maxp + this.knext + ')' });
	
	this.$kb.css({ position: 'absolute', backgroundColor:'transparent', lineHeight:'1px', fontSize:'1px', zIndex:'91'  });
	this.$kb.css({ top	: kbtop, left : knleft , width : knwidth , height : knheight ,backgroundImage : "url(gifjpg/basis/" +  this.knpre +  "pdown1" + this.knext + ")" });
	
	this.st = 0;
	this.scrollinterval = null;
	this.nrimg = 0;
	this.maxscroll = this.$raam_inhoud.height() - raamheight + 20;
		
	if (this.maxscroll <= 0) // als er niet gescrolld hoeft te worden...
	{ this.$ka.hide(); this.$kb.hide(); }
	
	this.$ka.hover(
		function (){vthis.scrollinterval = setInterval(vthis.naam + "so.overKa()", 100);},
		function (){eval(vthis.naam+"so.outKa()");}
	);
	var vthis = this;
	this.$kb.hover(
		function (){vthis.scrollinterval = setInterval(vthis.naam+"so.overKb()", 100);},
		function (){eval(vthis.naam + "so.outKb()");}
	);
	this.$raam.mousewheel(
		function(event, delta)
		{
			if (delta > 0)
				eval(vthis.naam + "so.overKa()");
			else if (delta < 0)
				eval(vthis.naam + "so.overKb()");
			return false; // prevent default
		}
	).hover(
		function(){},
		function(){eval(vthis.naam + "so.outKa()");eval(vthis.naam + "so.outKb()");}
	);

	this.setSt = so_setSt;
	this.outKab = so_outKab;
	this.overKa = so_overKa;
	this.outKa = so_outKa;
	this.overKb = so_overKb;
	this.outKb = so_outKb;
	this.update = so_update;
	return this;
}

	function so_setSt(p_st){
		this.st = p_st;if (p_st < 0) this.st = 0;else if (p_st > this.maxscroll) this.st = this.maxscroll;
		this.$raam.stop().animate( {scrollTop: this.st}, 800 );
		this.outKab();
	}
	function so_outKab(){
		clearInterval(this.scrollinterval);
		this.$ka.css({backgroundImage : "url(gifjpg/basis/"+this.knpre+"pup1" + this.knext + ")" });
		this.$kb.css({backgroundImage : "url(gifjpg/basis/"+this.knpre+"pdown1" + this.knext + ")" });
		if (this.st == 0) this.$ka.css({backgroundImage : "url(gifjpg/basis/"+this.knpre+"pup"+this.maxp + this.knext+")" });
		else if (this.st == this.maxscroll) this.$kb.css({backgroundImage : "url(gifjpg/basis/"+this.knpre+"pdown"+this.maxp + this.knext + ")" });
	}
	function so_overKa(){
		this.$kb.css({backgroundImage : "url(gifjpg/basis/"+this.knpre+"pdown1"+ this.knext+ ")" });
		if (this.st <= 0) 
		{
			this.setSt(0);
			return;
		}
		this.$raam.scrollTop(this.st-=20);
		this.nrimg++; if (this.nrimg > this.maxp -1) this.nrimg = 2;
		this.$ka.css({backgroundImage : "url(gifjpg/basis/"+this.knpre+"pup" + this.nrimg + this.knext+")" });
	}
	function so_outKa(){this.outKab();}
	function so_overKb(){
		this.$ka.css({backgroundImage : "url(gifjpg/basis/"+this.knpre+"pup1" + this.knext+")" });
		if (this.st >= this.maxscroll)
		{
			this.setSt(this.maxscroll);
			return;
		}
		this.$raam.scrollTop(this.st+=20);
		this.nrimg++; if (this.nrimg > this.maxp -1) this.nrimg = 2;
		this.$kb.css({backgroundImage : "url(gifjpg/basis/"+this.knpre+"pdown" + this.nrimg + this.knext + ")" });
	}
	function so_outKb(){this.outKab();}
	
	function so_update(){
		this.maxscroll = this.$raam_inhoud.height() - raamheight;
		if (this.maxscroll <= 0) // als er niet gescrolld hoeft te worden...
		{ this.$ka.hide(); this.$kb.hide(); } 
		else { this.$ka.show(); this.$kb.show();}
	}
