/******************************************************************************
* DETAILS
* File            : forms library
* Author      : DEF
* ___________________________________________________
* CHANGELOG
* 060609 - Creation
* ___________________________________________________
* NOTES
*
* ___________________________________________________
* FUNCTION LIST

*** get_radios_value (field_id)
* returns checked value of a "radios" type field

*** set_radio_value (radio_ref, value)

*** time_to_sec (form_name, field_name)

*** f_start_buttons_observer (but_id)

*** f_set_active_button(but_id, but_value)

*** set_phone_value (phone_name, value)

*** on_change_phone_value (phone_name)

*** clear_phone_value(phone_value)

*** check_phone_value(phone)
******************************************************************************/

var t_but_observers = new Array(); // array of button observers

//__________________________________________________________________________________________________

function get_radios_value (field_id) {
/*
*** get_radios_value (field_id)
* returns checked value of a "radios" type field
*/
    var i = 0;
    var checked_value = "";
    while (e = document.getElementById(field_id + i++)) if (e.checked) checked_value = e.value;
    return checked_value;
}

//__________________________________________________________________________________________________

function set_radio_value (radio_ref, value) {
    for (i = 0; i < radio_ref.length; i++) {
        if (radio_ref[i].value == value) { radio_ref[i].checked = true; } else { radio_ref[i].checked = false; }
    }
}

//__________________________________________________________________________________________________

function set_phone_value (phone_name, value) {
	if (value == undefined) return;
	
	t_value = value.split("-");
		
	if ($(phone_name + "_code") != null ) {
		if (t_value[0] != '' && t_value[0] != undefined) $(phone_name + "_code").value = t_value[0];
		else if ($(phone_name + "_code").tagName == 'SELECT') $(phone_name + "_code").selectedIndex = 0;
	}
	
	if (t_value[1] == undefined) t_value[1] = value;
	if ($(phone_name + "_number") != null) $(phone_name + "_number").value = t_value[1];
	
	if ($(phone_name) != null && $(phone_name + "_number").value != '') 
		$(phone_name).value = $(phone_name + "_code").value + "-" + clear_phone_value($(phone_name + "_number").value);
	else 
		$(phone_name).value = '';
}

//__________________________________________________________________________________________________

function on_change_phone_value (phone_name) {
	if (phone_name == undefined) return;
	if ($(phone_name) == null) return;
	
	//clear number value
	var number_value = clear_phone_value ($(phone_name + "_number").value);
	//clear code value
	var code_value = clear_phone_value($(phone_name + "_code").value);
	
	if (number_value == '' || code_value == '') $(phone_name).value = '';
	else $(phone_name).value = code_value + '-' + number_value;
}

//__________________________________________________________________________________________________

function clear_phone_value(phone_value) {
	phone_value = phone_value.replace(/-/g,'');	
	phone_value = phone_value.replace(/\s/g,'');
	phone_value = phone_value.replace(/\./g,'');
	phone_value = phone_value.replace(/\+/g,'');
	phone_value = phone_value.replace(/,/g,'');
	phone_value = phone_value.replace(/;/g,'');
	while (phone_value.indexOf('0') == 0) phone_value = phone_value.replace(/0/,'');
	return phone_value;
}

//__________________________________________________________________________________________________

function check_phone_value(phone_obj) {
	var value = phone_obj.value;
	t_value = value.split("-");
	var is_valable;
	if ((t_value[1] != '' && t_value[1] != undefined) && (isNaN(t_value[0]) || isNaN(t_value[1]) || (t_value[0] == '')) ) return false;
	return true;
}

//__________________________________________________________________________________________________

function time_to_sec (form_name, field_name) {
    var f = d[form_name];
    var h = f[field_name + "_hou"];
    var m = f[field_name + "_min"];
    var s = f[field_name + "_sec"];
    if (! h) return;
    var sec = h.value * 3600 + m.value * 60;
    if (s) sec+= s.value;
    return sec;
}

//__________________________________________________________________________________________________

function f_start_buttons_observer (but_id) {
	if ($(but_id) != null) {
		var but_value = $(but_id).value; // JS optimization
	    if (t_but_observers[but_id] != but_value) {
	        f_set_active_button(but_id, but_value);
	        t_but_observers[but_id] = but_value;
	    }
	}
    setTimeout("f_start_buttons_observer ('" + but_id + "');", 200);
}

//__________________________________________________________________________________________________

function f_set_active_button(but_id, but_value) {
    var current_button = but_id + '_0';
    var i = 0;
    while ($(current_button)) {
        var class_value = ($(current_button).summary == but_value) ? 'r_txt_ga_but' : 'r_txt_g_but';
        change_r_txt_but_class (current_button, class_value);
        i++;
        var current_button = but_id + '_' + i;
    }
}
