function clear_field(element, player, tag) {
	window.document.getElementsByName(element + '[' + player + '][0][' + tag + ']')[0].value = '';
}

function swap_player(element, tag) {
	var a = window.document.getElementsByName(element + '[0][0][' + tag + ']')[0].value;
	window.document.getElementsByName(element + '[0][0][' + tag + ']')[0].value = window.document.getElementsByName(element + '[1][0][' + tag + ']')[0].value;
	window.document.getElementsByName(element + '[1][0][' + tag + ']')[0].value = a;
}

function load(element, player, tag) {
	window.document.getElementsByName(element + '[' + player + '][0][' + tag + ']')[0].value = getCookie(element + '[' + player + '][0][' + tag + ']');
}

function save(element, player, tag) {
	setCookie(element + '[' + player + '][0][' + tag + ']', window.document.getElementsByName(element + '[' + player + '][0][' + tag + ']')[0].value);
}

function wave(element, player, tag) {
	temp = parseInt(parseInt(window.document.getElementsByName(element + '[' + player + '][0][' + tag + ']')[0].value) * 0.8);

	if (isNaN(temp) || temp == 0)
		temp = '';

	window.document.getElementsByName(element + '[' + player + '][0][' + tag + ']')[0].value = temp;
}

function wave2(name) {
	var temp = parseInt(parseInt(window.document.getElementsByName(name)[0].value) * 0.5);

	if (isNaN(temp) || temp == 0)
		temp = '';

	window.document.getElementsByName(name)[0].value = temp;
}

function delete_a() {
clear_field('techs', '0', 'w_t');clear_field('techs', '0', 's_t');clear_field('techs', '0', 'r_p');clear_field('numunits', '0', 'k_t');clear_field('numunits', '0', 'g_t');clear_field('numunits', '0', 'l_j');clear_field('numunits', '0', 's_j');clear_field('numunits', '0', 'kr');clear_field('numunits', '0', 'sc');clear_field('numunits', '0', 'ko');clear_field('numunits', '0', 're');clear_field('numunits', '0', 'sp');clear_field('numunits', '0', 'bo');clear_field('numunits', '0', 'z');clear_field('numunits', '0', 't');clear_field('numunits', '0', 'sk');}

function delete_v() {
clear_field('techs', '1', 'w_t');clear_field('techs', '1', 's_t');clear_field('techs', '1', 'r_p');clear_field('numunits', '1', 'k_t');clear_field('numunits', '1', 'g_t');clear_field('numunits', '1', 'l_j');clear_field('numunits', '1', 's_j');clear_field('numunits', '1', 'kr');clear_field('numunits', '1', 'sc');clear_field('numunits', '1', 'ko');clear_field('numunits', '1', 're');clear_field('numunits', '1', 'sp');clear_field('numunits', '1', 'bo');clear_field('numunits', '1', 'so');clear_field('numunits', '1', 'z');clear_field('numunits', '1', 't');clear_field('numunits', '1', 'sk');clear_field('numunits', '1', 'ra');clear_field('numunits', '1', 'l_l');clear_field('numunits', '1', 's_l');clear_field('numunits', '1', 'g');clear_field('numunits', '1', 'i');clear_field('numunits', '1', 'p');clear_field('numunits', '1', 'k_s');clear_field('numunits', '1', 'g_s');}

function load_a() {
load('techs', '0', 'w_t');load('techs', '0', 's_t');load('techs', '0', 'r_p');load('numunits', '0', 'k_t');load('numunits', '0', 'g_t');load('numunits', '0', 'l_j');load('numunits', '0', 's_j');load('numunits', '0', 'kr');load('numunits', '0', 'sc');load('numunits', '0', 'ko');load('numunits', '0', 're');load('numunits', '0', 'sp');load('numunits', '0', 'bo');load('numunits', '0', 'z');load('numunits', '0', 't');load('numunits', '0', 'sk');}

function load_v() {
load('techs', '1', 'w_t');load('techs', '1', 's_t');load('techs', '1', 'r_p');load('numunits', '1', 'k_t');load('numunits', '1', 'g_t');load('numunits', '1', 'l_j');load('numunits', '1', 's_j');load('numunits', '1', 'kr');load('numunits', '1', 'sc');load('numunits', '1', 'ko');load('numunits', '1', 're');load('numunits', '1', 'sp');load('numunits', '1', 'bo');load('numunits', '1', 'so');load('numunits', '1', 'z');load('numunits', '1', 't');load('numunits', '1', 'sk');load('numunits', '1', 'ra');load('numunits', '1', 'l_l');load('numunits', '1', 's_l');load('numunits', '1', 'g');load('numunits', '1', 'i');load('numunits', '1', 'p');load('numunits', '1', 'k_s');load('numunits', '1', 'g_s');}

function save_a() {
save('techs', '0', 'w_t');save('techs', '0', 's_t');save('techs', '0', 'r_p');save('numunits', '0', 'k_t');save('numunits', '0', 'g_t');save('numunits', '0', 'l_j');save('numunits', '0', 's_j');save('numunits', '0', 'kr');save('numunits', '0', 'sc');save('numunits', '0', 'ko');save('numunits', '0', 're');save('numunits', '0', 'sp');save('numunits', '0', 'bo');save('numunits', '0', 'z');save('numunits', '0', 't');save('numunits', '0', 'sk');}

function save_v() {
save('techs', '1', 'w_t');save('techs', '1', 's_t');save('techs', '1', 'r_p');save('numunits', '1', 'k_t');save('numunits', '1', 'g_t');save('numunits', '1', 'l_j');save('numunits', '1', 's_j');save('numunits', '1', 'kr');save('numunits', '1', 'sc');save('numunits', '1', 'ko');save('numunits', '1', 're');save('numunits', '1', 'sp');save('numunits', '1', 'bo');save('numunits', '1', 'so');save('numunits', '1', 'z');save('numunits', '1', 't');save('numunits', '1', 'sk');save('numunits', '1', 'ra');save('numunits', '1', 'l_l');save('numunits', '1', 's_l');save('numunits', '1', 'g');save('numunits', '1', 'i');save('numunits', '1', 'p');save('numunits', '1', 'k_s');save('numunits', '1', 'g_s');}

function wave_v() {
clear_field('numunits', '1', 'k_t');clear_field('numunits', '1', 'g_t');clear_field('numunits', '1', 'l_j');clear_field('numunits', '1', 's_j');clear_field('numunits', '1', 'kr');clear_field('numunits', '1', 'sc');clear_field('numunits', '1', 'ko');clear_field('numunits', '1', 're');clear_field('numunits', '1', 'sp');clear_field('numunits', '1', 'bo');clear_field('numunits', '1', 'so');clear_field('numunits', '1', 'z');clear_field('numunits', '1', 't');clear_field('numunits', '1', 'sk');wave('numunits', '1', 'ra');wave('numunits', '1', 'l_l');wave('numunits', '1', 's_l');wave('numunits', '1', 'g');wave('numunits', '1', 'i');wave('numunits', '1', 'p');wave('numunits', '1', 'k_s');wave('numunits', '1', 'g_s');wave2('v_met');
wave2('v_kris');
wave2('v_deut');
}

function swap_a_v() {
swap_player('techs', 'w_t');swap_player('techs', 's_t');swap_player('techs', 'r_p');swap_player('numunits', 'k_t');swap_player('numunits', 'g_t');swap_player('numunits', 'l_j');swap_player('numunits', 's_j');swap_player('numunits', 'kr');swap_player('numunits', 'sc');swap_player('numunits', 'ko');swap_player('numunits', 're');swap_player('numunits', 'sp');swap_player('numunits', 'bo');clear_field('numunits', '1', 'so');swap_player('numunits', 'z');swap_player('numunits', 't');swap_player('numunits', 'sk');clear_field('numunits', '1', 'ra');clear_field('numunits', '1', 'l_l');clear_field('numunits', '1', 's_l');clear_field('numunits', '1', 'g');clear_field('numunits', '1', 'i');clear_field('numunits', '1', 'p');clear_field('numunits', '1', 'k_s');clear_field('numunits', '1', 'g_s');document.getElementsByName('numunits[1][0][so]')[0].className += ' warning';
document.getElementById('def_td').className += ' warning';
}

function shuffle (array)
{
	var i = array.length;
	if (i == 0)
		return false;
	while (-- i)
	{
		var j = Math.floor(Math.random() * (i + 1));
		var x = array[i];
		var y = array[j];
		array[i] = y;
		array[j] = x;
	}

	return array;
}

function simulate_ipms()
{
	var def_list = new Array('ra','l_l','s_l','g','i','p','k_s','g_s');
	var def_data = new Object();
def_data['ra']=200;def_data['l_l']=200;def_data['s_l']=800;def_data['g']=3500;def_data['i']=800;def_data['p']=10000;def_data['k_s']=2000;def_data['g_s']=10000;
	var primary_target = document.getElementById('primary_target').value;
	var missiles_available_a = parseInt(document.getElementById('missiles_available_a').value); missiles_available_a = isNaN(missiles_available_a) ? 0 : Math.abs(missiles_available_a);
	var missiles_available_v = parseInt(document.getElementById('missiles_available_v').value); missiles_available_v = isNaN(missiles_available_v) ? 0 : Math.abs(missiles_available_v);
	var wt = parseInt(document.getElementsByName('techs[0][0][w_t]')[0].value); wt = isNaN(wt) ? 0 : Math.abs(wt);
	var rp = parseInt(document.getElementsByName('techs[1][0][r_p]')[0].value); rp = isNaN(rp) ? 0 : Math.abs(rp);

	var target_index;
	for (target_index = 0; target_index < def_list.length; target_index ++)
		if (def_list[target_index] == primary_target)
			break;

	if (target_index < def_list.length)
	{
		def_list.splice(target_index, 1);
		shuffle(def_list);
		def_list.unshift(primary_target);
	}
	else
		shuffle(def_list);

	if (missiles_available_a >= missiles_available_v)
		document.getElementById('missiles_remaining_v').innerHTML = '0';
	else
		document.getElementById('missiles_remaining_v').innerHTML = missiles_available_v - missiles_available_a;

	var dam = Math.floor((missiles_available_a - missiles_available_v) * 12000 * (1 + wt / 10));
	var def_remaining = new Object();
	for (var i in def_list)
	{
		if (dam < 0)
			dam = 0;

		var tag = def_list[i];
		def_data[tag] = Math.round(def_data[tag] * (1 + rp / 10));

		def_remaining[tag] = 0;
		var cur_num = parseInt(document.getElementsByName('numunits[1][0][' + tag + ']')[0].value); cur_num = isNaN(cur_num) ? 0 : Math.abs(cur_num);
		if (dam >= def_data[tag] * cur_num)
			dam -= def_data[tag] * cur_num;
		else
		{
			def_remaining[tag] = cur_num - Math.floor(dam / def_data[tag]);
			dam -= def_data[tag] * (cur_num - def_remaining[tag]);
		}

		document.getElementById('attacker_def_td[' + tag + ']').innerHTML = def_remaining[tag];
	}

	document.getElementById('apply_ipm_results').disabled = false;
}

function apply_ipms()
{
	var def_list = new Array('ra','l_l','s_l','g','i','p','k_s','g_s');

	var miss_remain = parseInt(document.getElementById('missiles_remaining_v').innerHTML);
	if (miss_remain <= 0 || isNaN(miss_remain))
		document.getElementById('missiles_available_v').value = '';
	else
		document.getElementById('missiles_available_v').value = miss_remain;
	document.getElementById('missiles_remaining_v').innerHTML = '';
	document.getElementById('missiles_available_a').value = '';

	for (var i in def_list)
	{
		var tag = def_list[i];
		var cur_val = parseInt(document.getElementById('attacker_def_td[' + tag + ']').innerHTML);

		if (cur_val <= 0 || isNaN(cur_val))
			document.getElementsByName('numunits[1][0][' + tag + ']')[0].value = '';
		else
			document.getElementsByName('numunits[1][0][' + tag + ']')[0].value = cur_val;

		document.getElementById('attacker_def_td[' + tag + ']').innerHTML = '&nbsp;';
	}

	document.getElementById('apply_ipm_results').disabled = true;
}