]> git.uio.no Git - usit-rt.git/blob - share/static/js/late.js
Putting 4.2.0 on top of 4.0.17
[usit-rt.git] / share / static / js / late.js
1 // Lower the speed limit for hover intent event
2 jQuery.event.special.hover.speed = 80; // pixels per second
3
4 jQuery(function() {
5     var all_inputs = jQuery("input,textarea,select");
6     var parse_cf = /^Object-([\w:]+)-(\d*)-CustomField(?::\w+)?-(\d+)-(.*)$/;
7     all_inputs.each(function() {
8         var elem = jQuery(this);
9         var parsed = parse_cf.exec(elem.attr("name"));
10         if (parsed == null)
11             return;
12         if (/-Magic$/.test(parsed[4]))
13             return;
14         var name_filter_regex = new RegExp(
15             "^Object-"+parsed[1]+"-"+parsed[2]+
16              "-CustomField(?::\\w+)?-"+parsed[3]+"-"+parsed[4]+"$"
17         );
18         var update_elems = all_inputs.filter(function () {
19             return name_filter_regex.test(jQuery(this).attr("name"));
20         }).not(elem);
21         if (update_elems.length == 0)
22             return;
23         var trigger_func = function() {
24             var curval = elem.val();
25             if ((elem.attr("type") == "checkbox") || (elem.attr("type") == "radio")) {
26                 curval = [ ];
27                 jQuery('[name="'+elem.attr("name")+'"]:checked').each( function() {
28                     curval.push( jQuery(this).val() );
29                 });
30             }
31             update_elems.val(curval);
32         };
33         if ((elem.attr("type") == "text") || (elem.attr("tagName") == "TEXTAREA"))
34             elem.keyup( trigger_func );
35         else
36             elem.change( trigger_func );
37     });
38 });