var mailHopsDisplay = { resultBox: null, resultText: null, resultDetails: null, container: null, mailhopsDataPaneSPF: null, mailhopsDataPaneDKIM: null, mailhopsDataPaneMailer: null, mailhopsDataPaneDNSBL: null, mailhopsResultWeather: null, mailhopsUnsubscribe: null, options: null, init: function(options){ this.options = options; this.container = document.getElementById("mailhopsBox"); this.resultBox = document.getElementById("mailhopsResult"); this.resultText = document.getElementById("mailhopsResultText"); this.mailhopsResultWeather = document.getElementById("mailhopsResultWeather"); this.resultDetails = document.getElementById("mailhopsDataPaneDetails"); //auth this.mailhopsDataPaneSPF = document.getElementById("mailhopsDataPaneSPF"); this.mailhopsDataPaneDKIM = document.getElementById("mailhopsDataPaneDKIM"); this.mailhopsDataPaneMailer = document.getElementById("mailhopsDataPaneMailer"); this.mailhopsDataPaneDNSBL = document.getElementById("mailhopsDataPaneDNSBL"); this.mailhopsUnsubscribe = document.getElementById("mailhopsUnsubscribe"); //event listner for route click to launch map this.mailhopsDataPaneDNSBL.addEventListener("click", function () { if(this.hasAttribute('data-ip')) mailHopsUtils.launchSpamHausURL( this.getAttribute('data-ip') ); }); this.resultText.addEventListener("click", function () { if(this.value.indexOf('Rate Limit')!==-1){ window.openDialog("chrome://mailhops/content/preferences.xul","","chrome, dialog, modal, centerscreen").focus(); } else if(this.hasAttribute('data-route')) mailHopsUtils.launchMap( String(this.getAttribute('data-route')), options ); }); }, lists: function( header_unsubscribe ){ this.mailhopsUnsubscribe.style.display='none'; if(header_unsubscribe){ this.mailhopsUnsubscribe.style.display=''; var listArr=header_unsubscribe.split(','); var href=''; if(listArr.length){ for(var h=0;h',''); if(href.indexOf('mailto:')!=-1){ if(href.toLowerCase().indexOf('subject=')==-1){ if(href.indexOf('?')==-1) href+='?subject=Unsubscribe'; else href+='&subject=Unsubscribe'; } } this.mailhopsUnsubscribe.setAttribute('href',href); } } } }, auth: function( header_xmailer, header_useragent, header_xmimeole, header_auth, header_spf ){ //SPF if(header_spf){ header_spf=header_spf.replace(/^\s+/,""); var headerSPFArr=header_spf.split(' '); this.mailhopsDataPaneSPF.setAttribute('value','SPF: '+headerSPFArr[0]); this.mailhopsDataPaneSPF.style.backgroundImage = 'url(chrome://mailhops/content/images/auth/'+headerSPFArr[0]+'.png)'; this.mailhopsDataPaneSPF.setAttribute('tooltiptext',header_spf+'\n'+mailHopsUtils.spf(headerSPFArr[0])); this.mailhopsDataPaneSPF.style.display='block'; } else { this.mailhopsDataPaneSPF.style.display='none'; } //Authentication-Results //http://tools.ietf.org/html/rfc5451 if(header_auth){ var headerAuthArr=header_auth.split(';'); var dkim_result; var spf_result; for(var h=0;h 0) distanceText = mailHopsUtils.addCommas(Math.round(response.distance.kilometers))+' km traveled'; else if(response.distance.miles > 0) distanceText = mailHopsUtils.addCommas(Math.round(response.distance.miles))+' mi traveled'; } else if(displayText=='') displayText = ' Local message.'; } if(message.time != null){ message.time = message.time/1000; if(message.time < 60) distanceText += ' in '+message.time+' sec.'; else if(message.time < 3600) //something is wrong if it takes this long distanceText += ' in '+Math.round(message.time/60)+' min.'; else //something is wrong if it takes this long distanceText += ' in '+Math.round(message.time/60/60)+' hr.'; } if(header_route) this.resultText.setAttribute("data-route", header_route); else this.resultText.removeAttribute("data-route"); this.resultText.setAttribute('value', displayText+' ( '+distanceText+' )'); this.resultText.style.backgroundImage = 'url('+image+')'; }//end route };