-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscriptureTooltip.min.js
More file actions
12 lines (11 loc) · 3.72 KB
/
Copy pathscriptureTooltip.min.js
File metadata and controls
12 lines (11 loc) · 3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
// scriptureTooltip.js
var scriptureTooltip={pathToPlugin:'/wp-content/plugins/sacred-wordpress',debug:false,defaultScriptureSite:'BibleGateway',copyrightData:{ESV:'http://www.crossway.org/rights-permissions/esv/',NASB:'http://www.lockman.org/tlf/copyright.php'},showCopyrightDataInTooltip:false,init:function(){"use strict";var neededScriptures=this.getScriptureList();this.preloadScriptures(neededScriptures);jQuery(".scriptureRef").tooltipster({content:"Loading...",contentAsHTML:true,maxWidth:300,theme:'tooltipster-shadow',interactive:true,multiple:false});if(this.debug){console.log("scriptureTooltip: All ready!");}},getScriptureList:function(){"use strict";if(this.debug){console.log("Getting scripture list.\n");}
var scriptureList=[];jQuery(".scriptureRef[ref]").each(function(){scriptureList.push(jQuery(this).attr("ref"));});return scriptureList;},preloadScriptures:function(scriptureList){"use strict";var queryString=scriptureList.join(";");jQuery.ajax({url:scriptureTooltip.pathToPlugin+"/scripture.php"+"?ref="+queryString,type:"GET",dataType:"JSON",success:function(json){scriptureTooltip.setTooltips(json);},error:function(jq,textStatus,errorThrown){if(scriptureTooltip.debug){console.log("scriptureTooltip: Ajax request failed!");console.log(textStatus);console.log(errorThrown);}},complete:function(json){if(scriptureTooltip.debug){console.log("scriptureTooltip: Ajax request completed!");}}});},setTooltips:function(json){"use strict";jQuery(".scriptureRef[ref]").each(function(){var ref,text,$html,url,version,$copyrightInfo;if(scriptureTooltip.debug){console.log(this);}
ref=jQuery(this).attr("ref");url=scriptureTooltip.getDefaultLink(ref);if(scriptureTooltip.debug){console.log("Getting ref: "+ref);}
if(json.passages.hasOwnProperty(ref)){text=json.passages[ref].text;text=text.replace(/\b(\d+)-(\d+)\b/,"$1\u2013$2");$html=jQuery(text);$html.find(".scriptureVerseHead").wrap('<a href="'+url+'"></a>');version=json.passages[ref].version;$copyrightInfo=scriptureTooltip.getCopyrightData(version,json.copyright[version]);if(scriptureTooltip.showCopyrightDataInTooltip){$html.find(".scriptureText:last").after($copyrightInfo);}
jQuery(this).tooltipster("content",$html);}else{jQuery(this).removeClass('scriptureRef');}});},getCopyrightData:function(version,versionText){"use strict";var copyright,copyrightURL;if(this.copyrightData.hasOwnProperty(version)){copyrightURL=this.copyrightData[version];}else if(!versionText){return'';}
if(copyrightURL){copyright='<a href="'+copyrightURL+'"';}else{copyright='<abbr';}
copyright+=' title="'+versionText+'">Copyright Information'+
(copyrightURL?'</a>':'</abbr>');copyright='<p class="scriptureCopyright">'+copyright+'</p>';return copyright;},setLinks:function(){"use strict";jQuery(".scriptureRef").wrap(function(){var ref,url;ref=jQuery(this).attr("ref");url=this.getDefaultLink(ref);return'<a class="scriptureLink" href="'+url+'"></a>';});},getDefaultLink:function(ref){"use strict";return this.getLink[this.defaultScriptureSite](ref);},getLink:{BibleGateway:function(ref){"use strict";var baseUrl,url,version;baseUrl='https://www.biblegateway.com/passage/?search=';version='RSVCE';url=baseUrl+ref.replace(' ','+','g')+'&version='+version;return url;},NewAdvent:function(ref){"use strict";var baseUrl,book,chapter,chapterstr,id,url,matches;baseUrl='http://www.newadvent.org/bible/';matches=ref.match(/((?:\d )?(?:[A-Za-z ]+)) (\d+):?/);book=matches[1];chapter=matches[2];book=book.replace(/ /,'','g');if(chapter<10){chapterstr='00'+chapter;}else if(chapter<100){chapterstr='0'+chapter;}else{chapterstr=chapter;}
if(book==='Judith'){id='jdt';}else if(book==='Philemon'){id='phm';}else{id=book.substr(0,3).toLowerCase();}
url=baseUrl+id+chapterstr+'.htm';return url;}}};jQuery(document).ready(function(){"use strict";scriptureTooltip.init();});