1 2var InputsExclusion = ['.content_vote']; 3 4var InputsMorph = { 5 version: 1.7, 6 init: function() { 7 InputsMorph.rtl = document.id(document.body).getStyle('direction') == 'rtl'; 8 InputsMorph.list = new Hash({ 9 'all': [] 10 }); 11 var b = $$('input[type=radio]'); 12 var c = $$(InputsExclusion.join(' input[type=radio], ') + ' input[type=radio]'); 13 c.each(function(a) { 14 b = b.erase(a); 15 }); 16 b.each(function(a, i) { 17 InputsMorph.setArray('list', 'all', a); 18 if (InputsMorph.list.has(a.name)) InputsMorph.setArray('list', a.name, a); 19 else InputsMorph.list.set(a.name, [a]); 20 InputsMorph.morph(a, 'radios').addEvent(a, 'radios'); 21 }); 22 b = $$('input[type=checkbox]'); 23 c = $$(InputsExclusion.join(' input[type=checkbox], ') + ' input[type=checkbox]'); 24 c.each(function(a) { 25 b = b.erase(a); 26 }); 27 b.each(function(a, i) { 28 InputsMorph.setArray('list', 'all', a); 29 if (InputsMorph.list.has(a.name)) InputsMorph.setArray('list', a.name, a); 30 else InputsMorph.list.set(a.name, [a]); 31 InputsMorph.morph(a, 'checks').addEvent(a, 'checks'); 32 }); 33 }, 34 morph: function(a, b) { 35 var c = a.getNext(), 36 parent = a.getParent(), 37 name = a.name.replace('[', '').replace(']', ''); 38 if (c && c.get('tag') == 'label') { 39 a.setStyles({'position': 'absolute', 'left': '-10000px'}); 40 41 if (InputsMorph.rtl && Browser.Engine.gecko) a.setStyles({'position': 'absolute', 'right': '-10000px'}); 42 else a.setStyles({'position': 'absolute', 'left': '-10000px'}); 43 44 if (InputsMorph.rtl && (Browser.Engine.presto || Browser.Engine.trident)) {a.setStyle('display', 'none');} 45 if (Browser.Engine.trident5) a.setStyle('display', 'none'); 46 47 c.addClass('rok' + b + ' rok' + name); 48 if (a.checked) c.addClass('rok' + b + '-active'); 49 } else if (parent && parent.get('tag') == 'label') { 50 51 if (InputsMorph.rtl && Browser.Engine.gecko) a.setStyles({'position': 'absolute', 'right': '-10000px'}); 52 else a.setStyles({'position': 'absolute', 'left': '-10000px'}); 53 54 if (InputsMorph.rtl && (Browser.Engine.presto || Browser.Engine.trident)) {a.setStyle('display', 'none');} 55 56 parent.addClass('rok' + b + ' rok' + name); 57 if (a.checked) parent.addClass('rok' + b + '-active'); 58 } 59 return InputsMorph; 60 }, 61 addEvent: function(a, b) { 62 a.addEvent('click', function() { 63 if (Browser.Engine.presto || Browser.Engine.trident) { 64 if (a.opera) {InputsMorph.switchReplacement(a, b);} 65 a.opera = (b == 'checks') ? false : true; 66 } else InputsMorph.switchReplacement(a, b); 67 }); 68 if (Browser.Engine.presto || Browser.Engine.trident || (a.getNext() && !a.getNext().getProperty('for'))) { 69 var c = a.getNext(), 70 parent = a.getParent(); 71 if (c && c.get('tag') == 'label' && (Browser.Engine.trident || (Browser.Engine.presto && !a.opera))) { 72 c.addEvent('click', function() { 73 if ((Browser.Engine.presto || Browser.Engine.trident) && !a.opera) a.opera = true; 74 a.fireEvent('click'); 75 }); 76 } else if (parent && parent.get('tag') == 'label' || (a.getParent() && !a.getParent().getProperty('for'))) { 77 parent.addEvent('click', function() { 78 a.fireEvent('click'); 79 }); 80 } 81 } 82 return InputsMorph; 83 }, 84 switchReplacement: function(d, e) { 85 if (e == 'checks') { 86 var f = d.getNext(), 87 parent = d.getParent(), 88 cls = "rok" + e + "-active"; 89 var g = ((f) ? f.get('tag') == 'label' : false); 90 var h = ((parent) ? parent.get('tag') == 'label' : false); 91 if (g || h) { 92 if (g) { 93 if (f.hasClass(cls) && g) { 94 f.removeClass(cls); 95 if (d.checked) d.checked = false; 96 } 97 else if (!f.hasClass(cls) && g) { 98 f.addClass(cls); 99 if (!d.checked) d.checked = true; 100 } 101 } else if (h) { 102 if (parent.hasClass(cls) && h) { 103 parent.removeClass(cls); 104 if (d.checked) d.checked = false; 105 } 106 else if (!parent.hasClass(cls) && h) { 107 parent.addClass(cls); 108 if (!d.checked) d.checked = true; 109 } 110 } 111 } 112 } else { 113 InputsMorph.list.get(d.name).each(function(a) { 114 var b = a.getNext(), 115 parent = a.getParent(); 116 var c = d.getNext(), 117 radioparent = d.getParent(); 118 if (b) $$(b).removeClass('rok' + e + '-active'); 119 if (parent) $$(parent).removeClass('rok' + e + '-active'); 120 if (b && b.get('tag') == 'label' && c == b) { 121 a.setProperty('checked', 'checked'); 122 b.addClass('rok' + e + '-active'); 123 } else if (parent && parent.get('tag') == 'label' && radioparent == parent) { 124 parent.addClass('rok' + e + '-active'); 125 a.setProperty('checked', 'checked'); 126 } 127 }); 128 } 129 }, 130 setArray: function(a, b, c) { 131 var d = InputsMorph[a].get(b); 132 d.push(c); 133 return InputsMorph[a].set(b, d); 134 } 135}; 136window.addEvent('domready', InputsMorph.init);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.