1 // Lower the speed limit for hover intent event
2 jQuery.event.special.hover.speed = 80; // pixels per second
4 jQuery(function() { sync_grouped_custom_fields() } );
5 function sync_grouped_custom_fields() {
6 var all_inputs = jQuery("input,textarea,select");
7 var parse_cf = /^Object-([\w:]+)-(\d*)-CustomField(?::\w+)?-(\d+)-(.*)$/;
8 all_inputs.each(function() {
9 var elem = jQuery(this);
10 var parsed = parse_cf.exec(elem.attr("name"));
13 if (/-Magic$/.test(parsed[4]))
15 var name_filter_regex = new RegExp(
16 "^Object-"+parsed[1]+"-"+parsed[2]+
17 "-CustomField(?::\\w+)?-"+parsed[3]+"-"+parsed[4]+"$"
19 var update_elems = all_inputs.filter(function () {
20 return name_filter_regex.test(jQuery(this).attr("name"));
22 if (update_elems.length == 0)
24 var trigger_func = function() {
25 var curval = elem.val();
26 if ((elem.attr("type") == "checkbox") || (elem.attr("type") == "radio")) {
28 jQuery('[name="'+elem.attr("name")+'"]:checked').each( function() {
29 curval.push( jQuery(this).val() );
32 update_elems.val(curval);
34 if ((elem.attr("type") == "text") || (elem.attr("tagName") == "TEXTAREA"))
35 elem.keyup( trigger_func );
37 elem.change( trigger_func );