From 5ff5fc999ca308ee1f2da84ce9769028f1746e01 Mon Sep 17 00:00:00 2001 From: "jason.wall" Date: Fri, 22 Apr 2016 16:55:08 -0400 Subject: [PATCH] FEATURE: adding files --- .../DynamicBibleApp/js/Bible.js | 134 +++++ .../DynamicBibleApp/js/Bible.js.map | 1 + .../DynamicBibleApp/js/Util.js | 42 ++ .../DynamicBibleApp/js/Util.js.map | 1 + .../DynamicBibleApp/js/Words.js | 462 ++++++++++++++++++ .../DynamicBibleApp/js/Words.js.map | 1 + 6 files changed, 641 insertions(+) create mode 100644 DynamicBibleUtility/DynamicBibleApp/js/Bible.js create mode 100644 DynamicBibleUtility/DynamicBibleApp/js/Bible.js.map create mode 100644 DynamicBibleUtility/DynamicBibleApp/js/Util.js create mode 100644 DynamicBibleUtility/DynamicBibleApp/js/Util.js.map create mode 100644 DynamicBibleUtility/DynamicBibleApp/js/Words.js create mode 100644 DynamicBibleUtility/DynamicBibleApp/js/Words.js.map diff --git a/DynamicBibleUtility/DynamicBibleApp/js/Bible.js b/DynamicBibleUtility/DynamicBibleApp/js/Bible.js new file mode 100644 index 00000000..d74c85f3 --- /dev/null +++ b/DynamicBibleUtility/DynamicBibleApp/js/Bible.js @@ -0,0 +1,134 @@ +var Bible = (function () { + function Bible() { + } + Bible.DisplayPassage = function (cs, ref, testament) { + try { + var r = ""; + for (var j = 0; j < cs.length; j++) { + if (Number(ref.startchapter) < Number(ref.endchapter)) { + r += "Chapter: " + cs[j].ch + "
"; + } + var vss = cs[j].vss; + for (var m = 0; m < vss.length; m++) { + var v = vss[m]; + r += "" + v.v + ". "; + for (var w = 0; w < v.w.length; w++) { + if (v.w[w].s != undefined) { + var strongs_pre = ""; + if (testament == "old") { + strongs_pre = "H"; + } + if (testament == "new") { + strongs_pre = "G"; + } + var sp = ""; + if (v.w[w].t.substr(v.w[w].t.length - 1) == " ") { + sp = " "; + } + r += "" + v.w[w].t.trim() + "" + sp; + } + else { + r += v.w[w].t; + } + } + if ($("#break-on-verses").is(":checked")) { + r += "
"; + } + } + } + var t = $("
 
" + "

" + ref.toString() + "

" + r + "

"); + Bible.AttachEvents(t, ref); + $("#result").prepend(t); + } + catch (err) { + Util.HandleError(err); + } + }; + Bible.GetPassage = function (b, sch, ech, sv, ev) { + try { + var chapters = []; // the verses from the chapter. + var r = { + cs: [], + testament: "" + }; + for (var i = sch; i <= ech; i++) { + var url = "bibles/kjv_strongs/" + b + "-" + i + ".json"; + $.ajax({ + async: false, + type: "GET", + url: url, + dataType: "json", + success: function (d, t, x) { + chapters.push(d); + }, + error: function (request, status, error) { + Util.HandleError(error); + } + }); + } + for (var j = 0; j < chapters.length; j++) { + var vss = []; + var start; + var end; + // figure out the start verse. + if (j == 0) { + start = sv; + } + else { + start = 1; + } + // figure out the end verse + if ((j + 1) == chapters.length) { + end = ev; + } + else { + end = "*"; + } + // get the verses requested. + var tvs = chapters[j].vss.length; + if (end == "*" || end > tvs) { + end = tvs; + } + for (i = start; i <= end; i++) { + // we're using c based indexes here, so the index is 1 less than the verse #. + vss.push(chapters[j].vss[i - 1]); + } + r.cs.push({ + "ch": chapters[j].ch, + "vss": vss + }); + } + if (b >= 40) { + r.testament = "new"; + } + else { + r.testament = "old"; + } + return r; + } + catch (err) { + Util.HandleError(err); + } + return null; + }; + Bible.AttachEvents = function (t, ref) { + t.find(".hiddenlink").click(function (e) { + Util.HandleHiddenLink(e); + }); + t.find(".removeresult").click(function (e) { + Util.RemoveResult(e); + }); + t.find(".resultbody h2").tooltip({ + items: ".resultbody h2", + content: function (tt) { + } + }); + t.find('.trigger').slidePanel({ + triggerCss: 'margin-top: 60px; display: block; width: 48px; height: 48px;', + panelCss: 'margin-top: 55px; border: 2px solid #666;' + }); + }; + return Bible; +}()); +; +//# sourceMappingURL=Bible.js.map \ No newline at end of file diff --git a/DynamicBibleUtility/DynamicBibleApp/js/Bible.js.map b/DynamicBibleUtility/DynamicBibleApp/js/Bible.js.map new file mode 100644 index 00000000..508a4973 --- /dev/null +++ b/DynamicBibleUtility/DynamicBibleApp/js/Bible.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Bible.js","sourceRoot":"","sources":["../ts/Bible.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/DynamicBibleUtility/DynamicBibleApp/js/Util.js b/DynamicBibleUtility/DynamicBibleApp/js/Util.js new file mode 100644 index 00000000..12f74a4d --- /dev/null +++ b/DynamicBibleUtility/DynamicBibleApp/js/Util.js @@ -0,0 +1,42 @@ +var Util = (function () { + function Util() { + } + Util.HandleLink = function (e) { + Search($(e.target).text()); + Settings.SaveResults(); + }; + Util.HandleHiddenLink = function (e) { + Search($(e.target).find(".searchvalue").text()); + Settings.SaveResults(); + }; + Util.RemoveResult = function (e) { + var ref = $(e.target).parent().parent().children(".resultbody").children("h2").children("a").text(); + delete CurrentReferences[ref.trim().toLowerCase()]; + $(e.target).parent().parent().remove(); + Settings.SaveResults(); + }; + Util.HandleError = function (e) { + var self = this; + // for now we're going to put the error in the main result div. + var t = $("
" + e + "
"); + $("#result").prepend(t); + t.find(".removeresult").click(function (e) { + self.RemoveResult(e); + }); + return false; + }; + Util.GetUrlVars = function () { + // Read a page's GET URL variables and return them as an associative array. + var vars = [], hash; + var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); + for (var i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars.push(hash[0]); + vars[hash[0]] = hash[1]; + } + return vars; + }; + return Util; +}()); +; +//# sourceMappingURL=Util.js.map \ No newline at end of file diff --git a/DynamicBibleUtility/DynamicBibleApp/js/Util.js.map b/DynamicBibleUtility/DynamicBibleApp/js/Util.js.map new file mode 100644 index 00000000..5ef75ef1 --- /dev/null +++ b/DynamicBibleUtility/DynamicBibleApp/js/Util.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Util.js","sourceRoot":"","sources":["../ts/Util.ts"],"names":[],"mappings":"AAAA;IAAA;IAwCA,CAAC;IAvCiB,eAAU,GAAxB,UAAyB,CAAQ;QAC7B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3B,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAEa,qBAAgB,GAA9B,UAA+B,CAAQ;QACnC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAEa,iBAAY,GAA1B,UAA2B,CAAQ;QAC/B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACpG,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QACvC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAEa,gBAAW,GAAzB,UAA0B,CAAC;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,+DAA+D;QAC/D,IAAI,CAAC,GAAG,CAAC,CAAC,8MAA8M,GAAG,CAAC,GAAG,iCAAiC,CAAC,CAAC;QAClQ,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC;IAEa,eAAU,GAAxB;QACI,2EAA2E;QAC3E,IAAI,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC;QACpB,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1F,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IACL,WAAC;AAAD,CAAC,AAxCD,IAwCC;AAAA,CAAC"} \ No newline at end of file diff --git a/DynamicBibleUtility/DynamicBibleApp/js/Words.js b/DynamicBibleUtility/DynamicBibleApp/js/Words.js new file mode 100644 index 00000000..9dd9cbd0 --- /dev/null +++ b/DynamicBibleUtility/DynamicBibleApp/js/Words.js @@ -0,0 +1,462 @@ +var IndexResult = (function () { + function IndexResult() { + } + return IndexResult; +}()); +var Words = (function () { + function Words() { + } + Words.ConvertResultsToArray = function (r) { + try { + var results = new Array(); + $(r).each(function () { + results.push([$(this).attr("b"), $(this).attr("ch"), $(this).attr("v")]); + }); + return results; + } + catch (err) { + Util.HandleError(err); + } + return null; + }; + Words.DisplayResults = function (results, q) { + try { + var txt = "

Query: " + q + "

"; + var t = $(txt); + Words.AttachEvents(t); + $("#searchresults").html(t.html()); + $("#searchTotal").html(results.length); + return false; + } + catch (err) { + Util.HandleError(err); + } + return null; + }; + Words.FindReferences = function (qry) { + try { + qry = qry.toLowerCase(); + var qs = qry.split(" "); + var words = this.BuildIndexArray().sort(); + var results = new Array(); + // Loop through each query term. + for (var i = 0; i < qs.length; i++) { + var q = qs[i].replace("'", ""); // we don't included ticks in our words. + // For each query term, figure out which xml file it is in, and get it. + // getSearchRefs returns an array of references. + for (var w = 0; w < words.length; w++) { + // If we are at the end of the array, we want to use a different test. + if (w == 0) { + if (q <= words[w]) { + results.unshift(this.GetSearchReferences("index/" + words[w] + "idx.json", q)); + break; + } + } + else { + if (q <= words[w] && q > words[w - 1]) { + results.unshift(this.GetSearchReferences("index/" + words[w] + "idx.json", q)); + break; + } + } + } + } // End of loop through query terms + // Now we need to test results. If there is more than one item in the array, we need to find the set + // that is shared by all of them. IF not, we can just return those refs. + if (results.length == 1) { + this.DisplayResults(results[0], qry); + } + else { + var shared = this.FindSharedSet(results); + if (shared == null) { + shared = []; + } + this.DisplayResults(shared, qry); + } + return false; + } + catch (err) { + Util.HandleError(err); + } + return null; + }; + Words.GetSearchReferences = function (url, query) { + try { + // getSearchRefs takes a url and uses ajax to retrieve the references and returns an array of references. + var r_1; + $.ajax({ + async: false, + type: "GET", + url: url, + dataType: "json", + success: function (d, t, x) { + r_1 = d; + }, + error: function (request, status, error) { + Util.HandleError(error); + } + }); + // find the right word + var refs = $.grep(r_1, function (o, i) { + return o.word == query; + }); + if (refs.length > 0) { + return refs[0].refs; + } + else { + return []; + } + } + catch (err) { + Util.HandleError(err); + } + return []; + }; + Words.BuildIndexArray = function () { + var words = new Array(); + words.unshift('abiram'); + words.unshift('accepteth'); + words.unshift('acquit'); + words.unshift('adna'); + words.unshift('affecteth'); + words.unshift('aharhel'); + words.unshift('aijeleth'); + words.unshift('almug'); + words.unshift('amiable'); + words.unshift('ancients'); + words.unshift('anything'); + words.unshift('appointeth'); + words.unshift('areopagus'); + words.unshift('art'); + words.unshift('ashteroth'); + words.unshift('astaroth'); + words.unshift('availeth'); + words.unshift('azotus'); + words.unshift('badness'); + words.unshift('baptizing'); + words.unshift('bat'); + words.unshift('bechorath'); + words.unshift('beguile'); + words.unshift('bemoaning'); + words.unshift('beside'); + words.unshift('bezek'); + words.unshift('bitterly'); + words.unshift('bloodthirsty'); + words.unshift('bolted'); + words.unshift('bountifulness'); + words.unshift('breastplates'); + words.unshift('broth'); + words.unshift('bunni'); + words.unshift('cain'); + words.unshift('cankered'); + words.unshift('carry'); + words.unshift('celebrate'); + words.unshift('chapel'); + words.unshift('cheese'); + words.unshift('chilmad'); + words.unshift('circumcision'); + words.unshift('closer'); + words.unshift('come'); + words.unshift('communication'); + words.unshift('concerning'); + words.unshift('confusion'); + words.unshift('consummation'); + words.unshift('convince'); + words.unshift('couch'); + words.unshift('covers'); + words.unshift('crisping'); + words.unshift('curse'); + words.unshift('damnable'); + words.unshift('deacons'); + words.unshift('decision'); + words.unshift('defileth'); + words.unshift('depart'); + words.unshift('despisest'); + words.unshift('diblathaim'); + words.unshift('directly'); + words.unshift('dishonesty'); + words.unshift('distracted'); + words.unshift('dominion'); + words.unshift('dreamer'); + words.unshift('dulcimer'); + words.unshift('eastward'); + words.unshift('eighteenth'); + words.unshift('elihoreph'); + words.unshift('embrace'); + words.unshift('endeavored'); + words.unshift('ensign'); + words.unshift('ephraim'); + words.unshift('eshtemoa'); + words.unshift('evening'); + words.unshift('excellest'); + words.unshift('extended'); + words.unshift('fairer'); + words.unshift('fastings'); + words.unshift('feign'); + words.unshift('fight'); + words.unshift('fishermen'); + words.unshift('flint'); + words.unshift('foolishness'); + words.unshift('forever'); + words.unshift('forts'); + words.unshift('fresh'); + words.unshift('furnish'); + words.unshift('gallio'); + words.unshift('gebal'); + words.unshift('gezrites'); + words.unshift('girt'); + words.unshift('goath'); + words.unshift('government'); + words.unshift('greeteth'); + words.unshift('guiltless'); + words.unshift('haggai'); + words.unshift('hamstrung'); + words.unshift('happy'); + words.unshift('harum'); + words.unshift('hattush'); + words.unshift('heard'); + words.unshift('heir'); + words.unshift('herbs'); + words.unshift('hezronites'); + words.unshift('hivite'); + words.unshift('honored'); + words.unshift('hostages'); + words.unshift('huntest'); + words.unshift('idalah'); + words.unshift('impenitent'); + words.unshift('inferior'); + words.unshift('insomuch'); + words.unshift('ira'); + words.unshift('isuah'); + words.unshift('jabneh'); + words.unshift('japhia'); + words.unshift('jeduthun'); + words.unshift('jerahmeelites'); + words.unshift('jew'); + words.unshift('joined'); + words.unshift('joy'); + words.unshift('kadmonites'); + words.unshift('kid'); + words.unshift('kneaded'); + words.unshift('lack'); + words.unshift('languish'); + words.unshift('lazarus'); + words.unshift('legions'); + words.unshift('libnath'); + words.unshift('likhi'); + words.unshift('lock'); + words.unshift('louder'); + words.unshift('lysias'); + words.unshift('magpiash'); + words.unshift('malchus'); + words.unshift('marble'); + words.unshift('mastery'); + words.unshift('meddle'); + words.unshift('members'); + words.unshift('mesech'); + words.unshift('midian'); + words.unshift('ministered'); + words.unshift('mithnite'); + words.unshift('morasthite'); + words.unshift('mower'); + words.unshift('myrtle'); + words.unshift('naphish'); + words.unshift('necks'); + words.unshift('net'); + words.unshift('noadiah'); + words.unshift('nursed'); + words.unshift('occurrent'); + words.unshift('omnipotent'); + words.unshift('orchard'); + words.unshift('outside'); + words.unshift('owed'); + words.unshift('palti'); + words.unshift('partition'); + words.unshift('paulus'); + words.unshift('peoples'); + words.unshift('persecute'); + words.unshift('phares'); + words.unshift('pilate'); + words.unshift('plagues'); + words.unshift('plentiful'); + words.unshift('poorer'); + words.unshift('powerful'); + words.unshift('presented'); + words.unshift('prison'); + words.unshift('promoted'); + words.unshift('provision'); + words.unshift('purely'); + words.unshift('quarter'); + words.unshift('rahab'); + words.unshift('ravening'); + words.unshift('rebuking'); + words.unshift('refined'); + words.unshift('release'); + words.unshift('rent'); + words.unshift('requirest'); + words.unshift('return'); + words.unshift('rezon'); + words.unshift('riseth'); + words.unshift('roof'); + words.unshift('rump'); + words.unshift('sail'); + words.unshift('sanctuaries'); + words.unshift('savors'); + words.unshift('scorpions'); + words.unshift('second'); + words.unshift('sellers'); + words.unshift('served'); + words.unshift('shaft'); + words.unshift('sharaim'); + words.unshift('shedder'); + words.unshift('shepho'); + words.unshift('shimshai'); + words.unshift('shophan'); + words.unshift('shuppim'); + words.unshift('sihor'); + words.unshift('sippai'); + words.unshift('slandereth'); + words.unshift('smelling'); + words.unshift('softer'); + words.unshift('sores'); + words.unshift('sparrows'); + words.unshift('spoil'); + words.unshift('staff'); + words.unshift('steel'); + words.unshift('stool'); + words.unshift('stretched'); + words.unshift('stumblingblocks'); + words.unshift('suffice'); + words.unshift('surnamed'); + words.unshift('swore'); + words.unshift('take'); + words.unshift('task'); + words.unshift('temani'); + words.unshift('testator'); + words.unshift('thessalonica'); + words.unshift('threatening'); + words.unshift('tie'); + words.unshift('titus'); + words.unshift('torments'); + words.unshift('translation'); + words.unshift('tributaries'); + words.unshift('tubal'); + words.unshift('unchangeable'); + words.unshift('unlawful'); + words.unshift('upbraideth'); + words.unshift('uzza'); + words.unshift('verily'); + words.unshift('visage'); + words.unshift('walk'); + words.unshift('washing'); + words.unshift('wayside'); + words.unshift('wellspring'); + words.unshift('whisperer'); + words.unshift('win'); + words.unshift('withereth'); + words.unshift('work'); + words.unshift('wrest'); + words.unshift('yours'); + words.unshift('zealously'); + words.unshift('zetham'); + words.unshift('zophim'); + words.unshift('zuzims'); + return words; + }; + Words.FindSharedSet = function (results) { + try { + // FindSharedSet takes an array of reference arrays, and figures out which references are shared + // by all arrays/sets, then returns a single array of references. + for (var j in results) { + var refs = results[j]; + if (refs != null) { + for (var i = 0; i < refs.length; i++) { + var r = refs[i].split(":"); + // convert references to single integers. + // Book * 100000, Chapter * 1000, Verse remains same, add all together. + var ref = parseInt(r[0]) * 100000000; + ref = ref + (parseInt(r[1]) * 10000); + ref = ref + parseInt(r[2]); + results[j][i] = ref; + } + } + else { + return null; + } + } + // get the first result + var result = results[0]; + // for each additional result, get the shared set + for (i = 1; i < results.length; i++) { + result = this.ReturnSharedSet(results[i], result); + } + // convert the references back into book, chapter and verse. + for (i = 0; i < result.length; i++) { + ref = result[i]; + result[i] = (ref / 100000000) + ":" + ((ref % 100000000) / 10000) + ":" + ((ref % 100000000) % 10000); + } + return result; + } + catch (err) { + Util.HandleError(err); + } + return null; + }; + Words.ReturnSharedSet = function (x, y) { + try { + /// + /// Takes two javascript arrays and returns an array + /// containing a set of values shared by arrays. + /// + // declare iterator + var i = 0; + // declare terminator + var t = (x.length < y.length) ? x.length : y.length; + // sort the arrays + x.sort(SortNumeric); + y.sort(SortNumeric); + // in this loop, we remove from the arrays, the + // values that aren't shared between them. + while (i < t) { + if (x[i] == y[i]) { + i++; + } + if (x[i] < y[i]) { + x.splice(i, 1); + } + if (x[i] > y[i]) { + y.splice(i, 1); + } + t = (x.length < y.length) ? x.length : y.length; + // we have to make sure to remove any extra values + // at the end of an array when we reach the end of + // the other. + if (t == i && t < x.length) { + x.splice(i, x.length - i); + } + if (t == i && t < y.length) { + y.splice(i, x.length - i); + } + } + // we could return y, because at this time, both arrays + // are identical. + return x; + } + catch (err) { + Util.HandleError(err); + } + return null; + }; + Words.AttachEvents = function (t) { + t.find(".link").click(function (e) { + Util.HandleLink(e); + }); + }; + return Words; +}()); +; +//# sourceMappingURL=Words.js.map \ No newline at end of file diff --git a/DynamicBibleUtility/DynamicBibleApp/js/Words.js.map b/DynamicBibleUtility/DynamicBibleApp/js/Words.js.map new file mode 100644 index 00000000..bcb320aa --- /dev/null +++ b/DynamicBibleUtility/DynamicBibleApp/js/Words.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Words.js","sourceRoot":"","sources":["../ts/Words.ts"],"names":[],"mappings":"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"} \ No newline at end of file