function wizard_init() {
  var new_display_name = $('.new_display_name:last');

  new_display_name.focus(function(e) {
    var targ = $(e.target);
    if($.trim(targ.val()) == "Page Name") targ.val("");
    targ.css("color", "#000");
  });

  new_display_name.blur(function(e) {
    var targ = $(e.target);
    // If blank, set back to "Page Name"
    if($.trim(targ.val()) == "Page Name") targ.css("color", "#ccc");
    if($.trim(targ.val()) == "") targ.css("color", "#ccc").val("Page Name");
  });

  var while_typing = function(){name_edited('creating')}
  new_display_name.keyup(while_typing);
  new_display_name.keydown(while_typing);
  new_display_name.blur(while_typing);
}

function make_enter_just_preview(e) {
  c = e.keyCode;
  if(c == 13){
    wizard_preview_no_delay();
    return false;
  }
}

function wizard_save(ignore_main_conflict) {

  if(check_editing_disabled()) return false;

  var new_display_name = $('.new_display_name:last');
  clean_name_field(new_display_name);
  if(new_display_name.val() == "Page Name") return dialog("You must first choose a page name (step <b class='orange_number'>1.</b>).", {elephant:true});

  if(require_tier1_or_2_account_filter(wizard_save)) return false;   // If no username yet, do captcha

  var fields = {
    path: location_pathname(),
    updated_at: "",
    section_number: "",
    ignore_main_conflict:ignore_main_conflict||""
    };
  var form = $('#wizard_form').serializeArray();
  $.each(form, function(i, field){ fields[field.name] = field.value; });

  $.post('/pages/create',
    fields,
    wizard_save_callback,
    'json'
    );
  return false;
}

function wizard_save_callback(hash) {
  if(hash.dialog_path == "privates/private_limit_reached"){
    close_captcha_dialog_if_open();
    show_account_links();   // Show "account:" on top-right in case they look around or do something else
    if($("#sign_in_form").length) close_dialog();   // Close sign_up dialog if open
  }

  if(require_tier1_or_2_account_filter(wizard_save)) return false;
  if(hash.result == 'error'){
    if(hash.dialog) return dialog(hash.dialog);
    return dialog(hash.message, {elephant:true});
  }

  analytics_event("Create Success", gl.action.replace(/\b[a-z]/, function(w){return w.toUpperCase()}), {delayed:true});

  if(hash.result == 'redirect') {
    if(hash.extra_message) return dialog(hash.extra_message, {ignore_bg_click:true, close_function:function(){window.location = hash.to; return false;}});

    // Success

    $.cookie('just_created', true, {domain:domain_name(), path:"/"});
    gl.saving = true;
    loading_elephant();
    return window.location = hash.to;
  }

  dialog_from_hash(hash);
}

function wizard_preview() {
  mem_wizard_form_cache = $('#wizard_form').serializeArray();
  window.setTimeout(function(){ wizard_preview_no_delay() }, 600);
}

function wizard_preview_no_delay(message_when_no_image) {
  if(! ensure_session(wizard_preview)) return false;

  if(message_when_no_image == true && $.trim($('#image').val()) == "") return dialog("wizard_image_required.html");

  if(typeof(mem_wizard_form_cache) == "undefined" || mem_wizard_form_cache == null)
    var form = $('#wizard_form').serializeArray();
  else{
    var form = mem_wizard_form_cache;
    mem_wizard_form_cache = null;
  }
  $.post('/wizard/'+gl.action+'-preview', form, wizard_preview_callback, 'json');
}

function visibility_options(){
  dialog("privates/visibility_options.html", {close_function:visibility_options_continue, ignore_bg_click:true});
  return false;
}

function copy_wiki_text(){
  var form = $('#wizard_form').serializeArray();
  $.post('/wizard/copy_wiki_text/'+gl.action, form, function(hash){
    dialog(hash.dialog);
  }, 'json');
  return false;
}

function visibility_options_continue(){
  var group_choice = $("#group_choice_select").val();
  // Update button text
  $("#save_button span").hide();
  $("#save_button span."+group_choice).show();
  $("#group_choice").val(group_choice);   // Save in hidden field
  // Set text of link to public/private
  //   $("#visibility_options").html("change visibility...")
  $("#visibility_options").html("change privacy options...")
  return close_dialog();
}

function visibility_options_continue_callback(hash){
  // If failure dialog, display it
  // If result is error but no dialog, it's being ignored for now
  if(hash.dialog){
    dialog(hash.dialog);
    $("#group_choice_select").val("public");
  }
}

$(function(){
  $("#group_choice").val("public");   // Default to public, in case of reload
  check_editing_disabled();

  window.onbeforeunload = function() {
    if(gl.saving || $(".new_display_name").val() == "Page Name") return;
    return "If you don't save your changes they may be lost.";
  };

});

