PageSourceSearch

https://hoteljadran.eu/wp-content/plugins/google-maps-easy/js/common.js?ver=4.2.38

js hoteljadran.eu collected 2026-10-07 03:45:10 UTC 21,292 bytes, 591 lines download raw bytes

1jQuery.fn.nextInArray = function(element) {
2    var nextId = 0;
3    for(var i = 0; i < this.length; i++) {
4        if(this[i] == element) {
5            nextId = i + 1;
6            break;
7        }
8    }
9    if(nextId > this.length-1)
10        nextId = 0;
11    return this[nextId];
12}
13jQuery.fn.clearForm = function() {
14	return this.each(function() {
15		var type = this.type, tag = this.tagName.toLowerCase();
16		if (tag == 'form')
17			return jQuery(':input', this).clearForm();
18		if (type == 'text' || type == 'password' || tag == 'textarea')
19			this.value = '';
20		else if (type == 'checkbox' || type == 'radio')
21			this.checked = false;
22		else if (tag == 'select') 
23			this.selectedIndex = -1;
24	});
25}
26jQuery.fn.tagName = function() {
27    return this.get(0).tagName;
28}
29jQuery.fn.exists = function(){
30    return (jQuery(this).size() > 0 ? true : false);
31}
32function isNumber(val) {
33    return /^\d+/.test(val);
34}
35function pushDataToParam(data, pref) {
36	pref = pref ? pref : '';
37	var res = [];
38	for(var key in data) {
39		var name = pref && pref != '' ? pref+ '['+ key+ ']' : key;
40		if(typeof(data[key]) === 'array' || typeof(data[key]) === 'object') {
41			res = jQuery.merge(res, pushDataToParam(data[key], name));
42		} else {
43			res.push(name+ "="+ data[key]);
44		}
45	}
46	return res;
47}
48jQuery.fn.serializeAnythingGmp = function(addData) {
49    var toReturn    = [];
50    var els         = jQuery(this).find(':input').get();
51    jQuery.each(els, function() {
52        if (this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || /text|hidden|password/i.test(this.type))) {
53            var val = jQuery(this).val();
54            toReturn.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( val ) );
55        }
56    });
57    if(typeof(addData) != 'undefined') {
58		toReturn = jQuery.merge(toReturn, pushDataToParam(addData));
59    }
60    return toReturn.join("&").replace(/%20/g, "+");
61};
62jQuery.fn.serializeAssoc = function() {
63	var data = [ ];
64	jQuery.each( this.serializeArray(), function( key, obj ) {
65	  var a = obj.name.match(/(.*?)\[(.*?)\]/);
66	  if(a !== null)
67	  {
68		var subName = a[1];
69		var subKey = a[2];
70		if( !data[subName] ) data[subName] = [ ];
71		  if( data[subName][subKey] ) {
72			if( jQuery.isArray( data[subName][subKey] ) ) {
73			  data[subName][subKey].push( obj.value );
74			} else {
75			  data[subName][subKey] = [ ];
76			  data[subName][subKey].push( obj.value );
77			};
78		  } else {
79			data[subName][subKey] = obj.value;
80		  };  
81		} else {
82		  if( data[obj.name] ) {
83			if( jQuery.isArray( data[obj.name] ) ) {
84			  data[obj.name].push( obj.value );
85			} else {
86			  data[obj.name] = [ ];
87			  data[obj.name].push( obj.value );
88			};
89		  } else {
90			data[obj.name] = obj.value;
91		  };
92		};
93	});
94	return data;
95};
96function str_replace(haystack, needle, replacement) { 
97	var temp = haystack.split(needle); 
98	return temp.join(replacement); 
99}
100/**
101 * @see php html::nameToClassId($name) method
102 **/
103function nameToClassId(name) {
104    return str_replace(
105        str_replace(name, ']', ''), 
106            '[', ''
107    );
108}
109function strpos( haystack, needle, offset){
110    var i = haystack.indexOf( needle, offset ); // returns -1
111    return i >= 0 ? i : false;
112}
113function extend(Child, Parent) {
114    var F = function() { };
115    F.prototype = Parent.prototype;
116    Child.prototype = new F();
117    Child.prototype.constructor = Child;
118    Child.superclass = Parent.prototype;
119}
120function toeRedirect(url) {
121    document.location.href = url;
122}
123function toeReload(url) {
124	if(url)
125		toeRedirect(url);
126    document.location.reload();
127}
128jQuery.fn.toeRebuildSelect = function(data, useIdAsValue, val) {
129    if(jQuery(this).tagName() == 'SELECT' && typeof(data) == 'object') {
130        if(jQuery(data).size() > 0) {
131            if(typeof(val) == 'undefined')
132                val = false;
133            if(jQuery(this).children('option').length) {
134                jQuery(this).children('option').remove();
135            }
136            if(typeof(useIdAsValue) == 'undefined')
137                useIdAsValue = false;
138            var selected = '';
139            for(var id in data) {
140                selected = '';
141                if(val && ((useIdAsValue && id == val) || (data[id] == val)))
142                    selected = 'selected';
143                jQuery(this).append('<option value="'+ (useIdAsValue ? id : data[id])+ '" '+ selected+ '>'+ data[id]+ '</option>');
144            }
145        }
146    }
147}
148/**
149 * We will not use just jQUery.inArray because it is work incorrect for objects
150 * @return mixed - key that was found element or -1 if not
151 */
152function toeInArray(needle, haystack) {
153    if(typeof(haystack) == 'object') {
154        for(var k in haystack) {
155            if(haystack[ k ] == needle)
156                return k;
157        }
158    } else if(typeof(haystack) == 'array') {
159        return jQuery.inArray(needle, haystack);
160    }
161    return -1;
162}
163jQuery.fn.setReadonly = function() {
164	jQuery(this).addClass('toeReadonly').attr('readonly', 'readonly');
165}
166jQuery.fn.unsetReadonly = function() {
167	jQuery(this).removeClass('toeReadonly').removeAttr('readonly', 'readonly');
168}
169jQuery.fn.getClassId = function(pref, test) {
170	var classId = jQuery(this).attr('class');
171	classId = classId.substr( strpos(classId, pref+ '_') );
172	if(strpos(classId, ' '))
173		classId = classId.substr( 0, strpos(classId, ' ') );
174	classId = classId.split('_');
175	classId = classId[1];
176	return classId;
177}
178function toeTextIncDec(textFieldId, inc) {
179	var value = parseInt(jQuery('#'+ textFieldId).val());
180	if(isNaN(value))
181		value = 0;
182	if(!(inc < 0 && value < 1)) {
183		value += inc;
184	}
185	jQuery('#'+ textFieldId).val(value);
186}
187
188/**
189 * Make first letter of string in upper case
190 * @param str string - string to convert
191 * @return string converted string - first letter in upper case
192 */
193function toeStrFirstUp(str) {
194	str += '';
195	var f = str.charAt(0).toUpperCase();
196	return f + str.substr(1);
197}
198function parseStr (str, array) {
199  // http://kevin.vanzonneveld.net
200  // +   original by: Cagri Ekin
201  // +   improved by: Michael White (http://getsprink.com)
202  // +    tweaked by: Jack
203  // +   bugfixed by: Onno Marsman
204  // +   reimplemented by: stag019
205  // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
206  // +   bugfixed by: stag019
207  // +   input by: Dreamer
208  // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
209  // +   bugfixed by: MIO_KODUKI (http://mio-koduki.blogspot.com/)
210  // +   input by: Zaide (http://zaidesthings.com/)
211  // +   input by: David Pesta (http://davidpesta.com/)
212  // +   input by: jeicquest
213  // +   improved by: Brett Zamir (http://brett-zamir.me)
214  // %        note 1: When no argument is specified, will put variables in global scope.
215  // %        note 1: When a particular argument has been passed, and the returned value is different parse_str of PHP. For example, a=b=c&d====c
216  // *     example 1: var arr = {};
217  // *     example 1: parse_str('first=foo&second=bar', arr);
218  // *     results 1: arr == { first: 'foo', second: 'bar' }
219  // *     example 2: var arr = {};
220  // *     example 2: parse_str('str_a=Jack+and+Jill+didn%27t+see+the+well.', arr);
221  // *     results 2: arr == { str_a: "Jack and Jill didn't see the well." }
222  // *     example 3: var abc = {3:'a'};
223  // *     example 3: parse_str('abc[a][b]["c"]=def&abc[q]=t+5');
224  // *     results 3: JSON.stringify(abc) === '{"3":"a","a":{"b":{"c":"def"}},"q":"t 5"}';
225	var strArr = String(str).replace(/^&/, '').replace(/&$/, '').split('&'),
226	sal = strArr.length,
227	i, j, ct, p, lastObj, obj, lastIter, undef, chr, tmp, key, value,
228	postLeftBracketPos, keys, keysLen,
229	fixStr = function (str) {
230		return decodeURIComponent(str.replace(/\+/g, '%20'));
231	};
232	// Comented by Alexey Bolotov
233	/*
234	if (!array) {
235	array = this.window;
236	}*/
237	if (!array) {
238		array = {};
239	}
240
241	for (i = 0; i < sal; i++) {
242		tmp = strArr[i].split('=');
243		key = fixStr(tmp[0]);
244		value = (tmp.length < 2) ? '' : fixStr(tmp[1]);
245
246		while (key.charAt(0) === ' ') {
247			key = key.slice(1);
248		}
249		if (key.indexOf('\x00') > -1) {
250			key = key.slice(0, key.indexOf('\x00'));
251		}
252		if (key && key.charAt(0) !== '[') {
253			keys = [];
254			postLeftBracketPos = 0;
255			for (j = 0; j < key.length; j++) {
256				if (key.charAt(j) === '[' && !postLeftBracketPos) {
257					postLeftBracketPos = j + 1;
258				} else if (key.charAt(j) === ']') {
259					if (postLeftBracketPos) {
260						if (!keys.length) {
261							keys.push(key.slice(0, postLeftBracketPos - 1));
262						}
263						keys.push(key.substr(postLeftBracketPos, j - postLeftBracketPos));
264						postLeftBracketPos = 0;
265						if (key.charAt(j + 1) !== '[') {
266							break;
267						}
268					}
269				}
270			}
271			if (!keys.length) {
272				keys = [key];
273			}
274			for (j = 0; j < keys[0].length; j++) {
275				chr = keys[0].charAt(j);
276				if (chr === ' ' || chr === '.' || chr === '[') {
277					keys[0] = keys[0].substr(0, j) + '_' + keys[0].substr(j + 1);
278				}
279				if (chr === '[') {
280					break;
281				}
282			}
283
284			obj = array;
285			for (j = 0, keysLen = keys.length; j < keysLen; j++) {
286				key = keys[j].replace(/^['"]/, '').replace(/['"]$/, '');
287				lastIter = j !== keys.length - 1;
288				lastObj = obj;
289				if ((key !== '' && key !== ' ') || j === 0) {
290					if (obj[key] === undef) {
291						obj[key] = {};
292					}
293					obj = obj[key];
294				} else { // To insert new dimension
295					ct = -1;
296					for (p in obj) {
297						if (obj.hasOwnProperty(p)) {
298							if (+p > ct && p.match(/^\d+$/g)) {
299								ct = +p;
300							}
301						}
302					}
303					key = ct + 1;
304				}
305			}
306			lastObj[key] = value;
307		}
308	}
309	return array;
310}
311
312function toeListableGmp(params) {
313	this.params			= jQuery.extend({}, params);
314	this.table			= jQuery(this.params.table);
315	this.paging			= jQuery(this.params.paging);
316	this.perPage		= this.params.perPage;
317	this.list			= this.params.list;
318	this.count			= this.params.count;
319	this.page			= this.params.page;
320	this.pagingCallback	= this.params.pagingCallback;
321	var self			= this;
322	
323	this.draw = function(list, count) {
324		this.table.find('tr').not('.gmpExample, .gmpTblHeader').remove();
325		var exampleRow = this.table.find('.gmpExample');
326		for(var i in list) {
327			var newRow = exampleRow.clone();
328			for(var key in list[i]) {
329				var element = newRow.find('.'+ key);
330				if(element.size()) {
331					var valueTo = element.attr('valueTo');
332					if(valueTo) {
333						var newValue = list[i][key];
334						var prevValue = element.attr(valueTo);
335						if(prevValue)
336							newValue = prevValue+ ' '+ newValue;
337						element.attr(valueTo, newValue);
338					} else
339						element.html(list[i][key]);
340				}
341			}
342			newRow.removeClass('gmpExample').show();
343			this.table.append(newRow);
344		}
345		if(this.paging) {
346			this.paging.html('');
347			if(count && count > list.length && this.perPage) {
348				for(var i = 1; i <= Math.ceil(count/this.perPage); i++) {
349					var newPageId = i-1
350					,	newElement = (newPageId == this.page) ? jQuery('<b/>') : jQuery('<a/>');
351					if(newPageId != this.page) {
352						newElement.attr('href', '#'+ newPageId)
353						.click(function(){
354							if(self.pagingCallback && typeof(self.pagingCallback) == 'function') {
355								self.pagingCallback(parseInt(jQuery(this).attr('href').replace('#', '')));
356								return false;
357							}
358						});
359					}
360					newElement.addClass('toePagingElement').html(i);
361					this.paging.append(newElement);
362					if(i%20 == 0 && i)
363						this.paging.append('<br />');
364				}
365			}
366		}
367	};
368	if(this.list)
369		this.draw(this.list, this.count);
370}
371
372function setCookieGmp(c_name, value, exdays) {
373	var exdate = new Date();
374	exdate.setDate(exdate.getDate() + exdays);
375	var value_prepared = '';
376	if(typeof(value) == 'array' || typeof(value) == 'object') {
377		value_prepared = '_JSON:'+ JSON.stringify( value );
378	} else {
379		value_prepared = value;
380	}
381	var c_value = escape(value_prepared)+ ((exdays==null) ? "" : "; expires="+exdate.toUTCString())+ '; path=/';
382	document.cookie = c_name+ "="+ c_value;
383}
384
385function getCookieGmp(name) {
386	var parts = document.cookie.split(name + "=");
387	if (parts.length == 2) {
388		var value = unescape(parts.pop().split(";").shift());
389		if(value.indexOf('_JSON:') === 0) {
390			value = JSON.parse(value.split("_JSON:").pop());
391		}
392		return value;
393	}
394	return null;
395}
396
397function delCookieGmp( name ) {
398  document.cookie = name+ '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
399}
400
401function callUserFuncArray(cb, parameters) {
402	// http://kevin.vanzonneveld.net
403	// +   original by: Thiago Mata (http://thiagomata.blog.com)
404	// +   revised  by: Jon Hohle
405	// +   improved by: Brett Zamir (http://brett-zamir.me)
406	// +   improved by: Diplom@t (http://difane.com/)
407	// +   improved by: Brett Zamir (http://brett-zamir.me)
408	// *     example 1: call_user_func_array('isNaN', ['a']);
409	// *     returns 1: true
410	// *     example 2: call_user_func_array('isNaN', [1]);
411	// *     returns 2: false
412	var func;
413
414	if (typeof cb === 'string') {
415		func = (typeof this[cb] === 'function') ? this[cb] : func = (new Function(null, 'return ' + cb))();
416	}
417	else if (Object.prototype.toString.call(cb) === '[object Array]') {
418		func = (typeof cb[0] == 'string') ? eval(cb[0] + "['" + cb[1] + "']") : func = cb[0][cb[1]];
419	}
420	else if (typeof cb === 'function') {
421		func = cb;
422	}
423
424	if (typeof func !== 'function') {
425		throw new Error(func + ' is not a valid function');
426	}
427
428	return (typeof cb[0] === 'string') ? func.apply(eval(cb[0]), parameters) : (typeof cb[0] !== 'object') ? func.apply(null, parameters) : func.apply(cb[0], parameters);
429}
430jQuery.fn.zoom = function(level) {
431	jQuery(this).data('zoom', level);
432	return jQuery(this).css({
433	/*	'zoom': level	// Didn't worked correctly for mobiles
434	,*/	'-moz-transform': 'scale('+ level+ ')'
435	,	'-moz-transform-origin': 'center center'
436	,	'-o-transform': 'scale('+ level+ ')'
437	,	'-o-transform-origin': 'center center'
438	,	'-webkit-transform': 'scale('+ level+ ')'
439	,	'-webkit-transform-origin': 'center center'
440	,	'transform': 'scale('+ level+ ')'
441	,	'transform-origin': 'center center'
442	});
443};
444jQuery.fn.rotate = function(deg) {
445	return jQuery(this).css({
446		'-moz-transform':'rotate('+ deg+ 'deg)'
447	,	'-webkit-transform':'rotate('+ deg+ 'deg)'
448	,	'-o-transform':'rotate('+ deg+ 'deg)'
449	,	'-ms-transform':'rotate('+ deg+ 'deg)'
450	,	'transform': 'rotate('+ deg+ 'deg)'
451	});
452};
453jQuery.fn.scrollWidth = function() {
454	var inner = document.createElement('p');
455	inner.style.width = "100%";
456	inner.style.height = "200px";
457
458	var outer = document.createElement('div');
459	outer.style.position = "absolute";
460	outer.style.top = "0px";
461	outer.style.left = "0px";
462	outer.style.visibility = "hidden";
463	outer.style.width = "200px";
464	outer.style.height = "150px";
465	outer.style.overflow = "hidden";
466	outer.appendChild (inner);
467
468	document.body.appendChild (outer);
469	var w1 = inner.offsetWidth;
470	outer.style.overflow = 'scroll';
471	var w2 = inner.offsetWidth;
472	if (w1 == w2) w2 = outer.clientWidth;
473
474	document.body.removeChild (outer);
475
476	return (w1 - w2);
477};
478/**
479 * Retrive worgmpess attach ID from image, using img classes
480 * @param {htmlObj} img Image to get ID from
481 */
482function toeGetImgAttachId(img) {
483	var classesStr = jQuery(img).attr('class')
484	,	aid = 0;
485	if(classesStr && classesStr != '') {
486		var matches = classesStr.match(/wp-image-(\d+)/);
487		if(matches && matches[1]) {
488			aid = parseInt(matches[1]);
489		}
490	}
491	return aid;
492}
493function toeGetHashParams() {
494	var hashArr = window.location.hash.split('#')
495	,	res = [];
496	for(var i in hashArr) {
497		if(hashArr[i] && hashArr[i] != '') {
498			res.push(hashArr[i]);
499		}
500	}
501	return res;
502}
503/*Replace text in DOM functions*/
504// Reusable generic function
505function traverseElement(el, regex, textReplacerFunc, to) {
506    // script and style elements are left alone
507    if (!/^(script|style)$/.test(el.tagName)) {
508        var child = el.lastChild;
509        while (child) {
510            if (child.nodeType == 1) {
511                traverseElement(child, regex, textReplacerFunc, to);
512            } else if (child.nodeType == 3) {
513                textReplacerFunc(child, regex, to);
514            }
515            child = child.previousSibling;
516        }
517    }
518}
519
520// This function does the replacing for every matched piece of text
521// and can be customized to do what you like
522function textReplacerFunc(textNode, regex, to) {
523	textNode.data = textNode.data.replace(regex, to);
524}
525
526// The main function
527function replaceWords(html, words) {
528    var container = document.createElement("div");
529    container.innerHTML = html;
530
531    // Replace the words one at a time to ensure each one gets matched
532	for(var replace in words) {
533		traverseElement(container, new RegExp(replace, "g"), textReplacerFunc, words[ replace ]);
534	}
535    return container.innerHTML;
536}
537/*****/
538function toeSelectText(element) {
539    var doc = document
540	,	text = jQuery(element).get(0)
541	,	range, selection;    
542    if (doc.body.createTextRange) { //ms
543        range = doc.body.createTextRange();
544        range.moveToElementText(text);
545        range.select();
546    } else if (window.getSelection) { //all others
547        selection = window.getSelection();        
548        range = doc.createRange();
549        range.selectNodeContents(text);
550        selection.removeAllRanges();
551        selection.addRange(range);
552    }
553}
554jQuery.fn.animationDuration = function(seconds, isMili) {
555	if(isMili) {
556		seconds = parseFloat(seconds) / 1000;
557	}
558	var secondsStr = seconds+ 's';
559	return jQuery(this).css({
560		'webkit-animation-duration': secondsStr
561	,	'-moz-animation-duration': secondsStr
562	,	'-o-animation-duration': secondsStr
563	,	'animation-duration': secondsStr
564	});
565};
566/**
567 * Convert Date string (in common - mm/dd/yyyy) - to miliseconds
568 * @param {string} strDate date string
569 * @return {int} miliseconds
570 */
571function gmpStrToMs(strDate) {
572	var dateHours = strDate.split(' ');
573	if(dateHours.length == 2) {
574		strDate = dateHours[0]+ ' ';
575		var hms = dateHours[1].split(':');
576		
577		for(var i = 0; i < 3; i++) {
578			strDate += hms[ i ] ? hms[ i ] : '00';
579			if(i < 2)
580				strDate += ':';
581		}
582	}
583	var date = new Date( str_replace(strDate, '-', '/') )
584	,	res = 0;
585	if(date) {
586		res = date.getTime();
587	}
588	return res;
589}
590// Simulates PHP's date function
591Date.prototype.format=function(e){var t="";var n=Date.replaceChars;for(var r=0;r<e.length;r++){var i=e.charAt(r);if(r-1>=0&&e.charAt(r-1)=="\\"){t+=i}else if(n[i]){t+=n[i].call(this)}else if(i!="\\"){t+=i}}return t};Date.replaceChars={shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longMonths:["January","February","March","April","May","June","July","August","September","October","November","December"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longDays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
591ay","Saturday"],d:function(){return(this.getDate()<10?"0":"")+this.getDate()},D:function(){return Date.replaceChars.shortDays[this.getDay()]},j:function(){return this.getDate()},l:function(){return Date.replaceChars.longDays[this.getDay()]},N:function(){return this.getDay()+1},S:function(){return this.getDate()%10==1&&this.getDate()!=11?"st":this.getDate()%10==2&&this.getDate()!=12?"nd":this.getDate()%10==3&&this.getDate()!=13?"rd":"th"},w:function(){return this.getDay()},z:function(){var e=new Date(this.getFullYear(),0,1);return Math.ceil((this-e)/864e5)},W:function(){var e=new Date(this.getFullYear(),0,1);return Math.ceil(((this-e)/864e5+e.getDay()+1)/7)},F:function(){return Date.replaceChars.longMonths[this.getMonth()]},m:function(){return(this.getMonth()<9?"0":"")+(this.getMonth()+1)},M:function(){return Date.replaceChars.shortMonths[this.getMonth()]},n:function(){return this.getMonth()+1},t:function(){var e=new Date;return(new Date(e.getFullYear(),e.getMonth(),0)).getDate()},L:function(){var e=this.getFullYear();return e%400==0||e%100!=0&&e%4==0},o:function(){var e=new Date(this.valueOf());e.setDate(e.getDate()-(this.getDay()+6)%7+3);return e.getFullYear()},Y:function(){return this.getFullYear()},y:function(){return(""+this.getFullYear()).substr(2)},a:function(){return this.getHours()<12?"am":"pm"},A:function(){return this.getHours()<12?"AM":"PM"},B:function(){return Math.floor(((this.getUTCHours()+1)%24+this.getUTCMinutes()/60+this.getUTCSeconds()/3600)*1e3/24)},g:function(){return this.getHours()%12||12},G:function(){return this.getHours()},h:function(){return((this.getHours()%12||12)<10?"0":"")+(this.getHours()%12||12)},H:function(){return(this.getHours()<10?"0":"")+this.getHours()},i:function(){return(this.getMinutes()<10?"0":"")+this.getMinutes()},s:function(){return(this.getSeconds()<10?"0":"")+this.getSeconds()},u:function(){var e=this.getMilliseconds();return(e<10?"00":e<100?"0":"")+e},e:function(){return"Not Yet Supported"},I:function(){var e=null;for(var t=0;t<12;++t){var n=new Date(this.getFullYear(),t,1);var r=n.getTimezoneOffset();if(e===null)e=r;else if(r<e){e=r;break}else if(r>e)break}return this.getTimezoneOffset()==e|0},O:function(){return(-this.getTimezoneOffset()<0?"-":"+")+(Math.abs(this.getTimezoneOffset()/60)<10?"0":"")+Math.abs(this.getTimezoneOffset()/60)+"00"},P:function(){return(-this.getTimezoneOffset()<0?"-":"+")+(Math.abs(this.getTimezoneOffset()/60)<10?"0":"")+Math.abs(this.getTimezoneOffset()/60)+":00"},T:function(){var e=this.getMonth();this.setMonth(0);var t=this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/,"$1");this.setMonth(e);return t},Z:function(){return-this.getTimezoneOffset()*60},c:function(){return this.format("Y-m-d\\TH:i:sP")},r:function(){return this.toString()},U:function(){return this.getTime()/1e3}}

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.