1/**
2 * script.js for Plugin twcheckliste
3 *
4 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 * @author     web@agentur-triebwerk.de
6 *
7 */
8
9jQuery.fn.toggleCheckbox = function() {
10	if (this.prop('checked') == true){
11		this.prop('checked', false);
12	} else {
13		this.prop('checked', true);
14	}
15	// this.prop('checked', !this.prop('checked'));
16};
17
18jQuery(function() {
19	generateForm();
20	jQuery(".checkliste ol").addClass("hideit");
21});
22
23function generateForm() {
24
25	var x = 0;
26	var y = 0;
27	var h3level = 0;
28	var h4level = 0;
29	var z = 0;
30	var lplevel = 0;
31	var scripte = '';
32
33	jQuery(".checkliste h2").each(function(indexh2, value) {
34		var tmpElement = jQuery(document.createElement("input")).prop({
35			id : 'GRUPPE' + indexh2,
36			class : '',
37			name : 'checklist_data[' + indexh2 + '][HL]',
38			value : jQuery(this).html(),
39			type : 'checkbox',
40			checked : true
41		});
42
43		jQuery(this).prepend(tmpElement);
44
45		jQuery("#GRUPPE" + indexh2).click(function() {
46			if (jQuery(this).prop("checked") == true) {
47				jQuery("." + jQuery(this).prop("id")).prop("checked", "true");
48			} else {
49				jQuery("." + jQuery(this).prop("id")).removeAttr("checked");
50
51			}
52
53		});
54
55		jQuery(this).nextUntil("h2").each(function() {
56			if (jQuery(this).hasClass("level2")) {
57				lplevel = 0;
58				jQuery(this).find("li").each(function() {
59					lplevel++;
60					var tmpElement = jQuery(document.createElement("input")).prop({
61						id : '',
62						class : 'GRUPPE' + indexh2,
63						name : 'checklist_data[' + indexh2 + '][LP][' + lplevel + ']',
64						value : jQuery(this).find("div").html(),
65						type : 'checkbox',
66						checked : true
67					});
68
69					jQuery(this).prepend(tmpElement);
70
71				});
72			} else if (jQuery(this).get(0).tagName == "H3") {
73				h3level++;
74				var tmpElement = jQuery(document.createElement("input")).prop({
75					id : 'LEVEL2_' + h3level,
76					class : 'GRUPPE' + indexh2,
77					name : 'checklist_data[' + indexh2 + '][H3][' + h3level + '][HL]',
78					value : jQuery(this).html(),
79					type : 'checkbox',
80					checked : true
81				});
82
83				jQuery(this).prepend(tmpElement);
84
85			} else if (jQuery(this).hasClass("level3")) {
86				lplevel = 0;
87				jQuery(this).find("li").each(function() {
88					lplevel++;
89					var tmpElement = jQuery(document.createElement("input")).prop({
90						id : '',
91						class : 'GRUPPE' + indexh2 + ' LEVEL2_' + h3level,
92						name : 'checklist_data[' + indexh2 + '][H3][' + h3level + '][LP][' + lplevel + ']',
93						value : jQuery(this).find("div").html(),
94						type : 'checkbox',
95						checked : true
96					});
97
98					jQuery(this).prepend(tmpElement);
99
100				});
101
102			} else if (jQuery(this).get(0).tagName == "H4") {
103				h4level++;
104				var tmpElement = jQuery(document.createElement("input")).prop({
105					id : 'LEVEL3_' + h4level,
106					class : 'GRUPPE' + indexh2 + ' LEVEL2_' + h3level,
107					name : 'checklist_data[' + indexh2 + '][H3][' + h3level + '][H4][' + h4level + '][HL]',
108					value : jQuery(this).html(),
109					type : 'checkbox',
110					checked : true
111				});
112				jQuery(this).prepend(tmpElement);
113			} else if (jQuery(this).hasClass("level4")) {
114				lplevel = 0;
115				jQuery(this).find("li").each(function() {
116					lplevel++;
117					var tmpElement = jQuery(document.createElement("input")).prop({
118						id : '',
119						class : 'GRUPPE' + indexh2 + ' LEVEL2_' + h3level + ' LEVEL3_' + h4level,
120						name : 'checklist_data[' + indexh2 + '][H3][' + h3level + '][H4][' + h4level + '][LP][' + lplevel + ']',
121						value : jQuery(this).find("div").html(),
122						type : 'checkbox',
123						checked : true
124					});
125
126					jQuery(this).prepend(tmpElement);
127
128				});
129
130			}
131
132		});
133
134	});
135
136	for (var i = 0; i <= h3level; i++) {
137		jQuery("#LEVEL2_" + i).click(function() {
138			if (jQuery(this).prop("checked") == true) {
139				jQuery("." + jQuery(this).prop("id")).prop("checked", "true");
140			} else {
141				jQuery("." + jQuery(this).prop("id")).removeAttr("checked");
142			}
143		});
144	}
145
146	for (var i = 0; i <= h4level; i++) {
147		jQuery("#LEVEL3_" + i).click(function() {
148			if (jQuery(this).prop("checked") == true) {
149				jQuery("." + jQuery(this).prop("id")).prop("checked", "true");
150			} else {
151				jQuery("." + jQuery(this).prop("id")).removeAttr("checked");
152			}
153
154		});
155	}
156
157
158	jQuery("span.unchecked").each(function(indexh2, value) {
159		jQuery(this).parent().find("input").click();
160	});
161
162
163}
164/*
165function generateForm2() {
166
167	var x = 0;
168	var y = 0;
169
170	jQuery.each(jQuery(".checkliste h1"), function(index, value) {
171
172		var tmpElement = jQuery(document.createElement("input")).prop({
173			id : 'input-' + x,
174			class : 'single-input',
175			name : 'checklist_data[]',
176			value : 'h1_' + jQuery.trim(jQuery(this).html()),
177			type : 'hidden'
178		});
179
180		jQuery(this).prepend(tmpElement);
181	});
182
183	jQuery.each(jQuery(".checkliste h2"), function(index, value) {
184
185		x++;
186		var item = jQuery(this).prop("class");
187		var groupId = item.replace(/\D/g, '');
188
189		var tmpElement = jQuery(document.createElement("input")).prop({
190			id : 'group-' + groupId,
191			class : 'group-input',
192			name : 'checklist_data[]',
193			value : 'h2_' + jQuery(this).find("a").html(),
194			type : 'checkbox',
195			checked : false
196		});
197
198		jQuery(this).prepend(tmpElement);
199
200		jQuery('#group-' + groupId).click(function() {
201			if (!jQuery(this).prop('checked')) {
202				jQuery(this).parent().next().find(':checkbox').prop('checked', false);
203			} else {
204				jQuery(this).parent().next().find(':checkbox').prop('checked', true);
205			}
206		});
207
208		// BEARBEITUNG VON P ELEMENTE
209		jQuery.each(jQuery(this).next().find("p"), function(index, value) {
210
211			y++;
212			var tmpElement = jQuery(document.createElement("input")).prop({
213				id : 'input-' + y + groupId,
214				class : 'single-input single-input-p' + y + groupId,
215				name : 'checklist_data[]',
216				value : 'p_' + jQuery.trim(getEingabefeld(jQuery(this).html())),
217				type : 'checkbox',
218				checked : false
219			});
220
221			jQuery(this).html(getEingabefeld(jQuery(this).html()));
222			jQuery(this).prepend(tmpElement);
223
224			jQuery('.single-input-p' + y + groupId).change(function() {
225				if (!jQuery(this).prop('checked')) {
226					jQuery(this).parent().next().find(':checkbox').prop('checked', false);
227					jQuery(this).parent().next().find(':checkbox').removeAttr('checked');
228				} else {
229					jQuery(this).parent().next().find(':checkbox').prop('checked', true);
230				}
231			});
232
233			// BEARBEITUNG VON LISTENELEMENTE
234			jQuery.each(jQuery(this).next().find("li"), function(index, value) {
235
236				var tmpElement = jQuery(document.createElement("input")).prop({
237					id : 'input-' + y + groupId,
238					class : 'single-input single-input' + y,
239					name : 'checklist_data[]',
240					value : 'li_' + jQuery.trim(jQuery(this).find("div").html()),
241					type : 'checkbox',
242					checked : false
243				});
244				jQuery(this).html(getEingabefeld(jQuery(this).html()));
245				jQuery(this).prepend(tmpElement);
246			});
247		});
248
249	});
250}
251*/
252function getEingabefeld(tmpHtml) {
253	return tmpHtml.replace('EINGABEFELD', '...................................');
254}
255