function trecords() { this.index=(trecords.count++) //this.link='' this.pages='' this.keywords='' //this.description='' return this } trecords.prototype.set=function(pages,keywords) { //this.link=link this.pages=pages this.keywords=keywords //this.description=description } trecords.prototype.searchstring=function() { return this.keywords } trecords.prototype.count=0 function add(pages,keywords) { al=records.length records[al]=new trecords() records[al].set(pages,keywords) } records = new Array() finds=0 var ipalavra = 0; sites=0 andresult=false SortResults=true display_start=0 displast=10 function clone(obj) { if (null == obj || "object" != typeof obj) return obj; var copy = obj.constructor(); for (var attr in obj) { if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr]; } return copy; } function searchAll(keyword) { var strResultContent = ''; var nw=0 finds=0 sites=0 //if (keyword.length>50) keyword=keyword.substring(0,60)+"..." var palavras = keyword.split(' '); var results=new Array() var results2=new Array(); if($('input[name=tipo_busca]:checked').val() == 'exata') { var er = new RegExp(keyword, 'ig'); var records_copy = clone(records); records_copy.forEach(function(entry, i){ if($.inArray(entry.keywords, keyword ) != -1) { results[finds] = {keywords: entry.keywords, pages: entry.pages} finds++; delete records_copy[i]; } }); palavras.forEach(function(palavra){ var er = new RegExp(palavra, 'ig'); finds = 0; results2[ipalavra] = new Array(); var records_copy = clone(records); records_copy.forEach(function(entry, i){ if($.inArray(entry.keywords, palavra ) != -1) { results2[ipalavra][finds] = {keywords: entry.keywords, pages: entry.pages} finds++; delete records_copy[i]; } }); er = new RegExp("^"+palavra + ".*", 'ig'); records_copy.forEach(function(entry, i){ if(er.test(entry.keywords)) { results2[ipalavra][finds] = {keywords: entry.keywords, pages: entry.pages} finds++; delete records_copy[i]; } }); er = new RegExp(palavra, 'ig'); records_copy.forEach(function(entry, i){ if(er.test(entry.keywords)) { results2[ipalavra][finds] = {keywords: entry.keywords, pages: entry.pages} finds++; delete records_copy[i]; } }); ipalavra++; }); var partialLoop; finds = 0; results2.forEach(function(entry, i){ if(partialLoop == undefined) { partialLoop = clone(entry); } else { entry.forEach(function(entry2) { console.log(entry2); // (entry2.pages) partialLoop.forEach(function(partialentry) { var arr_inter = arrayIntersect(entry2.pages, partialentry.pages); //console.log(arr_inter); if(arr_inter.length > 0) { results[finds] = {keywords: partialentry.keywords + ' ' + entry2.keywords + ' ', pages: arr_inter} finds++; } }); }); //results[finds] = {keywords: entry.keywords, pages: entry.pages} } }); //console.log(results); } else if($('input[name=tipo_busca]:checked').val() == 'umadas') { var er = new RegExp(keyword, 'ig'); //parou aqui var records_copy = clone(records); records_copy.forEach(function(entry, i){ if($.inArray(entry.keywords, keyword ) != -1) { results[finds] = {keywords: entry.keywords, pages: entry.pages} finds++; delete records_copy[i]; } }); er = new RegExp("^"+keyword + ".*", 'ig'); records_copy.forEach(function(entry, i){ if(er.test(entry.keywords)) { results[finds] = {keywords: entry.keywords, pages: entry.pages} finds++; delete records_copy[i]; } }); er = new RegExp(keyword, 'ig'); records_copy.forEach(function(entry, i){ if(er.test(entry.keywords)) { results[finds] = {keywords: entry.keywords, pages: entry.pages} finds++; delete records_copy[i]; } }); er = new RegExp(palavras.join('|'), 'ig'); records_copy.forEach(function(entry, i){ if($.inArray(entry.keywords, palavras ) != -1 || er.test(entry.keywords)) { results[finds] = {keywords: entry.keywords, pages: entry.pages} finds++; delete records_copy[i]; } }); } // Now we build the output page //strResultContent += sprintf(lang_results, (display_start+1), (displast), sites, keyword); if (finds==0) { strResultContent += sprintf(lang_notfound, keyword, keyword); } else { var itera = 0; results.forEach(function(entry) { strResultContent += "