1$(document).ready(function(){ 2 var maxQuestionsPerPage = 10, 3 maxPages = 5, 4 dataObj = {}, 5 productName = $("h1.product-name").data("productname"), 6 productBrand = "", 7 filterdeProductName; 8 9 if (!productName) { 10 productName = $("h1.headline").data("productname"); 11 } 12 13 var errFaqNoSearch = function() { 14 var errMsg = $('.errnofaq').val(); 15 $('.faq-data, .kba-results').html('<span class="error">' + errMsg + '</span>'); 16 } 17 18 var hitFaqService = function(searchString){ 19 var dataJson = { 20 productName : productName, 21 searchStr : searchString, 22 productBrand : productBrand 23 }; 24 var params = {type: "POST", dataType: "json", data: JSON.stringify(dataJson)}; 25 var findFaqUrl = app.util.appendParamsToUrl(app.urls.estFaqData, params); 26 $(".searchString").text(searchString.replace(" ~~~","")); 27 $('.faq-data, .kba-results').html("<div>Loading... <progress></progress></div>"); 28 $.ajax({ 29 url: findFaqUrl, 30 success : function (data) { 31 dataObj = data; 32 if(data.searchRecords.length == 0){ 33 $(".pdp-support-columns").addClass("-noresults"); 34 $(document).trigger('js-faq-loaded'); 35 errFaqNoSearch(); 36 return; 37 } 38 $(".pdp-support-columns").removeClass("-noresults"); 39 $(document).trigger('js-faq-loaded'); 40 displayDataPageWise(); 41 }, 42 error: function(jq,status,message){ 43 $(".pdp-support-columns").addClass("-noresults"); 44 $(document).trigger('js-faq-loaded'); 45 errFaqNoSearch(); 46 } 47 }) 48 }; 49 $(document).on("click",".find-faq-data",function(e){ 50 51 e.preventDefault(); 52 var searchStrings = $(this).prev(".faqCode-field").val(); 53 productName = productName.replace("+", " plus"); 54 filterdeProductName = productName.replace(/[^a-zA-Z0-9 ]/g, "") + " ~~~ " + searchStrings; 55 var _str = removeBrandName(filterdeProductName); 56 hitFaqService(_str); 57 }); 58 var displayDataPageWise = function(){ 59 var isLegacyEnabled = !!$('.faq-data').length; 60 $('.faq-data, .kba-results').html(""); 61 var toAppendString = ""; 62 var pageDots = ""; 63 var count = 0; 64 var dots = ""; 65 if(dataObj.maxQuestionsPerPage != null && dataObj.maxPages){ 66 maxQuestionsPerPage = dataObj.maxQuestionsPerPage ; 67 maxPages = dataObj.maxPages; 68 } 69 70 if(isLegacyEnabled) { 71 for(var i=0; i<dataObj.searchRecords.length; i++){ 72 73 if(i <= maxQuestionsPerPage-1){ 74 var template = _.template('<li class="tabcontent" data-pageno="'+Math.ceil((i+1)/maxQuestionsPerPage)+'" data-id="<%=Id %>" data-articleNumber="<%=ArticleNumber %>">'+ 75 '<h4 class="faqQuestion"><%=Question__c %></h4>'+ 76 '<div class="content" style="display:none">'+ 77 '<p><%=Answer__c %></p>'+ 78 '<div class="feedback">'+ 79 '<span class="caption">'+ app.resources.FAQ_HELPFUL+'</span>'+ 80 '<div class="toggle">'+ 81 '<span class="yes icon-thumb-up"></span>'+ 82 '<span class="no icon-thumb-down"></span>'+ 83 '</div>'+ 84 '</div>'+ 85 '</div>'+ 86 '</li>'); 87 toAppendString += template(dataObj.searchRecords[i]); 88 } 89 90 if(count < maxPages && count != Math.ceil((i+1)/maxQuestionsPerPage)){ 91 if(count == 0){ 92 dots += "<span class='pageNavDots selectedfaqpage' data-pageno='"+(count+1)+"'></span>"; 93 }else{ 94 dots += "<span class='pageNavDots' data-pageno='"+(count+1)+"'></span>"; 95 } 96 97 } 98 if(count >= maxPages){ 99 break; 100 } 101 count = Math.ceil((i+1)/maxQuestionsPerPage); 102 } 103 104 var str = '<ul>'+toAppendString+'</ul>'; 105 var el = $.parseHTML( str ) 106 $('.faq-data').append(el); 107 var dotsel = $.parseHTML('<div class="pageDots" style="text-align: center;">'+ dots +'</div>'); 108 $('.faq-data').append(dotsel); 109 var pageCountel = $.parseHTML('<div class="pageCount" style="text-align: center;">'+ app.resources.FAQ_PAGE +' <span class="selectedPage">1</span><span class="totalNoOfPages">/'+count+'</span>'); 110 $('.faq-data').append(pageCountel); 111 } else { 112 for(var i=0; i<dataObj.searchRecords.length; i++){ 113 var currRecord = dataObj.searchRecords[i]; 114 let answer = currRecord.Answer__c || ''; 115 let question = currRecord.Question__c || ''; 116 var template = '<div class="card kba -v2 type-' + currRecord.ArticleType + '"' + 117 'data-page="' + Math.ceil((i+1)/maxQuestionsPerPage) + '"' + 118 'data-articleNumber="' + currRecord.ArticleNumber + '"' + 119 'title="' + question + '"' + 120 'lang="en"' + 121 'href="' + currRecord.attributes.url + '"' + 122 'data-type="' + currRecord.ArticleType + '"' + 123 'data-kbaid="' + currRecord.Id + '"' + 124 'data-pinned=""' + 125 'data-length="' + answer.length + question.length + '">' + 126 '<div class ="kba-q">' + 127 '<span class="headline">' + question + '</span>' + 128 '</div>' + 129 '<div class="kba-a">' + 130 '<p>' + answer + '</p>' + 131 '</div>' + 132 '<button class="btn primary -readmore">Read more</button>' + 133 '<div class="feedback">' + 134 '<div class="title">' + 135 '<span class="active">' + 'Was this helpful' + '</span>' + 136 '<span class="feedback-thanks">' + 'Thank you for your feedback!' + '</span>' + 137 '</div>' + 138 '<div class="toggle active" data-id="">' + 139 '<span data-feedback="positive" class="icon-emoji-happy"></span>' + 140 '<span data-feedback="negative" class="icon-emoji-sad"></span>' + 141 '</div></div></div>'; 142 toAppendString += template; 143 } 144 var el = $.parseHTML(toAppendString); 145 $('.kba-results').append(el); 146 $('.kba-results').trigger('js-pagination'); 147 } 148 }; 149 var headerClick = function(){ 150 if($('.faq-data, .kba-results')[0] != undefined){ 151 if($('.faq-data, .kba-results')[0].children.length > 0)return; 152 else{ 153 var searchStrings = productName; 154 searchStrings = searchStrings.replace("+", " plus"); 155 filterdeProductName = searchStrings.replace(/[^a-zA-Z0-9 ]/g, "") 156 var _str = removeBrandName(filterdeProductName); 157 hitFaqService(_str); 158 } 159 } 160 161 }; 162 163 164 165 removerDuplicateValues = function(arr1){ 166 var arr2 = []; 167
168 arr1.forEach(function(value){ 169 if(arr2.indexOf(value.toLowerCase()) == -1){ 170 arr2.push(value.toLowerCase()); 171 } 172 }) 173 return arr2; 174 } 175 176 var removeBrandName = function(str){ 177 178 str = str.trim(); 179 var arr = str.split(" "); 180 searchStrings = ""; 181 var removerdduplicatesArr = removerDuplicateValues(arr); 182 var filterDuplicatesArr = []; 183 184 $.each(removerdduplicatesArr, function(i, el){ 185 if($.inArray(el, filterDuplicatesArr) === -1){ 186 el = " "+el+" "; 187 filterDuplicatesArr.push(el.replace(/ jbl | HK | Infinity | akg /gi,"")); 188 } 189 }); 190 for(var i=0;i<filterDuplicatesArr.length;i++){ 191 searchStrings += " "+filterDuplicatesArr[i]; 192 } 193 return searchStrings.trim(); 194 } 195 $(document).on("click","#faq-heading-mobile:not(.pdp-support)",function(evt){ 196 197 evt.preventDefault(); 198 headerClick(); 199 }); 200 201 $(document).on("click","#faq-heading:not(.pdp-support)",function(evt){ 202 203 evt.preventDefault(); 204 headerClick(); 205 }); 206 207 $(window).on('scroll', function (evt) { 208 var faq = $(".pdp-support, .faqs"); 209 210 if (faq && faq.length && faq.hasClass('in-view')) { 211 evt.preventDefault(); 212 headerClick(); 213 } 214 }); 215 216 $(document).on("click",".faq-data",function(e){ 217 218 if($(e.target).hasClass("activeQuestion")){ 219 $(e.target).next(".content").slideUp(200); 220 $(e.target).removeClass('activeQuestion'); 221 return; 222 } 223 if(e.target.className == "faqQuestion"){ 224 $(e.target).addClass('activeQuestion'); 225 $(e.target).next(".content").slideDown(200); 226 } 227 }); 228 //check-faq-track 229 $(document).on("click",".faq-data-track",function(e){ 230 231 if($(e.target).hasClass("activeQuestion")){ 232 $(e.target).next(".content").slideUp(200); 233 $(e.target).removeClass('activeQuestion'); 234 return; 235 } 236 237 if( $(e.target.parentElement) && $(e.target.parentElement.children[1]) ) { 238 if($(e.target.parentElement.children[1]).hasClass("activeQuestion")){ 239 $(e.target.parentElement.children[1]).next(".content").slideUp(200); 240 $(e.target.parentElement.children[1]).removeClass('activeQuestion'); 241 return; 242 } 243 244 } 245 246 if( $(e.target) && $(e.target.children[1]) ) { 247 if($(e.target.children[1]).hasClass("activeQuestion")){ 248 $(e.target.children[1]).next(".content").slideUp(200); 249 $(e.target.children[1]).removeClass('activeQuestion'); 250 return; 251 } 252 253 } 254 255 256 257 if(e.target.className == "faqQuestion" ){ 258 $(e.target).addClass('activeQuestion'); 259 $(e.target).next(".content").slideDown(200); 260 } 261 262 263 if( $(e.target.parentElement) && $(e.target.parentElement.children[1]) ) { 264 if(e.target.parentElement.children[1].className =="faqQuestion" ) { 265 $(e.target.parentElement.children[1]).addClass('activeQuestion'); 266 $(e.target.parentElement.children[1]).next(".content").slideDown(200); 267 268 } 269 } 270 if( $(e.target) && $(e.target.children[1]) ) { 271 if(e.target.children[1].className == "faqQuestion" ){ 272 $(e.target.children[1]).addClass('activeQuestion'); 273 $(e.target.children[1]).next(".content").slideDown(200); 274 } 275 } 276 }); 277 278 279 $(document).on("click",".pageNavDots", function(e){ 280 $(".faq-data").find("ul").html(""); 281 var toAppendString = ""; 282 var navToPage = parseInt($(e.target).data("pageno")); 283 $(".selectedfaqpage").removeClass("selectedfaqpage"); 284 $(e.target).addClass("selectedfaqpage"); 285 for(var i= navToPage * maxQuestionsPerPage - maxQuestionsPerPage; i < navToPage * maxQuestionsPerPage && i < dataObj.searchRecords.length; i++){ 286 var template = _.template('<li class="tabcontent" data-pageno="'+Math.ceil((i+1)/maxQuestionsPerPage)+'" data-id="<%=Id %>" data-articleNumber="<%=ArticleNumber %>">'+ 287 '<h4 class="faqQuestion"><%=Question__c %></h4>'+ 288 '<div class="content" style="display:none">'+ 289 '<p><%=Answer__c %></p>'+ 290 '<div class="feedback">'+ 291 '<span class="caption">'+ app.resources.FAQ_HELPFUL +'</span>'+ 292 '<div class="toggle">'+ 293 '<span class="yes icon-thumb-up"></span>'+ 294 '<span class="no icon-thumb-down"></span>'+ 295 '</div>'+ 296 '</div>'+ 297 '</div>'+ 298 '</li>'); 299 toAppendString += template(dataObj.searchRecords[i]); 300 301 } 302 var str = toAppendString; 303 var el = $.parseHTML( str ) 304 $(".faq-data").find("ul").append(el); 305 $(".faq-data").find("ul").hide().fadeIn(500); 306 $(".selectedPage").text(navToPage); 307 308 var stickyHeaderHeight, 309 xPos, 310 windowWidth = $(window).width(); 311 if(windowWidth < 1100){ 312 stickyHeaderHeight = $("#productDetailsFixedHeader").height(); 313 xPos = $("#faq-collapse").find(".searchedforInfo").offset().top - stickyHeaderHeight; 314 }else{ 315 stickyHeaderHeight = $("#productDetailsFixedHeader").height()+$("#productNavBar").height(); 316 xPos = $("#spec-faq").find(".searchedforInfo").offset().top - stickyHeaderHeight; 317 } 318 app.util.scrollBrowser(xPos); 319 320 }); 321 var sendFeedback = function(vote,artNo){ 322 var dataJson = { 323 Vote : vote, 324 artId : artNo 325 }; 326 var params = {type: "POST", dataType: "json", data: JSON.stringify(dataJson)}; 327 var findFaqUrl = app.util.appendParamsToUrl(app.urls.createCustomFaqData, params); 328 $.ajax({ 329 url: findFaqUrl 330 }) 331 }; 332 $(document).on("click",".toggle",function(e){ 333 var $target = $(e.target), 334 articleno = $target.closest(".tabcontent").data("articlenumber"), 335 vote = false;
336 $target.closest(".feedback").html("<span class='userFeedback'>"+ app.resources.FAQ_THANKS +"</span>"); 337 if($target.hasClass("yes")){ 338 vote = true; 339 } 340 sendFeedback(vote, articleno); 341 }); 342});
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.