anchor.diff:  
   function authorize_ajax_form_callback(json) {
     if (json.status == "session timeout") {
  -    window.location = "/users/sign_in";
  +    window.location = "<%= CGI.unescape url.new_user_session_path %>";
       return false;
     }
   }
  
positive.code:  The autocomplete text field itself will be updated with the name, and
   a hidden field directly before the text field will be updated with the object id.
  */
  function updateAutoCompleteField(event, ui) {
    var edit_customer_path = "<%= CGI.unescape url.edit_customer_path('{id}') %>";
  
    jQuery("#resource_customer_id").val(ui.item.id);
    jQuery('#resource_customer_link').attr("href", resolve_url(edit_customer_path, {id: ui.item.id});
  }
  
  /*Adds the selected customer to the new project*/
  function addCustomerToProject(event, ui){
    var edit_customer_path = "<%= CGI.unescape url.edit_customer_path('{id}') %>";
  
    jQuery('#project_customer_id').val(ui.item.id);
    jQuery('#project_customer_link').attr("href", resolve_url(edit_customer_path, {id: ui.item.id});
  }
  
  jQuery(document).ready(function() {
  
negative.code: });
  
  
  
  function autocomplete(input_field, path, after_callback) {
    jQuery(input_field).autocomplete({
  