function update_autocomplete_url (query) {
	$('#query').val(query);
	data_url = data_url_prefix+'&group='+group+'&sub_group='+sub_group+'&query='+encodeURI(query);
	$('#query_input_field').setOptions({url:data_url}); // .autocomplete('setData', {...}) doesn't work for some reason
	//alert(data_url);
}

function group_chosen(href_url, group_id, mode) {
	
	group = group_id;
	sub_group = '';
	
	// Hiding all the sub-groups containers
	for (var i = 0; i != sub_groups_of.length; i++) {
		sub_groups_of[i].style.display = 'none';
	}
	
	if (group_id) {
	
		// Changing the global JS data_url var (for the Autocomplete)
		data_url = data_url_prefix + '&group='+group_id;
		//$('#query_input_field').val(''); // Clears existing data (.autocomplete('flushCache') doesn't work for some reason)
		$('#query_input_field').setOptions({url: data_url}); // .autocomplete('setData', {...}) doesn't work for some reason
		
		// Displaying the relevant sub-groups
		if (document.getElementById('sub_groups_of_' + group_id)) {
			document.getElementById('sub_groups_of_' + group_id).style.display = '';
		}
		
		// 'quite' mode is used when loading the page for the first time (with group and/or sub_group already chosen).
		if (mode != 'quite') {
			// Resetting the query
			document.getElementById('query').value = '';
			// Resetting all previous Parameters (types, details) 
			var selects = document.getElementsByTagName('select');
			for (var i = 0; i != selects.length; i++) {
				if (selects[i].nodeType != 3) {
					if (selects[i].getAttribute('id') && (selects[i].getAttribute('id').substr(0,8) == 'regions_' || selects[i].getAttribute('id').substr(0,7) == 'cities_' || selects[i].getAttribute('id').substr(0,7) == 'param__' || selects[i].getAttribute('id').substr(0,6) == 'region' || selects[i].getAttribute('id') == 'sub_groups_of')) {
						selects[i].value = '';
						for (var j = 0; j != selects[i].options.length; j++) {
							selects[i].options[j].selected = false;
						}
						selects[i].options[0].selected = true;
					}
				}
			}
			// Resetting all previous Attribute Parameters 
			var inputs = document.getElementsByTagName('input');
			for (var i = 0; i != inputs.length; i++) {
				if (inputs[i].nodeType != 3) {
					if (inputs[i].getAttribute('type') && inputs[i].getAttribute('type') == 'checkbox' ) {
						inputs[i].checked = false;
					}
				}
			}
			document.getElementById('param__general__region').value = '';
			document.getElementById('param__general__city').value = '';
					
			// Showing the disclaimer pop-up if required
			var disclaimer__group_ids = [];
			disclaimer__group_ids = document.getElementsByName('disclaimer__group_ids[]');
			
			var disclaimer__group_descriptions = [];
			disclaimer__group_descriptions = document.getElementsByName('disclaimer__group_descriptions[]');
			
			for (i = 0; i < disclaimer__group_ids.length; i++) {
				if (disclaimer__group_ids[i].value == group_id) {
					disclaimer_popup('javascript:disclaimer_popup_hide();',href_url,disclaimer__group_descriptions[i].value);
				}
			}
		}
		
		// Hiding the 'disabled' select-box of the sub_groups
		document.getElementById('sub_groups_of_null__container').style.display = 'none';
		
	} else {
		
		// Displaying the 'disabled' select-box of the sub_groups
		document.getElementById('sub_groups_of_null__container').style.display = '';
		
	}
	
	// Resetting previous sub-group hidden field value
	document.getElementById('sub_group').value = '';
	
	// Setting the relevant group hidden field value
	document.getElementById('main_group').value = group_id;

}

function sub_group_chosen(href_url, sub_group_id, mode) {
	    
	sub_group = sub_group_id;
	
	// Changing the global JS data_url var (for the Autocomplete)
	data_url = data_url_prefix + '&group='+group+'&sub_group='+sub_group_id;
	//$('#query_input_field').val(''); // Clears existing data (.autocomplete('flushCache') doesn't work for some reason)
	$('#query_input_field').setOptions({url: data_url}); // .autocomplete('setData', {...}) doesn't work for some reason
	
	if (mode != 'quite') {
		// Showing the disclaimer pop-up if required
		var disclaimer__group_ids = [];
		disclaimer__group_ids = document.getElementsByName('disclaimer__group_ids[]');
		
		var disclaimer__group_descriptions = [];
		disclaimer__group_descriptions = document.getElementsByName('disclaimer__group_descriptions[]');
		
		for (i = 0; i < disclaimer__group_ids.length; i++) {
			if (disclaimer__group_ids[i].value == sub_group_id) {
				disclaimer_popup('javascript:disclaimer_popup_hide();',href_url,disclaimer__group_descriptions[i].value);
			}
		}
	}
	
	// Setting the relevant sub-group selection
	document.getElementById('sub_group').value = sub_group_id;
	
}

/* ## */

function show_post(href_url, post_id) {
	
	// Marking the Post as "read"
	$('#post_'+post_id+'__title_row').css('background','#FAFAFA');
	
	// Incrementing the Post Clicked counter
	var clicked = document.getElementById('post_'+post_id+'__clicked');
	if (clicked.value == '0') {
		$.get(href_url+'?increment_post_clicks='+post_id);
		clicked.value = '1';
	}
	
	// Hiding the Renew Confirmation container
	$('#post_'+post_id+'__renew_confirmation').hide();
	
	// Hiding the Advance Confirmation container
	$('#post_'+post_id+'__advance_confirmation').hide();
	
	// Hiding the Delete Confirmation container
	$('#post_'+post_id+'__delete_confirmation').hide();
	
	// Resetting the "post_visible_for_print" className
	document.getElementById('post_'+post_id+'__title_row').className = document.getElementById('post_'+post_id+'__title_row').className.replace(/(post_visible_for_print ?)/,'');
	document.getElementById('post_'+post_id).className = document.getElementById('post_'+post_id).className.replace(/(post_visible_for_print ?)/,'');
	
	// Adding the Anchor to the url (so that people will be able to copy-paste the url for a specific post
	var href = location.href;
	href = href.replace(location.hash,'');
	href = href.replace('#','');
	if (document.getElementById('post_'+post_id).style.display != '') {
		window.location = href.replace(location.hash,'')+'#'+post_id;
	}
	
	// Showing the post container
	$('#post_'+post_id).toggle();
	
}

function print_post(post_id) {
	document.getElementById('post_'+post_id+'__title_row').className = 'post_visible_for_print ' + document.getElementById('post_'+post_id+'__title_row').className.replace(/(post_visible_for_print ?)/,'');
	document.getElementById('post_'+post_id).className = 'post_visible_for_print ' + document.getElementById('post_'+post_id).className.replace(/(post_visible_for_print ?)/,'');
	print();
}

/* ## */

function update_search_form(element) {
	if (document.getElementById('search_form_input__'+element.getAttribute('id'))) {
		document.getElementById('search_form_input__'+element.getAttribute('id')).parentNode.removeChild(document.getElementById('search_form_input__'+element.getAttribute('id')));
	}
	if (element.value) {
		input = document.createElement('input');
		input.setAttribute('type','hidden');
		input.setAttribute('id','search_form_input__'+element.getAttribute('id'));
		input.setAttribute('name',element.getAttribute('id'));
		input.setAttribute('value',element.value);
		document.getElementById('search').appendChild(input);
	}
}

/* ## */

function delete_post(post_id, post_groups, tweet_id) {
	document.getElementById('delete_post__referrer').value = 'my-account/posts/?deleted='+post_id+'&deleted_post_groups='+post_groups+'&tweet_id='+tweet_id;
	document.getElementById('delete_post__post_id').value = post_id;
	document.delete_post__form.submit();
}

/* ## */

function set_price_field() {
	var price_from = document.getElementById('price_from').value;
	var price_to = document.getElementById('price_to').value;
	document.getElementById('price').value = price_from + '-' + price_to;
}

/* ## */

function change_country(href_url, country, selected_region, selected_city) {
	$('#param__general__country').val(country);
	$('#param__general__region').val(selected_region);
	$('#param__general__city').val(selected_city);
	change_regions(href_url, country, selected_region, selected_city);
}

function change_regions(href_url, country, selected_region, selected_city) {
	// Removing the current regions container
	$('#regions').remove();
	// Hiding the regions container
	$('#regions__container').hide();
	// Showing the disabled regions select box
	$('#regions_disabled_select_box').show();
	// Removing any existing cities
	if (!selected_city) {
		$('#param__general__city').val('');
		if (document.getElementById('cities')) {
			document.getElementById('cities__container').removeChild(document.getElementById('cities'));
		}
	}
	// Hiding the current cities container
	$('#cities__container').hide();	
	// Showing the disabled select-box
	$('#cities_disabled_select_box').show();
	if (country) {
		// Showing loader
		$('#regions__loader').show();
		// Hiding the disabled select box
		$('#regions_disabled_select_box').hide();
		$.get(href_url, { 'action' : 'get_regions', 'country' : country},
			function (data) {
				if (data && data.length > 1) {
					var select = document.createElement('select');
					select.setAttribute('id', 'regions');
					select.setAttribute('onchange', 'change_cities(\''+href_url+'\', this.value, \''+country+'\'); document.getElementById(\'param__general__region\').value = this.value;');
					//select.className = 'long_field';
					var option = document.createElement('option');
					option.setAttribute('value', '');
					option.innerHTML = '';
					select.appendChild(option);
					var value;
					for (i = 0; i < data.length; i++) {
						value = data[i];
						if (value) {
							option = document.createElement('option');
							option.setAttribute('value', value);
							if (eval('/'+selected_region+'/.test(value)')) {
								option.selected = true;
								option.setAttribute('selected', 'Selected');
								change_cities(href_url, selected_region, country, selected_city);
							}
							option.innerHTML = value;
							select.appendChild(option);
						}
					}
					var container = document.getElementById('regions__container');
					// Appending the element
					container.appendChild(select);
					container.innerHTML = container.innerHTML;
					// Showing the regions container
					container.style.display = '';
				} else {
					$('#regions_disabled_select_box').show();
				}
				// Hiding loader
				document.getElementById('regions__loader').style.display = 'none';
				adjust_height('post_parameters_details__middle','post_parameters_details__middle__explanation', 14);
			}, 'json'
		);
	} else {
		$('#regions__container').show();
		$('#regions_disabled_select_box').show();
	}
}

function change_cities(href_url, region, country, selected_city) {
	var cities = document.getElementById('cities');
	// Hiding the current cities container
	$('#cities__container').hide();	
	// Hiding the disabled select box
	$('#cities_disabled_select_box').hide();
	if (region) {
		// Showing loader
		$('#cities__loader').show();
		$.get(href_url, { 'action' : 'get_cities', 'region' : region, 'country' : country},
			function (data) {
				if (data && data.length > 1) {
					var select = document.createElement('select');
					select.setAttribute('id', 'cities');
					select.setAttribute('onchange', 'document.getElementById(\'param__general__city\').value = this.value;');
					//select.className = 'long_field';
					var option = document.createElement('option');
					option.setAttribute('value', '');
					option.innerHTML = '';
					select.appendChild(option);
					var value;
					for (i = 0; i < data.length; i++) {
						value = data[i];
						if (value) {
							option = document.createElement('option');
							option.setAttribute('value', value);
							if (eval('/'+selected_city+'/.test(value)')) {
								option.selected = true;
								option.setAttribute('selected', 'Selected');
							}
							option.innerHTML = value;
							select.appendChild(option);
						}
					}
					var container = document.getElementById('cities__container');
					if (document.getElementById('cities')) {
						container.removeChild(document.getElementById('cities'));
					}
					// Appending the element
					container.appendChild(select);
					container.innerHTML = container.innerHTML;
					// Showing the sub_categories container (only if sub-categories exist)
					container.style.display = '';
				} else {
					$('#cities_disabled_select_box').show();
				}
				// Hiding loader
				document.getElementById('cities__loader').style.display = 'none';
				adjust_height('post_parameters_details__middle','post_parameters_details__middle__explanation', 14);
			}, 'json'
		);
	} else {
		$('#cities_disabled_select_box').show();
	}
}
