1var quotescollectionInstances = []; 2 3function quotescollectionRefresh(args) { 4 if(args.ajaxRefresh && !args.autoRefresh) 5 jQuery("#"+args.instanceID+" .nav-next").html(quotescollectionAjax.loading); 6 jQuery.ajax({ 7 type: "POST", 8 url: quotescollectionAjax.ajaxUrl, 9 data: "action=quotescollection&_ajax_nonce="+quotescollectionAjax.nonce+"¤t="+args.currQuoteID+"&char_limit="+args.charLimit+"&tags="+args.tags+"&orderby="+args.orderBy, 10 success: function(response) { 11 if(response == '-1' || !response) { 12 if(args.ajaxRefresh && args.autoRefresh) 13 quotescollectionTimer(args); 14 else if(args.ajaxRefresh && !args.autoRefresh) 15 jQuery("#"+args.instanceID+" .nav-next").html('<a class=\"next-quote-link\" style=\"cursor:pointer;\" onclick=\"quotescollectionRefreshInstance(\''+args.instanceID+'\')\">'+quotescollectionAjax.nextQuote+'</a>'); 16 } 17 else { 18 if(args.dynamicFetch) { 19 args.dynamicFetch = 0; 20 } 21 args.currQuoteID = response.quote_id; 22 quotescollectionInstances[args.instanceID] = args; 23 display = quotescollectionDisplayFormat(response, args); 24 jQuery("#"+args.instanceID).hide(); 25 jQuery("#"+args.instanceID).html(display, args); 26 jQuery("#"+args.instanceID).fadeIn('slow'); 27 if(args.ajaxRefresh && args.autoRefresh) 28 quotescollectionTimer(args); 29 } 30 }, 31 error: function(xhr, textStatus, errorThrown) { 32 console.log(textStatus+' '+xhr.status+': '+errorThrown); 33 if(args.ajaxRefresh && !args.autoRefresh) { 34 jQuery("#"+args.instanceID+" .nav-next").html('<a class=\"next-quote-link\" style=\"cursor:pointer;\" onclick=\"quotescollectionRefreshInstance(\''+args.instanceID+'\')\">'+quotescollectionAjax.nextQuote+';</a>'); 35 } 36 } 37 }); 38 39} 40 41function quotescollectionDisplayFormat(quoteData, args) { 42 var display = ""; 43 var attribution = ""; 44 45 display += '<p>' + quoteData.quote + '</p>'; 46 if( args.showAuthor && quoteData.author && quoteData.author != 'null' ) { 47 attribution = '<cite class=\"author\">' + quoteData.author + '</cite>'; 48 } 49 if( args.showSource && quoteData.source && quoteData.source != 'null' ) { 50 if(attribution) attribution += ', '; 51 attribution += '<cite class=\"source title\">' + quoteData.source + '</cite>'; 52 } 53 if(attribution) { 54 display += quotescollectionHtmlDecode(args.beforeAttribution) + attribution + quotescollectionHtmlDecode(args.afterAttribution); 55 } 56 display = quotescollectionHtmlDecode(args.before) + display + quotescollectionHtmlDecode(args.after); 57 if(args.ajaxRefresh && !args.autoRefresh) 58 display += '<div class=\"navigation\"><div class=\"nav-next\"><a class=\"next-quote-link\" style=\"cursor:pointer;\" onclick=\"quotescollectionRefreshInstance(\''+args.instanceID+'\')\">'+quotescollectionAjax.nextQuote+'</a></div></div>'; 59 return display; 60} 61 62function quotescollectionRefreshInstance(instanceID) { 63 quotescollectionRefresh(quotescollectionInstances[instanceID]); 64} 65 66function quotescollectionTimer(args) { 67 var timeInterval = args.autoRefresh * 1000; 68 var autoRefreshMax = Number(quotescollectionAjax.autoRefreshMax); 69 var autoRefreshCount = Number(quotescollectionAjax.autoRefreshCount); 70 if(!quotescollectionInstances[args.instanceID]) 71 quotescollectionInstances[args.instanceID] = args; 72 if( (autoRefreshMax == 0) || (autoRefreshCount < autoRefreshMax) ) { 73 setTimeout("quotescollectionRefreshInstance('"+args.instanceID+"')", timeInterval); 74 quotescollectionAjax.autoRefreshCount = ++autoRefreshCount; 75 } 76} 77 78/* Thanks https://stackoverflow.com/a/34064434 */ 79function quotescollectionHtmlDecode(input) { 80 var doc = new DOMParser().parseFromString(input, "text/html"); 81 return doc.documentElement.textContent; 82}
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.