//
// Create a new account
//

    if (!jQuery.ce) jQuery.ce = new Object;

    jQuery.ce.new_account = {
        vars    : {
            script                  : '/public/www/new_account.pl',
            main_container_selector : '#new_account_container',
            terms_target            : '/public/terms_and_conditions.pl'
        },

        verify_username : function(input_elem){
            jQuery.ce.new_account.update_help_for(input_elem,'validating...');
            jQuery.ajax({
                type        : 'POST',
                url         : jQuery.ce.new_account.vars.script,
                dataType    : 'json',
                data        : ({ f_name: 'f_verify_username_json', username: jQuery(input_elem).val() }),
                success     : function(data) {
                                    var message = (data.error) ? data.error : 'Username is available.';
                                    jQuery.ce.new_account.update_help_for(input_elem,message);
                                }
                });
        },
        verify_password : function(input_elem){
            jQuery.ce.new_account.update_help_for(input_elem,'validating...');
            jQuery.ajax({
                type        : 'POST',
                url         : jQuery.ce.new_account.vars.script,
                dataType    : 'json',
                data        : ({ f_name: 'f_verify_password_json', password: jQuery(input_elem).val(), username: jQuery('input[name=username]').val() }),
                success     : function(data) {
                                    var message = (data.error) ? data.error : 'Password is strong.';
                                    jQuery.ce.new_account.update_help_for(input_elem,message);
                                }
                });
        },
        create : function(form_elem){
            var cgi_params = { f_name: 'f_create_json' };
            cgi_params = jQuery(form_elem).formData(cgi_params);
            jQuery.ajax({
                type        : 'POST',
                url         : jQuery.ce.new_account.vars.script,
                dataType    : 'json',
                data        : ( cgi_params ),
                success     : function(data) {
                                    if (report_error(data)) return true;
                                    jQuery(jQuery.ce.new_account.vars.main_container_selector).load(
                                        jQuery.ce.new_account.vars.script,
                                        {f_name: 'f_thank_you_html', username: data.username}
                                        );
                                }
                });
        },
        update_help_for : function(input_elem,message) {
            var this_help_class = jQuery(input_elem).attr('name') + '_input_help';
            jQuery('.'+this_help_class).html(message);
            return true;
        },
        view_terms_and_conditions : function() {
            var me = jQuery.ce.new_account;

            jQuery.ajax({
                type        : 'GET',
                url         : me.vars.terms_target,
                dataType    : 'text',
                success     : function(data) {
                                    jQuery(document.createElement('div')).append('<textarea wrap="hard" style="width: 565px; height: 300px; font-size: 10px;">'+data+'</textarea>').dialog({
                                        title       : 'Terms and Conditions',
                                        autoOpen    : true,
                                        modal       : true,
                                        resizable   : false,
                                        width       : 600,
                                        close       : function(){ jQuery(this).remove(); }
                                        });
                                }
                });

            return true;
        }
    };
