YUI().use('node-event-delegate', 'sc-form', 'sc-io', 'alma-dialog', 'handlebars', function (Y) {
    var content = Y.one('#content');

    Y.one('#layout').delegate('click', function (evt) {
        evt.preventDefault();

        var href = evt.currentTarget.get('href');
        Y.SC.IO.get(href, null, null, function (err, resp) {
            if (err) {
                Y.Alma.Dialog.alert(resp);
            } else {
                Y.one('#page-header').remove();
                content.one('form').replace(resp.html);
            }
        });
    }, '.create-account');

    content.delegate('click', function (evt) {
        Y.config.win.location.reload();
    }, '.signon-return');

    content.delegate('submit', function (evt) {
        evt.preventDefault();
        if (!this.validate()) {
            return;
        }

        this.send(function (err, resp) {
            if (err) {
                Y.Alma.Dialog.alert(resp, function () {
                    this.one('input[type="password"]').set('value', '').focus();
                }, this);
            } else {
                this.replace(resp.html);
            }
        });
    }, '#login-form');

    content.delegate('click', function (evt) {
        evt.preventDefault();
        Y.config.win.location = this.get('href') + '?u=' + content.one('#login-form input[name="Username"]').get('value');
    }, '#account-help');

    // simple XHR specific for sso login
    content.delegate('submit', function (evt) {
        evt.halt(true);
        var form = evt.currentTarget;
        form.send(function (err, resp) {
            if (err) {
                Y.Alma.Dialog.alert(resp);
            } else {
                Y.Alma.Dialog.message({
                    message: resp,
                    autoDismiss: false
                });
            }
        });
    }, 'form.login-form-xhr');
});
