PageSourceSearch

https://www.hcfonline.co.uk/resource/system/functions.js?v=849

js hcfonline.co.uk collected 2026-10-02 02:09:41 UTC 44,174 bytes, 1,644 lines download raw bytes

1var marked_row = new Array;
2var changing_wait = '<img src=/resource/system/images/waiting.gif border=0>';
3var system_status = '';
4var	g_callback_array = new Array();
5var g_av_encrypted = false;
6
7
8function print_lang(cmd,otype,oid,olang)
9{
10	var ovalue = "";
11	if(cmd == "del")
12	{
13		if(!confirm("Do you want to delete?"))
14		{
15			return;
16		}
17	}
18	if(cmd == "save" || cmd == "update")
19	{
20		if(string_trim(gel("plang_value").value)=="")
21		{
22			alert("Please input the value.");
23			return;
24		}
25		ovalue = urlencode(gel("plang_value").value);
26	}
27	/*
28	var loadParams = "?action=lang&cmd="+cmd+"&ovalue="+ovalue+"&olang="+olang+"&oid="+oid+"&otype="+otype;
29	doLoad(loadParams,UpdateLang,'plang_result','');
30	*/
31	if(otype==1)
32	{
33		if(ovalue)
34		{
35			var loadParams = "/admin/admin/menus.php?action=lang&cmd="+cmd+"&ovalue="+ovalue+"&olang="+olang+"&oid="+oid+"&otype="+otype;
36			doLoad(loadParams,UpdateLang,'plang_result','');
37		}else
38		{
39			var loadParams = "/admin/admin/menus.php?action=lang&cmd="+cmd+"&ovalue="+set_value+"&olang="+olang+"&oid="+oid+"&otype="+otype;
40			doLoad(loadParams,UpdateLang,'plang_result','');
41		}
42
43	}else
44	{
45		if(cmd == "add")
46		{
47			var s = "Please input the value.";
48			var set_value   = prompt(s, "NULL");
49			if(set_value=="NULL")set_value='';
50		}
51		if(set_value)
52		{
53			var loadParams = "/admin/admin/menus.php?action=lang&cmd="+cmd+"&ovalue="+set_value+"&olang="+olang+"&oid="+oid+"&otype="+otype;
54			//alert(loadParams);
55			doLoad(loadParams,writeHTML,otype+'_'+oid+'_'+olang,otype+'_'+oid+'_'+olang);
56		}else
57		{
58			var loadParams = "/admin/admin/menus.php?action=lang&cmd="+cmd+"&ovalue="+set_value+"&olang="+olang+"&oid="+oid+"&otype="+otype;
59			//alert(loadParams);
60			doLoad(loadParams,writeHTML,otype+'_'+oid+'_'+olang,otype+'_'+oid+'_'+olang);
61		}
62	}
63}
64function UpdateLang(req, oid)
65{
66	var r = req.responseText.split("|");
67	if(r[0]=="1")
68	{
69		switch(r[1])
70		{
71			case "1": // popbox return
72			{
73				PopBoxTMS(r[2]);
74				break;
75			}
76			case "2":
77			{
78				var re =  document.getElementById(oid);
79				if (typeof(re) != 'undefined' && re != null)
80				{
81					re.innerHTML="<img src='/resource/system/images/yes.png' border=0>";
82					setTimeout( "setEmpty('"+oid+"');", 3000);
83				}
84				window.location.reload();
85				break;
86			}
87			default: break;
88		}
89	}else
90	{
91		PopBoxTMS(r[2]); // popbox error msg
92	}
93}
94function PopBoxTMS(str)
95{
96	document.getElementById("tms-result-lightbox").innerHTML = str;
97	$('#tms-result-link').trigger('click');
98}
99function ShowResultTMS(req, oid)
100{
101	PopBoxTMS(req.responseText);
102}
103function MakeNewAJAXCall(in_url, in_simple_callback, in_method, in_complex_callback, in_param, in_param2, in_timeout_callback, in_timeout_delay ){
104	if(!in_method){
105		in_method = "GET";
106	}
107	if(!in_timeout_delay){
108		in_timeout_delay = 90;
109	}
110	var callback_index = 1;
111
112	while(g_callback_array[callback_index]&&(typeof(g_callback_array[callback_index])!='undefined')){callback_index++};
113
114	g_callback_array[callback_index] = new Array();
115	g_callback_array[callback_index]['request_callback'] = in_simple_callback;
116	g_callback_array[callback_index]['request_method'] = in_method;
117	g_callback_array[callback_index]['request_complex_callback'] = in_complex_callback;
118	g_callback_array[callback_index]['request_param'] = in_param;
119	g_callback_array[callback_index]['request_param2'] = in_param2;
120	g_callback_array[callback_index]['timeoutcallback'] = in_timeout_callback;
121
122	var funcbody = 'var index='+callback_index+';';
123	funcbody += 'var stage=g_callback_array[index]["request_object"].readyState;\
124				var resp="";\
125				if((navigator.appName!="Microsoft Internet Explorer") || (stage==4)){\
126					resp=g_callback_array[index]["request_object"].responseText\
127					};\
128				if(g_callback_array[index]["request_complex_callback"]){\
129					g_callback_array[index]["request_complex_callback"](stage, resp, g_callback_array[index]["request_param"], g_callback_array[index]["request_param2"], index)\
130					};\
131				if((stage==4) && g_callback_array[index]["request_callback"]){\
132					if ( g_av_encrypted ) {\
133						resp = av_decrypt ( resp );\
134						}\
135					g_callback_array[index]["request_callback"](resp, g_callback_array[index]["request_param"], g_callback_array[index]["request_param2"])\
136					};\
137				if(stage==4){\
138					if(g_callback_array[index]["timeout_t"]){clearTimeout(g_callback_array[index]["timeout_t"])};\
139					g_callback_array[index]["request_object"]=null;\
140					g_callback_array[index]["request_callback"]=null;\
141					g_callback_array[index]["request_method"]=null;\
142					g_callback_array[index]["request_complex_callback"]=null;\
143					g_callback_array[index]["request_param"]=null;\
144					g_callback_array[index]["callback"]=null;\
145					g_callback_array[index]["timeoutcallback"]=null;\
146					g_callback_array[index]=null;\
147					}';
148
149	var funcbodytimeout = 'var index='+callback_index+';';
150	funcbodytimeout += 'if(g_callback_array[index]["request_object"]){g_callback_array[index]["request_object"].onreadystatechange=null;g_callback_array[index]["request_object"].abort()};\
151						if(g_callback_array[index]["timeoutcallback"]){g_callback_array[index]["timeoutcallback"](g_callback_array[index]["request_param"], g_callback_array[index]["request_param2"],index)};\
152						g_callback_array[index]["request_object"]=null;\
153						g_callback_array[index]["request_callback"]=null;\
154						g_callback_array[index]["request_method"]=null;\
155						g_callback_array[index]["request_complex_callback"]=null;\
156						g_callback_array[index]["request_param"]=null;\
157						g_callback_array[index]["callback"]=null;\
158						g_callback_array[index]["timeoutcallback"]=null;\
159						g_callback_array[index]=null;';
160
161	g_callback_array[callback_index]['callback'] = new Function (funcbody);
162
163	g_callback_array[callback_index]['timeout_t'] = setTimeout(new Function (funcbodytimeout),(in_timeout_delay * 1000));
164
165	var ret = null;
166	if(CallXMLHTTPObject ( in_url, in_method, g_callback_array[callback_index]['callback'], callback_index )){
167		ret = callback_index;
168	}
169	//document.getElementById(in_param).innerHTML=changing_wait;
170	return ret;
171};
172
173
174function CallXMLHTTPObject ( in_url, in_method, in_callback, in_index ) {
175
176	try {
177		var sVars = null;
178		if ( in_method == "POST" ) {
179			var rmatch = /^([^\?]*)\?(.*)$/.exec ( in_url );
180			in_url = rmatch[1];
181			sVars = unescape ( rmatch[2] );
182		}
183		g_callback_array[in_index]['request_object'] = MakeNewRequestObject();
184		g_callback_array[in_index]['request_object'].open(in_method, in_url, true);
185
186		if ( in_method == "POST" ) {
187			g_callback_array[in_index]['request_object'].setRequestHeader("Method", "POST "+in_url+" HTTP/1.1");
188			g_callback_array[in_index]['request_object'].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
189		}
190		g_callback_array[in_index]['request_object'].onreadystatechange = in_callback;
191		g_callback_array[in_index]['request_object'].send(sVars);
192
193		return true;
194	} catch ( z ) {
195	}
196
197	return false;
198};
199
200function MakeNewRequestObject() {
201	var	ret;
202	if ( typeof XMLHttpRequest != 'undefined' ) {
203		ret = new XMLHttpRequest();
204	} else {
205		if (typeof window.XMLHttpRequest != 'undefined') {
206			ret = new XMLHttpRequest();
207		} else {
208			if (window.ActiveXObject) {
209				if ( typeof dm_xmlhttprequest_type != 'undefined' ) {
210					ret = new ActiveXObject(dm_xmlhttprequest_type);
211				} else {
212					var versions = ["Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
213					for (var i = 0; i < versions.length ; i++) {
214						try {
215							ret = new ActiveXObject(versions[i]);
216							if (ret) {
217								dm_xmlhttprequest_type = versions[i];
218								break;
219							}
220						}
221						catch (objException) {
222						};
223					};
224				}
225			}
226		}
227	}
228
229	return ret;
230};
231
232if (typeof SupportsAjax == 'undefined'){
233	function SupportsAjax ( ) {
234		var test_obj = MakeNewRequestObject();
235
236		if ( test_obj ) {
237			test_obj = null;
238			return true;
239		}
240
241		test_obj = null;
242
243		return false;
244	};
245}
246
247if ( typeof SimpleAJAXCall == 'undefined' ){
248
249	function SimpleAJAXCall ( in_uri, in_callback, in_method, in_param ) {
250		if ( (typeof in_method == 'undefined') || ((in_method != 'GET')&&(in_method != 'POST')) ) {
251			in_method = 'GET';
252		}
253		in_method = in_method.toUpperCase();
254		if ( SupportsAjax() && (typeof in_uri != 'undefined') && in_uri && (typeof in_callback == 'function') ) {
255			return MakeNewAJAXCall ( in_uri, in_callback, in_method, null, in_param );
256		}
257		else {
258			return false;
259		}
260	}
261}
262function markRowsInit() {
263	// for every table row ...
264	var rows = document.getElementsByTagName('tr');
265	for ( var i = 0; i < rows.length; i++ ) {
266		if ( navigator.appName == 'Microsoft Internet Explorer' ) {
267			// but only for IE, other browsers are handled by :hover in css
268			rows[i].onmouseover = function() {
269				this.className += ' hover';
270			}
271			rows[i].onmouseout = function() {
272				this.className = this.className.replace( ' hover', '' );
273			}
274		}
275		// Do not set click events if not wanted
276		if (rows[i].className.search(/noclick/) != -1) {
277			continue;
278		}
279		// ... and to mark the row on click ...
280	}
281}
282window.onload=markRowsInit;
283function row_dbclick(RowId)
284{
285	var ho = "#F08080";
286	var r = gel('row_'+RowId);
287	var m = gel('msg_'+RowId);
288	if(r.style.backgroundColor)
289	{
290		r.style.backgroundColor='';
291		m.checked=false;
292	}else
293	{
294		r.style.backgroundColor=ho;
295		m.checked=true;
296	}
297	IfAll();
298}
299function row_click_check()
300{
301	var s = getElementsByClassName(document,'*','icheck');
302	var ho = "#F08080";
303	for (var i=0;i<s.length;i++)
304	{
305		if(s[i].checked==true)
306		{
307			var RowId = s[i].id;
308			RowId = RowId.replace(/msg_/,'');
309			var r = gel('row_'+RowId);
310			if(r.style.backgroundColor=='')
311			{
312				r.style.backgroundColor=ho;
313			}
314		}
315	}
316}
317function fnDisplaySplashPage(table,type,sort,cata,page,ifield,ivalue)
318{
319	fileName = "main.php";
320	if(ivalue==""){
321		if(type=="add")
322		{
323			writeWin=window.open();
324			writeWin.location.replace(fileName + "?table=" + table + "&type=" + type);
325		}else{
326			location.replace(fileName + "?table=" + table + "&type=" + type + "&sort=" + sort + "&ifield=" + ifield + "&catalog=" + cata + "&page=" + page);
327		}
328	}else{
329		writeWin=window.open();
330		writeWin.location.replace(fileName + "?table=" + table + "&type=" + type + "&ifield=" + ifield + "&" + ifield + "=" + ivalue);
331	}
332}
333function fnDisplayCategoryPage(table,type,sort,cata,page,ifield,ivalue)
334{
335	fileName = "main.php";
336	location.replace(fileName + "?table=" + table + "&type=" + type + "&sort=" + sort + "&ifield=ID&catalog=" + cata + "&page=" + page + "&xfield=" + ifield);
337}
338function change_page()
339{
340	var page=gel('tpage');
341	window.location.replace(page.value);
342}
343function openwin(pagename) {
344	window.open (pagename, "TMS", "height=600, width=600, toolbar=no, menubar=no, scrollbars=Yes, resizable=Yes, location=no, status=no")
345}
346function getElementsByClassName(oElm, strTagName, strClassName){
347	var arrElements = (strTagName == "*" && oElm.all)? oElm.all :
348		oElm.getElementsByTagName(strTagName);
349	var arrReturnElements = new Array();
350	strClassName = strClassName.replace(/\-/g, "\\-");
351	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
352	var oElement;
353	for(var i=0; i<arrElements.length; i++){
354		oElement = arrElements[i];
355		if(oRegExp.test(oElement.className)){
356			arrReturnElements.push(oElement);
357		}
358	}
359	return (arrReturnElements)
360}
361function setForm() {
362	var s = getElementsByClassName(document,'*','compulsory');
363	for (var i=0;i<s.length;i++)
364	{
365		if(string_trim(s[i].value)=='')
366		{
367			alert(tms["field_compulsory_alert"]);
368			s[i].focus();
369			return false;
370		}
371	}
372	return true;
373}
374function iAsset(field)
375{
376	fileName = "/resource/assetmanager/assetmanager.php";
377	writeWin=window.open();
378	writeWin.location.replace(fileName + "?field=" + field);
379}
380function CheckAll()
381{
382	var ho = "#F08080";
383
384	for (var i=0;i<document.pageform.elements.length;i++)
385	{
386		var e = document.pageform.elements[i];
387		if (e.type == 'checkbox' && e.name != 'allbox' && e.name != 'field_ids[]' && !e.disabled)
388		{
389			e.checked = document.pageform.allbox.checked;
390			var t = e.id.split("_");
391			var r = gel('row_'+t[1]);
392			if(e.checked==true)
393			{
394				r.style.backgroundColor=ho;
395			}else
396			{
397				r.style.backgroundColor='';
398			}
399		}
400	}
401}
402function IfAll()
403{
404	if(document.pageform.allbox.checked){
405		document.pageform.allbox.checked = document.pageform.allbox.checked&0;
406	}
407}
408function iexport(ftype)
409{
410	var sid=''; 	var table=gel('table');var ifield=gel('ifield');
411	for (var i=0;i<document.pageform.elements.length;i++)
412	{
413		var e = document.pageform.elements[i];
414		if (e.type == 'checkbox' && e.name != 'allbox' && e.checked == 1 )
415		{
416			if(e.name == 'message_ids[]')
417			{
418				sid = sid + e.id.replace(/msg_/,"") + '+';
419			}
420		}
421	}
422	urlParams = 'action.php?action=iexport&ftype='+ ftype +'&sid=' + sid +'&ifield='+ifield.value + '&table='+table.value;
423	openwin(urlParams);
424}
425function icata(cmd)
426{
427	var sure = tms["cata_table_"+cmd];
428	if(!confirm(sure))
429	{
430		return false;
431	}
432	var loadParams = 'action.php?action=icata&cmd='+ cmd +'&table='+gel('table').value;
433	doLoad(loadParams,setReload,'','');
434}
435function imath(cmd)
436{
437	var sfields=''; var sid='';
438	for (var i=0;i<document.pageform.elements.length;i++)
439	{
440		var e = document.pageform.elements[i];
441		if (e.type == 'checkbox' && e.name != 'allbox' && e.checked == 1 )
442		{
443			if(e.name == 'field_ids[]')
444			{
445				sfields = sfields + e.id.replace(/field_/,"") + '+';
446			}
447			if(e.name == 'message_ids[]')
448			{
449				sid = sid + e.id.replace(/msg_/,"") + '+';
450			}
451		}
452	}
453	if(sid==''||sfields=='')
454	{
455		alert(tms["select_compulsory_alert"]);
456	}else
457	{
458		var ifield=gel('ifield');
459		var table=gel('table');
460		switch (cmd)
461		{
462			case "sum":
463			{
464				loadParams = 'action.php?action=imath&cmd='+ cmd +'&sfields=' + sfields + '&sid=' + sid +'&ifield='+ifield.value + '&table='+table.value;
465				doLoad(loadParams,boxResult,'','');
466				break;
467			}
468			case "replace":
469			{
470				loadParams = 'action.php?action=imath&cmd='+ cmd +'&sfields=' + sfields + '&sid=' + sid +'&ifield='+ifield.value + '&table='+table.value;
471				doLoad(loadParams,boxResult,'','');
472				break;
473			}
474			case "set":
475			{
476				var f=sfields.split("+");
477				var set_value_promote = "Please input the value for field '" + f[0] +"' on selected records.";
478				var set_value   = prompt(set_value_promote, "NULL");
479				if(set_value)
480				{
481					if(set_value=="NULL")set_value='';
482					loadParams = 'action.php?action=imath&cmd='+ cmd +'&sfields=' + sfields + '&sid=' + sid +'&ifield='+ifield.value + '&table='+table.value + '&set_value='+set_value;
483					doLoad(loadParams,setReload,'','');
484				}
485				break;
486			}
487		}
488
489	}
490}
491function settings(table)
492{
493	loadParams = 'action.php?action=settings&table='+table;
494	doLoad(loadParams,boxResult,'','');
495}
496function update_settings(cmd,oid,table,mtype,mtitle,mchannel)
497{
498	/*
499	switch(mtype)
500	{
501		case "": break;
502	}
503	*/
504	var mvalue = string_trim(gel(oid).value);
505	if(mtitle.indexOf("DISPLAY_NUMBER")!="-1")
506	{
507		var reg = new RegExp('^\\d+$');
508		if(!reg.test(mvalue) || mvalue=="0")
509		{
510			alert("numbers only");
511			gel(oid).focus();
512			return false;
513		}
514	}
515	var loadParams = "action.php?action=update_settings&cmd="+cmd+"&table="+table+"&mvalue="+mvalue+"&mtype="+mtype+"&mtitle="+urlencode(mtitle)+"&mchannel="+urlencode(mchannel);
516	doLoad(loadParams,update_result,oid+"_result","");
517}
518function update_result(req, oid)
519{
520	switch(string_trim(req.responseText))
521	{
522		case "-1": document.getElementById(oid).innerHTML = "<img src='/resource/system/images/no.png' border=0>"; break;
523		case "1": document.getElementById(oid).innerHTML = "<img src='/resource/system/images/yes.png' border=0>"; setTimeout( "empty_value('"+oid+"');", 3000); break;
524		case "2":
525		{
526			var sure = tms['reload_window_confirm'];
527			if(confirm(sure))
528			{
529				window.location.reload();
530			}
531			document.getElementById(oid).innerHTML = "<img src='/resource/system/images/yes.png' border=0>"; setTimeout( "empty_value('"+oid+"');", 3000);
532			break;
533		}
534	}
535}
536function ireplace()
537{
538	var sfields=''; var sid='';
539	for (var i=0;i<document.pageform.elements.length;i++)
540	{
541		var e = document.pageform.elements[i];
542		if (e.type == 'checkbox' && e.name != 'allbox' && e.checked == 1 )
543		{
544			if(e.name == 'field_ids[]')
545			{
546				sfields = sfields + e.id.replace(/field_/,"") + '+';
547			}
548			if(e.name == 'message_ids[]')
549			{
550				sid = sid + e.id.replace(/msg_/,"") + '+';
551			}
552		}
553	}
554	if(sid==''||sfields=='')
555	{
556		alert(tms["select_compulsory_alert"]);
557		$.fancybox.close();
558	}else
559	{
560		var ifield=gel('ifield');
561		var table=gel('table');
562		var s = gel('search_input');
563		var r = gel('replace_input');
564		if(string_trim(s.value)=="")
565		{
566			document.getElementById("isearch_result").innerHTML = "";
567			document.getElementById("btnReplaceAll").disabled = true;
568			return false;
569		}
570		if(gel('chkMatchCase').checked)
571		{
572			var icase = 1;
573		}else
574		{
575			var icase = 0;
576		}
577		if(gel('chkMatchWord').checked)
578		{
579			var iword = 1;
580		}else
581		{
582			var iword = 0;
583		}
584		loadParams = 'action.php?action=ireplace&sfields=' + sfields + '&sid=' + sid +'&ifield='+ifield.value + '&table='+table.value + '&icase=' + icase + '&iword=' + iword + '&search=' + urlencode(s.value) + '&replace=' + urlencode(r.value);
585		//alert(loadParams);
586		doLoad(loadParams,setReload,'','');
587	}
588}
589function isearch()
590{
591	var sfields=''; var sid='';
592	for (var i=0;i<document.pageform.elements.length;i++)
593	{
594		var e = document.pageform.elements[i];
595		if (e.type == 'checkbox' && e.name != 'allbox' && e.checked == 1 )
596		{
597			if(e.name == 'field_ids[]')
598			{
599				sfields = sfields + e.id.replace(/field_/,"") + '+';
600			}
601			if(e.name == 'message_ids[]')
602			{
603				sid = sid + e.id.replace(/msg_/,"") + '+';
604			}
605		}
606	}
607	if(sid==''||sfields=='')
608	{
609		alert(tms["select_compulsory_alert"]);
610		$.fancybox.close();
611	}else
612	{
613		var ifield=gel('ifield');
614		var table=gel('table');
615		var s = gel('search_input');
616		if(string_trim(s.value)=="")
617		{
618			document.getElementById("isearch_result").innerHTML = "";
619			document.getElementById("btnReplaceAll").disabled = true;
620			return false;
621		}
622		if(gel('chkMatchCase').checked)
623		{
624			var icase = 1;
625		}else
626		{
627			var icase = 0;
628		}
629		if(gel('chkMatchWord').checked)
630		{
631			var iword = 1;
632		}else
633		{
634			var iword = 0;
635		}
636		loadParams = 'action.php?action=isearch&sfields=' + sfields + '&sid=' + sid +'&ifield='+ifield.value + '&table='+table.value + '&icase=' + icase + '&iword=' + iword + '&search=' + urlencode(s.value);
637		//alert(loadParams);
638		doLoad(loadParams,searchResult,'isearch_result','innerHTML');
639	}
640}
641function searchResult(req, oid) {
642	var s = req.responseText;
643	var t = s.split("|");
644	var b = gel("btnReplaceAll");
645	var i = gel("search_input");
646	var r = gel("replace_input");
647	if(t[0]=="1")
648	{
649		document.getElementById(oid).innerHTML = t[1];
650		b.disabled = false;
651	}else
652	{
653		document.getElementById(oid).innerHTML = t[1];
654		b.disabled = true;
655		//i.focus();
656	}
657}
658function action(cmd)
659{
660	var c = document.pageform.cmd;
661	var f = document.pageform;
662	c.value=cmd;
663	if(cmd=='delete'||cmd=='copy'||cmd=='move'||cmd=='clone')
664	{
665		for (var i=0;i<document.pageform.elements.length;i++)
666		{
667			var e = document.pageform.elements[i];
668			if (e.type == 'checkbox' && e.name != 'allbox' && e.name != 'field_ids[]' && e.checked == 1 )
669			{
670				if(cmd=='delete')
671				{
672					var sure = confirm(tms["delete_alert"]);
673					if (!sure) { return; }
674				}
675				f.submit();
676				return true;
677			}
678		}
679		alert(tms["no_item_selected"]);
680	}else
681	{
682		f.submit();
683		return true;
684	}
685}
686function email_check(eid)
687{
688	var email = gel(eid);
689	var emailPattern = /\w+@.+\..+$/;
690	if (emailPattern.test(email.value)==false)
691	{
692		alert(tms["invalid_email"]);
693		email.focus();
694		return false;
695	}
696	return true;
697}
698function save_form(t)
699{
700	document.tmsform.page_save_type.value=t;
701	if(setForm())
702	{
703		document.tmsform.onsubmit();
704		document.tmsform.submit();
705		return true;
706	}else
707	{
708		return false;
709	}
710}
711function empty_value(oid)
712{
713	document.getElementById(oid).innerHTML="";
714}
715function group_check(field,gid,splitter,islast,issort,addons)
716{
717	var f = gel("value_"+field);
718	var g = gel(field+"_"+gid);
719	if(addons)
720	{
721		if(f.value.indexOf(addons)==-1)
722		{
723			f.value='';
724		}else
725		{
726			f.value=f.value.replace(addons, '');
727		}
728	}
729	if(islast && f.value)
730	{
731		f.value = f.value + splitter;
732	}
733	if(g.checked==true)
734	{
735		if(f.value.indexOf(gid+splitter)!=0&&f.value.indexOf(splitter+gid+splitter)==-1)
736		{
737			f.value=sort_group_check(f.value+gid+splitter,splitter,issort);
738		}
739	}else
740	{
741		if(f.value.indexOf(gid+splitter)==0)
742		{
743			f.value=sort_group_check(f.value.replace(gid+splitter, ''),splitter,issort);
744		}else
745		{
746			if(f.value.indexOf(splitter+gid+splitter))
747			{
748				f.value=sort_group_check(f.value.replace(splitter+gid+splitter, splitter),splitter,issort);
749			}
750		}
751	}
752	if(islast && f.value && f.value.substring(f.value.length - 1, f.value.length)==splitter)
753	{
754		f.value = f.value.substring(0, f.value.length - 1);
755	}
756	if(addons)
757	{
758		f.value=f.value+addons;
759	}
760}
761function SortField(sTable,sField,sIndex,sID,sValue)
762{
763	loadParams = 'action.php?action=sort_field&sTable=' + sTable + '&sField=' + sField + '&sIndex='+ sIndex +'&sID='+ sID +'&sValue=' + sValue;
764	//alert(loadParams);
765	doLoad(loadParams,setReload,'','innerHTML');
766}
767function isort(sField,action)
768{
769	var sid='';
770	for (var i=0;i<document.pageform.elements.length;i++)
771	{
772		var e = document.pageform.elements[i];
773		if (e.type == 'checkbox' && e.name != 'allbox' && e.checked == 1 )
774		{
775			if(e.name == 'message_ids[]')
776			{
777				sid = sid + e.id.replace(/msg_/,"") + '+';
778			}
779		}
780	}
781	if(sid=='')
782	{
783		alert(tms["no_item_selected"]);
784	}else
785	{
786		var ifield=gel('ifield');
787		var table=gel('table');
788		var sort_value_promote = tms["manual_sort_value"];
789		var sort_value   = prompt(sort_value_promote, "1");
790		if(isNaN(sort_value))
791		{
792			alert(tms["invalid_sort_value"]);
793			return;
794		}else
795		{
796			if(sort_value)
797			{
798				sort_value= Math.ceil(sort_value);
799				loadParams = 'action.php?action=isort&sTable='+table.value+'&sField=' + sField + '&ifield='+ ifield.value +'&cmd=' + action +'&sid='+ sid+'&sValue='+sort_value;
800				doLoad(loadParams,setReload,'','');
801			}else
802			{
803				return false;
804			}
805		}
806	}
807}
808function view_switch(from,to)
809{
810	var c = window.location.href;
811	window.location.replace(c.replace('&type='+from,'&type='+to));
812}
813function sort_group_check(str,splitter,issort)
814{
815	if(issort)
816	{
817		var group = str.split(splitter);
818		group.sort(function(a,b){return a - b});
819		var number=1;
820		var new_str="";
821		while(group[number])
822		{
823			new_str = new_str + group[number] + splitter;
824			number++;
825		}
826		return new_str;
827	}else
828	{
829		return str;
830	}
831}
832function gel(a){return document.getElementById?document.getElementById(a):null;}
833function searchcheck()
834{
835	var search_field = gel('search_field');
836	if(search_field.value=='Selection')
837	{
838		alert(tms["search_field_alert"]);
839		search_field.focus();
840		return false;
841	}
842	var search_option = gel('search_option');
843	if(search_option.value=='Selection')
844	{
845		alert(tms["search_option_alert"]);
846		search_option.focus();
847		return false;
848	}
849	var keywords = gel('keywords');
850	k = string_trim(keywords.value);
851	if(k==''||k=='')
852	{
853		alert(tms["search_keyword_alert"]);
854		keywords.focus();
855		return false;
856	}
857	document.getElementById('page').value=1;
858	return true;
859}
860function string_trim(String)
861{
862	return (String.replace(/^\s+|\s+$/g,""));
863}
864function load_parent(table)
865{
866	group = gel('group');
867	if(group.value)
868	{
869		loadParams = 'action.php?action=load_parent&table=' + table + '&group=' + group.value;
870		doLoad(loadParams,writeHTML,'add_parent','innerHTML');
871	}else
872	{
873		add_parent = gel('add_parent');
874		add_parent.innerHTML="<select name='parent'><option value=''>Select group first</option></select>";
875	}
876}
877function setSelect(table,sParent,sChild,cStart)
878{
879	if(gel(sParent).value)
880	{
881		if(sChild)
882		{
883			var sChildren = sChild.split("_");
884			var num = 0;
885			var randomnumber=Math.floor(Math.random()*10001);
886			while(sChildren[num])
887			{
888				if(document.getElementById('select_'+sChildren[num])!=null)
889				{
890					loadParams = 'action.php?action=load_child&table=' + table + '&parent=' + gel(sParent).value + '&palias=' + load_alias(sParent) +  '&child=' + sChildren[num] + '&randomnumber=' + randomnumber;
891					changeChild(loadParams,'select_'+sChildren[num]);
892					setGrandchildren(sChildren[num]);
893				}else
894				{
895					if(document.getElementById('checkbox_'+sChildren[num])!=null)
896					{
897						//gel(sChildren[num]).value='';
898						gel("value_"+sChildren[num]).value='';
899						loadParams = 'action.php?action=load_child&table=' + table + '&parent=' + gel(sParent).value + '&palias=' + load_alias(sParent) + '&child=' + sChildren[num] + '&randomnumber=' + randomnumber + '&type=checkbox';
900						changeChild(loadParams,'checkbox_'+sChildren[num]);
901					}
902				}
903				num++;
904			}
905		}
906	}else
907	{
908		setGrandchildren(sParent);
909	}
910}
911function setGrandchildren(sParent)
912{
913	if(document.getElementById(sParent+'_children')!=null)
914	{
915		var sChildren = gel(sParent+'_children').value.split("_");
916		var num = 0;
917		while(sChildren[num])
918		{
919			if(document.getElementById('select_'+sChildren[num])!=null)
920			{
921				document.getElementById('select_'+sChildren[num]).innerHTML='Choose \''+load_alias(sParent)+'\' value first!';
922
923			}else
924			{
925				if(document.getElementById('checkbox_'+sChildren[num])!=null)
926				{
927					document.getElementById('checkbox_'+sChildren[num]).innerHTML='Choose \''+load_alias(sParent)+'\' value first!';
928				}
929			}
930			setGrandchildren(sChildren[num]);
931			num++;
932		}
933	}
934}
935function load_alias(field)
936{
937	if(gel('alias_'+field).value!=field)
938	{
939		return gel('alias_'+field).value;
940	}else
941	{
942		return field;
943	}
944}
945function load_tms_tags(mode,oid)
946{
947	var loadParams = "/resource/assetmanager/tmstags.php?mode="+mode;
948	if(mode=='insert')
949	{
950		doLoad(loadParams,returnResult,oid,'');
951	}else
952	{
953		doLoad(loadParams,writeHTML,oid,'innerHTML');
954	}
955}
956
957
958function doLoad(loadParams,doFunc,oid,otype)
959{
960	switch(otype)
961	{
962		case "innerHTML":
963		{
964			if(oid!='')	document.getElementById(oid).innerHTML = changing_wait;
965			break;
966		}
967		case "value":
968		{
969			if(oid!='')	document.getElementById(oid).disabled = true;
970			break;
971		}
972		default:
973		{
974			if(otype)
975			{
976				document.getElementById(oid).innerHTML = "<img src='/resource/system/images/loader.gif' border=0>";
977			}
978			break;
979		}
980	}
981
982	var randomnumber=Math.floor(Math.random()*10001);
983	loadParams = loadParams + '&randomnumber=' + randomnumber;
984	if (window.XMLHttpRequest) {
985		req = new XMLHttpRequest();
986		req.onreadystatechange = function() {
987			if (req.readyState==4)
988				if (req.status==200)
989					doFunc(req, oid);
990		}
991		req.open("GET", loadParams, true);
992		req.setRequestHeader("Content-Type","text/html;charset=utf-8");
993		req.send(null);
994	} else if (window.ActiveXObject) {
995		req = new ActiveXObject("Microsoft.XMLHTTP");
996		if (req) {
997			req.onreadystatechange = function(){
998				if (req.readyState==4)
999					if (req.status==200)
1000						doFunc(req, oid);
1001			}
1002			req.open("GET", loadParams, true);
1003			req.setRequestHeader("Content-Type","text/html;charset=utf-8");
1004			req.send();
1005		}
1006	}
1007}
1008
1009function doLoadPost(url, loadParams,doFunc,oid,otype) {
1010	switch(otype)
1011	{
1012		case "innerHTML":
1013		{
1014			if(oid!='')	document.getElementById(oid).innerHTML = changing_wait;
1015			break;
1016		}
1017		case "value":
1018		{
1019			if(oid!='')	document.getElementById(oid).disabled = true;
1020			break;
1021		}
1022		default:
1023		{
1024			if(otype)
1025			{
1026				document.getElementById(oid).innerHTML = "<img src='/resource/system/images/loader.gif' border=0>";
1027			}
1028			break;
1029		}
1030	}
1031
1032
1033
1034
1035
1036
1037	var randomnumber=Math.floor(Math.random()*10001);
1038
1039
1040	loadParams["randomnumber"] = randomnumber
1041
1042	if (window.XMLHttpRequest) {
1043		req = new XMLHttpRequest();
1044		req.onreadystatechange = function() {
1045			if (req.readyState==4)
1046				if (req.status==200)
1047					doFunc(req, oid);
1048		}
1049		req.open("POST", url, true);
1050		req.setRequestHeader("Content-Type","application/json;charset=UTF-8");
1051		req.send(JSON.stringify(loadParams ));
1052	} else if (window.ActiveXObject) {
1053		req = new ActiveXObject("Microsoft.XMLHTTP");
1054		if (req) {
1055			req.onreadystatechange = function(){
1056				if (req.readyState==4)
1057					if (req.status==200)
1058						doFunc(req, oid);
1059			}
1060			req.open("GET", url, true);
1061			req.setRequestHeader("Content-Type","application/json;charset=UTF-8");
1062			req.send(JSON.stringify(loadParams ));
1063		}
1064	}
1065}
1066function returnResult(req, oid)
1067{
1068	return string_trim(req.responseText);
1069}
1070function writeHTML(req, oid) {
1071	if(req.responseText.indexOf("<h1>Login</h1>")>=0)
1072	{
1073		if(window.top.parent.frames['eContent']!='undefined'&&window.top.parent.frames['eContent'])
1074		{
1075			window.top.parent.frames['eContent'].location.replace("login.php");;
1076		}else
1077		{
1078			window.location.replace("login.php");
1079		}
1080	}else
1081	{
1082		document.getElementById(oid).innerHTML = req.responseText;
1083	}
1084}
1085
1086function writeHTMLSocialMedia(req, oid) {
1087	if(req.responseText.indexOf("<h1>Login</h1>")>=0)
1088	{
1089		if(window.top.parent.frames['eContent']!='undefined'&&window.top.parent.frames['eContent'])
1090		{
1091			window.top.parent.frames['eContent'].location.replace("login.php");;
1092		}else
1093		{
1094			window.location.replace("login.php");
1095		}
1096	}else
1097	{
1098		document.getElementById(oid).innerHTML = req.responseText;
1099	}
1100}
1101function popupResult(req, oid)
1102{
1103	if(req.responseText.indexOf("<h1>Login</h1>")>=0)
1104	{
1105		if(window.top.parent.frames['eContent']!='undefined'&&window.top.parent.frames['eContent'])
1106		{
1107			window.top.parent.frames['eContent'].location.replace("login.php");;
1108		}else
1109		{
1110			window.location.replace("login.php");
1111		}
1112	}
1113	alert(req.responseText);
1114}
1115function updateValue(req, oid)
1116{
1117	document.getElementById(oid).value = req.responseText;
1118	document.getElementById(oid).disabled=false;
1119}
1120function updateSelect(req, oid)
1121{
1122	document.getElementById(oid).value = req.responseText;
1123	document.getElementById(oid).disabled=false;
1124	var itable = gel("itable");
1125	var ichildren = gel(oid+"_children");
1126	if(ichildren!=null)
1127	{
1128		setSelect(itable.value,oid,ichildren.value,req.responseText);
1129	}
1130}
1131function codeValue(req, oid)
1132{
1133	editAreaLoader.setValue(oid, req.responseText);
1134	document.getElementById(oid).disabled=false;
1135}
1136function htmlValue(req, oid)
1137{
1138	document.getElementById(oid).value = req.responseText;
1139	var e = "oEdit_"+oid;
1140	eval(e).putHTML(req.responseText);
1141	document.getElementById(oid).disabled=false;
1142}
1143function boxResult(req, oid)
1144{
1145	document.getElementById("tms-result-lightbox").innerHTML = req.responseText;
1146	$('#tms-result-link').trigger('click');
1147}
1148function runHTML(req, oid) {
1149	document.getElementById(oid).innerHTML = eval(req.responseText);
1150}
1151function setReload(req, oid)
1152{
1153	if(string_trim(req.responseText)=="1")
1154	{
1155		// window.top.location = window.top.location
1156		history.go(0);
1157	}else
1158	{
1159		alert(req.responseText);
1160	}
1161}
1162function mvalue_edit(mid,mtype,table,field)
1163{
1164	var mvalue = document.getElementById(mid).value;
1165	var values = mvalue.split("|||");
1166	if(!mvalue)
1167	{
1168		var ov = "<div id='moptions'><select id='mvalues' onchange='reset_mvalue_details()'><option value=''>"+tms["mvalue_noop"]+"</option></select></div>";
1169	}else
1170	{
1171		var ov = "<div id='moptions'>"+mvalue_update(values[1],'')+"</div>";
1172	}
1173	var oc = "<div id='mcontrols'><input type=button id='madd' value='"+tms["mvalue_btn_add"]+"' onclick='mvalue_action(\"new\",\""+table+"\",\""+field+"\",\""+mtype+"\")'><input type=button id='medit' value='"+tms["mvalue_btn_edit"]+"' onclick='mvalue_action(\"edit\",\""+table+"\",\""+field+"\",\""+mtype+"\")'><input type=button id='mdel' value='"+tms["mvalue_btn_del"]+"' onclick='mvalue_action(\"delete\",\""+table+"\",\""+field+"\",\""+mtype+"\")'></div>";
1174	var mo = "<div id='mvalue_options'><input type='hidden' id='mid' value='"+mid+"'><input type='hidden' id='mvalue' value='"+mvalue+"'>"+ov+oc+"<div id='value_details'></div></div>";
1175	var mc = "<div id='mvalue_control'><input type=button id='mu' value='"+tms["mvalue_btn_update"]+"' onclick='mvalue_action(\"update\",\""+table+"\",\""+field+"\",\""+mtype+"\")'></div>";
1176	document.getElementById("tms-result-lightbox").innerHTML="<div id='mvalue_details'>"+mo+"</div><div id='mvalue_control'>"+mc+"</div>";
1177	$('#tms-result-link').trigger('click');
1178}
1179function reset_mvalue_details()
1180{
1181	document.getElementById("value_details").innerHTML = "";
1182}
1183function mvalue_sync(cv,nps)
1184{
1185	var mv = gel("mvalue");
1186	if(cv)
1187	{
1188		mv.value=mvalue_read("mvalue",0)+"|||"+nps;
1189	}else
1190	{
1191		mv.value=nps.substring(0, nps.indexOf("|"))+"|||"+nps;
1192	}
1193}
1194function mvalue_action(cmd,table,field,mtype)
1195{
1196	var vd = gel("value_details");
1197	var sv = gel("mvalues");
1198	switch(cmd)
1199	{
1200		case "new":
1201		{
1202			vd.innerHTML="<input type=text id='vv' value=''><input type=button value='"+tms["mvalue_btn_add"]+"' onclick='mvalue_action(\"add\")'>";
1203			break;
1204		}
1205		case "edit":
1206		{
1207			if(sv.value)
1208			{
1209				vd.innerHTML="<input type=text id='vv' value='"+sv.value+"'><input type=button value='"+tms["mvalue_btn_save"]+"' onclick='mvalue_action(\"save\")'>";
1210			}else
1211			{
1212				alert(tms["mvalue_noed"]);
1213			}
1214			break;
1215		}
1216		case "delete":
1217		{
1218			if(sv.value)
1219			{
1220				var cv = mvalue_read("mvalue",0);
1221				var nps = mvalue_replace(sv.value,"",mvalue_read("mvalue",1));
1222
1223				mvalue_update(nps,"moptions");
1224				if(sv.value==cv)
1225				{
1226					mvalue_sync("",nps);
1227				}else
1228				{
1229					mvalue_sync(cv,nps);
1230				}
1231				vd.innerHTML=tms["mvalue_succ"];
1232			}else
1233			{
1234				alert(tms["mvalue_nodel"]);
1235			}
1236			break;
1237		}
1238		case "add":
1239		{
1240			var vv = gel("vv");
1241			if(string_trim(vv.value)=="")
1242			{
1243				alert(tms["mvalue_required"]);
1244				vv.focus();
1245				return false;
1246			}else
1247			{
1248				//var nv = mvalue_read("mvalue",1)+"|"+vv.value;
1249				var nps = mvalue_read("mvalue",1);
1250				if(nps)
1251				{
1252					nps+= "|"+vv.value;
1253				}else
1254				{
1255					nps = vv.value;
1256				}
1257
1258				mvalue_update(nps,"moptions");
1259				mvalue_sync(mvalue_read("mvalue",0),nps);
1260				vd.innerHTML=tms["mvalue_succ"];
1261			}
1262			break;
1263		}
1264		case "save":
1265		{
1266			var vv = gel("vv");
1267			if(string_trim(vv.value)=="")
1268			{
1269				alert(tms["mvalue_required"]);
1270				vv.focus();
1271				return false;
1272			}else
1273			{
1274				if(sv.value==string_trim(vv.value))
1275				{
1276					alert(tms["mvalue_nochange"]);
1277					vv.focus();
1278					return false;
1279				}else
1280				{
1281					var cv = mvalue_read("mvalue",0);
1282					var nps = mvalue_replace(sv.value,vv.value,mvalue_read("mvalue",1));
1283					mvalue_update(nps,"moptions");
1284					if(sv.value==cv)
1285					{
1286						mvalue_sync("",nps);
1287					}else
1288					{
1289						mvalue_sync(cv,nps);
1290					}
1291					vd.innerHTML=tms["mvalue_succ"];
1292				}
1293			}
1294			break;
1295		}
1296		case "update":
1297		{
1298			var splitter="|";
1299			var t = gel("detail_"+table+"_"+field);
1300			var nps = mvalue_read("mvalue",1);
1301
1302			var arr = nps.split(splitter);
1303			if(mtype==3)
1304			{
1305				var html = "<select id='value_"+field+"' name='"+field+"'>";
1306				if(nps)
1307				{
1308					for (var i=0;i<arr.length;i++)
1309					{
1310						html+="<option value='"+arr[i]+"|||"+nps+"'>"+arr[i]+"</option>";
1311					}
1312				}else
1313				{
1314					html+="<option value=''>"+tms["mvalue_noop"]+"</a>";
1315				}
1316				html+="</select><img class='mvalue_edit' src='/resource/system/images/edit.gif' onclick='mvalue_edit(\"value_"+field+"\",3,\""+table+"\",\""+field+"\")'>";
1317			}else
1318			{
1319				html = "<span id='checkbox_"+field+"'><input type='hidden' name='"+field+"' id='value_"+field+"' value='|||"+nps+"'>";
1320				if(nps)
1321				{
1322					for (var i=0;i<arr.length;i++)
1323					{
1324						html+="<span class='group_check'><input type='checkbox' id='"+field+"_"+arr[i]+"' onclick='group_check(\""+field+"\",\""+arr[i]+"\",\""+splitter+"\",1,0,\"|||"+nps+"\")' />"+arr[i]+"</span>";
1325					}
1326				}else
1327				{
1328					html+=tms["mvalue_nogr"];
1329				}
1330				html+= "</span><img class='mvalue_edit' src='/resource/system/images/edit.gif' onclick='mvalue_edit(\"value_"+field+"\",4,\""+table+"\",\""+field+"\")'>";
1331			}
1332
1333			t.innerHTML=html;
1334			$.fancybox.close();
1335			break;
1336		}
1337
1338		default:break;
1339	}
1340	return;
1341}
1342function mvalue_read(mid,mt)
1343{
1344	var mvalue = document.getElementById(mid).value;
1345	var values = mvalue.split("|||");
1346	return values[mt];
1347}
1348function mvalue_replace(f,r,v)
1349{
1350	var arr = v.split("|");
1351	var output = "";
1352	for (var i=0;i<arr.length;i++)
1353	{
1354		if(arr[i]==f)
1355		{
1356			if(r)
1357			{
1358				arr[i]=r;
1359				output+=arr[i]+"|";
1360			}else
1361			{
1362				arr.splice(i,1);
1363				i--;
1364			}
1365		}else
1366		{
1367			output+=arr[i]+"|";
1368		}
1369	}
1370	return output.substring(0, output.length - 1);
1371}
1372function mvalue_update(opts,oid)
1373{
1374	var arr = opts.split("|");
1375	var html = "<select id='mvalues' onchange='reset_mvalue_details()'>";
1376	for (var i=0;i<arr.length;i++)
1377	{
1378		html+="<option value='"+arr[i]+"'>"+arr[i]+"</option>";
1379	}
1380	html+="</select>";
1381	if(oid)
1382	{
1383		document.getElementById(oid).innerHTML=html;
1384	}else
1385	{
1386		return html;
1387	}
1388}
1389
1390function urlencode( str ) {
1391	var histogram = {}, histogram_r = {}, code = 0, tmp_arr = [];
1392	var ret = str.toString();
1393	var replacer = function(search, replace, str) {
1394		var tmp_arr = [];
1395		tmp_arr = str.split(search);
1396		return tmp_arr.join(replace);
1397	};
1398	histogram['!']   = '%21';
1399	histogram['%20'] = '+';
1400	ret = encodeURIComponent(ret);
1401	for (search in histogram) {
1402		replace = histogram[search];
1403		ret = replacer(search, replace, ret)
1404	}
1405	return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
1406		return "%"+m2.toUpperCase();
1407	});
1408	return ret;
1409}
1410function htmlspecialchars (string, quote_style, charset, double_encode) {
1411	// Convert special characters to HTML entities
1412	// %        note 1: charset argument not supported
1413	// *     example 1: htmlspecialchars("<a href='test'>Test</a>", 'ENT_QUOTES');
1414	// *     returns 1: '&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;'
1415	// *     example 2: htmlspecialchars("ab\"c'd", ['ENT_NOQUOTES', 'ENT_QUOTES']);
1416	// *     returns 2: 'ab"c&#039;d'
1417	// *     example 3: htmlspecialchars("my "&entity;" is still here", null, null, false);
1418	// *     returns 3: 'my &quot;&entity;&quot; is still here'
1419	var optTemp = 0,
1420		i = 0,
1421		noquotes = false;
1422	if (typeof quote_style === 'undefined' || quote_style === null) {
1423		quote_style = 2;
1424	}
1425	string = string.toString();
1426	if (double_encode !== false) { // Put this first to avoid double-encoding
1427		string = string.replace(/&/g, '&amp;');
1428	}
1429	string = string.replace(/</g, '&lt;').replace(/>/g, '&gt;');
1430
1431	var OPTS = {
1432		'ENT_NOQUOTES': 0,
1433		'ENT_HTML_QUOTE_SINGLE': 1,
1434		'ENT_HTML_QUOTE_DOUBLE': 2,
1435		'ENT_COMPAT': 2,
1436		'ENT_QUOTES': 3,
1437		'ENT_IGNORE': 4
1438	};
1439	if (quote_style === 0) {
1440		noquotes = true;
1441	}
1442	if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
1443		quote_style = [].concat(quote_style);
1444		for (i = 0; i < quote_style.length; i++) {
1445			// Resolve string input to bitwise e.g. 'ENT_IGNORE' becomes 4
1446			if (OPTS[quote_style[i]] === 0) {
1447				noquotes = true;
1448			}
1449			else if (OPTS[quote_style[i]]) {
1450				optTemp = optTemp | OPTS[quote_style[i]];
1451			}
1452		}
1453		quote_style = optTemp;
1454	}
1455	if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
1456		string = string.replace(/'/g, '&#039;');
1457	}
1458	if (!noquotes) {
1459		string = string.replace(/"/g, '&quot;');
1460	}
1461
1462	return string;
1463}
1464function SimpleCallback(in_text, in_param, in_param2){
1465	var	eDate = new Date();
1466	document.getElementById(in_param).innerHTML = in_text;
1467}
1468function ComplexCallback(in_stage, in_text, in_param, in_param2, in_index){
1469	var	eDate = new Date();
1470	document.getElementById(in_param).innerHTML = in_text;
1471}
1472function changeChild(loadParams,oid){
1473	document.getElementById(oid).innerHTML=changing_wait;
1474	var	eDate = new Date();
1475	var index = MakeNewAJAXCall(loadParams, SimpleCallback, 'GET', ComplexCallback, oid, eDate.getTime(), TimeoutCallback, 10);
1476}
1477function TimeoutCallback(in_param, in_param2, in_index){
1478	alert ( tms["time_out"] + " ("+in_param+")" );
1479}
1480
1481function pwdResult(req, oid)
1482{
1483	var user = document.tmsform.email.value;
1484	var pwd = string_trim(req.responseText);
1485	switch (pwd)
1486	{
1487		case "-1": alert(tms["pwd_reset_failure"]);break;
1488		case "-2": alert(tms["illegal_user"]);break;
1489		default:
1490		{
1491			//alert(tms["pwd_reset_success"]+pwd);
1492			document.getElementById("tms-result-lightbox").innerHTML = tms["pwd_reset_success"]+pwd+"<p><a href='javascript:send_password(\""+user+"\",\""+pwd+"\")'>send</a></p>";
1493			$('#tms-result-link').trigger('click');
1494			/*
1495      if (confirm(tms["pwd_send_bool"]))
1496      {
1497      	send_password(user,pwd);
1498      }
1499      */
1500			break;
1501		}
1502	}
1503}
1504function reset_password()
1505{
1506	let confirm_ = confirm('Reset password will log this user out from all existing devices, are you sure?');
1507	if(confirm_) {
1508		var user = document.tmsform.email.value;
1509		var loadParams = "action.php?action=reset_pwd&user=" + user;
1510		doLoad(loadParams, pwdResult, "", "");
1511	}
1512}
1513
1514function send_password(user,pwd)
1515{
1516	document.getElementById("tms-result-lightbox").innerHTML = changing_wait;
1517	var loadParams = "action.php?action=send_pwd&user="+user+"&pwd="+pwd;
1518	doLoad(loadParams,boxResult,"","");
1519}
1520function field_refresh(table,field,idx,cmd)
1521{
1522	var ifd = gel("ifield");
1523	var ifv = gel("ifield_value");
1524
1525	switch(cmd)
1526	{
1527		case "value_only":
1528		{
1529			var oid = "value_"+field;
1530			var otype = "value";
1531			var ofunc= "updateValue";
1532			var oact = "value_reload";
1533			break;
1534		}
1535		case "select_value":
1536		{
1537			var oid = field;
1538			var otype = "value";
1539			var ofunc= "updateSelect";
1540			var oact = "value_reload";
1541			break;
1542		}
1543		case "field_n_value":
1544		{
1545			var oid = "detail_"+table+"_"+field;
1546			var otype = "innerHTML";
1547			var ofunc= "writeHTML";
1548			var oact = "field_refresh";
1549			break;
1550		}
1551		case "codetext_value":
1552		{
1553			var oid = "value_"+field;
1554			var otype = "value";
1555			var ofunc= "codeValue";
1556			var oact = "value_reload";
1557			break;
1558		}
1559		case "htmltext_value":
1560		{
1561			var oid = "value_"+field;
1562			var otype = "value";
1563			var ofunc= "htmlValue";
1564			var oact = "value_reload";
1565			break;
1566		}
1567		default:break;
1568	}
1569	var loadParams = "action.php?action="+oact+"&table="+table+"&field="+field+"&ifield="+ifd.value+"&ifield_value="+ifv.value+"&index="+idx;
1570	doLoad(loadParams,eval(ofunc),oid,otype);
1571}
1572/*
1573function value_reload(table,field,idx,stype)
1574{
1575	var ifd = gel("ifield");
1576	var ifv = gel("ifield_value");
1577	var loadParams = "action.php?action=value_reload&table="+table+"&field="+field+"&ifield="+ifd.value+"&ifield_value="+ifv.value+"&index="+idx;
1578	doLoad(loadParams,updateValue,"value_"+field,"value");
1579}
1580*/
1581function mdisplay_update(oid,otype,table)
1582{
1583	if(otype=="add")
1584	{
1585		window.location.replace(document.URL+"&preset_"+oid+"="+document.getElementById("value_"+oid).value);
1586	}else
1587	{
1588		if (confirm(tms["mvalue_save_reload"]))
1589		{
1590			var ifd = gel("ifield");
1591			var ifv = gel("ifield_value");
1592			var mv = gel("value_"+oid);
1593			var loadParams = "action.php?action=mdisplay_update&table="+table+"&field="+oid+"&ifield="+ifd.value+"&ifield_value="+ifv.value+"&mv="+mv.value;
1594			doLoad(loadParams,setReload,"","");
1595		}else
1596		{
1597			return;
1598		}
1599	}
1600}
1601function reload_parent()
1602{
1603	if (window.opener && window.opener.open && !window.opener.closed)
1604	{
1605		opener.location.reload();
1606	}
1607}
1608function close_window()
1609{
1610	if (window.opener && window.opener.open && !window.opener.closed)
1611	{
1612		opener=null;window.close();
1613	}else
1614	{
1615		document.write("<h1>"+tms["saved_confirm"]+"</h1><div><a href='javascript:history.back(-1);'>"+tms["continue_edit"]+"</a>&nbsp;|&nbsp;<a href=\"javascript:window.open('', '_self', '');window.close();\">"+tms["close_window"]+"</a></div>");
1616	}
1617}
1618function generateUniqueId() {
1619	// Implementation of a basic unique identifier
1620	return 'xxxx-xx-4xxx-xxx'.replace(/[xy]/g, function(c) {
1621		var r = Math.random() * 16 | 0,
1622			v = c === 'x' ? r : (r & 0x3 | 0x8);
1623		return v.toString(16);
1624	});
1625}
1626
1627function generateTempToken() {
1628	// Generate a unique identifier
1629	const tokenID = generateUniqueId();
1630
1631	// Get the current timestamp
1632	const timestamp = Date.now();
1633
1634	// Concatenate the identifier and timestamp to create the token
1635	const tempToken = `${tokenID}_${timestamp}`;
1636
1637	return tempToken;
1638}
1639/*
1640function getElementIndex(obj){var theform = obj.form;for(var i=0;i<theform.elements.length;i++){if(obj.name == theform.elements[i].name){return i;}}return -1;}
1641function tabNext(obj){if(navigator.platform.toUpperCase().indexOf("SUNOS") != -1){obj.blur();return;}var theform = obj.form;var i = getElementIndex(obj);var j=i+1;if(j >= theform.elements.length){j=0;}if(i == -1){return;}while(j != i){if((theform.elements[j].type!="hidden") &&
1642(theform.elements[j].name != theform.elements[i].name) &&
1643(!theform.elements[j].disabled)){theform.elements[j].focus();break;}j++;if(j >= theform.elements.length){j=0;}}}
1644*/

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.