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(/<br\/>/g, "\n"); 207 string = string.replace(/<br\/>/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.