+/**
+ * Compare Form Input values against cached initial value.
+ *
+ * @return {Boolean} true if changes have been made.
+ */
+ CRM.utils.initialValueChanged = function(el) {
+ var isDirty = false;
+ $(':input:visible, .select2-container:visible+:input.select2-offscreen', el).not('[type=submit], [type=button], .crm-action-menu').each(function () {
+ var initialValue = $(this).data('crm-initial-value');
+ // skip change of value for submit buttons
+ if (initialValue !== undefined && !_.isEqual(initialValue, $(this).val())) {
+ isDirty = true;
+ }
+ });
+ return isDirty;
+ };
+