function trimString(str) {
    str = this != window ? this : str;
    return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
String.prototype.trim = trimString;

function array_find(value) {
    for (var x = 0; x < this.length; x++) {
        if (this[x] == value) {
            return x
        }
    }
    return -1;
}


function rsvp_callback_success(o) {
    var ltbx = document.getElementById('lightbox');
    ltbx.innerHTML = o.responseText;

    activate_all_buttons('attend', new Array('yes', 'no'), 'yes');

    addClass(document.getElementById('rsvp_error'), 'hidden');
    addClass(document.getElementById('rsvp_load'), 'hidden');

    showLightbox();

    var set_focus = document.getElementById('set_focus').focus();
    if (set_focus) { set_focus.focus(); }

    YAHOO.util.Event.addListener('msg_text', 'focus', scroll_ta, 'msg_text');
}
function rsvp_callback_failure(o) {
    var rsvp_error = document.getElementById('rsvp_error');
    var rsvp_load = document.getElementById('rsvp_load');
    removeClass(rsvp_error, 'hidden');
    addClass(rsvp_load, 'hidden');
}
var rsvp_callback = {
    success: rsvp_callback_success,
    failure: rsvp_callback_failure
}
function checkRSVP(e) {
    var rsvp = document.getElementById('rsvp');
    var rsvp_error = document.getElementById('rsvp_error');
    var rsvp_load = document.getElementById('rsvp_load');
    addClass(rsvp_error, 'hidden');
    if (rsvp.value.length == 5) {
        removeClass(rsvp_load, 'hidden');
        var cObj = YAHOO.util.Connect.asyncRequest('GET', '/rsvp/?r=' + rsvp.value, rsvp_callback, null);
    } else {
        addClass(rsvp_load, 'hidden');
    }
}

function close_popup(e) {
    var popup = document.getElementById('popup');
    var msg = document.getElementById('popup_body');
    addClass(popup, 'hidden');
    msg.innerHTML = '';
    addClass(document.getElementById('rsvp_error'), 'hidden');
    addClass(document.getElementById('rsvp_load'), 'hidden');
}

var buttons = {};
function activate_buttons(name, labels) {
    buttons[name] = document.getElementById(name).value;
    for (var i in labels) {
        YAHOO.util.Event.addListener(name + '-' + labels[i], 'click', button_click, {'name': name, 'label': labels[i], 'labels': labels });
    }
}

function activate_all_buttons(prefix, labels) {
    var elem;
    var button_group;

    var idx = 0;
    while(elem = document.getElementById(prefix + '-' + idx)) {
        activate_buttons(prefix + '-' + idx, labels);
        idx++;
    }
}


function button_click(e, o) {
    if (o.label != buttons[o.name]) {
        document.getElementById(o.name).value = o.label;
        addClass(document.getElementById(o.name + '-' + o.label), 'active');
        removeClass(document.getElementById(o.name + '-' + buttons[o.name]), 'active');
        buttons[o.name] = o.label;
    }
}

function scroll_ta() {
    var ta = document.getElementById('msg_text');
    if (ta.clientHeight < 150) {
        ta.style.height = (ta.clientHeight + 20) + 'px';
        setTimeout('scroll_ta()', 5);
    }
}


