function show_feedback() {
    var loc = ahost+'/reminders/tellus.pd';
    lightbox(loc,{'width':440,'hideloading':true});
}

function close_feedback() {
    hideLightbox();
}

function WombatFeedback(form_name) {
    var w_feedback = this;
    this.debug = false;
    this.form = document.getElementById(form_name);
    this.errors = new Errors('lightbox_message_area');
    this.request = new Requester('', 'POST', true, true);
    
    this.submitting = false;
    this.isIE = navigator.appName.indexOf('Microsoft') != -1;
    this.pony_ok = true;
    
    this.user_status = document.getElementById('user_status');
    this.used_prev = document.getElementById('used_prev');
    this.likely_recommend = document.getElementById('likely_recommend');
    this.rate_design = this.form.rate_design;
    this.rate_ease = this.form.rate_ease;
    this.comments = document.getElementById('comments');

    // add event triggers to buttons 
    try {
        this.btn_submit = document.getElementById('save');
        this.btn_submit.onclick = function() { w_feedback.submit(); }
    } catch(e) {}
    try {
        this.btn_cancel = document.getElementById('cancel');
        this.btn_cancel.onclick = function() { hideLightbox(); }
    } catch(e) {}
    try {
        this.comments.onkeyup = function() { w_feedback.pony(); }
    } catch(e) {}

    this.submit = function() {
        if (!this.form) return false;
        this.disable(true);
        var strQuery = new Requester().formToQuery(this.form);
        if (this.submitting) return;
        this.submitting = true;
        this.request.url = ahost+'/reminders/submitfeedback.pd';
        this.request.onsuccess = this.onsuccess;
        this.request.onerror = this.onerror;
        this.request.sendRequest(strQuery);
    }
    
    this.onerror = function(req) {
        w_feedback.submitting = false;
        w_feedback.disable(false);
        w_feedback.errors.add(new Error('', "There was an error submitting your feedback<br>Please try again in a few minutes."));
        if(w_feedback.debug)
            w_feedback.errors.add(new Error('',req.responseText));
        w_feedback.errors.display(true);
    }

    this.onsuccess = function(req) {
        eval('var results = '+req.responseText);
        w_feedback.submitting = false;
        if (results.status == 0) {
            hideLightbox();
        } else {
            w_feedback.disable(false);
            w_feedback.errors.add(new Error('', results.message));
            if (w_feedback.debug)
                w_feedback.errors.add(new Error('', results.error));
            w_feedback.errors.display(true);
        }
    }

    this.disable = function(disabled) {
        if (!this.form) return false;
        for (var i=0; i<this.form.elements.length; i++) {
            if (this.form.elements[i].type != 'hidden') {
                this.form.elements[i].disabled = disabled;
                if (this.form.elements[i].type != 'button')
                    this.form.elements[i].style.background = '#FFFFFF';
            }
        }
    }

    this.pony = function(keyup) {
        var x = this.comments.value.toLowerCase();
        if (x.search(/a pony/) > -1) {
            if(w_feedback.pony_ok && confirm('O RLY?')) {
                if (w_feedback.pony_ok) {
                    loc = ahost+'/reminders/pony.pd';
                    lightbox(loc,{'width':440,'hideloading':true});
                }
            } else w_feedback.pony_ok = false;
        }
    }
}
