| 123456789101112131415161718192021222324252627282930313233343536373839404142 | /*global URLify*/(function($) {    'use strict';    $.fn.prepopulate = function(dependencies, maxLength, allowUnicode) {        /*            Depends on urlify.js            Populates a selected field with the values of the dependent fields,            URLifies and shortens the string.            dependencies - array of dependent fields ids            maxLength - maximum length of the URLify'd string            allowUnicode - Unicode support of the URLify'd string        */        return this.each(function() {            var prepopulatedField = $(this);            var populate = function() {                // Bail if the field's value has been changed by the user                if (prepopulatedField.data('_changed')) {                    return;                }                var values = [];                $.each(dependencies, function(i, field) {                    field = $(field);                    if (field.val().length > 0) {                        values.push(field.val());                    }                });                prepopulatedField.val(URLify(values.join(' '), maxLength, allowUnicode));            };            prepopulatedField.data('_changed', false);            prepopulatedField.change(function() {                prepopulatedField.data('_changed', true);            });            if (!prepopulatedField.val()) {                $(dependencies.join(',')).keyup(populate).change(populate).focus(populate);            }        });    };})(django.jQuery);
 |