Event.observe(window, "load", addLoadEvents);

// observers
function addLoadEvents() {
	faq();
	/*contact();*/
	/*nieuwsbrief();*/
	programs();
	search();
	SendToAFriend();
	inputHover();
	printButton();
	sfFocus();
}

function doFocus() {
	sfFocus();		
}

function sfFocus() {
	var lis = document.getElementsByTagName('a');
	for(i=0;i<lis.length;i++) {
		drawFocus(lis[i]);
	}
}

function drawFocus(obj) {
	obj.onfocus=function() {this.className+=" sfhover";}
	obj.onblur=function() { if (this_className = "sfHover") { this.className = "";} else {this.className=this.className.replace(new RegExp(" sfhover\\b"), "");}}
}

function nieuwsbrief() {
	if($('formNieuwsbrief')) {
		var valid = new Validation("formNieuwsbrief", {useTitles:true, immediate:false});
	}
}

function contact() {
	if($('formContact')) {
		var valid = new Validation("formContact", {useTitles:true, immediate:false});
	}
}

function SendToAFriend() {
	if($('formSendToAFriend')) {
		var valid = new Validation("formSendToAFriend", {useTitles:true, immediate:false});
	}
}

function faq() {
	if($('formFAQ')) {
		var valid = new Validation("formFAQ", {useTitles:true, immediate:false});
	}
	/*if($('vragen')) {
		var LIs = $('vragen').getElementsByTagName("li");
		for(var i=0; i<LIs.length; i++) {
			LIs[i].getElementsByTagName("a")[0].onclick = function() {
				var ID = this.parentNode.id;
				if($(ID.replace("vraag","antwoord"))) {
					toggle(ID.replace("vraag","antwoord"));
				} else {
					new Ajax.Updater(ID,'/inc/get_antwoord.dhtml?vraag='+ID.replace("vraag",""), {insertion: Insertion.After});
				}
				return false;
			}
		}
	}*/
}

function programs() {
	function addProgramToFavorites(e) {
		var id_field = $('frm_program_favorite').getInputs('hidden', 'program')[0];
		new Ajax.Updater('message', '/inc/program.dhtml?oper=addfavorite&pg='+ $F(id_field));
		Event.stop(e);
	}
	if ($('frm_program_filter')) {
		/*var chkboxes = $('frm_program_filter').getInputs('checkbox');
		for (var i=0 ; i<chkboxes.length ; i++) {
			chkboxes[i].observe('click', function(event){ buildProgramList(null, 'frm_program_filter'); });
		}*/
		buildProgramList(null, 'frm_program_filter');
	}
	if ($('frm_program_selection')) {
		$('frm_program_selection').observe('submit', function(event){ viewProgramDetails(event, 'frm_program_selection'); });
	}
	if ($('frm_program_favorite')) {
		$('frm_program_favorite').observe('submit', function(event){ addProgramToFavorites(event); });	
	}	
}

function search() {
	var sel_program_name = null;
	var sel_artist_name = null;
	function setSearchFields(text, li) {
		if (text.id == 'sel_program') {
			sel_program_name = $F(text);
			$('sel_program_id').value = li.id;
		}else if (text.id == 'sel_artist') {
			sel_artist_name = $F(text);
			$('sel_artist_id').value = li.id;
		}
	}
	function validateFields(e, field1, field2) {
		$(field1).removeClassName('validation-failed');
		if ($F(field1) == '' && $F(field2) != '') {
			$(field2).clear();
			if (field1 == 'sel_artist') { sel_artist_name = null; }
			if (field1 == 'sel_program') { sel_program_name = null; }
		}else if ($F(field1) != '' && $F(field2) == '') {
			$(field1).addClassName('validation-failed');
			Event.stop(e);
		}else if (field1 == 'sel_program' && $F(field1) != sel_program_name && sel_program_name != null) {
			$(field1).addClassName('validation-failed');
			Event.stop(e);
		}else if (field1 == 'sel_artist' && $F(field1) != sel_artist_name && sel_artist_name != null) {
			$(field1).addClassName('validation-failed');
			Event.stop(e);
		}
	}
	if ($('frm_program_search')) {
		$('frm_program_search').observe('submit', function(event){ buildProgramList(event, 'frm_program_search'); });
		$('srch_submit').observe('click', function(event){ validateFields(event, 'sel_program', 'sel_program_id'); validateFields(event, 'sel_artist', 'sel_artist_id'); } );
		new Ajax.Autocompleter('sel_program', 'autocomplete_choices', '/inc/get_programs.dhtml?oper=list', {minChars:2, paramName:'value', afterUpdateElement:setSearchFields});
		new Ajax.Autocompleter('sel_artist', 'autocomplete_choices', '/inc/get_artists.dhtml', {minChars:2, paramName:'value', afterUpdateElement:setSearchFields});
	}
	if ($('frm_program_selection')) {
		$('frm_program_selection').observe('submit', function(event){ viewProgramDetails(event, 'frm_program_selection'); });
	}
}

function printButton() {
	if ($('printlink')) {
		$('printlink').observe('click', function(event) { print(); Event.stop(event); });
	}
}


// functions //
function toggle(id) {
	if($(id).style.display == 'block' || $(id).style.display == '') { 
		$(id).style.display = 'none';
	}else{
		$(id).style.display = 'block';
	}
}

function buildProgramList(e, form) {
	if ($('indicator')) {
		$('indicator').show();
	}
	function selectAllBoxes() {
		var chkboxes = $('frm_program_selection').getInputs('checkbox');
		for (var i=0 ; i<chkboxes.length ; i++) {
			if ($('selectAll').className == 'inputbuttonL vinkaan') {
				chkboxes[i].checked = true;
			}else{
				chkboxes[i].checked = false;
			}
		}
		if ($('selectAll').className == 'inputbuttonL vinkaan') {
			$('selectAll').className = 'inputbuttonL vinkaf';
		}else{
			$('selectAll').className = 'inputbuttonL vinkaan';			
		}
	}
	function buildTooltips() {
		/*var inputs = $$('div.programtooltip');
		for (var i=0 ; i<inputs.length ; i++) {
			new Tooltip('container'+inputs[i].id, inputs[i].innerHTML);
		}*/
		if ($('selectAll')){ 
			$('selectAll').style.display = 'block';
			$('selectAll').observe('click', function(ev){ selectAllBoxes(); Event.stop(ev); });
		}
		if ($('indicator')) {
			$('indicator').hide();
		}
	}
	var params = "";
	if (form == 'frm_program_filter') {
		var sel_types = $('frm_program_filter').getInputs('checkbox', 'sel_types[]');
		var sel_genres = $('frm_program_filter').getInputs('checkbox', 'sel_genres[]');
		if (sel_types.length > 0) { params += Form.serializeElements(sel_types) + '&'; }
		if (sel_genres.length > 0) { params += Form.serializeElements(sel_genres) + '&'; }
	} else if (form == 'frm_program_search') {
		params += Form.serialize($('frm_program_search')) + "&";
	}
	params += 'oper=restrictedlist';
	new Ajax.Updater('selectieList','/inc/get_programs.dhtml', {parameters: params, onComplete: buildTooltips});
	if (e != null) { Event.stop(e); }
}

function viewProgramDetails(e, form) {
	var sel_programs = $(form).getInputs('checkbox', 'programs[]');
	var found = false;
	var first = null;
	for (var i=0 ; i<sel_programs.length ; i++) {
		if (sel_programs[i].checked) {
			first = $F(sel_programs[i]);
			found = true;
			break;
		}
	}
	if (!found) {
		Event.stop(e);
	}else{
		$(form).action = '/aanbod?oper=details&program='+ first;
	}
}

function inputHover() {
	if (document.all && document.getElementById) {
		if ($$('input.inputbutton')) {
			var buttons = $$('input.inputbutton');
			for (var i=0 ; i<buttons.length ; i++) {
				buttons[i].observe('mouseover', function(){ this.addClassName('iehover'); });
				buttons[i].observe('mouseout', function(){ this.removeClassName('iehover'); });	
			}
		}
	}
}