widget.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466
  1. (function( $ ){
  2. var la2li = {
  3. "1": {
  4. "~": "𐄇",
  5. "0":
  6. {
  7. "~": "𐄐",
  8. "0": {
  9. "~": "𐄙",
  10. "0": {
  11. "~": "𐄢",
  12. "0": "𐄫"
  13. }
  14. }
  15. }
  16. },
  17. "2": {
  18. "~": "𐄈",
  19. "0":
  20. {
  21. "~": "𐄑",
  22. "0": {
  23. "~": "𐄚",
  24. "0": {
  25. "~": "𐄣",
  26. "0": "𐄬"
  27. }
  28. }
  29. }
  30. },
  31. "3": {
  32. "~": "𐄉",
  33. "0":
  34. {
  35. "~": "𐄒",
  36. "0": {
  37. "~": "𐄛",
  38. "0": {
  39. "~": "𐄤",
  40. "0": "𐄭"
  41. }
  42. }
  43. }
  44. },
  45. "4": {
  46. "~": "𐄊",
  47. "0":
  48. {
  49. "~": "𐄓",
  50. "0": {
  51. "~": "𐄜",
  52. "0": {
  53. "~": "𐄥",
  54. "0": "𐄮"
  55. }
  56. }
  57. }
  58. },
  59. "5": {
  60. "~": "𐄋",
  61. "0":
  62. {
  63. "~": "𐄔",
  64. "0": {
  65. "~": "𐄝",
  66. "0": {
  67. "~": "𐄦",
  68. "0": "𐄯"
  69. }
  70. }
  71. }
  72. },
  73. "6": {
  74. "~": "𐄌",
  75. "0":
  76. {
  77. "~": "𐄕",
  78. "0": {
  79. "~": "𐄞",
  80. "0": {
  81. "~": "𐄧",
  82. "0": "𐄰"
  83. }
  84. }
  85. }
  86. },
  87. "7": {
  88. "~": "𐄍",
  89. "0":
  90. {
  91. "~": "𐄖",
  92. "0": {
  93. "~": "𐄟",
  94. "0": {
  95. "~": "𐄨",
  96. "0": "𐄱"
  97. }
  98. }
  99. }
  100. },
  101. "8": {
  102. "~": "𐄎",
  103. "0":
  104. {
  105. "~": "𐄗",
  106. "0": {
  107. "~": "𐄠",
  108. "0": {
  109. "~": "𐄩",
  110. "0": "𐄲"
  111. }
  112. }
  113. }
  114. },
  115. "9": {
  116. "~": "𐄏",
  117. "0":
  118. {
  119. "~": "𐄘",
  120. "0": {
  121. "~": "𐄡",
  122. "0": {
  123. "~": "𐄪",
  124. "0": "𐄳"
  125. }
  126. }
  127. }
  128. },
  129. "a": {
  130. "~": "𐀀",
  131. "i": "𐁁",
  132. "lv": "𐃅",
  133. "mph": "𐃨",
  134. "rom": "𐂑",
  135. "u": "𐁂"
  136. },
  137. "b": {
  138. "i":
  139. {
  140. "g": "𐃌",
  141. },
  142. "o": {
  143. "s":
  144. {
  145. "~": "𐀘",
  146. "f": "𐂌",
  147. "m": "𐂍"
  148. }
  149. }
  150. },
  151. "c": {
  152. "a": {
  153. "p": {
  154. "~": "𐁒",
  155. "f": "𐂈",
  156. "m": "𐂉",
  157. "s": "𐃎"
  158. }
  159. },
  160. "e": {
  161. "l": "𐀯",
  162. "n": { "t": "𐄙"} ,
  163. "r": {"v": "𐂂" }
  164. },
  165. "u": {"m": {"i": {"n": "𐀓"}},
  166. "r": "𐃍"},
  167. "y": {"p": "𐂒"}
  168. },
  169. "d": {
  170. "a": {
  171. "~": "𐀅",
  172. "g": "𐃉",
  173. },
  174. "e": {
  175. "~": "𐀆",
  176. "c": "𐄐",
  177. "m": {
  178. "i": {
  179. "l": "𐄫",
  180. }
  181. }
  182. },
  183. "i": "𐀇",
  184. "m": {
  185. "i": {
  186. "l": "𐄣",
  187. }
  188. },
  189. "o": "𐀈",
  190. "u": {
  191. "~": "𐀉",
  192. "c": "𐄚",
  193. "m": {
  194. "i": {
  195. "l": "𐄬"
  196. }
  197. },
  198. "o": "𐄈"
  199. },
  200. "w": {
  201. "e": "𐁃",
  202. "o": "𐁄"
  203. }
  204. },
  205. "e": "𐀁",
  206. "h": {"a":"𐁀"},
  207. "i": "𐀂",
  208. "j": {
  209. "a": "𐀊",
  210. "e": "𐀋",
  211. "o": "𐀍"},
  212. "k": {
  213. "a": "𐀏",
  214. "e": "𐀐",
  215. "i": "𐀑",
  216. "o": "𐀒",
  217. "u": "𐀓"
  218. },
  219. "m": {
  220. "a": "𐀔",
  221. "e": "𐀕",
  222. "i": "𐀖",
  223. "o": "𐀗",
  224. "u": "𐀘"
  225. },
  226. "n": {
  227. "a": "𐀙",
  228. "e": "𐀚",
  229. "i": "𐀛",
  230. "o": "𐀜",
  231. "u": "𐀝",
  232. "w": {"a":"𐁅"}
  233. },
  234. "o": "𐀃",
  235. "p": {
  236. "a": "𐀞",
  237. "e": "𐀟",
  238. "h": {"u":"𐁆"},
  239. "i": "𐀠",
  240. "o": "𐀡",
  241. "t": {"e":"𐁇"},
  242. "u": "𐀢"
  243. },
  244. "q": {
  245. "a": "𐀣",
  246. "e": "𐀤",
  247. "i": "𐀥",
  248. "o": "𐀦"
  249. },
  250. "r": {
  251. "a": {"~" : "𐀨",
  252. "i" : "𐁉"
  253. },
  254. "e": "𐀩",
  255. "i": "𐀪",
  256. "o": "𐀫",
  257. "u": "𐀬",
  258. "y": {"a" : "𐁈",
  259. "o": "𐁊"}
  260. },
  261. "s": {
  262. "a": "𐀭",
  263. "e": "𐀮",
  264. "i": "𐀯",
  265. "o": "𐀰",
  266. "u": "𐀱"
  267. },
  268. "t": {
  269. "a": "𐀲",
  270. "e": "𐀳",
  271. "i": "𐀴",
  272. "o": "𐀵",
  273. "u": "𐀶",
  274. "w": {"e" : "𐁌", "o" : "𐁍"},
  275. "y": {"a": "𐁋"}
  276. },
  277. "u": "𐀄",
  278. "w": {
  279. "a": "𐀷",
  280. "e": "𐀸",
  281. "i": "𐀹",
  282. "o": "𐀺"
  283. },
  284. "z": {
  285. "a": "𐀼",
  286. "e": "𐀽",
  287. "o": "𐀿"
  288. }
  289. };
  290. var li2la = {
  291. "\ud800" :
  292. {"\udc00": "a",
  293. "\udc01": "e",
  294. "\udc02": "i",
  295. "\udc03": "o",
  296. "\udc04": "u",
  297. "\udc05": "da",
  298. "\udc06": "de",
  299. "\udc07": "di",
  300. "\udc08": "do",
  301. "\udc09": "du",
  302. "\udc0a": "ja",
  303. "\udc0b": "je",
  304. "\udc0d": "jo",
  305. "\udc0f": "ka",
  306. "\udc10": "ke",
  307. "\udc11": "ki",
  308. "\udc12": "ko",
  309. "\udc13": "ku",
  310. "\udc14": "ma",
  311. "\udc15": "me",
  312. "\udc16": "mi",
  313. "\udc17": "mo",
  314. "\udc18": "mu",
  315. "\udc19": "na",
  316. "\udc1a": "ne",
  317. "\udc1b": "ni",
  318. "\udc1c": "no",
  319. "\udc1d": "nu",
  320. "\udc1e": "pa",
  321. "\udc1f": "pe",
  322. "\udc20": "pi",
  323. "\udc21": "po",
  324. "\udc22": "pu",
  325. "\udc23": "qa",
  326. "\udc24": "qe",
  327. "\udc25": "qi",
  328. "\udc26": "qo",
  329. "\udc28": "ra",
  330. "\udc29": "re",
  331. "\udc2a": "ri",
  332. "\udc2b": "ro",
  333. "\udc2c": "ru",
  334. "\udc2d": "sa",
  335. "\udc2e": "se",
  336. "\udc2f": "si",
  337. "\udc30": "so",
  338. "\udc31": "su",
  339. "\udc32": "ta",
  340. "\udc33": "te",
  341. "\udc34": "ti",
  342. "\udc35": "to",
  343. "\udc36": "tu",
  344. "\udc37": "wa",
  345. "\udc38": "we",
  346. "\udc39": "wi",
  347. "\udc3a": "wo",
  348. "\udc3c": "za",
  349. "\udc3d": "ze",
  350. "\udc3f": "zo",
  351. "\udc40": "ha",
  352. "\udc41": "ai",
  353. "\udc42": "au",
  354. "\udc43": "dwe",
  355. "\udc44": "dwo",
  356. "\udc45": "nwa",
  357. "\udc46": "phu",
  358. "\udc47": "pte",
  359. "\udc48": "rya",
  360. "\udc49": "rai",
  361. "\udc4a": "ryo",
  362. "\udc4b": "tya",
  363. "\udc4c": "twe",
  364. "\udc4d": "two",
  365. "\udc52": "cap",
  366. "\udc80": "vir",
  367. "\udc81": "mul",
  368. "\udc82": "cerv",
  369. "\udc83": "equ",
  370. }
  371. };
  372. var converterMap = la2li;
  373. function doconvert(src) {
  374. function traverse(i, chars, ws) {
  375. var c = src[i];
  376. if (c in chars) {
  377. if (chars[c] instanceof Array)
  378. return (ws ? chars[c][1] : chars[c][0]) + traverse(i + 1, converterMap);
  379. else if (chars[c] instanceof Object)
  380. return traverse(i + 1, chars[c], ws);
  381. else
  382. return chars[c] + traverse(i + 1, converterMap);
  383. }
  384. else if ('~' in chars) {
  385. if (chars['~'] instanceof Array)
  386. return (ws ? chars['~'][1] : chars['~'][0]) + traverse(i, converterMap);
  387. else
  388. return chars['~'] + traverse(i, converterMap);
  389. }
  390. else if (c) {
  391. return c + traverse(i + 1, converterMap, c == ' ');
  392. }
  393. return "";
  394. }
  395. return traverse(0, converterMap, true);
  396. }
  397. function translate() {
  398. var src = $("#source").val();
  399. $("#destination").val(doconvert(src));
  400. }
  401. function changeDictionary() {
  402. converterMap = eval($('#source-map').val());
  403. translate();
  404. }
  405. var htmlForm = ' \
  406. <div class="lbt overlay"></div> \
  407. <div class="lbt window"> \
  408. <h4>Linear B transliterator</h4> \
  409. <hr /> \
  410. <table style="width: 100%;"> \
  411. <tr> \
  412. <td> \
  413. <select style="width: 70%;" id="source-map"> \
  414. <option value="la2li">Latin to Linear B</options> \
  415. <option value="li2la">Linear B to Latin</options> \
  416. </select> \
  417. </tr> \
  418. <tr> \
  419. <td><textarea id="source" style="width: 100%;"></textarea></td> \
  420. <td><textarea id="destination" style="width: 100%;"></textarea></td> \
  421. </tr> \
  422. </table> \
  423. </div> \
  424. ';
  425. $.fn.lbt = function(options) {
  426. var settings = $.extend({}, options);
  427. if (settings['window-holder']) {
  428. $(document).ready(onResize);
  429. $(window).resize(onResize);
  430. $(settings['window-holder']).html(htmlForm);
  431. $('.lbt.overlay').click(hidePopup);
  432. this.click(showPopup);
  433. }
  434. else {
  435. this.html(htmlForm);
  436. $('.lbt.window').show();
  437. $('.lbt.window').css("position", "relative");
  438. }
  439. $('#source').change(translate);
  440. $('#source').keyup(translate);
  441. $('#source-map').change(changeDictionary);
  442. };
  443. })( jQuery );