PageSourceSearch

https://deathvalley.com/libraries/gantry/js/gantry-inputs.js

js deathvalley.com collected 2026-10-02 10:31:32 UTC 4,697 bytes, 136 lines download raw bytes

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.