function goToPage(page){
	if(!$('button_' + page).hasClass('active')){

		var x = 0;
		if(page == 'home') x = 0;
		if(page == 'jobs') x = 950;
		if(page == 'info') x = 1900;
		if(page == 'tips') x = 2850;
		if(page == 'links') x = 3800;
		if(page == 'uitgaven') x = 4750;
		if(page == 'contact') x = 5700;

		new Fx.Scroll('content', {
			duration: 1500,
			wait: false
		}).start(x, 0);

		$('button_home').removeClass('active');
		$('button_jobs').removeClass('active');
		$('button_info').removeClass('active');
		$('button_tips').removeClass('active');
		$('button_links').removeClass('active');
		$('button_uitgaven').removeClass('active');
		$('button_contact').removeClass('active');
		$('button_' + page).addClass('active');
	}
}

function createScrollbars(){
	$$('.block .text').each(function(item){
		var content = item;
		var scrollbar = item.getParent().getChildren('.scroller')[0];
		
		if(content != null && scrollbar != null){
			var handle = scrollbar.getChildren('.handle')[0];
			if(handle != null) makeScrollbar(content, scrollbar, handle);
		}
	});
}

function displayForm(id){
	$('jobs_form').setStyle('display', 'block');
	$('form_name').value = '';
	$('form_email').value = '';
	$('form_message').value = '';
	$('form_job_id').value = id;
	$('jobs_image').setStyle('display', 'none');
}

function hideForm(){
	$('jobs_image').setStyle('display', 'block');
	$('jobs_scroller').setStyle('margin-left', '710px');
}

function sendForm(){
	if($('form_name').value == ''){
		alert('Vul je naam in!');
		return;
	}
	if($('form_email').value == ''){
		alert('Vul je e-mail adres in!');
		return;
	}
	if($('form_message').value == ''){
		alert('Vul een bericht in!');
		return;
	}
	var jsonRequest = new Request.JSON({url: 'page=site.form', onComplete: function(data){
		if(data.success){
			$('form_name').value = '';
			$('form_email').value = '';
			$('form_message').value = '';
			alert('Je solicitatie is verzonden!');
		} else {
			alert('Je solicitatie kon niet worden verstuurd. Neem contact op met de beheerder van de website.');
		}
	}}).post({
		'job_id': $('form_job_id').value,
		'name': $('form_name').value,
		'email': $('form_email').value,
		'message': $('form_message').value
	});
}

function loadInfo(id){
	$('info_text').innerHTML = '<h3>Loading...</h3>';
	var htmlRequest = new Request.HTML({url: 'page=site.info/id='+id, update: $('info_text'), onSuccess: function(){
			createScrollbars();
	} }).get();
}

function loadTip(id){
	$('tips_text').innerHTML = '<h3>Loading...</h3>';
	var jsonRequest = new Request.JSON({url: 'page=site.tips/id=' + id, onComplete: function(data){
		$('tips_text').innerHTML = '<h3>' + data.title + '</h3>' + data.content;
		if(data.prev != null){
			$('tips_prev').setProperty('onclick', '');
			$('tips_prev').removeEvents();
			$('tips_prev').addEvent('click', function(){
				loadTip(data.prev);
			});
		}
		if(data.next != null){
			$('tips_next').setProperty('onclick', '');
			$('tips_next').removeEvents();
			$('tips_next').addEvent('click', function(){
				loadTip(data.next);
			});
		}
	}}).get();
}

function viewUitgave(id){
	$('text_uitgaven_content').innerHTML = '<h3>Loading...</h3>';
	var jsonRequest = new Request.JSON({url: 'page=site.uitgave/id=' + id, onComplete: function(data){
		$('text_uitgaven_content').innerHTML = '<h3>' + data.title + '</h3>' + data.content;
		$('map_drenthe').setStyle('display', 'none');
		$('map_flevoland').setStyle('display', 'none');
		$('map_friesland').setStyle('display', 'none');
		$('map_gelderland').setStyle('display', 'none');
		$('map_groningen').setStyle('display', 'none');
		$('map_limburg').setStyle('display', 'none');
		$('map_noord_brabant').setStyle('display', 'none');
		$('map_noord_holland').setStyle('display', 'none');
		$('map_overijssel').setStyle('display', 'none');
		$('map_utrecht').setStyle('display', 'none');
		$('map_zeeland').setStyle('display', 'none');
		$('map_zuid_holland').setStyle('display', 'none');
		if(data.provincies != null){
			$each(data.provincies, function(item){
				$('map_' + item).setStyle('display', 'block');
			});
		}
		createScrollbars();
	}}).get();
}

function viewJob(id){
	$('jobs_text').innerHTML = '<h3>Loading...</h3>';
	var htmlRequest = new Request.HTML({url: 'page=site.job/id='+id, update: $('jobs_text'), onSuccess: function(){
			deactivateTabs();
			createScrollbars();
			$('jobs_image').setStyle('display', 'none');
			$('jobs_scroller').setStyle('margin-left', '927px');
	} }).get();
}

function openForm(url){
	Shadowbox.open({
        content:    url,
        player:     "iframe",
        title:      "",
        height:     370,
        width:      334
    });
}

function viewTop10(){
	$('jobs_text').innerHTML = '<h3>Loading...</h3>';
	var htmlRequest = new Request.HTML({url: 'page=site.job_top10/', update: $('jobs_text'), onSuccess: function(){
			deactivateTabs();
			createScrollbars();
			hideForm();
	} }).get();
}

function quickSearch(){
	goToPage('jobs');
	$('jobs_text').innerHTML = '<h3>Loading...</h3>';
	var htmlRequest = new Request.HTML({url: 'page=site.jobsearch/', update: $('jobs_text'), onSuccess: function(){
			deactivateTabs();
			createScrollbars();
			hideForm();
	} }).post({
		'job_description': $('quicksearch').value
	});
}

function searchJobs(){
	$('jobs_text').innerHTML = '<h3>Loading...</h3>';
	var htmlRequest = new Request.HTML({url: 'page=site.jobsearch/', update: $('jobs_text'), onSuccess: function(){
			createScrollbars();
			$('jobs_image').setStyle('display', 'block');
			$('jobs_scroller').setStyle('margin-left', '710px');
	} }).post({
		'city': $('jobsearch_city').value,
		'education': $('jobsearch_education').value,
		'period': $('jobsearch_period').value,
		'branche': $('jobsearch_branche').value,
		'experience': $('jobsearch_experience').value,
		'job_description': $('jobsearch_job_description').value,
		'tab': activeTab
	});
}

var activeTab = '';
function activateTab(tab){
	if(activeTab == tab || tab == ''){
		deactivateTabs();
	} else {
		deactivateTabs();
		$('tab_' + tab).addClass('active');
		activeTab = tab;
	}
	searchJobs();
}

function deactivateTabs(){
	$('tab_additional_job').removeClass('active');
	$('tab_internship').removeClass('active');
	activeTab = '';
}

function makeScrollbar(content,scrollbar,handle,horizontal,ignoreMouse){
	var steps = (horizontal?(content.getScrollSize().x - content.getSize().x):(content.getScrollSize().y - content.getSize().y));
	content.removeEvents();
	handle.removeEvents();
	scrollbar.removeEvents();
	if(steps <= 0){
		handle.setStyle('display','none');
		scrollbar.setStyle('display','none');
	} else {
		handle.setStyle('display','block');
		scrollbar.setStyle('display','block');
	}
	var slider = new Slider(scrollbar, handle, {
		steps: steps,
		mode: (horizontal?'horizontal':'vertical'),
		onChange: function(step){
			// Scrolls the content element in x or y direction.
			var x = (horizontal?step:0);
			var y = (horizontal?0:step);
			content.scrollTo(x,y);
		}
	}).set(0);
	if( !(ignoreMouse) ){
		// Scroll the content element when the mousewheel is used within the
		// content or the scrollbar element.
		$$(content, scrollbar).removeEvent('mousewheel');
		$$(content, scrollbar).addEvent('mousewheel', function(e){
			e = new Event(e).stop();
			var step = slider.step - e.wheel * 30;
			slider.set(step);
		});
	}
	// Stops the handle dragging process when the mouse leaves the document body.
	//$(document.body).addEvent('mouseleave',function(){slider.drag.stop()});
}

function open_forum(in_url){
	window.open(in_url, 'forum', 'width=950,height=600,scrollbars=no,toolbar=no,location=no,statusbar=no');		
}

function createImageRotators(){
	$$('.block .image').each(function(block){
		var images = block.getChildren();
		if(images.length > 1){
			var i = 0;
			for(i = 0; i < images.length; i++){
				if(i > 0){
					images[i].setStyle('opacity', 0);
				} else {
					images[i].setStyle('opacity', 1);
					images[i].setProperty('alt', 'on');
				}
			}

			setInterval(function(){
				var i = 0;
				for(i = 0; i < images.length; i++){
					if(images[i].getProperty('alt') == 'on'){
						//images[i].setStyle('opacity', 0);
						new Fx.Morph(images[i], {duration: 2000} ).start({ 'opacity': [1,0]});
						images[i].setProperty('alt', 'off');
						if(i == images.length-1){
							//images[0].setStyle('opacity', 1);
							new Fx.Morph(images[0], {duration: 2000} ).start({ 'opacity': [0,1]});
							images[0].setProperty('alt', 'on');
						} else {
							//images[i+1].setStyle('opacity', 1);
							new Fx.Morph(images[i+1], {duration: 2000} ).start({ 'opacity': [0,1]});
							images[i+1].setProperty('alt', 'on');
						}
						break;
					}
				}
			}, (5000 + Math.ceil(10000*Math.random())));
		}
	});
	
}

function createContactRotator(){
	setInterval(function(){
		var blocks1 = $$('#contact_column1 .block');
		var blocks2 = $$('#contact_column2 .block');
		var new_block1 = blocks1[0].clone();
		var new_block2 = blocks2[0].clone();
		$('contact_column1').adopt(new_block1);
		$('contact_column2').adopt(new_block2);
		blocks1[0].setStyle('opacity', 0);
		blocks2[0].setStyle('opacity', 0);
		new Fx.Morph(blocks1[0], {duration: 1500} ).start({ 'height': [148,0] }).chain(function(){
			blocks1[0].dispose();
		});
		new Fx.Morph(blocks2[0], {duration: 1500} ).start({ 'height': [148,0] }).chain(function(){
			blocks2[0].dispose();
		});
	}, 7000);
}

var uitgavenInterval = 0;

function createUitgaveRotator(){
	clearInterval(uitgavenInterval);
	uitgavenInterval = setInterval(function(){
		
		var blocks1 = $$('#uitgave_column1 .block.showuitgave');
		var blocks2 = $$('#uitgave_column2 .block.showuitgave');
		var blocks3 = $$('#uitgave_column3 .block.showuitgave');
		
		if(blocks1.length){
			var new_block1 = blocks1[0].clone();
			$('uitgave_column1').adopt(new_block1);
			blocks1[0].setStyle('opacity', 0);
			new Fx.Morph(blocks1[0], {duration: 1500} ).start({ 'height': [148,0] }).chain(function(){
				blocks1[0].dispose();
			});
		}
		
		if(blocks2.length){
			var new_block2 = blocks2[0].clone();
			$('uitgave_column2').adopt(new_block2);
			blocks2[0].setStyle('opacity', 0);
			new Fx.Morph(blocks2[0], {duration: 1500} ).start({ 'height': [148,0] }).chain(function(){
				blocks2[0].dispose();
			});
		}
		
		if(blocks3.length){
			var new_block3 = blocks3[0].clone();
			$('uitgave_column3').adopt(new_block3);
			blocks3[0].setStyle('opacity', 0);
			new Fx.Morph(blocks3[0], {duration: 1500} ).start({ 'height': [148,0] }).chain(function(){
				blocks3[0].dispose();
			});
		}
		
	}, 7000);
	
}

function selectProvincie(elm){
	
	clearInterval(uitgavenInterval);
	$('uitgave_column1').setStyle('marginTop', 500);
	$('uitgave_column2').setStyle('marginTop', 500);
	$('uitgave_column3').setStyle('marginTop', 500);
	
	var uitgaven = $$('.uitgave');
	var provincie = elm.options[elm.selectedIndex].value;
	if(provincie){
		//	show provincie
		uitgaven.each(function(el, i){
			if(!el.hasClass(provincie)){
					el.setStyle('display', 'none');
					el.removeClass('showuitgave');
			} else {
				if(!el.hasClass('showuitgave')){
					el.setStyle('display', 'block');
					el.addClass('showuitgave');
				}
			}
		});
	} else {
		//	show all
		uitgaven.each(function(el, i){
			if(!el.hasClass('showuitgave')){
				el.setStyle('display', 'block');
				el.addClass('showuitgave');
			}
		});	
	}
	
	new Fx.Tween($('uitgave_column1'), {duration: 1500}).start('marginTop', 500, 1);
	new Fx.Tween($('uitgave_column2'), {duration: 1500}).start('marginTop', 500, 1);
	new Fx.Tween($('uitgave_column3'), {duration: 1500}).start('marginTop', 500, 1);
	
	createUitgaveRotator();
}

function initJs(){
	createScrollbars();
	createImageRotators();
	createContactRotator();
	createUitgaveRotator();
	
	$$($('forum_username'), $('forum_password')).addEvent('keydown', function(event){
		if (event.key == 'enter' && $('forum_username').get('value').length && $('forum_password').get('value').length){
			event.stop();
			event.stopPropagation();
			open_forum('/forum/panel.php?act=login&user='+$('forum_username').get('value')+'&passwd='+$('forum_password').get('value'));
			return false;
		}
	});

	$('quicksearch').addEvent('keydown', function(event){
		if (event.key == 'enter' && $('quicksearch').get('value').length){
			event.stop();
			event.stopPropagation();
			quickSearch();
			return false;
		}
	});
	
	// tmp
	//goToPage('uitgaven');
	
}

Shadowbox.init({
	language:   "nl",
	players:    ["iframe"]
});


window.addEvent('domready', initJs);

