function initialize(base) {
	checkActiveLinks(base);
	if(typeof onLoad == 'function') {
		onLoad();
	}
}

function checkActiveLinks(base) {
	linksArray = $$('a');
	
	var url = window.location;
	
	for(i = 0; i < linksArray.length; ++i ){
		var a = linksArray[i];
		
		url = new String(window.location);

		if(a.href == url || (a.href != base && a.href == url.substring(0, a.href.length))) {
			a.className += ' active';
		}
	}
}

function preLoad(images) {
	document.preLoad = new Array();
	
	if (document.images) {
		for(i = 0; i < images.length; ++i) {
			document.preLoad[i] = new Image();
			document.preLoad[i].src = images[i];
		}
	}
}

function mouseOver(element, image) {
	if(typeof(element.src_out) == 'undefined' || element.src_out == null) {
		element.src_out = element.src;
		if(typeof(image) != 'undefined') {
			element.src = image;
		} else {
			element.src = element.src.substring(0, element.src.length - 4) + '_up' + element.src.substring(element.src.length - 4, element.src.length);
		}
	}
}

function mouseOut(element) {
	if(typeof(element.src_out) != 'undefined' && element.src_out != null) {
		element.src = element.src_out;
		element.src_out = null;
	}
}

function isInt(x) {
	var y=parseInt(x);
	if (isNaN(y)) return false;
	return x==y && x.toString()==y.toString();
}

function trim(value) {
	value = value.replace(/^\s+/,'');
	value = value.replace(/\s+$/,'');
	return value;
}

var eventplanner_step = false;
var request = null;

function getHeight() {
  myHeight = 0;
  if(typeof(window.innerHeight) == 'number') {
    //Non-IE
    myHeight = window.innerHeight;
  } else if(document.documentElement && (document.documentElement.clientHeight)) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if(document.body && (document.body.clientHeight ) ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }
  return myHeight;
}

function eventplannerShow(step, focus) {
	$('eventplanner_bg').style.display = 'block';
	$('eventplanner_bg').style.height = Math.max(getHeight(), document.body.scrollHeight, document.body.clientHeight) + "px";	
	if(typeof(step) == 'undefined') {
		$('eventplanner_1').style.display = 'block';
		eventplanner_step = 1;
	} else {
		if($('eventplanner_'+eventplanner_step)) $('eventplanner_'+eventplanner_step).style.display = 'none';
		$('eventplanner_'+step).style.display = 'block';
		eventplanner_step = step;
	}
	if(!focus || typeof(focus) == 'undefined') {
		switch(eventplanner_step) {
			case 2: focus = document.eventplanner.guests_total; break;
			case 3: focus = document.eventplanner.guests_sitting_chair; break;
			case 4: focus = document.eventplanner.guests_sitting_bench; break;
			case 5: focus = document.eventplanner.guests_sitting_lounge; break;
			case 9: focus = document.eventplanner.email; break;
		}
	}
	if(focus) { focus.focus(); focus.select(); }
}

function eventplannerClose() {
	$('eventplanner_bg').style.display = 'none';
	if($('eventplanner_'+eventplanner_step)) $('eventplanner_'+eventplanner_step).style.display = 'none';
	eventplanner_step = false;
}

function eventplannerNext(path) {
	var go = false;
	var focus = false;
	
	switch(eventplanner_step) {
		case 2:
			if(isInt(document.eventplanner.guests_total.value) && parseInt(document.eventplanner.guests_total.value) > 0) {
				go = true;
				focus = document.eventplanner.guests_sitting_chair;
				
				document.eventplanner.guests_total.className = '';
				$('ep_sum_3').innerHTML = 'Totaal ' + document.eventplanner.guests_total.value + ' gasten';
				
			} else { focus = document.eventplanner.guests_total; document.eventplanner.guests_total.className = 'error'; }
			break;
		case 3:
			if(isInt(document.eventplanner.guests_sitting_chair.value) && parseInt(document.eventplanner.guests_sitting_chair.value) >= 0 && parseInt(document.eventplanner.guests_sitting_chair.value) <= parseInt(document.eventplanner.guests_total.value)) {
				go = true;
				focus = document.eventplanner.guests_sitting_bench;
				
				document.eventplanner.guests_sitting_chair.className = '';
				$('ep_sum_4').innerHTML = $('ep_sum_3').innerHTML + '<br />waarvan ' + document.eventplanner.guests_sitting_chair.value + ' aan tafel';
				
			} else { focus = document.eventplanner.guests_sitting_chair; document.eventplanner.guests_sitting_chair.className = 'error'; }
			break;
		case 4:
			if(isInt(document.eventplanner.guests_sitting_bench.value) && parseInt(document.eventplanner.guests_sitting_bench.value) >= 0 && parseInt(document.eventplanner.guests_sitting_bench.value) <= (parseInt(document.eventplanner.guests_total.value) - parseInt(document.eventplanner.guests_sitting_chair.value))) {
				go = true;
				focus = document.eventplanner.guests_sitting_lounge;

				document.eventplanner.guests_sitting_bench.className = '';
				$('ep_sum_5').innerHTML = $('ep_sum_4').innerHTML + '<br />waarvan ' + document.eventplanner.guests_sitting_bench.value + ' op houten banken';

			} else { focus = document.eventplanner.guests_sitting_bench; document.eventplanner.guests_sitting_bench.className = 'error'; }
			break;
		case 5:
			if(isInt(document.eventplanner.guests_sitting_lounge.value) && parseInt(document.eventplanner.guests_sitting_lounge.value) >= 0 && parseInt(document.eventplanner.guests_sitting_lounge.value) <= (parseInt(document.eventplanner.guests_total.value) - parseInt(document.eventplanner.guests_sitting_chair.value) - parseInt(document.eventplanner.guests_sitting_bench.value))) {
				go = true;
				document.eventplanner.guests_sitting_lounge.className = '';
				
			} else { focus = document.eventplanner.guests_sitting_lounge; document.eventplanner.guests_sitting_lounge.className = 'error'; }
			break;
		case 8:
			go = true;		
			if(!checkDate(trim(document.eventplanner.event_date.value))) {
				go = false;
				if(!focus) focus = document.eventplanner.event_date;
				document.eventplanner.event_date.className = 'error';
			} else document.eventplanner.event_date.className = '';
			
			if(!isInt(document.eventplanner.event_days.value)) {
				go = false;
				if(!focus) focus = document.eventplanner.event_days;
				document.eventplanner.event_days.className = 'error';			
			} else document.eventplanner.event_days.className = '';
			
			if(trim(document.eventplanner.event_address.value) == '') {
				go = false;
				if(!focus) focus = document.eventplanner.event_address;
				document.eventplanner.event_address.className = 'error';
			} else document.eventplanner.event_address.className = '';

			if(trim(document.eventplanner.event_postalcode.value).search('[0-9]{4}[A-Za-z]{2}') == -1) {
				go = false;
				if(!focus) focus = document.eventplanner.event_postalcode;
				document.eventplanner.event_postalcode.className = 'error';
			} else document.eventplanner.event_postalcode.className = '';

			if(trim(document.eventplanner.event_city.value) == '') {
				go = false;
				if(!focus) focus = document.eventplanner.event_city;
				document.eventplanner.event_city.className = 'error';
			} else document.eventplanner.event_city.className = '';
			
			break;
		case 9:
			go = true;
			if(trim(document.eventplanner.email.value).search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1) {
				go = false;
				if(!focus) focus = document.eventplanner.email;
				document.eventplanner.email.className = 'error';
			} else document.eventplanner.email.className = '';

			if(trim(document.eventplanner.name.value) == '') {
				go = false;
				if(!focus) focus = document.eventplanner.name;
				document.eventplanner.name.className = 'error';
			} else document.eventplanner.name.className = '';

			if(trim(document.eventplanner.address.value) == '') {
				go = false;
				if(!focus) focus = document.eventplanner.address;
				document.eventplanner.address.className = 'error';
			} else document.eventplanner.address.className = '';

			if(trim(document.eventplanner.postalcode.value).search('[0-9]{4}[A-Za-z]{2}') == -1) {
				go = false;
				if(!focus) focus = document.eventplanner.postalcode;
				document.eventplanner.postalcode.className = 'error';
			} else document.eventplanner.postalcode.className = '';

			if(trim(document.eventplanner.city.value) == '') {
				go = false;
				if(!focus) focus = document.eventplanner.city;
				document.eventplanner.city.className = 'error';
			} else document.eventplanner.city.className = '';

			if(request == null && go) {
				request = newRequest();

				data = {
					'guests_total':document.eventplanner.guests_total.value,
					'guests_sitting_chair':document.eventplanner.guests_sitting_chair.value,
					'guests_sitting_bench':document.eventplanner.guests_sitting_bench.value,
					'guests_sitting_lounge':document.eventplanner.guests_sitting_lounge.value,
					'catering':document.eventplanner.catering.value,
					'catering_optional':document.eventplanner.catering_optional.value,
					'music':document.eventplanner.music.value,
					'event_date':document.eventplanner.event_date.value,
					'event_days':document.eventplanner.event_days.value,					
					'event_address':document.eventplanner.event_address.value,
					'event_postalcode':document.eventplanner.event_postalcode.value,
					'event_city':document.eventplanner.event_city.value,
					'email':document.eventplanner.email.value,
					'name':document.eventplanner.name.value,
					'address':document.eventplanner.address.value,
					'postalcode':document.eventplanner.postalcode.value,
					'city':document.eventplanner.city.value,
					'phonenumber':document.eventplanner.phonenumber.value,
					'newsletter':document.eventplanner.newsletter.checked
				}

				var d = new Date();
				sendRequest(request, path+'/eventplanner_json.php?bogus=' + d.getTime(), data, eventplannerReturn);
				eventplannerShow(eventplanner_step+1);
				
				go = false;
			}

			break;
		default:
			go = true;
	}
	if(go) eventplannerShow(eventplanner_step+1, focus);
	else if(focus) { focus.focus(); focus.select(); }
}

function eventplannerPrev() {
	eventplannerShow(eventplanner_step-1, false);
}

function eventplannerReturn() {
	if(request.readyState == 4) {
		var responseJSON = request.responseText;
		request = null;
		
		var response = responseJSON.parseJSON();

		if(response == 1) {
			document.eventplanner.guests_total.value = '';
			document.eventplanner.guests_sitting_chair.value = 0;
			document.eventplanner.guests_sitting_bench.value = 0;
			document.eventplanner.guests_sitting_lounge.value = 0;
			document.eventplanner.catering.value = 0;
			$('catering_optional').style.display = 'none';
			document.eventplanner.catering_optional.value = 0;
			document.eventplanner.music.value = 0;
			document.eventplanner.email.value = '';
			document.eventplanner.event_date.value = '';
			document.eventplanner.event_days.value = '';
			document.eventplanner.event_address.value = '';			
			document.eventplanner.event_postalcode.value = '';
			document.eventplanner.event_city.value = '';			
			document.eventplanner.name.value = '';
			document.eventplanner.address.value = '';
			document.eventplanner.postalcode.value = '';
			document.eventplanner.city.value = '';
			document.eventplanner.phonenumber.value = '';
			document.eventplanner.newsletter.checked = true;
		}
	}
}

function checkDate(date) {
	if(trim(date).search('[0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2}') != -1) {
		var date_array = date.split('-');
		
		var day = date_array[0];
		var month = date_array[1] - 1;
		var year = date_array[2];

		source_date = new Date(year,month,day);

		if(year != source_date.getFullYear()) return false;
		if(month != source_date.getMonth()) return false;
		if(day != source_date.getDate()) return false;
	} else {
		return false;
	}
	return true;
}

