PageSourceSearch

https://www.hdct.at/media/com_hikamarket/js/hikamarket.js?v=611

js hdct.at collected 2026-10-09 23:03:11 UTC 18,941 bytes, 609 lines download raw bytes

1/**
2 * @package    HikaMarket for Joomla!
3 * @version    6.1.1
4 * @author     Obsidev S.A.R.L.
5 * @copyright  (C) 2011-2026 OBSIDEV. All rights reserved.
6 * @license    GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7 */
8(function() {
9
10function preventDefault() { this.returnValue = false; }
11function stopPropagation() { this.cancelBubble = true; }
12
13var Oby = {
14	version: 20220529,
15	ajaxEvents : {},
16
17	hasClass: function(o,n) {
18		if(o.classList && o.classList.contains)
19			return o.classList.contains(n);
20		if(o.className == '' ) return false;
21		var reg = new RegExp("(^|\\s+)"+n+"(\\s+|$)");
22		return reg.test(o.className);
23	},
24	addClass: function(o,n) {
25		if(o.classList && o.classList.add)
26			return o.classList.add(n);
27		if( !this.hasClass(o,n) ) {
28			if( o.className == '' ) {
29				o.className = n;
30			} else {
31				o.className += ' '+n;
32			}
33		}
34	},
35	trim: function(s) {
36		if(s.trim) return s.trim();
37		return (s ? '' + s : '').replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
38	},
39	removeClass: function(e, c) {
40		if(e.classList && e.classList.remove)
41			return e.classList.remove(c);
42		var t = this;
43		if( t.hasClass(e,c) ) {
44			var cn = ' ' + e.className + ' ';
45			e.className = t.trim(cn.replace(' '+c+' ',' '));
46		}
47	},
48	toggleClass: function(e,c) {
49		if(e.classList && e.classList.toggle)
50			return e.classList.toggle(c);
51		var t = this;
52		if( t.hasClass(e,c) ) {
53			return t.removeClass(e,c);
54		}
55		return t.addClass(e,c);
56	},
57	addEvent: function(d,e,f) {
58		if( d.attachEvent )
59			d.attachEvent('on' + e, f);
60		else if (d.addEventListener)
61			d.addEventListener(e, f, false);
62		else
63			d['on' + e] = f;
64		return f;
65	},
66	removeEvent: function(d,e,f) {
67		try {
68			if( d.detachEvent )
69				d.detachEvent('on' + e, f);
70			else if( d.removeEventListener)
71				d.removeEventListener(e, f, false);
72			else
73				d['on' + e] = null;
74		} catch(e) {}
75	},
76	cancelEvent: function(e) {
77		if( !e ) {
78			e = window.event;
79			if( !e )
80				return false;
81		}
82		if(e.stopPropagation)
83			e.stopPropagation();
84		else
85			 e.cancelBubble = true;
86		if( e.preventDefault )
87			e.preventDefault();
88		else
89			e.returnValue = false;
90		return false;
91	},
92	fireEvent: function(obj,e,data) {
93		var d = document, evt = null;
94		if(document.createEvent) {
95			evt = d.createEvent('HTMLEvents');
96			evt.initEvent(e, false, true);
97			if(data) evt.data = data;
98			obj.dispatchEvent(evt);
99			return;
100		}
101		if(data && d.createEventObject) {
102			evt = d.createEventObject();
103			evt.data = data;
104			obj.fireEvent('on'+e, evt);
105			return;
106		}
107		obj.fireEvent('on'+e);
108	},
109	fireAjax: function(name,params) {
110		var t = this, ev, r = null, ret = [];
111		if( t.ajaxEvents[name] === undefined )
112			return false;
113		for(var e in t.ajaxEvents[name]) {
114			if( e == '_id' )
115				continue;
116			ev = t.ajaxEvents[name][e];
117			if(!ev || typeof(ev) != 'function')
118				continue;
119			try {
120				r = ev(params);
121				if(r !== undefined)
122					ret.push(r);
123			}catch(e){}
124		}
125		return ret;
126	},
127	registerAjax: function(name, fct) {
128		var t = this;
129		if(typeof(name) == 'object') {
130			var r = [];
131			for(var k = name.length - 1; k >= 0; k--) {
132				r[r.length] = t.registerAjax(name[k], fct);
133			}
134			return r;
135		}
136		if( t.ajaxEvents[name] === undefined )
137			t.ajaxEvents[name] = {'_id':0};
138		var id = t.ajaxEvents[name]['_id'];
139		t.ajaxEvents[name]['_id'] += 1;
140		t.ajaxEvents[name][id] = fct;
141		return id;
142	},
143	unregisterAjax: function(name, id) {
144		if( t.ajaxEvents[name] === undefined || t.ajaxEvents[name][id] === undefined)
145			return false;
146		t.ajaxEvents[name][id] = null;
147		return true;
148	},
149	ready: function(fct) {
150		var w = window, d = document, t = this;
151		if(d.readyState === "complete") {
152			fct();
153			return;
154		}
155		var done = false, top = true, root = d.documentElement,
156			init = function(e) {
157				if(e.type == 'readystatechange' && d.readyState != 'complete') return;
158				t.removeEvent((e.type == 'load' ? w : d), e.type, init);
159				if(!done && (done = true))
160					fct();
161			},
162			poll = function() {
163				try{ root.doScroll('left'); } catch(e){ setTimeout(poll, 50); return; }
164				init('poll');
165			};
166		if(d.createEventObject && root.doScroll) {
167			try{ top = !w.frameElement; } catch(e){}
168			if(top) poll();
169		}
170		t.addEvent(d,'DOMContentLoaded',init);
171		t.addEvent(d,'readystatechange',init);
172		t.addEvent(w,'load',init);
173	},
174	evalJSON: function(text, secure) {
175		if( typeof(text) != "string" || !text.length) return null;
176		if(JSON !== undefined && typeof(JSON.parse) == 'function') {
177			try { var ret = JSON.parse(text); return ret; } catch(e) { }
178		}
179		if(secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(text.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) return null;
180		try { var ret = eval('(' + text + ')'); return ret; } catch(e) { }
181		return null;
182	},
183	getXHR: function() {
184		var xhr = null, w = window;
185		if(w.XMLHttpRequest || w.ActiveXObject) {
186			if(w.ActiveXObject) {
187				try {
188					xhr = new ActiveXObject("Microsoft.XMLHTTP");
189				} catch(e) {}
190			} else
191				xhr = new w.XMLHttpRequest();
192		}
193		return xhr;
194	},
195	xRequest: function(url, options, cb, cbError) {
196		var t = this, xhr = t.getXHR();
197		if(!options) options = {};
198		if(!cb) cb = function(){};
199		options.mode = options.mode || 'GET';
200		options.update = options.update || false;
201		xhr.onreadystatechange = function() {
202			if(xhr.readyState != 4)
203				return;
204			if( xhr.status == 200 || (xhr.status == 0 && xhr.responseText > 0) || !cbError ) {
205				if(cb)
206					cb(xhr,options.params);
207				if(options.update)
208					t.updateElem(options.update, xhr.responseText);
209			} else {
210				cbError(xhr,options.params);
211			}
212		};
213		xhr.open(options.mode, url, true);
214		if(options.mode.toUpperCase() == 'POST' && typeof(options.data) == 'string') {
215			xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
216		}
217		xhr.send( options.data );
218	},
219	getFormData: function(target, encoded) {
220		var d = document, ret = {};
221		if(encoded === undefined) encoded = true;
222		if( typeof(target) == 'string' )
223			target = d.getElementById(target);
224		if( target === undefined )
225			target = d;
226		var typelist = ['input','select','textarea'];
227		for(var t in typelist) {
228			if(!typelist.hasOwnProperty(t))
229				continue;
230			t = typelist[t];
231			var inputs = target.getElementsByTagName(t);
232			for(var i = 0; i < inputs.length; i++) {
233				if( !inputs[i].name || inputs[i].disabled )
234					continue;
235				var evalue = inputs[i].value, n = inputs[i].name, etype = '';
236				if( t == 'input' )
237					etype = inputs[i].type.toLowerCase();
238				if( (etype == 'radio' || etype == 'checkbox') && !inputs[i].checked )
239					evalue = null;
240				if(t == 'select' && inputs[i].multiple) {
241					for(var k = inputs[i].options.length - 1; k >= 0; k--) {
242						if(!inputs[i].options[k].selected)
243							continue;
244						//if( ret != '' ) ret += '&';
245						//ret += encodeURI(inputs[i].name) + '=' + encodeURIComponent(inputs[i].options[k].value);
246						if(ret.hasOwnProperty(n)) {
247							if(typeof(ret[n]) != 'object')
248								ret[n] = [ ret[n] ];
249							ret[n][ ret[n].length ] = inputs[i].options[k].value;
250						} else
251							ret[ n ] = inputs[i].options[k].value;
252						evalue = null;
253					}
254				}
255				if( (etype != 'file' && etype != 'submit') && evalue != null ) {
256					//if( ret != '' ) ret += '&';
257					//ret += encodeURI(inputs[i].name) + '=' + encodeURIComponent(evalue);
258					if(ret.hasOwnProperty(n)) {
259						if(typeof(ret[n]) != 'object')
260							ret[n] = [ ret[n] ];
261						ret[n][ ret[n].length ] = evalue;
262					} else
263						ret[ n ] = evalue;
264				}
265			}
266		}
267		if(encoded)
268			return this.encodeFormData(ret);
269		return ret;
270	},
271	encodeFormData: function(data) {
272		var ret = '', v = null;
273		if(typeof(data) == "string")
274			return data;
275		for(var k in data) {
276			if(!data.hasOwnProperty(k))
277				continue;
278			v = data[k];
279			if(typeof(v) == 'object') {
280				for(var i in v) {
281					if(!v.hasOwnProperty(i))
282						continue;
283					if( ret != '' ) ret += '&';
284					ret += encodeURI(k) + '=' + encodeURIComponent(v[i]);
285				}
286			} else {
287				if( ret != '' ) ret += '&';
288				ret += encodeURI(k) + '=' + encodeURIComponent(v);
289			}
290		}
291		return ret;
292	},
293	updateElem: function(elem, data) {
294		var d = document, scripts = '';
295		if( typeof(elem) == 'string' )
296			elem = d.getElementById(elem);
297		var text = data.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(all, code){
298			if(all.indexOf('type="application/json"')>=0 || all.indexOf('type="application/ld+json"')>=0)
299				return all;
300			scripts += code + '\n';
301			return '';
302		});
303		elem.innerHTML = text;
304		if( scripts != '' ) {
305			var script = d.createElement('script');
306			script.setAttribute('type', 'text/javascript');
307			script.text = scripts;
308			try {
309				d.head.appendChild(script);
310				d.head.removeChild(script);
311			} catch(e) {}
312		}
313	},
314	ease: function(v) {
315		return 1+Math.pow(v-1,3);
316	},
317	easeInOut: function(t,s,dt,du) {
318		return dt/2 * (1 - Math.cos(Math.PI*t/du)) + s;
319	},
320	scrollTo: function(name, anim, visible, margin) {
321		var t = this, d = document, w = window,
322			elem = d.getElementById(name);
323		if(!elem)
324			return;
325		if(margin === undefined) margin = 0;
326		if(!anim) {
327			window.scrollTo(0, elem.offsetTop - margin);
328			return;
329		}
330		if( t.anim && t.anim.timer )
331			clearInterval( t.anim.timer );
332		t.anim = { timer:null, s:null, dt:0, du:150, t:0, inc:10 };
333		if( w.scrollY )
334			t.anim.s = w.scrollY;
335		else if( d.documentElement.scrollTop )
336			t.anim.s = d.documentElement.scrollTop;
337		else
338			t.anim.s = d.body.scrollTop;
339		if(visible) {
340			if( d.documentElement.scrollTop )
341				h = d.documentElement.clientHeight;
342			else
343				h = d.body.clientHeight;
344			if(t.anim.s <= elem.offsetTop && (t.anim.s + h - 150) > elem.offsetTop)
345				return;
346		}
347		t.anim.dt = elem.offsetTop - t.anim.s - margin;
348		var o = this;
349		t.anim.timer = setInterval( function() {
350			var a = o.anim;
351			if( !a || !a.timer )
352				return;
353			a.t += a.inc;
354			if( a.t < a.du ) {
355				window.scrollTo(0, o.easeInOut(a.t, a.s, a.dt, a.du), false, margin);
356			} else {
357				window.scrollTo(0, a.s + a.dt, false, margin);
358				clearInterval(a.timer);
359				a.timer = null;
360			}
361		}, t.anim.inc );
362	}
363};
364if((typeof(window.Oby) == 'undefined') || window.Oby.version < Oby.version) {
365	window.Oby = Oby;
366	window.obscurelighty = Oby;
367}
368
369var hikamarket = {
370	submitFct: null,
371	submitBox: function(data) {
372		var t = this;
373		if( t.submitFct ) {
374			try {
375				t.submitFct(data);
376			} catch(err) {}
377		}
378		t.closeBox();
379	},
380	deleteId: function(id) { return window.hikashop.deleteId(id); },
381	dup: function(tplName, htmlblocks, id, extraData, appendTo) { return window.hikashop.dup(tplName, htmlblocks, id, extraData, appendTo); },
382	deleteRow: function(id) { return window.hikashop.deleteRow(id); },
383	dupRow: function(tplName, htmlblocks, id, extraData) { return window.hikashop.dupRow(tplName, htmlblocks, id, extraData); },
384	cleanTableRows: function(id) { return window.hikashop.cleanTableRows(id); },
385	checkRow: function(id) { return window.hikashop.checkRow(id); },
386	isChecked: function(id,cancel) { return window.hikashop.isChecked(id,cancel); },
387	checkAll: function(checkbox, stub) {
388		stub = stub || 'cb';
389		if(!checkbox.form)
390			return false;
391		var o = window.Oby, cb = checkbox.form, c = 0;
392		for(var i = 0, n = cb.elements.length; i < n; i++) {
393			var e = cb.elements[i];
394			if(e != checkbox && e.type == checkbox.type && ((stub && e.id.indexOf(stub) == 0) || !stub)) {
395				e.checked = checkbox.checked;
396				o.fireEvent(e, 'change');
397				c += (e.checked == true ? 1 : 0);
398			}
399		}
400		if(cb.boxchecked)
401			cb.boxchecked.value = c;
402		return true;
403	},
404	submitform: function(task, form, extra) { return window.hikashop.submitform(task, form, extra); },
405	get: function(elem, target) { return window.hikashop.get(elem, target); },
406	form: function(elem, target) { return window.hikashop.form(elem, target); },
407	openBox: function(elem, url, jqmodal) { return window.hikashop.openBox(elem, url, jqmodal); },
408	closeBox: function(parent) { return window.hikashop.closeBox(parent); },
409	tabSelect: function(m,c,id) { return window.hikashop.tabSelect(mc,id); },
410	getOffset: function(el) { return window.hikashop.getOffset(el); },
411	switchBlock: function(el, values, name) {
412		var dest = document.getElementById(name);
413		if(!dest) return;
414		if(typeof(values) == 'number') values = [values];
415		for(var i = values.length - 1; i >= 0; i--) {
416			if(values[i] == el.value) { dest.style.display = ''; return; }
417		}
418		dest.style.display = 'none';
419	},
420	dataStore: function(name, value) {
421		if(localStorage) {
422			localStorage.setItem(name, value);
423		} else {
424			var expire = new Date(); expire.setDate(expire.getDate() + 5);
425			document.cookie = name+"="+value+"; expires="+expire;
426		}
427	},
428	dataGet: function(name) {
429		if(localStorage) {
430			return localStorage.getItem(name);
431		}
432		if(document.cookie.length > 0 && document.cookie.indexOf(name+"=") != -1) {
433			var s = name+"=", o = document.cookie.indexOf(s) + s.length, e = document.cookie.indexOf(";",o);
434			if(e == -1) e = document.cookie.length;
435			return unescape(document.cookie.substring(o, e));
436		}
437		return null;
438	},
439	setArrayDisplay: function(fields, displayValue) {
440		var d = document, e = null;
441		if(displayValue === true) displayValue = '';
442		if(displayValue === false) displayValue = 'none';
443		for(var i = 0; i < fields.length; i++) {
444			e = d.getElementById(fields[i]);
445			if(e) e.style.display = displayValue;
446		}
447	},
448	dlTitle: function(parent) {
449		var t = this, d = document;
450		if(parent && typeof(parent) == 'string')
451			parent = d.getElementById(parent);
452		if(!parent)
453			parent = d;
454		var dt = parent.getElementsByTagName('dt'), val = null,
455			hkTip = (typeof(hkjQuery) != "undefined" && hkjQuery().hktooltip);
456		for(var i = 0; i < dt.length; i++) {
457			if(dt[i].offsetWidth < dt[i].scrollWidth && !dt[i].getAttribute('title')) {
458				val = (dt[i].innerText !== undefined) ? dt[i].innerText : dt[i].textContent;
459				if(hkTip) {
460					dt[i].setAttribute('data-title', val);
461					hkjQuery(dt[i]).hktooltip({"html": true,"container": "body"});
462				} else
463					dt[i].setAttribute('title', val);
464			}
465		}
466	},
467	collapseTitles: function() {
468		var t = this, d = document, w = window, o = w.Oby,
469			collapsedBlocks = t.dataGet('hkm_section_toggle');
470		collapsedBlocks = collapsedBlocks ? o.evalJSON(collapsedBlocks) : [];
471		if(!collapsedBlocks) collapsedBlocks = [];
472
473		d.querySelectorAll('[data-section-toggle]').forEach(function(el){
474			if(el.collapseTitleInit) return;
475			o.addEvent(el, 'click', t.collapseTitle);
476
477			var section = t._collapseGetSection(el);
478			if(section) {
479				if(collapsedBlocks.indexOf(section.name) >= 0) {
480					el.collapsed = true;
481					o.addClass(el, 'hk_closed');
482				} else
483					o.addClass(section.elem, 'open');
484				o.addClass(section.elem, 'hk_collapsing');
485			}
486			el.collapseTitleInit = true;
487		});
488	},
489	_collapseGetSection: function(el) {
490		if(!el) return false;
491		var d = document,
492			sectionName = el.getAttribute('data-section-toggle');
493		if(!sectionName) return false;
494
495		var section = d.getElementById('hikamarket_section_' + sectionName);
496		if(!section) section = d.getElementById(sectionName);
497		return {name: sectionName, elem: section};
498	},
499	collapseTitle: function(evt) {
500		if(!evt) {
501			evt = window.event;
502			if(!evt) return false;
503		}
504		var w = window, t = w.hikamarket, o = w.Oby,
505			el = evt.target;
506		if(!el) return false;
507
508		var section = t._collapseGetSection(el);
509		if(!section) return false;
510
511		if(el.collapsed) {
512			o.addClass(section.elem, 'open');
513			o.removeClass(el, 'hk_closed');
514		} else {
515			o.removeClass(section.elem, 'open');
516			o.addClass(el, 'hk_closed');
517		}
518
519		var collapsedBlocks = t.dataGet('hkm_section_toggle');
520		collapsedBlocks = collapsedBlocks ? o.evalJSON(collapsedBlocks) : [];
521		if(!collapsedBlocks) collapsedBlocks = [];
522
523		var p = collapsedBlocks.indexOf(section.name);
524		if(p >= 0 && el.collapsed) {
525			collapsedBlocks.splice(p, 1);
526		}
527		if(p === -1 && !el.collapsed) {
528			collapsedBlocks.push(section.name);
529		}
530		t.dataStore('hkm_section_toggle', JSON.stringify(collapsedBlocks));
531
532		el.collapsed = !el.collapsed;
533	},
534	noChzn: function() {
535		if(!window.jQuery)
536			return false;
537		jQuery('.no-chzn').each(function(i,el) {
538			var id = el.getAttribute('id'), chzn = null;
539			if(id) {
540				id = id.replace('{','_').replace('}','_');
541				chzn = jQuery('#'+id+'_chzn');
542			} else {
543				chzn = el.nextSibling;
544			}
545			if(chzn) chzn.remove();
546			jQuery(el).removeClass('chzn-done').show();
547		});
548		return true;
549	},
550	switchTab: function(el) {
551		if(!el || !el.parentNode || !el.parentNode.parentNode) return false;
552		var d = document, w = window, o = w.Oby,
553			c = el.parentNode.parentNode,
554			r = c.getAttribute('rel'),
555			current = el.getAttribute('rel'),
556			dest = null;
557		if(!r || r.substring(0,5) != 'tabs:') return false;
558		if(current.substring(0,4) != 'tab:') return false;
559		var id = r.substring(5),
560			tabs = c.childNodes;
561		current = current.substring(4);
562		dest = d.getElementById(id + current);
563		if(!dest) return false;
564		for(var k = 0; k < tabs.length; k++) {
565			if(!tabs[k] || tabs[k].nodeName.toLowerCase() != 'li') continue;
566			var i = 0, l = tabs[k].childNodes[i], lr = null;
567			while(l.nodeName.toLowerCase() != 'a' && i < tabs[k].childNodes.length)
568				l = tabs[k].childNodes[++i];
569			if(l.nodeName.toLowerCase() == 'a')
570				lr = l.getAttribute('rel');
571			if(!lr || lr.substring(0,4) != 'tab:') continue;
572			var lid = lr.substring(4);
573			if(lid == current) continue;
574			o.removeClass(tabs[k], 'active');
575			var ld = d.getElementById(id + lid);
576			if(ld) ld.style.display = 'none';
577		}
578		dest.style.display = '';
579		o.addClass(el.parentNode, 'active');
580		el.blur();
581		return false;
582	},
583	callbackFct: function(t,url,keyword,tree,node,ev) {
584		return treeCallbackFct(t,url,keyword,tree,node,ev);
585	},
586	searchSubmit:function(el) {
587		if(el.form.limitstart)
588			el.form.limitstart.value=0;
589		el.form.submit();
590	},
591	searchReset:function(el) {
592		if(el.form.limitstart) el.form.limitstart.value=0;
593		if(el.form.search) el.form.search.value='';
594		var els = el.form.querySelectorAll("[data-search-reset]");
595		if(els) { for(var i = els.length - 1; i >= 0; i--) {
596			els[i].value = els[i].getAttribute('data-search-reset');
597		} }
598		el.form.submit();
599	},
600	searchFilters:function(el, id) {
601		var block = document.getElementById(id);
602		if(!block) return false;
603		block.style.display = (block.style.display == "none") ? "" : "none";
604		return false;
605	}
606};
607window.hikamarket = hikamarket;
608
609})();

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.