var FileIncludeFile = "includes/loadfile.php";
var RightFile = "includes/right.php";

var effectInProgress = false;

Event.observe( window , 'load' , UpdateContent , false );

function onPageView( loc ) {
	loc = loc.replace( globalbaseaddr , '/' );

	if ( isdefined( window , 'urchinTracker' ) ) {
		_uacct = "UA-2689292-4";
		urchinTracker( loc );
	}
}

function onPageLoaded( )
{
	myLightbox.updateImageList();
	UpdateContent( );
}

function showHideLoader(showStatus) {
	if(showStatus) {
		document.getElementById('activity').style.display = 'block';
	} else {
		document.getElementById('activity').style.display = 'none';
	}
}

function ajaxLoadLink( source ) {
	var target = '';
	if ( source.target.length == 0 ) {
		target = source.getAttribute( 'target' );
	} else {
		target = source.target;
	}
	var href = source.href;
	
	var loc = href;
	loc = loc.replace( globalbaseaddr , '' ); 
	var broken = loc.split( '/' );
	
	var page = broken[ 0 ] + '.php';
	var parameters = '';
	var name = '';
	for( var x=1; x<broken.length; x++) {
		if ( ( x % 2 ) == 0 ) {
			parameters = parameters + '&' + name + '=' + broken[ x ];
		} else {
			name = broken[x];
		}
	}
	
	onPageView( href );

	if ( target != null && document.getElementById( target ) != null ) {
		SlideUpDown( source );
		return true;
	}

	if ( effectInProgress == true ) return false;
	
	EffectInProgress = true;
	showHideLoader(true);

	new Effect.Fade( 'left' , { duration: 0.4 , from: 0.999999, to: 0.0001 , afterFinish: function() {
	
		new Ajax.Updater( 
			'left' , 
			FileIncludeFile + '?filename=' + page + parameters ,
			{
				method: 'get' ,
				parameters: '',
				evalScripts: true ,
				onComplete: function(){
					onPageLoaded( );

					new Effect.Parallel(
						[
							new Effect.Appear( 'left' , { duration: 1 , from: 0.0, to: 0.999999 } )
						], 
						{ duration: 1, afterFinish: function() {
								showHideLoader(false);
								effectInProgress = false;
								
								document.getElementById( 'left' ).style.display = 'block';
								if ( document.getElementById( 'multimedia' ) )
								{
									LoadPlayer( );
								}
							}
						}
					);
				}
			}
		);
		
	} } );
	
	ReLoadRight( );
}

function ajaxLoadFile(value) {
	
	var test = value.split( '.' );
	onPageView( '/' + test[ 0 ] + '/' );
	
	showHideLoader(true);

	new Effect.Fade( 'left' , { duration: 0.4 , from: 0.999999, to: 0.0001 , afterFinish: function() {
		var pars = 'filename=' + value;
		var myAjax = new Ajax.Updater( 
			'left' , 
			FileIncludeFile + '?filename=' + value ,
			{
				method: 'get' ,
				parameters: '',
				evalScripts: true ,
				onComplete: function(){ 
					showHideLoader(false);
					onPageLoaded( );

					new Effect.Parallel(
						[
							new Effect.Appear( 'left' , { duration: 1 , from: 0.0, to: 0.999999 } )
						], 
						{ duration: 1, afterFinish: function() {
								document.getElementById( 'left' ).style.display = 'block';
								if ( document.getElementById( 'multimedia' ) )
								{
									LoadPlayer( );
								}
							}
						}
					);
				}
			}
		);
		
	} } );
	
	ReLoadRight( );
}

function ReLoadRight( )
{
	if ( !document.getElementById( 'right_dyn' ) )
	{
		return false;
	}
	new Effect.Fade( 'right_dyn' , { duration: 0.4 , from: 0.999999, to: 0.0001 , afterFinish: function() {
	
		new Ajax.Updater( 
			'right_dyn' , 
			globalbaseaddr + RightFile ,
			{
				method: 'get' ,
				parameters: '',
				evalScripts: true ,
				onComplete: function(){
					onPageLoaded( );

					new Effect.Parallel(
						[
							new Effect.Appear( 'right_dyn' , { duration: 1 , from: 0.0, to: 0.999999 } )
						], 
						{ duration: 1, afterFinish: function() {
								document.getElementById( 'right_dyn' ).style.display = 'block';
							}
						}
					);
				}
			}
		);
		
	} } );
}

function isdefined(object, variable)
{
	return (typeof(eval(object)[variable]) != 'undefined');
}

function UpdateContent( )
{
	// form
	if(document.getElementsByTagName){
		var obj = document.getElementsByTagName('FORM');
		for(var i=0; i<obj.length; i++){
			var myform = obj[i];
			
			if ( ( myform != null ) && ( myform.getAttribute( 'normal' ) != 'true' ) ) {
				myform.onsubmit=function(){
					document.getElementById( this.target ).style.display = 'block';
					document.getElementById( this.target ).innerHTML = '<img src="./imgs/loading_mail.gif" />';
					
					var pars = "";
					var content = null;
					
					if ( isdefined(window,'FCKeditorAPI') ) {
						if ( FCKeditorAPI.GetInstance( myform.id ) != null ) {
							var content = FCKeditorAPI.GetInstance( myform.id ).GetXHTML();
						}
					}
					
					for(var i=0;i<this.length;i++) {
						if ( this.elements[i].type == 'checkbox' ){
							pars = pars + this.elements[i].name + "=" + this.elements[i].checked + "&";
						} else {
							if ( myform.id == this.elements[i].name && content != null ) {
								pars = pars + myform.id + "=" + escape( content ) + "&";
							} else {
								pars = pars + this.elements[i].name + "=" + escape( encodeURI( this.elements[i].value ) ) + "&";
							}
						}
					}
					
					showHideLoader(true);
					effectInProgress = true;
					
					var myAjax = new Ajax.Updater( this.target , this.action , { method: 'post' , parameters: pars , evalScripts: true , onComplete: function(){
						showHideLoader(false);
						effectInProgress = false;
						onPageLoaded( );
					} } );
					
					if ( this.getAttribute( 'toggle' ) == null || this.getAttribute( 'toggle' ) == 'true' ) {
						ToggleForm( myform );
					}
 
					return false;
				}
			}
		}
	}
		
	// a:ajaxlink & a:hotlink
	if(document.getElementsByTagName){
		var obj = document.getElementsByTagName('A');
		for(var i=0; i<obj.length; i++){
			if((obj[i].className != null) && (obj[i].className == 'ajaxlink')){
				var alink = obj[i];
				obj[i].onclick=function(){
					SlideUpDown( this );
					return false;
				}
			}
			
			if( obj[i].className == 'hotlink' ) {
				obj[i].onclick=function() {
					ajaxLoadLink( this );
					return false;
				}
			}
		}
	}
	
	// input:singleClick
	if(document.getElementsByTagName){
		var obj = document.getElementsByTagName('INPUT');
		for(var i=0; i<obj.length; i++){
			if((obj[i].className != null) && (obj[i].className == 'singleClick')){
				var element = obj[i];
					
				obj[i].onclick=function(){	
					var target = this.getAttribute( 'target' );
					var location = this.getAttribute( 'href' , 2 );
			  	var message = this.getAttribute( 'title' );
			  	Dialog.confirm(
						message,
						{ width:300 , okLabel: "Ja", cancelLabel: "Nee" , destroyOnClose: true , buttonClass: "myButtonClass" , id: "myDialogId" ,
							cancel:function(win) {
								return false;
							} , ok:function(win) {
								
									new Effect.Fade( target , { duration: 0.4 , target: target , location: location , message: message , from: 0.999999, to: 0.0001 , afterFinish: function()
									{
										new Ajax.Updater( target , location , { method: 'post' , target: target , parameters: "" , evalScripts: true , onComplete: function()
										{
											new Effect.Appear( target , { duration: 1 , from: 0.0, to: 0.999999 , afterFinish: function() { UpdateContent(); } } );
										} } );
									} } );
								return true;
							}
						}
					);
					return false;
				}
			}
		}
	}
	
	// a:list
	if(document.getElementsByTagName){
		var obj = document.getElementsByTagName('A');
		for(var i=0; i<obj.length; i++){
			
			if( obj[i].className == 'list' ){
				obj[i].onclick=function(){
					if ( this.getAttribute( "myhref" ) != null ) {
						ajaxLoadFile( this.getAttribute( 'myhref' ) );
					} else {
						ajaxLoadFile(this.getAttribute( 'href' , 2 ));
					}
					return false;
				}
			}
		}
	}
	
	// gastenboek vorige/volgende
	if(document.getElementsByTagName){
		var obj = document.getElementsByTagName('A');
		for(var i=0; i<obj.length; i++){
			if((obj[i].className != null) && (obj[i].className == 'gastenboekScroll')){
				var alink = obj[i];
				obj[i].onclick=function(){
					window.scroll( 0 , 0 );
					showHideLoader(true);
					new Effect.Fade( this.target, { target: this.target , href: this.href , from: 1.0 , to: 0.0001 , afterFinish: function(){
						var pars = "";
						new Ajax.Updater( this.target , this.href , { method: 'get' , parameters: "" , evalScripts: true , onComplete: function() {
							UpdateContent( );
							new Effect.Appear( alink.target , { sync: false, duration: 1, from: 0.0, to: 1.0 , afterFinish: function(){ showHideLoader(false); } } );
						} } );
					} });
					return false;
				}
			}
		}
	}
}

function SlideUpDown( goal )
{
	if ( effectInProgress == true ) return false;
	
	effectInProgress = true;
	showHideLoader(true);
	new Effect.SlideUp( goal.target, { target: goal.target , href: goal.href , afterFinish: function(){
		var pars = 'hotlink=yes';
		var mytarget = this.target;

		new Ajax.Updater( this.target , this.href , { method: 'post' , parameters: pars , evalScripts: true , onComplete: function( ) {
			onPageLoaded( );
			new Effect.SlideDown( mytarget , { afterFinish: function() {
				showHideLoader(false);
				effectInProgress = false;
			} } );
		} } );
	} });
}

function RetryForm( formname )
{
	var myform = document.getElementById( formname );
	var target = document.getElementById( myform.target );
	
	new Effect.Parallel(
		[ new Effect.SlideDown( formname , { sync: true } ), 
		  new Effect.Appear( formname, { sync: true, duration: 1 }) ], 
		{ duration: 1, afterFinish: function() {
				myform.style.display = 'block';
			}
		} 
	);

	new Effect.Parallel(
		[ new Effect.SlideDown( myform.target , { sync: true } ), 
		  new Effect.Fade( myform.target, { sync: true, duration: 1 }) ], 
		{ duration: 1, afterFinish: function() {
				target.style.display = 'none';
			}
		} 
	);
}

function ToggleForm( formname )
{
	var myform = '';
	
	if (typeof formname == 'string' ) {
    myform = document.getElementById( formname );
	} else {
		myform = formname;
	}
	
	if ( myform.style.display == 'block' ) {
		new Effect.Parallel(
			[ new Effect.SlideUp( formname , { sync: true } ), 
			  new Effect.Fade( formname, { sync: true, duration: 1 }) ], 
			{ duration: 1, afterFinish: function() {
					myform.style.display = 'none';
				}
			} 
		);
		
	} else {
		new Effect.Parallel(
			[ new Effect.SlideDown( formname , { sync: true } ), 
			  new Effect.Appear( formname, { sync: true, duration: 1 }) ], 
			{ duration: 1, afterFinish: function() {
					myform.style.display = 'block';
				}
			} 
		);
	}
}

function LoadPlayer() {
	var so = new SWFObject( globalbaseaddr + 'includes/mediaplayer.swf','multi_media','300','360','8');
	so.addParam('allowfullscreen','true');
	so.addParam('allowscriptaccess','always');
	so.addVariable('displayheight','250');
	so.addVariable('file', globalbaseaddr + 'media/multimedia.xml');
	so.addVariable('width','300');
	so.addVariable('height','360');
	so.addVariable('autoscroll','true');
	
	so.addVariable('enablejs', 'true' );
	so.addVariable('javascriptid','multi_media');

	so.addVariable('backcolor','0x000000');
	so.addVariable('frontcolor','0xffffff');
	so.addVariable('screencolor','0xffffff');
	so.addVariable('lightcolor','0x007fff');

	so.write('multimedia');
}

var gbfloaded = false;

function onclickNewReply( ) {
	
	if ( gbfloaded == false ) {
		new Ajax.Updater( 'gastenboekNewReply' , globalbaseaddr + 'pages/gastenboek.php?LoadForm=1' , { method: 'get' , onComplete: function() {
			ToggleForm( 'gastenboekForm' );
			UpdateContent( );
			window.scroll( 0 , 0 );
		} } );
		gbfloaded = true;
	} else {	
		ToggleForm( 'gastenboekForm' );
		window.scroll( 0 , 0 );
	}
}
