/***************************************************************************
         js/misc.php  -  Miscellaneous/basic javascript functions
                             -------------------
    begin                : Fri Jun 09 2006
    copyright            : (C) 2006 by Filios Konstantinos
    email                : drcypher@mail.ntua.gr
    last modified        : Fri Jun 09 2006
    module version       : 1.0
 ***************************************************************************/

/***************************************************************************
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 ***************************************************************************/

function showTab(str_cont, str_var, str_sel)
{
	html_hidden = $(str_cont + '_' + str_var + '_sel');

	str_prev = html_hidden.value;

	if (str_prev != str_sel) {
		// Get previously active tab/container
		prev_tab = $('tab_' + str_var + '_' + str_prev);
		prev_cont = $(str_var + '_' + str_prev);

		// Get selected tab/container
		sel_tab = $('tab_' + str_var + '_' + str_sel);
		sel_cont = $(str_var + '_' + str_sel);

		// Switch previous tab off
		prev_tab.className = 'tab';
		prev_cont.style.display = 'none';

		// Switch selected tab on
		sel_tab.className = 'tab-sel';
		sel_cont.style.display = 'block';

		// Save selected tab `id' as selected
		html_hidden.value = str_sel;
	}
}

function bln_actions_valid()
{
	arr_boxes = document.getElementsByTagName('input');

	str_accept = '';	// Last 'accept' ID encountered
	int_accepts = 0;	// Number of 'accepts' found
	str_accepts = '';	// List of 'accept' user names

	str_close = '';	// Last 'close' ID encountered
	int_closes = 0;	// Number of 'accepts' found
	str_closes = '';	// List of 'accept' user names
	for (i = 0; i < arr_boxes.length; i++) {
		// Filter checked 'accept radio buttons' begginning with 'mod)action_'
		if (arr_boxes[i].name.match('mod_action_') &&
		    arr_boxes[i].checked) {

			if (arr_boxes[i].value == 'accept') {
				int_accepts++;
				str_accept = arr_boxes[i].name.substr(11);
				str_accepts += '* ' + $('tab_t_' + str_accept).innerHTML + "\n";
			} else if (arr_boxes[i].value == 'close') {
				int_closes++;
				str_close = arr_boxes[i].name.substr(11);
				str_closes += '* ' + $('tab_t_' + str_close).innerHTML + "\n";
			}
		}
	}

	// Too many accepts
	if (int_accepts > 1) {
		alert("Μπορείτε να εγκρίνετε μόνο μια καταχώρηση εκ των:\n" + str_accepts);
		return false;

	// Accepts not exceedingly many
	} else {
		// One accept is set, disallow moderator submit
		if (int_accepts == 1) {
			if ( (dom_mod = $('mod_form_submit')) &&
			     (dom_mod.checked)) {
				alert("Εφ' όσον έχετε ζητήσει να εγκριθεί μια καταχώρηση, θα " +
					"υποβληθούν τα στοιχεία της αντίστοιχης φόρμας. Απενεργοποιήστε " +
					"την επιλογη 'Υποβολή' από τη φόρμα του συντονιστή");
			}

		// No accepts, make sure no closes are open
		} else {
			if (int_closes > 0) {
				alert("Προκειμένου να εγκριθούν οι παρακάτω αιτήσεις οφείλετε "+
					"να ζητήσετε 'Αποδοχή' για μια εξ' αυτών:\n" + str_closes);
				return false;
			}
		}
	}

	// Everything fine, set mod_action_accept (if moderating)
	if ( (dom_mod = $('mod_accept_action'))) {
		dom_mod.value = str_accept;
	}
	return true;
}

function apply_sug(str_name, str_val)
{
	dom = $(str_name);
	dom.value = str_val;
	dom = $(str_name + '_label');
	dom.innerHTML = $('suggest_' + str_val).innerHTML;
	dom = $(str_name + '_suggest');
	dom.innerHTML = '';

}


/***************************************************************************
 *  Procedure: enter_submit
 *  Purpose:   Submits form with id `str_form' if 'enter' has been pressed.
 ***************************************************************************/
function enter_submit(str_form, e)
{
	if (window.event && window.event.keyCode == 13) {
		$(str_form).submit();
	} else if(e.which == 13) {
		$(str_form).submit();
	} else {
		return true;
	}
}

