

if(typeof deconcept == "undefined") var deconcept = new Object();
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();

deconcept.SWFObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, xiRedirectUrl, redirectUrl, detectKey){
	if (!document.createElement || !document.getElementById) { return; }
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params = new Object();
	this.variables = new Object();
	this.attributes = new Array();
	if(swf) { this.setAttribute('swf', swf); }
	if(id) { this.setAttribute('id', id); }
	if(w) { this.setAttribute('width', w); }
	if(h) { this.setAttribute('height', h); }
	if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
	this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion(this.getAttribute('version'), useExpressInstall);
	if(c) { this.addParam('bgcolor', c); }
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	this.setAttribute('useExpressInstall', useExpressInstall);
	this.setAttribute('doExpressInstall', false);
	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}

deconcept.SWFObject.prototype = {
	setAttribute: function(name, value){
		this.attributes[name] = value;
	},
	getAttribute: function(name){
		return this.attributes[name];
	},
	addParam: function(name, value){
		this.params[name] = value;
	},
	getParams: function(){
		return this.params;
	},
	addVariable: function(name, value){
		this.variables[name] = value;
	},
	getVariable: function(name){
		return this.variables[name];
	},
	getVariables: function(){
		return this.variables;
	},
	getVariablePairs: function(){
		var variablePairs = new Array();
		var key;
		var variables = this.getVariables();
		for(key in variables){
			variablePairs.push(key +"="+ variables[key]);
		}
		return variablePairs;
	},
	getSWFHTML: function() {
		var swfNode = "";
		if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) {
			if (this.getAttribute("doExpressInstall")) this.addVariable("MMplayerType", "PlugIn");
			swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"';
			swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
			var params = this.getParams();
			 for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
			var pairs = this.getVariablePairs().join("&");
			 if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
			swfNode += ' />';
		} else {
			if (this.getAttribute("doExpressInstall")) this.addVariable("MMplayerType", "ActiveX");
			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';
			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
			var params = this.getParams();
			for(var key in params) {
			 swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
			}
			var pairs = this.getVariablePairs().join("&");
			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
			swfNode += "</object>";
		}
		return swfNode;
	},
	write: function(elementId){
		if(this.getAttribute('useExpressInstall')) {
			var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
			if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
				this.setAttribute('doExpressInstall', true);
				this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
				document.title = document.title.slice(0, 47) + " - Flash Player Installation";
				this.addVariable("MMdoctitle", document.title);
			}
		}
		if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
			var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
			n.innerHTML = this.getSWFHTML();
			return true;
		}else{
			if(this.getAttribute('redirectUrl') != "") {
				document.location.replace(this.getAttribute('redirectUrl'));
			}
		}
		return false;
	}
}
deconcept.SWFObjectUtil.getPlayerVersion = function(reqVer, xiInstall){
	var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else{
		try{
			var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			for (var i=3; axo!=null; i++) {
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);
				PlayerVersion = new deconcept.PlayerVersion([i,0,0]);
			}
		}catch(e){}
		if (reqVer && PlayerVersion.major > reqVer.major) return PlayerVersion;
		if (!reqVer || ((reqVer.minor != 0 || reqVer.rev != 0) && PlayerVersion.major == reqVer.major) || PlayerVersion.major != 6 || xiInstall) {
			try{
				PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
			}catch(e){}
		}
	}
	return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
	this.major = parseInt(arrVersion[0]) != null ? parseInt(arrVersion[0]) : 0;
	this.minor = parseInt(arrVersion[1]) || 0;
	this.rev = parseInt(arrVersion[2]) || 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true;
}
deconcept.util = {
	getRequestParameter: function(param){
		var q = document.location.search || document.location.hash;
		if(q){
			var startIndex = q.indexOf(param +"=");
			var endIndex = (q.indexOf("&", startIndex) > -1) ? q.indexOf("&", startIndex) : q.length;
			if (q.length > 1 && startIndex > -1) {
				return q.substring(q.indexOf("=", startIndex)+1, endIndex);
			}
		}
		return "";
	}
}
deconcept.SWFObjectUtil.cleanupSWFs = function() {
	var objects = document.getElementsByTagName("OBJECT");
	for (var i=0; i < objects.length; i++) {
		for (var x in objects[i]) {
			if (typeof objects[i][x] == 'function') {
				objects[i][x] = null;
			}
		}
	}
}
if (typeof window.onunload == 'function') {
	var oldunload = window.onunload;
		window.onunload = function() {
		deconcept.SWFObjectUtil.cleanupSWFs();
		oldunload();
	}
} else {
	window.onunload = deconcept.SWFObjectUtil.cleanupSWFs;
}
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject;
var SWFObject = deconcept.SWFObject;


/*
	some main scripts
*/

function getDefaults(options,default_args)
{
	for(var index in default_args) 
	{
		if(typeof options[index] == "undefined") options[index] = default_args[index];
	}	
	
	return options;
}

function debug(str,useAlert)
{
	try{
		console.log(str);
	} catch (e){
		if(typeof(useAlert)!="undefined")
		{
			if(useAlert) alert(str);
		}
	}
}

function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
	    while(1) 
	    {
	      curleft += obj.offsetLeft;
	      if(!obj.offsetParent)
	        break;
	      obj = obj.offsetParent;
	    }
	else if(obj.x)
	    curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
	    while(1)
	    {
	      curtop += obj.offsetTop;
	      if(!obj.offsetParent)
	        break;
	      obj = obj.offsetParent;
	    }
	else if(obj.y)
	    curtop += obj.y;
	return curtop;
}

/*
	ImageQue.js V2 
	
	Fransjo Leihitu
	
	Class om foto's te preloaden. Vooral handig in Safari. Die laad de plaatjes te laat in en zodoende weet je dan niet de dimensies van het plaatje
	
	Zodra alle plaatjes binnen zijn, wordt functie onComplete aan geroepen. Je kan dus je eigen functie aan de onComplete function binden en heb je een callback.
	
	
*/
var ImageQue=Class.create({
	numItems:0,
	clearedItems:0,
	items:Array(),
	interval:null,
	
	initialize:function(){
	},
	
	add:function(image){
		if(typeof(image)!="undefined"){
			this.items.push(image);
		}
	},
	
	start:function(){
		this.numItems=this.items.length;
		this.clearedItems=this.numItems;
		
		if(this.numItems>0)
		{
			this.interval=new PeriodicalExecuter(this.checkImages.bind(this), 0.5);			
		} else {
			this.onComplete();
		}		
	},
	
	checkImages:function(){
		
		var notCleared=new Array();
		
		for(var i=0;i<this.numItems;i++){			
			
			var el=this.items[i];			
			if(el){
				if(el.complete==false) {
					notCleared.push(el);
				} else {
					el.writeAttribute("width",el.getWidth());
					el.writeAttribute("height",el.getHeight());
					
					el.style.width=el.getWidth() + "px";
					el.style.height=el.getHeight() + "px";
				}
			}
		}
		
		this.items=notCleared;
				
		if(this.items.length<=0){
			this.interval.stop();
			this.onComplete();
		}
	},
	

	onComplete:function(){		
		// dummy function. Use this function in your own class to bind to
	}
});

/*
	photoscroller.js
	
	v 1.1
*/

var MyUtils = {
    getTarget: function(e){
		e = (e.browserEvent || e);
		return (e.target || e.srcElement);
	},
	
    getRelatedTarget: function(ev) { // missing from prototype?
        ev = ev.browserEvent || ev;
        var t = ev.relatedTarget;
        if (!t) {
            if (ev.type == "mouseout") {
                t = ev.toElement;
            } else if (ev.type == "mouseover") {
                t = ev.fromElement;
            }
        }

        return this.resolveTextNode(t);
    },
    
    resolveTextNode: function(node) {
        if (node && 3 == node.nodeType) {
            return node.parentNode;
        } else {
            return node;
        }
    }	
}
Element.addMethods(MyUtils);


var PhotoScroller=Class.create({
	wrapper				: "",
	elWrapper			: null,
	itemsWrapper		: null,
	imageContainer		: "",
	elImageContainer	: null,
	hasInit				: true,
	parentTop			: 0,
	parentLeft			: 0,
	parentCenter		: 0,
	parentCenterABS		: 0,
	preload				: true,		// Safari (windows) heeft een preloader nodig ... 
	scrollerInterval	: 0.05,
	//scrollerInterval	: 0.5,
	scrollerController	: null,
	scrollValue			: 1,
	defaultScrollValue	: 10,
	scroll				: true,
	items				: null,
	paddingRight		: 5,
	totalItemsWidth		: 0,
	imageQue			: null,
	version				: 2,
	centerMargin		: 50,
	counter				: 0,
	direction			: 1,		// 1 = naar rechts, -1 is naar links
	distance			: 0,
	maxLeft				: 150, 		// maximale waarde dat een element naar rechts of links gaat scrollen
	ajaxUrl				: "",
	behaviour			: "normal",
	stopOnMouseOver		: true,

	
	initialize:function(args){
		
		// check voor default waarden
		args=getDefaults(args,{
			wrapper				: this.wrapper,
			scrollerInterval	: this.scrollerInterval,
			scrollValue			: this.scrollValue,
			paddingRight		: this.paddingRight,
			scroll				: this.scroll,
			centerMargin		: this.centerMargin,
			preload				: this.preload,
			imageContainer		: this.imageContainer,
			ajaxUrl				: this.ajaxUrl,
			maxLeft				: this.maxLeft,
			behaviour			: this.behaviour,
			defaultScrollValue	: this.defaultScrollValue,
			stopOnMouseOver		: this.stopOnMouseOver
		});		
						
		// bestaat de parent container?
		if(args.wrapper!="" && $(args.wrapper)){
			this.wrapper=args.wrapper;
			this.elWrapper=$(args.wrapper);
		} else {
			this.hasInit=false;
		}
		
		if(this.hasInit){
			this.defaultScrollValue=args.defaultScrollValue;
			this.behaviour=args.behaviour;
			this.maxLeft=args.maxLeft;
			this.preload=args.preload;
			this.centerMargin=args.centerMargin;
			this.scroll=args.scroll;
			this.scrollerInterval=args.scrollerInterval;
			this.scrollValue=args.scrollValue;
			this.paddingRight=args.paddingRight;
			this.stopOnMouseOver=args.stopOnMouseOver;
						
			var pos=this.elWrapper.positionedOffset();
			this.parentTop=pos[1];
			this.parentLeft=pos[0];
			
			if(this.behaviour=="normal"){
				
				// deze zijn nodig voor de photoscroller 
				this.parentCenter=Math.round(this.elWrapper.getWidth()/2);
				this.parentCenterABS=this.parentCenter+this.parentLeft;
				this.stopRegionStart=this.parentCenterABS-this.centerMargin;
				this.stopRegionEND=this.parentCenterABS+this.centerMargin;
								
				// bestaat de imagecontainer?
				if(args.imageContainer!="" && $(args.imageContainer)){
					this.imageContainer=args.imageContainer;
					this.elImageContainer=$(args.imageContainer);
				} else {
					this.imageContainer="";
				}			
				
				if(args.ajaxUrl!="") this.ajaxUrl=args.ajaxUrl;
			}
						
			// haal de images
			this.collectItems();		
		}
		
	},
	
	collectItems:function(){		
		
		this.totalItemsWidth=0;
		this.itemsWrapper=null;
		
		this.hasInit=false;
		
		var itemsWrapper;
		
		
		if(itemsWrapper=this.elWrapper.select(".photoscroller_items"))
		{
			this.itemsWrapper=itemsWrapper[0];
			if(this.items=this.itemsWrapper.select("img")){
				this.hasInit=true;
										
				var itemsCount=this.items.length;
				
				// id's zetten en preloaden
				this.imageQue=new ImageQue();
							
				for(var i=0;i<itemsCount;i++){
					var el=this.items[i];
					el.id=this.wrapper + "_" + i;
					el.setOpacity(0);
					
					this.items[i]=el;
					
					if(this.preload) this.imageQue.add(el);
				};
				
				
				if(this.preload){
					this.imageQue.start();
					this.imageQue.onComplete=this.imagesLoaded.bind(this);
				} else {
					this.imagesLoaded();
				}
			}
		}
		
	},
	
	imagesLoaded:function(){		
		
		var itemsCount=this.items.length;		
		for(var i=0;i<itemsCount;i++){
			var el=this.items[i];
			el.id=this.wrapper + "_" + i;
			this.totalItemsWidth+=el.getWidth();
								
			this.items[i]=el;
		}
		
		
		// kijken hoevaak de childelementen in de parent container passen
		// moet minstens 2x de width van de parent container zijn
		
		var numDuplicates=parseInt((this.elWrapper.getWidth()*2) / this.totalItemsWidth);
		for(var i=0;i<numDuplicates;i++){
			for(var q=0;q<itemsCount;q++){
				el=this.items[q];
				
				var clone=el.cloneNode(false);
				
				clone.id=this.wrapper + "_" + (q+(itemsCount*(i+1)));
				this.itemsWrapper.appendChild(clone);				
				this.items.push(clone);
			}
		}
		
		
		// en nu positioneren en events koppelen
		
		var itemsCount=this.items.length;
		this.totalItemsWidth=0;
		for(var i=0;i<itemsCount;i++)
		{
			var el=this.items[i];							
			el.style.top="0px";
			el.style.left=this.totalItemsWidth + "px";			
			el.absolutize();
			
			this.totalItemsWidth+=el.getWidth();
			

			if(this.scroll){
				var attributes = { 
					opacity: { from: 0, to: 1 } 
				}; 			
				
				var fadeIn = new YAHOO.util.Anim(el.id, { opacity: { to: 1 } }, 1);
				fadeIn.animate();
			} else {
				el.setOpacity(1);
			}

			
			if(this.behaviour=="normal") Event.observe(el,'click',this.onClick.bindAsEventListener(this));		
		}
		
		
		
		if(this.stopOnMouseOver){
			Event.observe(this.elWrapper,'mousemove',this.onMouseMove.bindAsEventListener(this));
			
			if(this.behaviour!="normal"){
				Event.observe(this.elWrapper,'mouseout',this.onMouseOut.bindAsEventListener(this));
			}
		}
		
	},
	
	onMouseOut:function(e){
		var el=e.element();
		
		var myEl2=Element.getRelatedTarget(e);
		
		if(typeof(myEl2)!="undefined"){
			
			if(myEl2.identify()==this.wrapper || myEl2.descendantOf(this.wrapper)){
				this.stop();
			} else {
				this.start();
			}
		}
	},
	
	onMouseMove:function(e){
		
		this.distance=0;
		this.counter++;
		this.direction=0;
		
		// eerst kijken of we in de viewport zitten
		var el=e.element();
		if(el.identify()==this.wrapper || el.descendantOf(this.wrapper)){
						
			if(this.behaviour=="normal")
			{
				// haal absolute X waarde van de muis
				var absX	= e.pointerX();
				
				// zit X waarde in stop regio?
				if(absX>this.stopRegionStart && absX<this.stopRegionEND){
					this.direction	= 0;
				} else {
					
					// X waarde zit niet in stop regio, welke kant dan wel?
					// en bereken nieuwe snelheid voor verplaatsing				
					var distance=0;
					if(absX>this.parentCenterABS){
						this.distance	= absX-this.stopRegionEND;
						this.direction	= -1;
					} else {
						this.direction	= 1;
						this.distance	= this.stopRegionStart-absX;
					}
					
				}
			} else {
				this.stop();
			}
		}
	},
	
	onClick:function(e){
		var el=e.element();
		
		// hebben we een imagecontainer of een plaatje erin te kunnen dumpen?
		if(this.imageContainer != ""){
			
			var fadeOut = new YAHOO.util.Anim(this.elImageContainer, { opacity: { to: 0 } }, 0.1);
			fadeOut.animate();
			
			if(this.ajaxUrl!=""){
				new Ajax.Request(this.ajaxUrl,{
					onComplete:this.onImageRecieved.bindAsEventListener(this)
				});
			}
		}
	},
	
	onImageRecieved:function(transport){
		if(t=transport.responseText.evalJSON()){			
			this.elImageContainer.src	= t.image;
			var fadeIn					= new YAHOO.util.Anim(this.elImageContainer, { opacity: { to: 1 } }, 1);
			fadeIn.animate();			
		}
	},
	
	start:function(){
		if(this.hasInit){
			if(this.scroll){
				
				this.direction		= 0;
				
				if(this.behaviour=="left"){
					this.direction	= -1;
				}
				
				this.scrollerController=new PeriodicalExecuter(this.scrollMe.bind(this), this.scrollerInterval);				
			}
		}
	},
	
	stop:function()
	{
		if(this.hasInit){	
			if(this.scroll){
				this.scrollerController.stop();
			}
		}		
	},
	
	checkStop:function(stopMe){
		if(stopMe){
			this.stop();
		} else {
			this.start();
		}
	},
	
	scrollMe:function(e){	
		
		if(this.scrollerController)	this.scrollerController.stop();	
		
		var itemsCount=this.items.length;

		var distanceProcent=0;
		if(this.behaviour=="normal"){
			distanceProcent=((this.distance * 100) / this.parentCenter) / 100		
			this.scrollValue=Math.round(this.maxLeft * distanceProcent) * this.direction;			
		} else {
			if(this.behaviour=="left"){
				this.direction		= -1;	
				this.scrollValue	= this.defaultScrollValue * this.direction;			
			}
		}
					

		/*
			Stap 1, alle elementen positioneren
		*/		
		for(var i=0;i<itemsCount;i++)
		{		
			var el=this.items[i];					
			var newLeft=(parseInt(el.style.left) + this.scrollValue) ;			

			if(!isNaN(newLeft)){
				el.style.left=newLeft + "px";				
			}
									
			this.items[i]=el;			
		}
		
		/*
			Stap 2, kijken welke kant we op gaan en daarna de boundries opzoeken
		*/
		
		// naar links
		if(this.direction==-1){
			var el=this.items[0];	
			if(parseInt(el.style.left) < (el.getWidth()*-1))
			{
				var lastEL=this.items[this.items.length-1];	
				el.style.left=parseInt(lastEL.style.left) + lastEL.getWidth() + "px";
				
				var items=Array();
				for(var i=1;i<itemsCount;i++){
					var el1=this.items[i];
					items.push(el1);	
				}
				
				items.push(el);					
				this.items=null;
				this.items=items;
			}			
		} else {
			
			// naar rechts
			if(this.direction==1){	
				
				var loopme=true;
		
				/*
					de loop is even nodig om na het verplaatsen van de laatste element nog even te kijken of er nog ruimte is
					aan de linker kant, zo ja, dan moet er weer een element verplaatst worden naar voren
				*/				
				while(loopme){
					
					var el=this.items[this.items.length-1];	
					
					if(parseInt(el.style.left) > this.elWrapper.getWidth()){
						var firstEL=this.items[0];						
						var newL=parseInt(firstEL.style.left) - el.getWidth();
						
						el.style.left=newL + "px";
	
						var items=Array();
						items.push(el);
						
						for(var i=0;i<(itemsCount-1);i++){
							var el1=this.items[i];
							items.push(el1);	
						}
						this.items=null;
						this.items=items;				
					}
					
					// check of er nog ruimte is voor de 1e element
					if(newL>0) {
						loopme=true;
					} else {
						loopme=false;
					}
					
				}
			}
		}	
		
		this.scrollerController=new PeriodicalExecuter(this.scrollMe.bind(this), this.scrollerInterval);			
	}
});

/*
 * Orginal: http://adomas.org/javascript-mouse-wheel/
 * prototype extension by "Frank Monnerjahn" <themonnie@gmail.com>
 */
Object.extend(Event, {
	wheel:function (event){
		var delta = 0;
		if (!event) event = window.event;
		if (event.wheelDelta) {
			delta = event.wheelDelta/120; 
			if (window.opera) delta = -delta;
		} else if (event.detail) { delta = -event.detail/3;	}
		return Math.round(delta); //Safari Round
	}
});
/*
 * enf of extension 
 */ 

/*
	contentscroller.js

	v1.2

	* added mousewheel support

	Fransjo
*/
var ContentScroller=Class.create({

	hasInit						: true,

	wrapper						: "",
	elWrapper					: null,
	parentDimensions			: null,

	content						: "",
	elContent					: null,
	contentDimensions			: null,

	upButton					: "",
	elUpButton					: null,

	downButton					: "",
	elDownButton				: null,

	clickInterval				: null, //interval obj als je up of down button ingedrukt hou

	slider						: null, //slider obj

	scrollBarSliderWrapper		: "",
	elScrollBarSliderWrapper	: null,

	scrollBarSlider				: "",
	elScrollBarSlider			: null,

	scrollValue					: -1,

	bottomConstraint			: 0,
	bottomConstraintReal		: 0,
	topConstraint				: 0,

	contentPercent				: 1, // percentage van de content tov de parent container
	scaleFactor					: 1,

	sliderValue					: 0,

	useMouseScroller			: true,

	threshold					: 0.97,

	initialize:function(args)
	{
		// check voor default waarden
		args=getDefaults(args,{
			wrapper					: this.wrapper,
			content					: this.content,
			upButton				: this.upButton,
			downButton				: this.downButton,
			scrollValue				: this.scrollValue,
			scrollBarSliderWrapper	: this.scrollBarSliderWrapper,
			topConstraint			: this.topConstraint,
			bottomConstraint		: this.bottomConstraint,
			scrollBarSlider			: this.scrollBarSlider,
			useMouseScroller		: this.useMouseScroller,
			threshold				: this.threshold
		});

		// bestaat de parent container?
		if(args.wrapper!="" && $(args.wrapper)){
			this.wrapper=args.wrapper;
			this.elWrapper=$(args.wrapper);
		} else {
			this.hasInit=false;
		}

		// bestaat de content container?
		if(args.content!="" && $(args.content)){
			this.content=args.content;
			this.elContent=$(args.content);
		} else {
			this.hasInit=false;
		}

		if(args.scrollBarSliderWrapper!="" && $(args.scrollBarSliderWrapper)){
			this.scrollBarSliderWrapper=args.scrollBarSliderWrapper;
			this.elScrollBarSliderWrapper=$(args.scrollBarSliderWrapper);
			this.elScrollBarSliderWrapper.setOpacity(0);
		} else {
			this.hasInit=false;
		}


		if(this.hasInit){

			this.threshold=args.threshold;
			this.useMouseScroller=args.useMouseScroller;

			//this.elScrollBarSliderWrapper.setOpacity(0);
			this.parentDimensions=this.elWrapper.getDimensions();

			// prepare content
			this.elContent.style.top="0px";
			this.contentDimensions=this.elContent.getDimensions();

			// bereken percentage van content tov scrollerviewport
			this.contentPercent=this.parentDimensions.height/this.contentDimensions.height;

			// setup buttons
			if(args.upButton!="" && $(args.upButton)){
				this.upButton=args.upButton;
				this.elUpButton=$(args.upButton);
				this.elUpButton.hide();
			} else {
				this.upButton="";
			}

			if(args.downButton!="" && $(args.downButton)){
				this.downButton=args.downButton;
				this.elDownButton=$(args.downButton);
				this.elDownButton.hide();
			} else {
				this.downButton="";
			}

			//alert("this.parentDimensions.height = " + this.parentDimensions.height +"\n" + "this.contentDimensions.height = " + this.contentDimensions.height);
			//alert("this.contentPercent = " + this.contentPercent);
			//alert("this.threshold = " + this.threshold);
			
			if(this.contentPercent<=this.threshold)
			{
				
				this.topConstraint=args.topConstraint;
				this.bottomConstraint=args.bottomConstraint;

				// check of er een slider is om aan te kunnen draggen
				if(args.scrollBarSlider!="" && $(args.scrollBarSlider)){
					this.scrollBarSlider=args.scrollBarSlider;
					this.elScrollBarSlider=$(args.scrollBarSlider);
				} else {
					this.scrollBarSlider="";
				}

				//alert(this.elScrollBarSliderWrapper.getHeight());
				
				// bereken nieuwe hoogte van de slider
				var sliderH=parseInt(this.contentPercent * this.elScrollBarSliderWrapper.getHeight());
				//alert(sliderH);

				this.scaleFactor=(1/this.elScrollBarSliderWrapper.getHeight()) * 100;


				// bereken waar de slider moet stoppen
				this.bottomConstraint=this.elScrollBarSliderWrapper.getHeight()-sliderH;
				this.bottomConstraintReal=Math.round(this.bottomConstraint * this.scaleFactor);

				// setup slider (waar je aan dragt)
				//this.scrollBarSlider="";
				if(this.scrollBarSlider!=""){
					this.elScrollBarSlider.style.height=sliderH + "px";
				}

				// setup scroller

				this.slider = YAHOO.widget.Slider.getVertSlider(this.scrollBarSliderWrapper, this.scrollBarSlider, this.topConstraint, this.bottomConstraint);
	        	this.slider.subscribe("change",this.onSliderChange.bindAsEventListener(this));
	        	this.setSliderValue(0); // begin bij 0
	        	this.slider.animate = false;

	        	// bepaalt hoeveel stappen de slider moet gaan als je op "up" of "down" gaat
				this.scrollValue=args.scrollValue;
				if(this.scrollValue<=0){
					this.scrollValue=Math.ceil(this.elScrollBarSliderWrapper.getHeight()/22);
				}


				// setup buttons (add events)
				if(this.upButton!=""){
					//Event.observe(this.elUpButton,'click',this.scrollUp.bindAsEventListener(this));
					Event.observe(this.elUpButton,'mousedown',this.onScrollUp.bindAsEventListener(this));
					Event.observe(this.elUpButton,'mouseup',this.stopScrolling.bindAsEventListener(this));
					Event.observe(this.elUpButton,'mouseout',this.stopScrolling.bindAsEventListener(this));
					this.elUpButton.show();
				}

				if(this.downButton!=""){
					//Event.observe(this.elDownButton,'click',this.scrollDown.bindAsEventListener(this));
					Event.observe(this.elDownButton,'mousedown',this.onScrollDown.bindAsEventListener(this));
					Event.observe(this.elDownButton,'mouseup',this.stopScrolling.bindAsEventListener(this));
					Event.observe(this.elDownButton,'mouseout',this.stopScrolling.bindAsEventListener(this));
					this.elDownButton.show();
				}

				
				// setup mousewheel
				if(this.useMouseScroller && Event.wheel){
					Event.observe(this.elWrapper, "mousewheel", this.onMouseWheelScroll.bind(this), false); // IE
					Event.observe(this.elWrapper, "DOMMouseScroll", this.onMouseWheelScroll.bind(this), false); // Firefox
				}


				
				this.elScrollBarSliderWrapper.setOpacity(1);
				this.elScrollBarSliderWrapper.style.display="";
			} else {

				this.elScrollBarSliderWrapper.hide();
			}
		}
	},

	onMouseWheelScroll:function(e){

		if(Event.wheel(e)>0){
			this.scrollUp();
		} else {
			this.scrollDown();
		}

	},

	onSliderChange:function(e){

		// deprecated
		if(this.scrollBarSlider=="") this.setSliderValue(this.slider.getValue());

		this.update();
	},

	getSliderRealValue:function(e){
		var realVal=0;

		if(this.scrollBarSlider=="")
		{
			realVal=this.sliderValue;
		} else {
			realVal=this.slider.getValue();
		}

		realVal=Math.round(realVal * this.scaleFactor);

		return realVal;
	},


	stopScrolling:function(){
		if(this.clickInterval!=null) this.clickInterval.stop();
	},

	onScrollUp:function(){
		this.stopScrolling();
		this.clickInterval=new PeriodicalExecuter(this.scrollUp.bind(this), 0.1);
	},


	scrollUp:function(){
		if(this.scrollBarSlider=="")
		{
			this.sliderValue-=this.scrollValue;
		} else {
			this.sliderValue=this.slider.getValue()-this.scrollValue;
		}

		if(this.sliderValue<0) this.sliderValue=0;

		this.setSliderValue(this.sliderValue);
		this.update();
	},


	onScrollDown:function(){
		this.stopScrolling();
		this.clickInterval=new PeriodicalExecuter(this.scrollDown.bind(this), 0.1);
	},



	scrollDown:function(){
		if(this.scrollBarSlider=="")
		{
			this.sliderValue+=this.scrollValue;
		} else {
			this.sliderValue=this.slider.getValue()+this.scrollValue;
		}

		this.setSliderValue(this.sliderValue);
		this.update();
	},

	setSliderValue:function(val){
		if(this.scrollBarSlider=="")
		{
			this.sliderValue=val;
		} else {
			this.slider.setValue(val);
		}
	},

	update:function(){
		var actualValue = this.getSliderRealValue();
		var topValue=0;

		// kijken of we een slider hebben EN onderkant van de slidercontainer bereikt is
		if(this.scrollBarSlider=="" && actualValue>this.bottomConstraintReal) {
			actualValue=this.bottomConstraintReal;
			this.setSliderValue(this.bottomConstraint);
		}

		if(actualValue>0){
			topValue=Math.round(this.contentDimensions.height * (actualValue/100)) * -1;
		}

		this.elContent.style.top=topValue + "px";
	}
});

/*
     Initialize and render the MenuBar when its elements are ready 
     to be scripted.
*/	
var oMenuBar;

InitMenu = function() {
}

InitMenu1 = function() {
	
	
	YAHOO.util.Event.onContentReady("menu_bar", function () {
        try {
		
	    oMenuBar = new YAHOO.widget.MenuBar("menu_bar", { 
	                                                autosubmenudisplay: true, 
	                                                hidedelay: 750, 
	                                                lazyload: true });
	    
	    
	    oMenuBar.render();
		positionMainItems();
        } catch(e) {}
	            
	});
}



reInitMenu=function(){
	
	oMenuBar	= null;
	
    try {
		//console.log(1);
		//alert(1);
	    oMenuBar = new YAHOO.widget.MenuBar("menu_bar", { 
	                                                autosubmenudisplay: true, 
	                                                hidedelay: 750, 
	                                                lazyload: true });
	    
	    oMenuBar.render();
		positionMainItems();
    } catch(e) {
	   
	}
}

positionMainItems = function(){    	  
	try {		
		var iWidth 	= 0;//will contain the total width of all main menu items
		var aWidth 	= 675;
		var iFills	= $$('#menu_bar li.li_fill');//collection of list items with class li_fill
		
		//loop through main menu items to get the total width
		$$('#menu_bar ul#mainMenu li.yuimenubaritem').each(function(obj){	
			var obj 	= $(obj);
			
			var myWidth =obj.getWidth();
			//alert(myWidth + "\n"+obj.id);
			iWidth += myWidth;
			
		
			if(obj.hasClassName('yuimenubaritem-hassubmenu')){
				
				var el	= obj.select(".bd ul.first-of-type");
				if(el){
					var parentBD	= el[0];
					
					var	imgMenu		= obj.select("a.yuimenubaritemlabel img");
					
					
					var newWidth	= imgMenu[0].getWidth()+10;
					
					// nu kijken of de sub items buiten de kaders vallen
					
					
					var elSubs	= obj.select(".bd ul li");
					if(elSubs){
						var len=elSubs.length;
						for(var i=0;i<len;i++){
							var elSub	= elSubs[i];
							newWidth	= (elSub.getWidth()>=newWidth) ? elSub.getWidth() : newWidth;
						}
					}
					
					//console.log("newWidth 1 =" + newWidth);
					newWidth+=10;
					
					var test=imgMenu[0].getWidth()+20;
					if(newWidth>test) newWidth+=10;
					
					
					parentBD.style.width	= newWidth + "px"; 
					
				}
			}
		}); 
		
		//alert(iWidth);
		//now calculate the new width of the 'fill' list items
		var nWidth = parseInt((aWidth - iWidth) / iFills.length);
		
		//loop through 'fill' list items an set new width	
		iFills.each(function(obj){
			var obj = $(obj);    		
			obj.setStyle({
				width: nWidth + 'px'
			});
		}); 
	} catch(e) {} 	
}

function screenchange() {
	
	if($("site_container")) {
		
		$("site_container").removeClassName("site_small");
		
		if(document.documentElement.clientWidth<900 || document.documentElement.clientHeight<600) {
			$("site_container").addClassName("site_small");
		}
	}
}

//***************************************************************************
// Set Global vars for this project											*
// These files will overwrite the Global vars in the Mcfront				*
//***************************************************************************
// set the modules (do NOT remove)

// the vars for the treeBuilder
var tree;
var nodeIndex;
var treeBuilder					= 1;
var callback 					= null;
var defaultCellWidth 			= 17;
var nodes 						= new Array();
var treeBuilderContainer 		= 'treeDiv1';

var tbActiveStatus			= 0;
var tbDeleteStatus			= 2;
var tbArchivedStatus		= 3;

var opacitySetting 			= '50';

var assetpro_iframe_load = 0;
var topPublisher = null;
var topListener = null;

var myEditors = new Array();
var sitemap = null;
var iLink = new Object();
var document_id;
