var tmFilterAjaxRequest;

function get_filter_key($element, $id, $type)
{	
	$($id + '_value').value = '';
	$element.style.color = '#880000';
	get_filter($id, $type);
}
function get_filter($id, $type)
{	
	/* delay bij het request van de filter. Indien niet het geval, zal na iedere keydown een request gebeuren */ 
	clearTimeout(tmFilterAjaxRequest);
	/* firefox ondersteund parameters in settimeout, IE niet. dus omzeilen we dit via de functie op te roepen in een functie */
	tmFilterAjaxRequest = setTimeout(function () { request_filter($id, $type); }, 500, $id, $type);
}

function request_filter($id, $type){

	var group_id = 'group__value';
	//var $target	= $('add_to_favorites_saved_' + $contribution_id);
	var $url		= $AJAX_DIR + '/create_filter.php';
	//check the value
	if($F($id + '_value') == '')
	{
		$value = $F($id + '_text');
	}
	else
	{
		$value = '';
	}	

	// Extra parameter meegeven, is nodig voor het postnummer van de school of organisatie
	if($type == 'school'){
		$extra_param = $F('idPostalCodeSchool');
	} else if ($type == 'organisation'){
		$extra_param = $F('idPostalCodeOrganisation');
	} else if ($type == 'citymember'){
		$extra_param = $F('postalcode_3_text');
	} else {
		$extra_param = '';
	}
	
	var $par		= 'element_id=' + $id + '&type=' + $type + '&value=' + $value + '&extra_param=' + $extra_param;
	if($('group__value') !== null)
	{
		$par += '&group=' + $F(group_id);
	}
	switch($type){
		case 'province':
			countries = document.getElementsByName("filter_country[]");
			var ids = '';
			for(var i=0, len=countries.length; i<len; i++){
				ids += countries[i].value + "|";
			}
			ids = ids.substring(0,ids.length-1);
			$par += '&countries='+ids;
		break;
		case 'city':
			provinces = document.getElementsByName("filter_province[]");
			var ids = '';
			for(var i=0, len=provinces.length;i<len;i++){
				ids += provinces[i].value + "|";
			}
			ids = ids.substring(0,ids.length-1);
			$par += '&provinces='+ids;
		break;
	}
	$($id).style.display = '';
	$($id).innerHTML = lang_text('waiting');
	var request = new Ajax.Request($url ,{
			method		: 'post' ,
			parameters	: $par ,
			onComplete	: function(originalRequest){					
				$($id).innerHTML = originalRequest.responseText;						
				show_cbo($id,'true');									
			}
		}
	);
}

function show_cbo($id, $visible)
{	
	if($($id))
	{	
		if($visible == 'true')
		{			
			$($id).style.display = '';
			$active_cbo = $id;	
		}
		else
		{
			$($id).style.display = 'none';	
			$active_cbo = 0;
		}
	}
}
function hide_empty_filters($show){
	if($show == 'true'){
		$display = '';
		$$('#form .filter_block').each(function(f){

			if(f.id == 'model_elements' || f.id == 'easyICTskills_elements'){
				/*$bouwsteen = $F('group_1_value');
				$categories = new Array();
				
				if($bouwsteen == 'oefeningen'){
					f.setStyle({display : $display});
				}*/
				var values = new Array('oefeningen','97c95c89c98c91c85c93c88c86c90c92c87c94c','97','95','89','91','85','93','88','86','90','92','87','94'); 
				show_hide('group',values,'model');
				show_hide('category',values,'model');
				show_hide('group',values,'easyICTskills');
				show_hide('category',values,'easyICTskills');
			}else if(f.id == 'disability_elements'){
				var arr_subsites = new Array('2');
				show_hide('subsite',arr_subsites,'disability');
			}else{
				f.setStyle({display : $display});
			}
		});
		$('hide_filter').style.display = '';
		$('hide_filter2').style.display = '';
		$('show_filter').style.display = 'none';
		$('show_filter2').style.display = 'none';
		
		$('extra_elements').setStyle({display:''});
	}else{
		$display = 'none';
		$$('#form .filter_block').each(function(f){
			clear_empty_block(f.id.replace('_elements',''));
		});
		$('hide_filter').style.display = 'none';
		$('hide_filter2').style.display = 'none';
		$('show_filter').style.display = '';
		$('show_filter2').style.display = '';
		
		//hide extra
		var functie = checkExtaElement('extrafunction_elements', 'extra[function][]');
		var lang = checkExtaElement('extralanguage_elements', 'extra[language][]');
		var user = checkExtaElement('extrauser_elements', 'extra[user]');
		var cost = checkExtaElement('extracosts_elements', 'extra[costs][]');
		
		if(functie && lang && user && cost){
			$('extra_elements').setStyle({display:'none'});
		}else{
			$('extra_elements').setStyle({display:''});
		}
	}
}

function checkExtaElement(id, field){
	var hideExtra = true;
	var inputsFunction = $$('#'+id+' input');
	inputsFunction.each(function(input){
		if(input.name == field){
			if(input.value != ''){
				hideExtra = false;
			}
		}
	});
	
	return hideExtra;
}

function clear_empty_block($group){
	//check if the block exists!
	if (!$($group + '_elements')) { return; }
	
	//create an array of the inputs
	var $arr_inputs = $($group + '_elements').getElementsByTagName("input");
	$length = $arr_inputs.length;
	//remove all the empty inputs
	$hide = "true";
	for(i = 0;i <= $length;i++)
	{	
		if($arr_inputs[i] !== undefined)
		{
			if($arr_inputs[i].value != '')
			{
				$hide = "false";
			}
		}		
	}
	//hide the empty blocks	
	if($hide == "true")
	{
		$($group + '_elements').style.display = 'none';
	}
}
function set_select($element, $parent_id)
{	
	$id = $element.id;	
	//get the value for the hidden field
	$arr_id_value = $id.split('_');	
	
	//reset the categories when you change from group	
	if($arr_id_value[1] == 'group' && $($parent_id + '_value').value != $arr_id_value[0])
	{		
		$id = $arr_id_value[0];
		//delete categorie
		
		if($arr_id_value[0]	== 'forum')
		{	
			$('category_elements').style.display = 'none';		
			$('subsite_elements').style.display = 'none';
			if($('location_elements'))		
			{
				$('location_elements').style.display = 'none';	
			}
		}
		else
		{
			
			$('category_elements').style.display = 'block';		
			/*var category_div = Builder.node('div', { className:'filter_block', id:'category_elements' });
			$('category_elements').appendChild(category_div);*/
				
			
			//reset categories	
			//$('category_elements').innerHTML = '<span class="filter_title">'+lang_text('category')+'</span><img class="add_buttum" src="/template/default/img/icons/add.png" onclick="add_element(' + "'category','','')";
			//add_element('category','','');	
		}	
		//delete location
		if($arr_id_value[0]	== 'calendar')
		{
			$id = $arr_id_value[0];
			if($('location_block') && $('location_block').innerHTML == '')
			{
				var location_div = Builder.node('div', { className:'filter_block', id:'location_elements' });
				$('location_block').appendChild(location_div);
				add_element('location','','');	
				$('location_block').style.display = '';
			}
			//reset categories	
			if($('location_elements')){
				$('location_elements').innerHTML = '<span class="filter_title">Locatie</span><img class="add_buttum" src="/template/default/img/icons/add.png" onclick="add_element(' + "'location','','')";
			}
		}
		else
		{
			if($('location_block')){
				$('location_block').innerHTML = '';
			}
		}
	}
	$($parent_id + '_value').value = $id;		
	$($parent_id + '_text').value = html_entity_decode($element.innerHTML);
	$($parent_id + '_text').style.color = '#000000';
	
	show_cbo($parent_id,'false');
	
	if($('model_elements') || $('easyICTskills_elements')){
		$('model_elements').setStyle({display:'none'});
		$('easyICTskills_elements').setStyle({display:'none'});
	}
	
	var values = new Array('oefeningen','exercises','97','95','89','91','85','93','88','86','90','92','87','94');
	
	if($('disability_elements')){
		$('disability_elements').setStyle({display:'none'});
	}	
	
	var values = new Array('oefeningen','97c95c89c98c91c85c93c88c86c90c92c87c94c','97','95','89','91','85','93','88','86','90','92','87','94'); 
	show_hide('group',values,'model');
	show_hide('group',values,'easyICTskills');
	
	var arr_subsites = new Array('2');
	show_hide('subsite',arr_subsites,'disability');
}

function show_hide(cat, values, box){

	//if($arr_id_value[1] == cat){
		var show_model_cbo = false;
		
		var elements = document.getElementsByName('filter_'+cat+'[]');
		var elements_length = elements.length;
		var values_length = values.length;
		for(var i=0; i < elements_length; i++){
			for(var j=0; j<values_length; j++){
				if(elements[i].value.toLowerCase() == values[j].toLowerCase()){
					show_model_cbo = true;
				}
			}
		};

		if(show_model_cbo){
			$(box+'_elements').setStyle({display:'block'});
		}
	//}
}

function delete_group($element_id, $type)
{
	$($type + '_elements').removeChild($($element_id));
	if($type == 'category'){
		var values = new Array('97c95c89c98c91c85c93c88c86c90c92c87c94c','97','95','89','98','91','85','93','88','86','90','92','87','94'); 
		show_hide('category',values,'model');
	}
}
$teller = 1;
$active_cbo = 0;
function add_element($type, $id, $value)
{		
	
	if($type == "group"){
		$teller = "";
	}
	$value = html_entity_decode($value);
	//create group element	
	var cbo_group = Builder.node('div', { className:'cbo_group', id:$type + '_' + $teller + '_group', style:'display:none' });
	$($type + '_elements').appendChild(cbo_group);
	
	//create cbo_div
	var cbo_div = Builder.node('div', { className:'cbo', id:$type + '_' + $teller });
	cbo_div.style.display = 'none';
	$($type + '_' + $teller + '_group').appendChild(cbo_div);	

	//create input type
	
	// Items die ook opgenomen moeten worden zonder selectie komen hieronder, ook zetten in filter_members.js
	if($type == 'firstname' || $type == 'surname'){
		var new_input = Builder.node('input', { className:'cbo_text', name:'filter_' + $type + '[]', id:$type + '_' + $teller + '_text',value: $value,autocomplete: "off", onclick: "get_filter('" + $type + "_" + $teller + "','" +  $type + "')", onkeyup: "get_filter_key(this,'" + $type + "_" + $teller + "','" + $type + "')"});
		$($type + '_' + $teller + '_group').appendChild(new_input);
	} else {
		var new_input = Builder.node('input', { className:'cbo_text', id:$type + '_' + $teller + '_text',value: $value,autocomplete: "off", onclick: "get_filter('" + $type + "_" + $teller + "','" +  $type + "')", onkeyup: "get_filter_key(this,'" + $type + "_" + $teller + "','" + $type + "')"});
		$($type + '_' + $teller + '_group').appendChild(new_input);
	}

	
	//create img	
	//var img_input = Builder.node('img', { className:'cbo', id:$type + '_' + $teller + '_img', src : "/template/default/img/icons/down.gif" , onclick: "get_filter('function_'" +  $teller,"'function')" });
	var img_input = Builder.node('img', { className:'cbo', id:$type + '_' + $teller + '_img', title: lang_text('select_from_list'),src : "/template/default/img/icons/down.gif" , onclick: "get_filter('" + $type + "_" + $teller + "','" + $type + "')"});
	$($type + '_' + $teller + '_group').appendChild(img_input);
	
	//create img2
	if($type != 'group' && $type != 'extradatabase')
	{
		var img_input2 = Builder.node('img', { className:'cbo',title: lang_text('close_search_option'), id:$type + '_' + $teller + '_img_cross', src : "/template/default/img/icons/cross.gif" , onclick: "delete_group('" + $type + '_' + $teller + "_group','" + $type + "')"});
		$($type + '_' + $teller + '_group').appendChild(img_input2);
	}
	
	//create hidden type
	if($type == 'extrafunction'){
		//extra[function]
		var hidden_input = Builder.node('input', {value: $id, type:'hidden', name:'extra[function][]', id:$type + '_' + $teller + '_value'});
	}else if($type == 'extralanguage'){
		//extra[language]
		var hidden_input = Builder.node('input', {value: $id, type:'hidden', name:'extra[language][]', id:$type + '_' + $teller + '_value'});
	}else if($type == 'extracosts'){
		//extra[costs]
		var hidden_input = Builder.node('input', {value: $id, type:'hidden', name:'extra[costs][]', id:$type + '_' + $teller + '_value'});
	}else if($type == 'extradatabase'){
		var hidden_input = Builder.node('input', {value: $id, type:'hidden', name:'extra[database]', id:$type + '_' + $teller + '_value'});
	}else{
		var hidden_input = Builder.node('input', {value: $id, type:'hidden', name:'filter_' + $type + '[]', id:$type + '_' + $teller + '_value'});
	}
	
	$($type + '_' + $teller + '_group').appendChild(hidden_input);
	if($($type + '_' + $teller + '_group').parentNode.getStyle('display') != "none"){
		Effect.BlindDown($($type + '_' + $teller + '_group'), {duration:0.4});
		Effect.Appear($($type + '_' + $teller + '_group'), {duration:0.4});
	}else{
		cbo_group.setStyle({display:'block'});
	}
	
	$teller ++;
}

function add_parent_element($type, $id, $value){

	var elements = document.getElementsByName('filter_country[]');
	
	var add_new_element = true;
	for(var i=0, len=elements.length;i<len;i++){
		var value =elements[i].value;
		if(value == ''){
			var id = elements[i].id;
			id = id.replace('_value','');
			delete_group(id+'_group',$type);
		}
		if(value == $id){
			add_new_element = false;
		}
	}
	if (add_new_element == true){
		add_element($type, $id,$value);
	}
}

if(typeof(DHTMLSuite) == "object"){
	var $oCalendar = new DHTMLSuite.calendar(
	{
		minuteDropDownInterval		: 10 ,
		callbackFunctionOnDayClick	: 'get_date_from_calendar' ,
		isDragable						: false ,
		displayTimeBar					: false ,
		calendarModelReference		: new DHTMLSuite.calendarModel(
		{
			languageCode : iso_lang // from site.tpl
		})
	});
}

function change_color(){
	$('autocomplete2').style.color = '#CC0000';
}
function getSelectionId(text, li) {   
    $('filter_user_id').value =  li.id;
}

function filter_init(e, arrFilter, clear_filter, admin_filter){

	arrFilter.each(function(f){
		add_element(f.type,f.id,f.value);
	});
	
	if (clear_filter == 'true'){
		$('hide_filter').style.display = 'none';
		$('hide_filter2').style.display = 'none';
	}else{
		$('show_filter').style.display = 'none';
		$('show_filter2').style.display = 'none';
	}
	if (admin_filter == 'true'){

		if($('group_elements') !== null){
			$('group_elements').style.display = '';
		}
		
		$$('.filter_block').each(function(block){
			block.style.display = '';
		});
	}
	
	var $url = domain + "/" + $AJAX_DIR + '/autocomplete_user.php';

	new Ajax.Autocompleter("autocomplete2", "autocomplete_user", $url, {
	  minChars: 2,
	  paramName: "value",
	  afterUpdateElement : getSelectionId
	});
}
