/** Set up **/

jQuery(function($) {
	
	bindToggleResultDetails();
	
	bindDeptDatasetMap();
	
});

/** Functions for result lists **/

function bindToggleResultDetails() {

	if ($('.result_hiddens') != null) {
	
		// set up images to expand
		$('.result_js').html('<a href="" onclick="return false;" title="Show more information"><img src="/images/result_expand.jpg" class="js_switch" /></a>');
		
		// bind click
		$('.result_js a').click(function() {

			var hidden_info = $(this).parent().parent().siblings('.result_hiddens');
			if (hidden_info.is(':hidden')) {
				hidden_info.slideDown();
				$(this).children('img').attr({src: "/images/result_collapse.jpg" });
				$(this).attr({title: "Show less information" });
			} else {
				hidden_info.slideUp();
				$(this).children('img').attr({src: "/images/result_expand.jpg" });
				$(this).attr({title: "Show more information" });
			}
			return false;
		
		});
	}
}

/** Functions for user registration form **/

function toggleReceiveAll() {
	if ($('.checkbox_all').attr('checked')) {
		// disable all others
		$('.checkbox_all_adls').attr('disabled', true);
		$('.checkbox_all_datasets').attr('disabled', true);
		$('.checkbox_single').attr('disabled', true);
	} else {
		// enable all others
		$('.checkbox_all_adls').attr('disabled', false);
		$('.checkbox_all_datasets').attr('disabled', false);
		if ($('.checkbox_all_datasets').attr('checked')) {
			$('.checkbox_single').attr('disabled', true);
		} else {
			$('.checkbox_single').attr('disabled', false);
		}
	}
	
}

function toggleReceiveAllDatasets() {
	if ($('.checkbox_all_datasets').attr('checked')) {
		// disable all datasets
		$('.checkbox_single').attr('disabled', true);
	} else {
		// enable all datasets
		$('.checkbox_single').attr('disabled', false);
	}
}

function bindDeptDatasetMap() {
	if ($('#dynamic_dataset_select') != null) {
		$('#dynamic_dept_select').change(function() {
			changeDynamicDataset();
		});
		
		// update dept to current selection
		var current_dept = get_query_argument('dept');
		if (current_dept != "") {
			$('#dynamic_dept_select').val(current_dept);
		}
		
		// update dataset to current selection
		changeDynamicDataset();
	}
}

function changeDynamicDataset() {
	$('#dynamic_dataset_select').empty();

	var dept_code = $('#dynamic_dept_select').val();

	var ds_list = null;

	if (dept_code == 0) {
		ds_list = all_datasets['list'];
	} else {
		if (window.dept_ds_map != undefined) {
			ds_list = dept_ds_map[dept_code]['datasets'];
		} else {
			ds_list = new Array();
		}
	}

	var dropdownList = document.getElementById("dynamic_dataset_select");

	var current_option = get_query_argument('ds');
	var set_current_option = false;

	for (var i = 0; i < ds_list.length; i++) {

		var ds_info = ds_list[i];

		var option = new Option(ds_info['title'], ds_info['id']);
		if ($.browser.msie) {
			dropdownList.add(option);
		} else {
			dropdownList.add(option, null);
		}
		
		// check for current selection
		if (ds_info['id'] == current_option) {
			set_current_option = true;
		}
	}
	
	if (set_current_option) {
		$('#dynamic_dataset_select').val(current_option);
	}
}

/**
 * Helper function from http://www.drupalblog.nl/content/get-url-query-arguments-javascript
 **/
function get_query_argument(name, href) {

  href = (href) || window.location.href;
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");

  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec(href);

  return (results == null ? "" : results[1]);
};