/* Library - General Purpose Functions */

function write_to_element(element_id, content) {
	//alert(element_id);
	document.getElementById(element_id).innerHTML = content;
}


function array_search(needle, haystack) {
	if (haystack.length == 0) { return false; }
	for (var i = 0; i < haystack.length; i++) {
		if (needle == haystack[i]) { return true; }
	}
	return false;
}

function random_number(min, max) {
	
	// this function returns a random number in the range from min to max
	var range = Math.abs(max - min) + 1;
	var number = Math.floor(range*Math.random());
	if (number == range) { number = number - 1; }
	return number + Math.min(max,min);
	
}

function random_element(this_array) {

	// this function returns a random element from an array
	var n = random_number(0, (this_array.length - 1));
	return this_array[n];

}

function set_element_style(element_id, style_name, style_value) {
	document.getElementById(element_id).style[style_name] = style_value;
}

function get_field_value_by_name(element_name) {

	// warning... if result is an integer, you'll need to cast it as such
	var these_values = new Array();
	var element_list = document.getElementsByTagName('input');
	for (var i = 0; i < element_list.length; i++) {
		if (element_list[i].name == element_name && element_list[i].checked==1) {
			these_values[these_values.length] = element_list[i].value;
		}
	}
	return these_values.join(',');

}

function get_field_value_by_id(element_id) {
	return document.getElementById(element_id).value;
}

function int_compare(a, b) {
	// this function is used to sort an array by numerical value
	return a - b;
}

function object_position_property_sort(a, b) {

	if (a.position < b.position) {
		return -1;
	} else {
		if (a.position == b.position) {
			return 0
		} else {
			return 1;
		}
	}

}

function object_event_date_property_sort(a, b) {

	if (a.event_dates < b.event_dates) {
		return -1;
	} else {
		if (a.event_dates == b.event_dates) {
			return 0
		} else {
			return 1;
		}
	}

}

function break_md_array(md_array, md_index) {
	
	// multi dimensional array, multi dimensional index
	// break the $index of the multidimensional array into its own array

	var i;

	new_array = new Array();
	
	for (i = 0; i < md_array.length; i++) {
	
		new_array[i] = md_array[i][md_index];
	
	}
	
	return new_array;

}


function array_similarity(array_1, array_2) {

	// returns the number of equal (value and position) items in two arrays

	var i;
	var s = 0;
			
	if (array_1.length != array_2.length) {
		// arrays are not the same length
		return -1;
	}
	
	for (i = 0; i < array_1.length; i++) {
		if (array_1[i] == array_2[i]) {
			s++;
		}
	}
	
	return s;

}

