/* Library - General Purpose Functions */


function money_format(num) {

	num = num.toString().replace(/\$|\,/g,'');

	if(isNaN(num)) {
		num = "0";
	}

	sign = (num == (num = Math.abs(num)));

	num = Math.floor(num+0.50000000001);

	cents = num%100;

	num = Math.floor(num/100).toString();

	if(cents<10)

	cents = "0" + cents;

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)

	num = num.substring(0,num.length-(4*i+3))+','+

	num.substring(num.length-(4*i+3));

	return (((sign)?'':'-') + '$' + num + '.' + cents);

}

/*
function money_format(num) {

	var dollars = '';
	var cents = '';
	var l = 0;
	
	num = num + ''; // force a string
	
	l = num.length;
	
	dollars = num.substring(0, (l - 2));
	cents = num.substring((l - 2),(l));
	
	if (dollars == '') { dollars = '0'; }

	if (cents.length == 1) { cents = '0' + cents; }
	
	//return '$' + dollars + '.' + cents;

	return '$' + comma_formatted(dollars + '.' + cents);

}

function comma_formatted(amount) {
	var delimiter = ','; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	//if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
}
*/

function swap_image(element_id, new_src) {

	var this_element = document.getElementById(element_id);
	this_element.src = new_src;

}

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;

}

function preload_images(images) {
	for (i = 0; i < images.length; i++) {
		game_images[i] = new Image();
		game_images[i].src=images[i];
	}
}


