PageSourceSearch

https://vedemjust.ro/wp-content/plugins/wd-facebook-feed/js/ffwd_gallery_box.js?ver=1.1.33

js vedemjust.ro collected 2026-09-24 09:57:55 UTC 41,917 bytes, 917 lines download raw bytes

1var isPopUpOpened = false;
2function ffwd_createpopup(url, current_view, width, height, duration, description, lifetime) {
3	url = url.replace(/&/g, '&');
4	if (isPopUpOpened) { return };
5	isPopUpOpened = true;
6	if (ffwd_spider_hasalreadyreceivedpopup(description) || spider_isunsupporteduseragent()) {
7		return;
8	}
9	jQuery("html").attr("style", "overflow:hidden !important;");
10	jQuery("#spider_popup_loading_" + current_view).css({display: "block"});
11	jQuery("#spider_popup_overlay_" + current_view).css({display: "block"});
12	jQuery.get(url, function(data) {
13		var popup = jQuery(
14			'<div id="spider_popup_wrap" class="spider_popup_wrap" style="' +
15			' width:' + width + 'px;' +
16			' height:' + height + 'px;' +
17			' margin-top:-' + height / 2 + 'px;' +
18			' margin-left: -' + width / 2 + 'px; ">' +
19			data +
20			'</div>')
21			.hide()
22			.appendTo("body");
23		ff_wd_spider_showpopup(description, lifetime, popup, duration);
24	}).success(function(jqXHR, textStatus, errorThrown) {
25		jQuery("#spider_popup_loading_" + current_view).css({display: "none !important;"});
26	});
27}
28
29function ff_wd_spider_showpopup(description, lifetime, popup, duration) {
30	isPopUpOpened = true;
31	popup.show();
32	ffwd_spider_receivedpopup(description, lifetime);
33}
34
35function ffwd_spider_hasalreadyreceivedpopup(description) {
36	if (document.cookie.indexOf(description) > -1) {
37		delete document.cookie[document.cookie.indexOf(description)];
38	}
39	return false;
40}
41
42function ffwd_spider_receivedpopup(description, lifetime) {
43	var date = new Date();
44	date.setDate(date.getDate() + lifetime);
45	document.cookie = description + "=true;expires=" + date.toUTCString() + ";path=/";
46}
47
48function spider_isunsupporteduseragent() {
49	return (!window.XMLHttpRequest);
50}
51
52function ffwd_destroypopup(duration) {
53	if (document.getElementById("spider_popup_wrap") != null) {
54		if (typeof jQuery().fullscreen !== 'undefined' && jQuery.isFunction(jQuery().fullscreen)) {
55			if (jQuery.fullscreen.isFullScreen()) {
56				jQuery.fullscreen.exit();
57			}
58		}
59		setTimeout(function () {
60			jQuery(".spider_popup_wrap").remove();
61			jQuery(".spider_popup_loading").css({display: "none"});
62			jQuery(".spider_popup_overlay").css({display: "none"});
63			jQuery(document).off("keydown");
64			jQuery("html").attr("style", "overflow:auto !important");
65		}, 20);
66	}
67	isPopUpOpened = false;
68	var isMobile = (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase()));
69	var viewportmeta = document.querySelector('meta[name="viewport"]');
70	if (isMobile && viewportmeta) {
71		viewportmeta.content = 'width=device-width, initial-scale=1';
72	}
73	var scrrr = jQuery(document).scrollTop();
74	window.location.hash = "";
75	jQuery(document).scrollTop(scrrr);
76	clearInterval(ffwd_playInterval);
77}
78
79// Set value by ID.
80function spider_set_input_value(input_id, input_value) {
81	if (document.getElementById(input_id)) {
82		document.getElementById(input_id).value = input_value;
83	}
84}
85
86function ffwd_get_passed_time_popup(time) {
87	var today = new Date(),
88		arr = time.split(/[^0-9]/);
89	today = Date.parse(today) / 1000 - client_server_date_difference_popup;
90	time = Date.UTC(arr[0],arr[1]-1,arr[2],arr[3],arr[4],arr[5] );
91	time /= 1000;
92	time = today - time;
93	var tokens = {
94		'year'   : '31536000',
95		'month'  : '2592000',
96		'week'   : '604800',
97		'day'    : '86400',
98		'hour'   : '3600',
99		'minute' : '60',
100		'second' : '1'
101	};
102	for (unit in tokens) {
103		if (time < parseInt(tokens[unit])) continue;
104		var numberOfUnits = Math.floor(time / parseInt(tokens[unit]));
105		return numberOfUnits + ' ' + unit + ( ( numberOfUnits > 1 ) ? 's ago' : ' ago' ) ;
106	}
107}
108
109function ffwd_time(object) {
110	var date_format = ffwd_options["post_date_format"];
111	if(object["type"] == "events")
112		date_format = ffwd_options["event_date_format"];
113
114	date = ffwd_set_timezone_format(ffwd_date_timezone_offset, date_format, object["created_time"]);
115	return date;
116}
117
118function ffwd_set_timezone_format(timezone_offset, date_format, time) {
119	var date = new Date(time);
120	new_date_timezone = new Date( date.getTime() + (timezone_offset)* 3600 * 1000).toUTCString().replace( / GMT$/, "" );
121	new_date = new Date(new_date_timezone);
122	var year = new_date.getFullYear(),
123		month = new_date.getMonth(),
124		week_day = new_date.getDay(),
125		month_day = new_date.getDate(),
126		hour = new_date.getHours(),
127		minute = new_date.getMinutes(),
128		sec = new_date.getSeconds(),
129		weekday= [
130			"Sunday",
131			"Monday",
132			"Tuesday",
133			"Wednesday",
134			"Thursday",
135			"Friday",
136			"Saturday",
137		],
138		monthNames = [
139			"January",
140			"February",
141			"March",
142			"April",
143			"May",
144			"June",
145			"July",
146			"August",
147			"September",
148			"October",
149			"November",
150			"December"
151		];
152	switch(date_format) {
153		case "ago" :
154			format = ffwd_get_passed_time_popup(time);
155			break;
156		case "F j, Y, g:i a" :
157			format = monthNames[month] + ' ' + month_day + ', ' + year + ', ' + formatAMPM(new_date);
158			break;
159		case "F j, Y" :
160			format = monthNames[month] + ' ' + month_day + ', ' + year;
161			break;
162		case "l, F jS, Y" :
163			format = weekday[week_day] + ', ' + monthNames[month] + ' ' + ordinal_suffix_of(month_day) + ', ' + year;
164			break;
165		case "l, F jS, Y, g:i a" :
166			format = weekday[week_day] + ', ' + monthNames[month] + ' ' + ordinal_suffix_of(month_day) + ', ' + year + ', ' + formatAMPM(new_date);
167			break;
168		case "Y/m/d at g:i a" :
169			format = year + '/' + ((month + 1) > 10 ? (month + 1) : "0" + (month + 1)) + '/' + (month_day > 10 ? month_day : "0" + month_day) + ' at ' + formatAMPM(new_date);
170			break;
171		default:
172			format = ffwd_get_passed_time_popup(time);
173			break;
174	}
175	return format;
176}
177
178function formatAMPM(date) {
179	var hours = date.getHours(),
180		minutes = date.getMinutes(),
181		ampm = hours >= 12 ? 'pm' : 'am';
182
183	hours = hours % 12;
184	hours = hours ? hours : 12;
185	minutes = minutes < 10 ? '0'+minutes : minutes;
186	var strTime = hours + ':' + minutes + ' ' + ampm;
187	return strTime;
188}
189
190function ordinal_suffix_of(i) {
191	var j = i % 10,
192		k = i % 100;
193	if (j == 1 && k != 11) {
194		return i + "st";
195	}
196	if (j == 2 && k != 12) {
197		return i + "nd";
198	}
199	if (j == 3 && k != 13) {
200		return i + "rd";
201	}
202	return i + "th";
203}
204
205function ffwd_see_show_hide(string, type, row_type) {
206	string_for_quality = string.replace(/&lt;br\/&gt;/g, "\n");
207	string = string.replace(/&lt;br\/&gt;/g, " \n ");
208	var new_string = string,
209		hide_text_paragraph = '',
210		length = string_for_quality.length;
211	/*console.log(length); xndir@ ispanerin hatk chareri meja*/
212	if(row_type == 'events')
213		text_length = (typeof ffwd_options["event_desp_length"] != "undefined") ? ffwd_options["event_desp_length"] : 200;
214	else
215		text_length = (typeof ffwd_options["post_text_length"] != "undefined") ? ffwd_options["post_text_length"] : 200;
216
217	if (length > text_length) {
218		var stringCut = string_for_quality.substr(0, text_length);
219		var last_whitespace_in_string_cut = stringCut.lastIndexOf(" ");
220		last_whitespace_in_string_cut = (last_whitespace_in_string_cut == -1) ? 0 : last_whitespace_in_string_cut;
221		var hide_text_length = length - last_whitespace_in_string_cut;
222
223		stringCut = stringCut.substr(0, last_whitespace_in_string_cut)
224		stringCut = stringCut.replace(/\n/g, " \n ");
225
226		var hide_text = string_for_quality.substr(last_whitespace_in_string_cut, hide_text_length);
227		hide_text = hide_text.replace(/\n/g, " \n ");
228		hide_text_paragraph = ' <span style="display:none" class="ffwd_object_' + type + '_hide" >' + hide_text + ' </span>';
229		new_string = stringCut + hide_text_paragraph + ' <span class="ffwd_more_dotes" > ... </span> <a href="" class="ffwd_see_more ffwd_see_more_' + type + '">See more</a>';
230	}
231	return new_string;
232}
233
234function ffwd_fill_tags(message, message_tags) {
235	if(message_tags)
236		var type = message_tags.constructor.name;
237	if(type == "Array") {
238		for(var j=0; j<message_tags.length; j++) {
239			var tag_name = message_tags[j]["name"],
240				tag_id = message_tags[j]["id"];
241			message = message.replace(tag_name, '<a class="ffwd_message_tag" target="_blank" href="https://www.facebook.com/'+tag_id+'" >'+tag_name+'</a>');
242		}
243	}
244	else if(type == "Object"){
245		for(var x in message_tags) {
246			var tag_name = message_tags[x]["0"]["name"],
247				tag_id = message_tags[x]["0"]["id"];
248			message = message.replace(tag_name, '<a class="ffwd_message_tag" target="_blank" href="https://www.facebook.com/'+tag_id+'" >'+tag_name+'</a>');
249		}
250	}
251	return message;
252}
253
254
255function ffwd_testBrowser_cssTransitions() {
256	return ffwd_testDom('Transition');
257}
258
259function ffwd_testBrowser_cssTransforms3d() {
260	return ffwd_testDom('Perspective');
261}
262
263function ffwd_testDom(prop) {
264	/* Browser vendor CSS prefixes.*/
265	var browserVendors = ['', '-webkit-', '-moz-', '-ms-', '-o-', '-khtml-'];
266	/* Browser vendor DOM prefixes.*/
267	var domPrefixes = ['', 'Webkit', 'Moz', 'ms', 'O', 'Khtml'];
268	var i = domPrefixes.length;
269	while (i--) {
270		if (typeof document.body.style[domPrefixes[i] + prop] !== 'undefined') {
271			return true;
272		}
273	}
274	return false;
275}
276
277function ffwd_cube(tz, ntx, nty, nrx, nry, wrx, wry, current_image_class, next_image_class, direction) {
278	/* If browser does not support 3d transforms/CSS transitions.*/
279	if (!ffwd_testBrowser_cssTransitions()) {
280		return ffwd_fallback(current_image_class, next_image_class, direction);
281	}
282	if (!ffwd_testBrowser_cssTransforms3d()) {
283		return ffwd_fallback3d(current_image_class, next_image_class, direction);
284	}
285	ffwd_trans_in_progress = true;
286	/* Set active thumbnail.*/
287	jQuery(".ffwd_filmstrip_thumbnail").removeClass("ffwd_thumb_active").addClass("ffwd_thumb_deactive");
288	jQuery("#ffwd_filmstrip_thumbnail_" + ffwd_current_key).removeClass("ffwd_thumb_deactive").addClass("ffwd_thumb_active");
289	jQuery(".ffwd_slide_bg").css('perspective', 1000);
290	jQuery(current_image_class).css({
291		transform : 'translateZ(' + tz + 'px)',
292		backfaceVisibility : 'hidden'
293	});
294	jQuery(next_image_class).css({
295		opacity : 1,
296		filter: 'Alpha(opacity=100)',
297		backfaceVisibility : 'hidden',
298		transform : 'translateY(' + nty + 'px) translateX(' + ntx + 'px) rotateY('+ nry +'deg) rotateX('+ nrx +'deg)'
299	});
300	jQuery(".ffwd_slider").css({
301		transform: 'translateZ(-' + tz + 'px)',
302		transformStyle: 'preserve-3d'
303	});
304	/* Execution steps.*/
305	setTimeout(function () {
306		jQuery(".ffwd_slider").css({
307			transition: 'all ' + ffwd_transition_duration + 'ms ease-in-out',
308			transform: 'translateZ(-' + tz + 'px) rotateX('+ wrx +'deg) rotateY('+ wry +'deg)'
309		});
310	}, 20);
311	/* After transition.*/
312	jQuery(".ffwd_slider").one('webkitTransitionEnd transitionend otransitionend oTransitionEnd mstransitionend', jQuery.proxy(ffwd_after_trans));
313	function ffwd_after_trans() {
314		jQuery(current_image_class).removeAttr('style');
315		jQuery(next_image_class).removeAttr('style');
316		jQuery(".ffwd_slider").removeAttr('style');
317		jQuery(current_image_class).css({'opacity' : 0, filter: 'Alpha(opacity=0)', 'z-index': 1});
318		jQuery(next_image_class).css({'opacity' : 1, filter: 'Alpha(opacity=100)', 'z-index' : 2});
319
320		ffwd_trans_in_progress = false;
321		jQuery(current_image_class).html('');
322
323		/*First check main objects*/
324		if (typeof ffwd_event_stack !== 'undefined' && ffwd_event_stack.length > 0) {
325			ffwd_event_stack_for_attachments = [];
326			key = ffwd_event_stack[0].split("-");
327			ffwd_event_stack.shift();
328			ffwd_change_image(key[0], key[1], data, true);
329		}
330		/*Then sub objects*/
331		if (typeof ffwd_event_stack_for_attachments !== 'undefined' && ffwd_event_stack_for_attachments.length > 0) {
332			var object = ffwd_event_stack_for_attachments[0];
333			ffwd_event_stack_for_attachments.shift();
334			ffwd_change_subattachment(object);
335		}
336	}
337}
338function ffwd_cubeH(current_image_class, next_image_class, direction) {
339	/* Set to half of image width.*/
340	var dimension = jQuery(current_image_class).width() / 2;
341	if (direction == 'right') {
342		ffwd_cube(dimension, dimension, 0, 0, 90, 0, -90, current_image_class, next_image_class, direction);
343	}
344	else if (direction == 'left') {
345		ffwd_cube(dimension, -dimension, 0, 0, -90, 0, 90, current_image_class, next_image_class, direction);
346	}
347}
348function ffwd_cubeV(current_image_class, next_image_class, direction) {
349	/* Set to half of image height.*/
350	var dimension = jQuery(current_image_class).height() / 2;
351	/* If next slide.*/
352	if (direction == 'right') {
353		ffwd_cube(dimension, 0, -dimension, 90, 0, -90, 0, current_image_class, next_image_class, direction);
354	}
355	else if (direction == 'left') {
356		ffwd_cube(dimension, 0, dimension, -90, 0, 90, 0, current_image_class, next_image_class, direction);
357	}
358}
359/* For browsers that does not support transitions.*/
360function ffwd_fallback(current_image_class, next_image_class, direction) {
361	ffwd_fade(current_image_class, next_image_class, direction);
362}
363/* For browsers that support transitions, but not 3d transforms (only used if primary transition makes use of 3d-transforms).*/
364function ffwd_fallback3d(current_image_class, next_image_class, direction) {
365	ffwd_sliceV(current_image_class, next_image_class, direction);
366}
367function ffwd_none(current_image_class, next_image_class, direction) {
368	jQuery(current_image_class).css({'opacity' : 0, 'z-index': 1});
369	jQuery(next_image_class).css({'opacity' : 1, 'z-index' : 2});
370	/* Set active thumbnail.*/
371	jQuery(".ffwd_filmstrip_thumbnail").removeClass("ffwd_thumb_active").addClass("ffwd_thumb_deactive");
372	jQuery("#ffwd_filmstrip_thumbnail_" + ffwd_current_key).removeClass("ffwd_thumb_deactive").addClass("ffwd_thumb_active");
373	ffwd_trans_in_progress = false;
374	jQuery(current_image_class).html('');
375}
376function ffwd_fade(current_image_class, next_image_class, direction) {
377	/* Set active thumbnail.*/
378	jQuery(".ffwd_filmstrip_thumbnail").removeClass("ffwd_thumb_active").addClass("ffwd_thumb_deactive");
379	jQuery("#ffwd_filmstrip_thumbnail_" + ffwd_current_key).removeClass("ffwd_thumb_deactive").addClass("ffwd_thumb_active");
380	if (ffwd_testBrowser_cssTransitions()) {
381		jQuery(next_image_class).css('transition', 'opacity ' + ffwd_transition_duration + 'ms linear');
382		jQuery(current_image_class).css({'opacity' : 0, 'z-index': 1});
383		jQuery(next_image_class).css({'opacity' : 1, 'z-index' : 2});
384	}
385	else {
386		jQuery(current_image_class).animate({'opacity' : 0, 'z-index' : 1}
386, ffwd_transition_duration);
387		jQuery(next_image_class).animate({
388			'opacity' : 1,
389			'z-index': 2
390		}, {
391			duration: ffwd_transition_duration,
392			complete: function () {
393
394				ffwd_trans_in_progress = false;
395				jQuery(current_image_class).html('');
396			}
397		});
398		/* For IE.*/
399		jQuery(current_image_class).fadeTo(ffwd_transition_duration, 0);
400		jQuery(next_image_class).fadeTo(ffwd_transition_duration, 1);
401	}
402}
403function ffwd_grid(cols, rows, ro, tx, ty, sc, op, current_image_class, next_image_class, direction) {
404	/* If browser does not support CSS transitions.*/
405	if (!ffwd_testBrowser_cssTransitions()) {
406		return ffwd_fallback(current_image_class, next_image_class, direction);
407	}
408	ffwd_trans_in_progress = true;
409	/* Set active thumbnail.*/
410	jQuery(".ffwd_filmstrip_thumbnail").removeClass("ffwd_thumb_active").addClass("ffwd_thumb_deactive");
411	jQuery("#ffwd_filmstrip_thumbnail_" + ffwd_current_key).removeClass("ffwd_thumb_deactive").addClass("ffwd_thumb_active");
412	/* The time (in ms) added to/subtracted from the delay total for each new gridlet.*/
413	var count = (ffwd_transition_duration) / (cols + rows);
414	/* Gridlet creator (divisions of the image grid, positioned with background-images to replicate the look of an entire slide image when assembled)*/
415	function ffwd_gridlet(width, height, top, img_top, left, img_left, src, imgWidth, imgHeight, c, r) {
416		var delay = (c + r) * count;
417		/* Return a gridlet elem with styles for specific transition.*/
418		return jQuery('<div class="ffwd_gridlet" />').css({
419			width : width,
420			height : height,
421			top : top,
422			left : left,
423			backgroundImage : 'url("' + src + '")',
424			backgroundColor: jQuery(".spider_popup_wrap").css("background-color"),
425			/*backgroundColor: 'rgba(0, 0, 0, 0)',*/
426			backgroundRepeat: 'no-repeat',
427			backgroundPosition : img_left + 'px ' + img_top + 'px',
428			backgroundSize : imgWidth + 'px ' + imgHeight + 'px',
429			transition : 'all ' + ffwd_transition_duration + 'ms ease-in-out ' + delay + 'ms',
430			transform : 'none'
431		});
432	}
433	/* Get the current slide's image.*/
434	var cur_img = jQuery(current_image_class).find('img');
435	/* Create a grid to hold the gridlets.*/
436	var grid = jQuery('<div />').addClass('ffwd_grid');
437	/* Prepend the grid to the next slide (i.e. so it's above the slide image).*/
438	jQuery(current_image_class).prepend(grid);
439	/* Vars to calculate positioning/size of gridlets.*/
440	var cont = jQuery(".ffwd_slide_bg");
441	var imgWidth = cur_img.width();
442	var imgHeight = cur_img.height();
443	var contWidth = cont.width(),
444		contHeight = cont.height(),
445		colWidth = Math.floor(contWidth / cols),
446		rowHeight = Math.floor(contHeight / rows),
447		colRemainder = contWidth - (cols * colWidth),
448		colAdd = Math.ceil(colRemainder / cols),
449		rowRemainder = contHeight - (rows * rowHeight),
450		rowAdd = Math.ceil(rowRemainder / rows),
451		leftDist = 0,
452		img_leftDist = Math.ceil((jQuery(".ffwd_slide_bg").width() - cur_img.width()) / 2);
453	var imgSrc = typeof cur_img.attr('src')=='undefined' ? '' :cur_img.attr('src');
454	/* tx/ty args can be passed as 'auto'/'min-auto' (meaning use slide width/height or negative slide width/height).*/
455	tx = tx === 'auto' ? contWidth : tx;
456	tx = tx === 'min-auto' ? - contWidth : tx;
457	ty = ty === 'auto' ? contHeight : ty;
458	ty = ty === 'min-auto' ? - contHeight : ty;
459	/* Loop through cols.*/
460	for (var i = 0; i < cols; i++) {
461		var topDist = 0,
462			img_topDst = Math.floor((jQuery(".ffwd_slide_bg").height() - cur_img.height()) / 2),
463			newColWidth = colWidth;
464		/* If imgWidth (px) does not divide cleanly into the specified number of cols, adjust individual col widths to create correct total.*/
465		if (colRemainder > 0) {
466			var add = colRemainder >= colAdd ? colAdd : colRemainder;
467			newColWidth += add;
468			colRemainder -= add;
469		}
470		/* Nested loop to create row gridlets for each col.*/
471		for (var j = 0; j < rows; j++)  {
472			var newRowHeight = rowHeight,
473				newRowRemainder = rowRemainder;
474			/* If contHeight (px) does not divide cleanly into the specified number of rows, adju
474st individual row heights to create correct total.*/
475			if (newRowRemainder > 0) {
476				add = newRowRemainder >= rowAdd ? rowAdd : rowRemainder;
477				newRowHeight += add;
478				newRowRemainder -= add;
479			}
480			/* Create & append gridlet to grid.*/
481			grid.append(ffwd_gridlet(newColWidth, newRowHeight, topDist, img_topDst, leftDist, img_leftDist, imgSrc, imgWidth, imgHeight, i, j));
482			topDist += newRowHeight;
483			img_topDst -= newRowHeight;
484		}
485		img_leftDist -= newColWidth;
486		leftDist += newColWidth;
487	}
488	/* Set event listener on last gridlet to finish transitioning.*/
489	var last_gridlet = grid.children().last();
490	/* Show grid & hide the image it replaces.*/
491	grid.show();
492	cur_img.css('opacity', 0);
493	/* Add identifying classes to corner gridlets (useful if applying border radius).*/
494	grid.children().first().addClass('rs-top-left');
495	grid.children().last().addClass('rs-bottom-right');
496	grid.children().eq(rows - 1).addClass('rs-bottom-left');
497	grid.children().eq(- rows).addClass('rs-top-right');
498	/* Execution steps.*/
499	setTimeout(function () {
500		grid.children().css({
501			opacity: op,
502			transform: 'rotate('+ ro +'deg) translateX('+ tx +'px) translateY('+ ty +'px) scale('+ sc +')'
503		});
504	}, 30);
505	jQuery(next_image_class).css('opacity', 1);
506	/* After transition.*/
507	jQuery(last_gridlet).one('webkitTransitionEnd transitionend otransitionend oTransitionEnd mstransitionend', jQuery.proxy(ffwd_after_trans));
508	function ffwd_after_trans() {
509
510		/*console.log('ffwd_after_transssss');*/
511
512		jQuery(current_image_class).css({'opacity' : 0, 'z-index': 1});
513		jQuery(next_image_class).css({'opacity' : 1, 'z-index' : 2});
514		cur_img.css('opacity', 1);
515		grid.remove();
516		ffwd_trans_in_progress = false;
517		jQuery(current_image_class).html('');
518
519		/*First check main objects*/
520		if (typeof ffwd_event_stack !== 'undefined' && ffwd_event_stack.length > 0) {
521			/*console.log('gag');*/
522			ffwd_event_stack_for_attachments = [];
523			key = ffwd_event_stack[0].split("-");
524			ffwd_event_stack.shift();
525			ffwd_change_image(key[0], key[1], data, true);
526		}
527		/*Then sub objects*/
528		if (typeof ffwd_event_stack_for_attachments !== 'undefined' && ffwd_event_stack_for_attachments.length > 0) {
529			var object = ffwd_event_stack_for_attachments[0];
530			ffwd_event_stack_for_attachments.shift();
531			ffwd_change_subattachment(object);
532		}
533	}
534}
535function ffwd_sliceH(current_image_class, next_image_class, direction) {
536	if (direction == 'right') {
537		var translateX = 'min-auto';
538	}
539	else if (direction == 'left') {
540		var translateX = 'auto';
541	}
542	ffwd_grid(1, 8, 0, translateX, 0, 1, 0, current_image_class, next_image_class, direction);
543}
544function ffwd_sliceV(current_image_class, next_image_class, direction) {
545	if (direction == 'right') {
546		var translateY = 'min-auto';
547	}
548	else if (direction == 'left') {
549		var translateY = 'auto';
550	}
551	ffwd_grid(10, 1, 0, 0, translateY, 1, 0, current_image_class, next_image_class, direction);
552}
553function ffwd_slideV(current_image_class, next_image_class, direction) {
554	if (direction == 'right') {
555		var translateY = 'auto';
556	}
557	else if (direction == 'left') {
558		var translateY = 'min-auto';
559	}
560	ffwd_grid(1, 1, 0, 0, translateY, 1, 1, current_image_class, next_image_class, direction);
561}
562function ffwd_slideH(current_image_class, next_image_class, direction) {
563	if (direction == 'right') {
564		var translateX = 'min-auto';
565	}
566	else if (direction == 'left') {
567		var translateX = 'auto';
568	}
569	ffwd_grid(1, 1, 0, translateX, 0, 1, 1, current_image_class, next_image_class, direction);
570}
571function ffwd_scaleOut(current_image_class, next_image_class, direction) {
572	ffwd_grid(1, 1, 0, 0, 0, 1.5, 0, current_image_class, next_image_class, direction);
573}
574function ffwd_scaleIn(current_image_class, next_image_class, direction) {
575	ffwd_grid(1, 1, 0, 0, 0, 0.5, 0, current_image_class, next_image_class, direction);
576}
577function ffwd_blockScale(current_image_class, next_image_class, direction) {
578	ffwd_grid(8, 6, 0, 0, 0, .6, 0, current_image_class, next_image_class, direction);
579}
580function ffwd_kaleidoscope(current_image_class, next_image_class, direction) {
581	ffwd_grid(10, 8, 0, 0, 0, 1, 0, current_image_class, next_image_class, direction);
582}
583function ffwd_fan(current_image_class, next_image_class, direction) {
584	if (direction == 'right') {
585		var rotate = 45;
586		var translateX = 100;
587	}
588	else if (direction == 'left') {
589		var rotate = -45;
590		var translateX = -100;
591	}
592	ffwd_grid(1, 10, rotate, translateX, 0, 1, 0, current_image_class, next_image_class, direction);
593}
594function ffwd_blindV(current_image_class, next_image_class, direction) {
595	ffwd_grid(1, 8, 0, 0, 0, .7, 0, current_image_class, next_image_class);
596}
597function ffwd_blindH(current_image_class, next_image_class, direction) {
598	ffwd_grid(10, 1, 0, 0, 0, .7, 0, current_image_class, next_image_class);
599}
600function ffwd_random(current_image_class, next_image_class, direction) {
601	var anims = ['sliceH', 'sliceV', 'slideH', 'slideV', 'scaleOut', 'scaleIn', 'blockScale', 'kaleidoscope', 'fan', 'blindH', 'blindV'];
602	/* Pick a random transition from the anims array.*/
603	this["ffwd_" + anims[Math.floor(Math.random() * anims.length)]](current_image_class, next_image_class, direction);
604}
605function ffwd_reset_zoom() {
606	var isMobile = (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase()));
607	var viewportmeta = document.querySelector('meta[name="viewport"]');
608	if (isMobile && viewportmeta) {
609		viewportmeta.content = 'width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=0';
610	}
611}
612
613/*Show hide subattachments cont*/
614function show_hide_sub_attachments(pos) {
615	/*Click from button*/
616	if(!pos) {
617		pos = (jQuery('.ffwd_sub_attachmenst_cont').css('top') == '0px') ? '-58px' : '0px';
618	}
619	jQuery('.ffwd_sub_attachmenst_cont').animate({
620		top: pos,
621	}, 250, "linear", function() {
622
623	});
624}
625
626/* Change object info*/
627function ffwd_change_info(key) {
628	var object = data[key],
629		name = jQuery('<div />').html(object['name']).text(),
630		link = object['link'],
631		message = ffwd_see_show_hide(object['message'], 'message', object['type']),
632		message_tags = object['message_tags'],
633		description = ffwd_see_show_hide(object['description'], 'description', object['type']),
634
635		time = object['created_time'],
636		place_name = '',
637		place_id,
638		class_name = (object["type"] != "events") ? ".ffwd_popup_from_time_post" : ".ffwd_popup_from_time_event";
639
640	message = ffwd_fill_hashtags(message);
641	message = ffwd_fill_tags(message, message_tags);
642	description = ffwd_fill_hashtags(description);
643
644	ffwd_fill_story_author_place(key);
645	jQuery('.ffwd_object_name').html(name).attr('href', link);
646	jQuery('.ffwd_object_messages').html(message);
647	jQuery('.ffwd_object_description').html(description);
648    jQuery(class_name + " span").html(ffwd_time(object));
649}
650
651/*Function for fill hashtags*/
652function ffwd_fill_hashtags(str) {
653	str = str.replace(/ \n /g, " <br> ");
654	str = str.split(' ');
655	for(var i=0; i<str.length; i++) {
656		if(str[i].indexOf('#') !== -1) {
657			var hashtag = str[i].replace('#', '<a class="ffwd_hashtag" target="_blank" href="https://www.facebook.com/hashtag/');
658			var word = str[i].split('#');
659			word = '#' + word[1];
660			hashtag += '">' + word + '</a>';
661			str[i] = hashtag;
662		}
663	}
664	str = str.join(' ');
665	return str;
666}
667
668/*See less see more*/
669function ffwd_see_less_more(that, more_less, type) {
670	var display = (more_less == 'more') ? 'inline' : 'none',
671		display_dotes = (more_less == 'more') ? 'none' : 'inline',
672		less_more = (more_less == 'more') ? 'less' : 'more';
673
674	that.parent().parent().find('.ffwd_object_'+type+'_hide').css('display', display);
675	that.html('See ' + less_more).removeClass('ffwd_see_' + more_less + '_' + type).addClass('ffwd_see_' + less_more + '_' + type);
676	that.parent().find('.ffwd_more_dotes').css('display', display_dotes);
677}
678
679/*Function for comments and likes cont*/
680function ffwd_fill_likes_comments(key) {
681	if(ffwd_content_type == "specific")
682	{
683		var url_for_cur_id = popup_graph_url.replace('{FB_ID}', data[key]['from']+'_'+data[key]['object_id']);
684		/*For likes*/
685		var graph_url_for_likes = url_for_cur_id.replace('{EDGE}', '');
686		graph_url_for_likes = graph_url_for_likes.replace('{FIELDS}', 'fields=likes.summary(true){id,name},comments.summary(true){created_time,from,like_count,message,comment_count}&');
687		graph_url_for_likes = graph_url_for_likes.replace('{OTHER}', 'summary=true');
688		jQuery.getJSON(graph_url_for_likes, function(result) {
689			var likes_count = (typeof result['likes']['summary'] != 'undefined') ? parseInt(result['likes']['summary']['total_count']) : 0;
690			jQuery('#ffwd_likes span').html(likes_count);
691			if(likes_count >= 3) {
692				var likes_some_names = '<div class="ffwd_likes_name_cont"> <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['likes']['data'][0]['id']+'" target="_blank">' + result['likes']['data'][0]['name'] + ' , </a><a class="ffwd_likes_name" href="https://www.facebook.com/'+result['likes']['data'][1]['id']+'" target="_blank">' + result['likes']['data'][1]['name'] +'</a></div>',
693					likes_count_last_part = '<div class="ffwd_likes_count_last_part" > and ' + (likes_count - 2)  +' others like this </div>';
694			}
695			else if(likes_count == 2 ) {
696				var likes_some_names = '<div> <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['likes']['data'][0]['id']+'" target="_blank">' + result['likes']['data'][0]['name'] + ' , </a> , <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['likes']['data'][1]['id']+'" target="_blank">' + result['likes']['data'][1]['name'] +'</a></div>',
697					likes_count_last_part = '';
698			}
699			else if(likes_count == 1 ) {
700				var likes_some_names = '<div> <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['likes']['data'][0]['id']+'" target="_blank">' + result['likes']['data'][0]['name'] + '</a></div>',
701					likes_count_last_part = '';
702			}
703			else {
704				var likes_some_names = '',
705					likes_count_last_part = '';
706			}
707			var likes_names_count = '<div class="ffwd_likes_names" > '+likes_some_names+likes_count_last_part+' </div><div style="clear:both" ></div>';
708			if(likes_count > 0)
709				jQuery('#ffwd_likes_names_count').html(likes_names_count).css("display", "block");
710			else
711				jQuery('#ffwd_likes_names_count').css("display", "none");
712
713
714			var	total_count = (result['comments']['data'].length < 25) ? result['comments']['data'].length : result['comments']['summary']['total_count'];
715			jQuery('#ffwd_comments_count span').html(total_count);
716			var more_comments = false;
717			jQuery('#ffwd_comments_content span').html('');
718			for(var i=0, j=1, z=0; i<result['comments']['data'].length; i++,j++) {
719				var display = 'display:block',
720					comment_id = result['comments']['data'][i]['id'];
721				if(j > 4) {
722					display = 'display:none';
723					more_comments = true;
724					z++;
725				}
726
727/*
728				var url_for_cur_id_comm_user_pic = popup_graph_url.replace('{FB_ID}', result['comments']['data'][i]['from']['id']);
729				url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{EDGE}', '');
730				url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{FIELDS}', '&fields=picture&');
731				url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{OTHER}', '');
732*/
733
734
735				var comment_author_pic = '<span></span>',
736				//var comment_author_pic = '<div style="float:left" class="ffwd_comment_author_pic" > <img class="user_'+result['comments']['data'][i]['from']['id']+'" style="width:32px;height:32px" src="https://graph.facebook.com/'+result['comments']['data'][i]['from']['id']+'/picture" > </div>',
737					comment_author_name = '<span></span>',
738				//	comment_author_name = '<a class="ffwd_comment_author_name" href="https://www.facebook.com/'+result['comments']['data'][i]['from']['id']+'" target="_blank"> '+result['comments']['data'][i]['from']['name']+' </a>',
739					comment_message = '<span class="ffwd_comment_message" > '+result['comments']['data'][i]['message']+' </span>',
740                    comment_date = '<span class="ffwd_comment_date" ><i class="ffwd ffwd-time"></i><span> '+ffwd_get_passed_time_popup(result['comments']['data'][i]['created_time'])+'</span></span>',
741                    comment_likes_count = '<span class="ffwd_comment_likes_count"><i class="ffwd ffwd-like"></i><span> '+result['comments']['data'][i]['like_count']+' </span></span>',
742                    comment_date_likes = '<div class="ffwd_comment_date_likes">'+ comment_date + comment_likes_count + '</div>',
743					comment_replies_cont = (ffwd_options["comments_filter"] == "toplevel" && ffwd_options["comments_replies"] == "1" && result['comments']['data'][i]['comment_count'] > 0) ? '<div class="ffwd_comment_replies"><div id="ffwd_comment_replies_popup_label_' + result['comments']['data'][i]['id']+'" class="ffwd_comment_replies_label">'+result['comments']['data'][i]['comment_count']+' Reply</div><div class="ffwd_comment_replies_content"></div></div>' : '',
744					comment_div_cont = '<div class="ffwd_comment_content" >'+comment_author_name+comment_message+comment_date_likes+comment_replies_cont+'<div style="clear:both"></div></div>',
745					comment = '<div id="ffwd_single_comment_'+comment_id+'" style="'+display+'" class="ffwd_single_comment">' + comment_author_pic + comment_div_cont + '<div style="clear:both" > </div></div>';
746				jQuery('#ffwd_comments_content').append(comment);
747				/*jQuery.getJSON(url_for_cur_id_comm_user_pic, function(result) {
748				 jQuery('.user_'+result['id']+'').attr('src', result['picture']['data']['url']);
749				 });*/
750				if(ffwd_options["comments_filter"] == "toplevel" && ffwd_options["comments_replies"] == "1")
751				{
752
753
754					(function (i) {
755
756						jQuery('#ffwd_comment_replies_popup_label_' + result['comments']['data'][i]['id']).bind("click", function () {
757
758							ffwd_get_comments_replies_popup(result['comments']['data'][i]['id'], popup_graph_url);
759						})
760					}(i))
761
762				}
763			}
764			if(more_comments) {
765				jQuery('#ffwd_comments_content').append('<div class="ffwd_view_more_comments_cont"> <a href="#" class="ffwd_view_more_comments" more_count="'+z+'"> <span> View '+z+' more comments </span> <a> </div>');
766			}
767			;
768
769
770
771
772		});
773		console.log(graph_url_for_likes);
774		return;
775	}
776
777
778	var url_for_cur_id = popup_graph_url.replace('{FB_ID}', data[key]['object_id']);
779	/*For likes*/
780	var graph_url_for_likes = url_for_cur_id.replace('{EDGE}', 'likes');
781	graph_url_for_likes = graph_url_for_likes.replace('{FIELDS}', 'fields=id,name&');
782	graph_url_for_likes = graph_url_for_likes.replace('{OTHER}', 'summary=true');
783	/*For comments*/
784	var graph_url_for_comments = url_for_cur_id.replace('{EDGE}', 'comments');
785	graph_url_for_comments = graph_url_for_comments.replace('{FIELDS}', 'fields=created_time,from,like_count,message,comment_count&');
786	graph_url_for_comments = graph_url_for_comments.replace('{OTHER}', 'summary=true&filter='+ffwd_options["comments_filter"]+'&order='+ffwd_options["comments_order"]+'&limit=25');
787	/*console.log(graph_url_for_comments)*/
788	/*For shares*/
789	var graph_url_for_shares = url_for_cur_id.replace('{EDGE}', '');
790	graph_url_for_shares = graph_url_for_shares.replace('{FIELDS}', 'fields=shares&');
791	graph_url_for_shares = graph_url_for_shares.replace('{OTHER}', '');
792	jQuery.getJSON(graph_url_for_likes, function(result) {
793		var likes_count = (typeof result['summary'] != 'undefined') ? parseInt(result['summary']['total_count']) : 0;
794		jQuery('#ffwd_likes span').html(likes_count);
795		/*if(likes_count >= 3) {
796			var likes_some_names = '<div class="ffwd_likes_name_cont"> <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['data'][0]['id']+'" target="_blank">' + result['data'][0]['name'] + ' , </a><a class="ffwd_likes_name" href="https://www.facebook.com/'+result['data'][1]['id']+'" target="_blank">' + result['data'][1]['name'] +'</a></div>',
797				likes_count_last_part = '<div class="ffwd_likes_count_last_part" > and ' + (likes_count - 2)  +' others like this </div>';
798		}
799		else if(likes_count == 2 ) {
800			var likes_some_names = '<div> <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['data'][0]['id']+'" target="_blank">' + result['data'][0]['name'] + ' , </a> , <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['data'][1]['id']+'" target="_blank">' + result['data'][1]['name'] +'</a></div>',
801				likes_count_last_part = '';
802		}
803		else if(likes_count == 1 ) {
804			var likes_some_names = '<div> <a class="ffwd_likes_name" href="https://www.facebook.com/'+result['data'][0]['id']+'" target="_blank">' + result['data'][0]['name'] + '</a></div>',
805				likes_count_last_part = '';
806		}
807		else {
808			var likes_some_names = '',
809				likes_count_last_part = '';
810		}*/
811
812
813        var likes_some_names = '',
814            likes_count_last_part = '';
815
816        var likes_names_count = '<div class="ffwd_likes_names" > '+likes_some_names+likes_count_last_part+' </div><div style="clear:both" ></div>';
817		if(likes_count > 0)
818			jQuery('#ffwd_likes_names_count').html(likes_names_count).css("display", "block");
819		else
820			jQuery('#ffwd_likes_names_count').css("display", "none");
821	});
822	/* For shares */
823	if(ffwd_content_type == "timeline") {
824		var shares_count = (typeof data[key]['shares'] != 'undefined') ? parseInt(data[key]['count']) : '0';
825		jQuery('#ffwd_shares span').html(shares_count);
826	}
827	/* For comments */
828
829	var	total_count = (data[key]['comments']['data'].length < 25) ? data[key]['comments']['data'].length : data[key]['comments']['summary']['total_count'];
830	jQuery('#ffwd_comments_count span').html(total_count);
831	var more_comments = false;
832	jQuery('#ffwd_comments_content span').html('');
833	for(var i=0, j=1, z=0; i<data[key]['comments']['data'].length; i++,j++) {
834		var display = 'display:block',
835			comment_id = data[key]['comments']['data'][i]['id'];
836		if(j > 4) {
837			display = 'display:none';
838			more_comments = true;
839			z++;
840		}
841
842/*
843		var url_for_cur_id_comm_user_pic = popup_graph_url.replace('{FB_ID}', data[key]['comments']['data'][i]['from']['id']);
844		url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{EDGE}', '');
845		url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{FIELDS}', '&fields=picture&');
846		url_for_cur_id_comm_user_pic = url_for_cur_id_comm_user_pic.replace('{OTHER}', '');
847
848*/
849
850		//var comment_author_pic = '<div style="float:left" class="ffwd_comment_author_pic" > <img class="user_'+data[key]['comments']['data'][i]['from']['id']+'" style="width:32px;height:32px" src="https://graph.facebook.com/'+data[key]['comments']['data'][i]['from']['id']+'/picture" > </div>',
851		var comment_author_pic = '<span></span>',
852			//comment_author_name = '<a class="ffwd_comment_author_name" href="https://www.facebook.com/'+data[key]['comments']['data'][i]['from']['id']+'" target="_blank"> '+data[key]['comments']['data'][i]['from']['name']+' </a>',
853			comment_author_name = '<span></span>',
854			comment_message = '<span class="ffwd_comment_message" > '+data[key]['comments']['data'][i]['message']+' </span>',
855            comment_date = '<span class="ffwd_comment_date" ><i class="ffwd ffwd-time"></i><span> '+ffwd_get_passed_time_popup(data[key]['comments']['data'][i]['created_time'])+'</span></span>',
856            comment_likes_count = '<span class="ffwd_comment_likes_count"><i class="ffwd ffwd-like"></i><span> '+data[key]['comments']['data'][i]['like_count']+' </span></span>',
857            comment_date_likes = '<div class="ffwd_comment_date_likes">'+ comment_date + comment_likes_count + '</div>',
858			comment_replies_cont = (ffwd_options["comments_filter"] == "toplevel" && ffwd_options["comments_replies"] == "1" && data[key]['comments']['data'][i]['comment_count'] > 0) ? '<div class="ffwd_comment_replies"><div id="ffwd_comment_replies_popup_label_' + data[key]['comments']['data'][i]['id']+'" class="ffwd_comment_replies_label">'+data[key]['comments']['data'][i]['comment_count']+' Reply</div><div class="ffwd_comment_replies_content"></div></div>' : '',
859			comment_div_cont = '<div class="ffwd_comment_content" >'+comment_author_name+comment_message+comment_date_likes+comment_replies_cont+'<div style="clear:both"></div></div>',
860			comment = '<div id="ffwd_single_comment_'+comment_id+'" style="'+display+'" class="ffwd_single_comment">' + comment_author_pic + comment_div_cont + '<div style="clear:both" > </div></div>';
861		jQuery('#ffwd_comments_content').append(comment);
862		/*jQuery.getJSON(url_for_cur_id_comm_user_pic, function(result) {
863		 jQuery('.user_'+result['id']+'').attr('src', result['picture']['data']['url']);
864		 });*/
865		if(ffwd_options["comments_filter"] == "toplevel" && ffwd_options["comments_replies"] == "1")
866		{
867
868
869			(function (i) {
870
871				jQuery('#ffwd_comment_replies_popup_label_' + data[key]['comments']['data'][i]['id']).bind("click", function () {
872
873					ffwd_get_comments_replies_popup(data[key]['comments']['data'][i]['id'], popup_graph_url);
874				})
875			}(i))
876
877		}
878	}
879	if(more_comments) {
880		jQuery('#ffwd_comments_content').append('<div class="ffwd_view_more_comments_cont"> <a href="#" class="ffwd_view_more_comments" more_count="'+z+'"> <span> View '+z+' more comments </span> <a> </div>');
881	}
882	;
883}
884
885
886function ffwd_get_comments_replies_popup(comment_id,popup_graph_url) {
887	var url_for_cur_id_comm_replies = popup_graph_url.replace('{FB_ID}', comment_id);
888	url_for_cur_id_comm_replies = url_for_cur_id_comm_replies.replace('{EDGE}', 'comments');
889	url_for_cur_id_comm_replies = url_for_cur_id_comm_replies.replace('{FIELDS}', 'fields=parent,created_time,from,like_count,message&');
890	url_for_cur_id_comm_replies = url_for_cur_id_comm_replies.replace('{OTHER}', '');
891	jQuery.getJSON(url_for_cur_id_comm_replies, function(result) {
892		for (var k = 0; k < result['data'].length; k++) {
893			var parent_comm_id = comment_id,
894				comment_reply_id = result['data'][k]["id"];
895
896			var url_for_cur_id_comm_rep_user_pic = popup_graph_url.replace('{FB_ID}', result['data'][k]['from']['id']);
897			url_for_cur_id_comm_rep_user_pic = url_for_cur_id_comm_rep_user_pic.replace('{EDGE}', '');
898			url_for_cur_id_comm_rep_user_pic = url_for_cur_id_comm_rep_user_pic.replace('{FIELDS}', 'fields=picture&');
899			url_for_cur_id_comm_rep_user_pic = url_for_cur_id_comm_rep_user_pic.replace('{OTHER}', '');
900
901			var comment_reply_author_pic = '<div class="ffwd_comment_reply_author_pic" style="float:left" > <img class="reply_user_' + result['data'][k]['from']['id'] + '" style="width:25px;height:25px" src="https://graph.facebook.com/' + result['data'][k]['from']['id'] + '/picture" > </div>',
902				comment_reply_author_name = '<a class="ffwd_comment_reply_author_name" href="https://www.facebook.com/' + result['data'][k]['from']['id'] + '" > ' + result['data'][k]['from']['name'] + ' </a>',
903				comment_reply_message = '<span class="ffwd_comment_reply_message" > ' + result['data'][k]['message'] + ' </span>',
904				comment_reply_date = '<span class="ffwd_comment_reply_date" > ' + ffwd_get_passed_time_popup(result['data'][k]['created_time']) + '</span>',
905				comment_reply_likes_count = '<span class="ffwd_comment_reply_likes_count" > ' + result['data'][k]['like_count'] + ' </span>',
906				comment_reply_date_likes = '<div class="ffwd_comment_reply_date_likes">' + comment_reply_date + comment_reply_likes_count + '</div>',
907				comment_reply_div_cont = '<div class="ffwd_comment_reply_content" >' + comment_reply_author_name + comment_reply_message + comment_reply_date_likes + '<div style="clear:both"></div></div>',
908				comment_reply = '<div class="ffwd_comment_reply" id="ffwd_comment_reply_' + comment_reply_id + '" >' + comment_reply_author_pic + comment_reply_div_cont + '<div style="clear:both" > </div></div>';
909
910			jQuery('#ffwd_single_comment_' + parent_comm_id + ' .ffwd_comment_replies_content').append(comment_reply
910);
911			/*jQuery.getJSON(url_for_cur_id_comm_rep_user_pic, function(result) {
912			 jQuery('.reply_user_'+result['id']+'').attr('src', result['picture']['data']['url']);
913			 });*/
914		}
915	})
916
917}

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.