function select_tab(tab, tab_prefix, div_prefix) {
	var old				= document.getElementById(tab_prefix + '-current');
	var old_tab 		= document.getElementById(tab_prefix + '-' + old.name);
	var old_step 		= document.getElementById(div_prefix + '-' + old.name);

	var new_step 		= document.getElementById(div_prefix + '-' + tab);
	var new_tab			= document.getElementById(tab_prefix + '-' + tab);

	var show_tab		= document.getElementById(tab_prefix + '-show_tab');					

    if (!(old.name == '1' && tab_prefix == 'tab') || validate_address_information()) {
    	show_tab.value = tab;
    	old.name = tab;
    	old_tab.className = tab_prefix + '-off';
    	old_step.style.display = 'none';

    	new_tab.className = tab_prefix + '-on';
    	new_step.style.display = '';
    }
}

function tab_over(tab_prefix, tab_no) {
    var tab = document.getElementById(tab_prefix + '-' + tab_no);
    if (tab.className != tab_prefix + '-on')
        tab.className = tab_prefix + '-over';
}

function tab_out(tab_prefix, tab_no) {
    var tab = document.getElementById(tab_prefix + '-' + tab_no);
    if (tab.className != tab_prefix + '-on')
        tab.className = tab_prefix + '-off';
}

function validate_address_information() {

    var errors = get_address_information_errors();
    var _qfMsg = '';

    if (errors != '') {
        _qfMsg = dictionary.invalid_info;
        _qfMsg = _qfMsg + errors;
        _qfMsg = _qfMsg + '\n' + dictionary.please_correct_fields;
        alert(_qfMsg);
        return false;
    }

    return true;
}

function validate_compose_letter() {

    var errors = '';
    var _qfMsg = '';

    errors = get_address_information_errors();
    errors = errors + get_compose_letter_errors();

    if (errors != '') {
        _qfMsg = dictionary.invalid_info;
        _qfMsg = _qfMsg + errors;
        _qfMsg = _qfMsg + '\n' + dictionary.please_correct_fields;
        alert(_qfMsg);
        return false;
    }

    return true;
}

function get_address_information_errors() {
    var form = document.getElementById("speakout_form");

    var value = '';
    var errFlag = new Array();
    var _qfGroups = {};
    _qfMsg = '';

    value = form.elements['firstname'].value;
    if (value == '' && !errFlag['firstname']) {
        errFlag['firstname'] = true;
        _qfMsg = _qfMsg + '\n - ' + dictionary.first_name_required;
    }

    value = form.elements['lastname'].value;
    if (value == '' && !errFlag['lastname']) {
        errFlag['lastname'] = true;
        _qfMsg = _qfMsg + '\n - ' + dictionary.last_name_required;
    }

    value = form.elements['email'].value;
    if (value == '' && !errFlag['email']) {
        errFlag['email'] = true;
        _qfMsg = _qfMsg + '\n - ' + dictionary.email_required;
    }

    value = form.elements['email'].value;
    var regex = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;
    if (value != '' && !regex.test(value) && !errFlag['email']) {
        errFlag['email'] = true;
        _qfMsg = _qfMsg + '\n - ' + dictionary.invalid_email;
    }

    if (form.elements['phone']) {
        value = form.elements['phone'].value;
        if (value == '' && !errFlag['phone']) {
            errFlag['phone'] = true;
            _qfMsg = _qfMsg + '\n - ' + dictionary.phone_required;
        }

        value = form.elements['phone'].value;
        var regex = /^\s*(\+?1)?[- \.]*(\(\d{3}\)|\d{3})[- \.]*\d{3}[- \.]*\d{4}\s*$/;
        if (value != '' && !regex.test(value) && !errFlag['phone']) {
            errFlag['phone'] = true;
            _qfMsg = _qfMsg + '\n - ' + dictionary.invalid_phone;
        }
    }

    if (form.elements['country']) {
        value = form.elements['country'].value;
        if (value == '' && !errFlag['country']) {
            errFlag['country'] = true;
            _qfMsg = _qfMsg + '\n - ' + dictionary.country_required;
        }
    }

    if(form.elements['city']) {

        value = form.elements['addr1'].value;
        if (value == '' && !errFlag['addr1']) {
            errFlag['addr1'] = true;
            _qfMsg = _qfMsg + '\n - ' + dictionary.address_required;
        }

        value = form.elements['city'].value;
        if (value == '' && !errFlag['city']) {
            errFlag['city'] = true;
            _qfMsg = _qfMsg + '\n - ' + dictionary.city_required;
        }

        if (form.elements['state_cd']) {
            value = form.elements['state_cd'].value;
            if (value == '' && !errFlag['state_cd'] && form.elements['state_cd'].className == 'us') {
                errFlag['state_cd'] = true;
                _qfMsg = _qfMsg + '\n - ' + dictionary.state_required;
            }
        }

        if(form.elements['zip']) {
            value = form.elements['zip'].value;
            if (value == '' && !errFlag['zip']) {
                errFlag['zip'] = true;
                _qfMsg = _qfMsg + '\n - ' + dictionary.zip_required;
            }

            if (form.elements['zip'].className == 'us') {
                value = form.elements['zip'].value;
                var regex = /^[0-9]{5,5}$/;
                if (value != '' && !regex.test(value) && !errFlag['zip']) {
                    errFlag['zip'] = true;
                    _qfMsg = _qfMsg + '\n - ' + dictionary.invalid_us_zip;
                }
            }
        }

    }

    if (none_is_checked(getElementsByClass('recipient_check',document.getElementById('recipient_table'),'input'))) {
        errFlag['recipient'] = true;
        _qfMsg = _qfMsg + '\n - ' + dictionary.no_recipients_selected_error;
    }

    return _qfMsg;
}

function get_compose_letter_errors() {

    var form = document.getElementById("speakout_form");

    var value = '';
    var errFlag = new Array();
    var _qfGroups = {};
    _qfMsg = '';

    value = form.elements['subject'].value;
    if (value == '' && !errFlag['firstname']) {
        errFlag['firstname'] = true;
        _qfMsg = _qfMsg + '\n - ' + dictionary.subject_required;
    }

    value = form.elements['body'].value;
    if (value == '' && !errFlag['lastname']) {
        errFlag['lastname'] = true;
        _qfMsg = _qfMsg + '\n - ' + dictionary.message_required;
    }

    return _qfMsg;
}

function preview_letter() {

    if (!validate_compose_letter())
        return false;

    uncheck_hidden_checkboxes();
	if (none_is_checked(getElementsByClass('recipient_check',document.getElementById('recipient_table'),'input'))) {
        alert(dictionary.no_recipients_selected_error);
    } else {
        var speakout_form = document.getElementById('speakout_form');
    	speakout_form.submit();
    }
}

function send_letter() {
	var speakout_form = document.getElementById('speakout_form');
	var send = document.getElementById('send');

	send.value = 1;
	speakout_form.submit();
}

function focusOnField(field) {
	var thefield = document.getElementById(field);
	if (thefield) {
		thefield.focus();
	}
}

// uncheck all the hidden checkboxes so they dont get post'd
function uncheck_hidden_checkboxes(){

    var extra_rows = YAHOO.util.Dom.getElementsByClassName("extra","tr","recipient_table");

    for(i=0;i<extra_rows.length;i++){

        var el_id = extra_rows[i].id.split("_");
        el_id = el_id[1];

        if(extra_rows[i].style.display == 'none'){
            var checkbox_el = YAHOO.util.Dom.getElementsByClassName("recipient_check","input",extra_rows[i]);
            checkbox_el[0].checked = false;
        }

    }

}

function validate_participate(frm) {
  var value = '';
  var errFlag = new Array();
  _qfMsg = '';

  value = frm.elements['zip'].value;
  if (value == '' && !errFlag['zip']) {
    errFlag['zip'] = true;
    _qfMsg = _qfMsg + '\n - ' + dictionary.postal_code_required;
  }

  if (_qfMsg != '') {
    _qfMsg = dictionary.invalid_info + _qfMsg;
    _qfMsg = _qfMsg + '\n ' + dictionary.please_correct_fields;
    alert(_qfMsg);
    return false;
  }
  return true;
}
