widget.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. (function( $ ){
  2. var la2li = {
  3. "a": {
  4. "~": "𐀀",
  5. "i": "𐁁",
  6. "lv": "𐃅",
  7. "mph": "𐃨",
  8. "rom": "𐂑",
  9. "u": "𐁂"
  10. },
  11. "b": {
  12. "i":
  13. {
  14. "g": "𐃌",
  15. },
  16. "o": {
  17. "s":
  18. {
  19. "~": "𐀘",
  20. "f": "𐂌",
  21. "m": "𐂍"
  22. }
  23. }
  24. },
  25. "c": {
  26. "a": {
  27. "p": {
  28. "~": "𐁒",
  29. "f": "𐂈",
  30. "m": "𐂉",
  31. "s": "𐃎"
  32. }
  33. },
  34. "e": {
  35. "l": "𐀯",
  36. "n": { "t": "𐄙"} ,
  37. "r": {"v": "𐂂" }
  38. },
  39. "u": {"m": {"i": {"n": "𐀓"}},
  40. "r": "𐃍"},
  41. "y": {"p": "𐂒"}
  42. },
  43. "d": {
  44. "a": {
  45. "~": "𐀅",
  46. "g": "𐃉",
  47. },
  48. "e": {
  49. "~": "𐀆",
  50. "c": "𐄐",
  51. "m": {
  52. "i": {
  53. "l": "𐄫",
  54. }
  55. }
  56. },
  57. "i": "𐀇",
  58. "m": {
  59. "i": {
  60. "l": "𐄣",
  61. }
  62. },
  63. "o": "𐀈",
  64. "u": {
  65. "~": "𐀉",
  66. "c": "𐄚",
  67. "m": {
  68. "i": {
  69. "l": "𐄬"
  70. }
  71. },
  72. "o": "𐄈"
  73. },
  74. "w": {
  75. "e": "𐁃",
  76. "o": "𐁄"
  77. }
  78. },
  79. "e": "𐀁",
  80. "h": {"a":"𐁀"},
  81. "i": "𐀂",
  82. "j": {
  83. "a": "𐀊",
  84. "e": "𐀋",
  85. "o": "𐀍"},
  86. "k": {
  87. "a": "𐀏",
  88. "e": "𐀐",
  89. "i": "𐀑",
  90. "o": "𐀒",
  91. "u": "𐀓"
  92. },
  93. "m": {
  94. "a": "𐀔",
  95. "e": "𐀕",
  96. "i": "𐀖",
  97. "o": "𐀗",
  98. "u": "𐀘"
  99. },
  100. "n": {
  101. "a": "𐀙",
  102. "e": "𐀚",
  103. "i": "𐀛",
  104. "o": "𐀜",
  105. "u": "𐀝",
  106. "w": {"a":"𐁅"}
  107. },
  108. "p": {
  109. "a": "𐀞",
  110. "e": "𐀟",
  111. "h": {"u":"𐁆"},
  112. "i": "𐀠",
  113. "o": "𐀡",
  114. "t": {"e":"𐁇"},
  115. "u": "𐀢"
  116. },
  117. "q": {
  118. "a": "𐀣",
  119. "e": "𐀤",
  120. "i": "𐀥",
  121. "o": "𐀦"
  122. },
  123. "r": {
  124. "a": {"~" : "𐀨",
  125. "i" : "𐁉"
  126. },
  127. "e": "𐀩",
  128. "i": "𐀪",
  129. "o": "𐀫",
  130. "u": "𐀬",
  131. "y": {"a" : "𐁈",
  132. "o": "𐁊"}
  133. },
  134. "s": {
  135. "a": "𐀭",
  136. "e": "𐀮",
  137. "i": "𐀯",
  138. "o": "𐀰",
  139. "u": "𐀱"
  140. },
  141. "t": {
  142. "a": "𐀲",
  143. "e": "𐀳",
  144. "i": "𐀴",
  145. "o": "𐀵",
  146. "u": "𐀶",
  147. "w": {"e" : "𐁌", "o" : "𐁍"},
  148. "y": {"a": "𐁋"}
  149. },
  150. "u": "𐀄",
  151. "w": {
  152. "a": "𐀷",
  153. "e": "𐀸",
  154. "i": "𐀹",
  155. "o": "𐀺"
  156. },
  157. "z": {
  158. "a": "𐀼",
  159. "e": "𐀽",
  160. "o": "𐀿"
  161. }
  162. };
  163. var li2la = {
  164. "\ud800" :
  165. {"\udc00": "a",
  166. "\udc01": "e",
  167. "\udc02": "i",
  168. "\udc03": "o",
  169. "\udc04": "u",
  170. "\udc05": "da",
  171. "\udc06": "de",
  172. "\udc07": "di",
  173. "\udc08": "do",
  174. "\udc09": "du",
  175. "\udc0a": "ja",
  176. "\udc0b": "je",
  177. "\udc0d": "jo",
  178. "\udc0f": "ka",
  179. "\udc10": "ke",
  180. "\udc11": "ki",
  181. "\udc12": "ko",
  182. "\udc13": "ku",
  183. "\udc14": "ma",
  184. "\udc15": "me",
  185. "\udc16": "mi",
  186. "\udc17": "mo",
  187. "\udc18": "mu",
  188. "\udc19": "na",
  189. "\udc1a": "ne",
  190. "\udc1b": "ni",
  191. "\udc1c": "no",
  192. "\udc1d": "nu",
  193. "\udc1e": "pa",
  194. "\udc1f": "pe",
  195. "\udc20": "pi",
  196. "\udc21": "po",
  197. "\udc22": "pu",
  198. "\udc23": "qa",
  199. "\udc24": "qe",
  200. "\udc25": "qi",
  201. "\udc26": "qo",
  202. "\udc28": "ra",
  203. "\udc29": "re",
  204. "\udc2a": "ri",
  205. "\udc2b": "ro",
  206. "\udc2c": "ru",
  207. "\udc2d": "sa",
  208. "\udc2e": "se",
  209. "\udc2f": "si",
  210. "\udc30": "so",
  211. "\udc31": "su",
  212. "\udc32": "ta",
  213. "\udc33": "te",
  214. "\udc34": "ti",
  215. "\udc35": "to",
  216. "\udc36": "tu",
  217. "\udc37": "wa",
  218. "\udc38": "we",
  219. "\udc39": "wi",
  220. "\udc3a": "wo",
  221. "\udc3c": "za",
  222. "\udc3d": "ze",
  223. "\udc3f": "zo",
  224. "\udc40": "ha",
  225. "\udc41": "ai",
  226. "\udc42": "au",
  227. "\udc43": "dwe",
  228. "\udc44": "dwo",
  229. "\udc45": "nwa",
  230. "\udc46": "phu",
  231. "\udc47": "pte",
  232. "\udc48": "rya",
  233. "\udc49": "rai",
  234. "\udc4a": "ryo",
  235. "\udc4b": "tya",
  236. "\udc4c": "twe",
  237. "\udc4d": "two",
  238. "\udc52": "cap",
  239. "\udc80": "vir",
  240. "\udc81": "mul",
  241. "\udc82": "cerv",
  242. "\udc83": "equ",
  243. }
  244. };
  245. var converterMap = la2li;
  246. function doconvert(src) {
  247. function traverse(i, chars, ws) {
  248. var c = src[i];
  249. if (c in chars) {
  250. if (chars[c] instanceof Array)
  251. return (ws ? chars[c][1] : chars[c][0]) + traverse(i + 1, converterMap);
  252. else if (chars[c] instanceof Object)
  253. return traverse(i + 1, chars[c], ws);
  254. else
  255. return chars[c] + traverse(i + 1, converterMap);
  256. }
  257. else if ('~' in chars) {
  258. if (chars['~'] instanceof Array)
  259. return (ws ? chars['~'][1] : chars['~'][0]) + traverse(i, converterMap);
  260. else
  261. return chars['~'] + traverse(i, converterMap);
  262. }
  263. else if (c) {
  264. return c + traverse(i + 1, converterMap, c == ' ');
  265. }
  266. return "";
  267. }
  268. return traverse(0, converterMap, true);
  269. }
  270. function translate() {
  271. var src = $("#source").val();
  272. $("#destination").val(doconvert(src));
  273. }
  274. function changeDictionary() {
  275. converterMap = eval($('#source-map').val());
  276. translate();
  277. }
  278. var htmlForm = ' \
  279. <div class="lbt overlay"></div> \
  280. <div class="lbt window"> \
  281. <h3>Linear B transliterator - Μεταγραφέας για τη Γραμμική Β</h3> \
  282. <hr /> \
  283. <table style="width: 100%;"> \
  284. <tr> \
  285. <td> \
  286. <select style="width: 70%;" id="source-map"> \
  287. <option value="la2li">Latin to Linear B</options> \
  288. <option value="li2la">Linear B to Latin</options> \
  289. </select> \
  290. </tr> \
  291. <tr> \
  292. <td><textarea id="source" style="width: 100%;"></textarea></td> \
  293. <td><textarea id="destination" style="width: 100%;"></textarea></td> \
  294. </tr> \
  295. </table> \
  296. </div> \
  297. ';
  298. $.fn.lbt = function(options) {
  299. var settings = $.extend({}, options);
  300. if (settings['window-holder']) {
  301. $(document).ready(onResize);
  302. $(window).resize(onResize);
  303. $(settings['window-holder']).html(htmlForm);
  304. $('.lbt.overlay').click(hidePopup);
  305. this.click(showPopup);
  306. }
  307. else {
  308. this.html(htmlForm);
  309. $('.lbt.window').show();
  310. $('.lbt.window').css("position", "relative");
  311. }
  312. $('#source').change(translate);
  313. $('#source').keyup(translate);
  314. $('#source-map').change(changeDictionary);
  315. };
  316. })( jQuery );