Subversion Repositories LCARS

Rev

Rev 227 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 227 Rev 228
1
var vulcan_texts = null;
1
var vulcan_texts = null;
2
2
3
var media_map = {
3
var media_map = {
4
  S: "?",
4
  S: "?",
5
  T: "Y",
5
  T: "Y",
6
  P: "]",
6
  P: "]",
7
  K: "ß",
7
  K: "ß",
8
  R: "²",
8
  R: "²",
9
  L: "ζ",
9
  L: "ζ",
10
  A: "Ŧ",
10
  A: "Ŧ",
11
  D: "S",
11
  D: "S",
12
  O: "Ŋ",
12
  O: "Ŋ",
13
  E: "σ",
13
  E: "σ",
14
  V: "³",
14
  V: "³",
15
  U: "¶",
15
  U: "¶",
16
  H: "ξ",
16
  H: "ξ",
17
  G: "^",
17
  G: "^",
18
  Ch: ")",
18
  Ch: ")",
19
  I: "ƒ",
19
  I: "ƒ",
20
  N: "(",
20
  N: "(",
21
  Z: "ε",
21
  Z: "ε",
22
  M: "δ",
22
  M: "δ",
23
  Y: "ς",
23
  Y: "ς",
24
  F: "[",
24
  F: "[",
25
  W: "¬",
25
  W: "¬",
26
  B: "Ξ",
26
  B: "Ξ",
27
  SH: "§",
27
  SH: "§",
28
  TH: "λ",
28
  TH: "λ",
29
  KH: "Φ",
29
  KH: "Φ",
30
  ZH: "ω",
30
  ZH: "ω",
31
  TS: "θ",
31
  TS: "θ",
32
  DZH: "C",
32
  DZH: "C",
33
  J: "C",
33
  J: "C",
34
  KS: "φ",
34
  KS: "φ",
35
  X: "φ",
35
  X: "φ",
36
  LL: "μ",
36
  LL: "μ",
37
  M: "&",
37
  M: "&",
38
  NG: "ρ",
38
  NG: "ρ",
39
  NN: "þ",
39
  NN: "þ",
40
  SS: "β",
40
  SS: "β",
41
  TCH: "M"
41
  TCH: "M"
42
};
42
};
43
43
44
var rxVulcan = jsx.object.getKeys(media_map);
44
var rxVulcan = jsx.object.getKeys(media_map);
45
rxVulcan.sort(function (a, b) { return b.length - a.length; });
45
rxVulcan.sort(function (a, b) { return b.length - a.length; });
46
rxVulcan = new RegExp(
46
rxVulcan = new RegExp(
47
  rxVulcan.filter(function (e) { return e.length > 1; }).join("|")
47
  rxVulcan.filter(function (e) { return e.length > 1; }).join("|")
48
    + "|[" + rxVulcan.filter(function (e) { return e.length === 1; }). join("") + "]",
48
    + "|[" + rxVulcan.filter(function (e) { return e.length === 1; }). join("") + "]",
49
  "ig");
49
  "ig");
50
50
51
//jsx.object.flip = function (obj) {
51
//jsx.object.flip = function (obj) {
52
//  var flipped = jsx.object.inheritFrom(obj);
52
//  var flipped = jsx.object.inheritFrom(obj);
53
//  var keys = jsx.object.getKeys(obj);
53
//  var keys = jsx.object.getKeys(obj);
54
//
54
//
55
//  for (var i = 0, len = keys.length; i < len; ++i)
55
//  for (var i = 0, len = keys.length; i < len; ++i)
56
//  {
56
//  {
57
//    var key = keys[i];
57
//    var key = keys[i];
58
//    var value = obj[key];
58
//    var value = obj[key];
59
//    if (typeof value != "function")
59
//    if (typeof value != "function")
60
//    {
60
//    {
61
//      flipped[value] = key;
61
//      flipped[value] = key;
62
//    }
62
//    }
63
//  }
63
//  }
64
//
64
//
65
//  return flipped;
65
//  return flipped;
66
//};
66
//};
67
67
68
var media_caption;
-
 
69
-
 
70
var media_script_used = false;
68
var media_script_used = false;
71
69
72
function mediaScript (button)
70
function mediaScript (button)
73
{
71
{
74
  vulcan_texts = jsx.dom.xpath.evaluate(
72
  vulcan_texts = jsx.dom.xpath.evaluate(
-
 
73
    './/*[@class = "text" and (@lang = "' + LANG_VULCAN
75
    './/*[@lang = "' + LANG_VULCAN + '"]//*[(not(@lang) or (@lang = "' + LANG_VULCAN + '")) and (@class = "text")]',
74
      + '" or parent::*[@lang = "' + LANG_VULCAN + '"])]',
76
    document.body);
75
    document.body);
77
76
78
  if (!vulcan_texts)
77
  if (!vulcan_texts)
79
  {
78
  {
80
    return;
79
    return;
81
  }
80
  }
82
81
83
  var previous_parent = null;
-
 
84
-
 
85
  for (var i = 0, len = vulcan_texts.length; i < len; ++i)
82
  for (var i = 0, len = vulcan_texts.length; i < len; ++i)
86
  {
83
  {
87
    var text = vulcan_texts[i];
84
    var text = vulcan_texts[i];
88
85
89
    text.style.textTransform = "none";
86
    text.style.textTransform = "none";
90
    if (!text.hasAttribute("data-html"))
87
    if (!text.hasAttribute("data-html"))
91
    {
88
    {
92
      text.setAttribute("data-html", text.innerHTML);
89
      text.setAttribute("data-html", text.innerHTML);
93
90
94
      if (!text.title)
91
      if (!text.title)
95
      {
92
      {
96
        text.title = text.textContent;
93
        text.title = text.textContent;
97
      }
94
      }
98
    }
95
    }
99
96
100
    var text_nodes = jsx.dom.xpath.evaluate(
97
    var text_nodes = jsx.dom.xpath.evaluate(
101
      './/text()[parent::*[not(@lang) or (@lang = "' + LANG_VULCAN + '")]]',
98
      './/text()[parent::*[not(@lang) or (@lang = "' + LANG_VULCAN + '")]]',
102
      text);
99
      text);
103
100
104
    for (var j = 0, len2 = text_nodes.length; j < len2; ++j)
101
    for (var j = 0, len2 = text_nodes.length; j < len2; ++j)
105
    {
102
    {
106
      var text_node = text_nodes[j];
103
      var text_node = text_nodes[j];
107
104
108
      if (text_node.parentNode.lang != LANG_VULCAN)
-
 
109
      {
-
 
110
        text_node.nodeValue = text_node.nodeValue.replace(
105
      text_node.nodeValue = text_node.nodeValue.replace(
111
          rxVulcan,
106
        rxVulcan,
112
          function (s) {
107
        function (s) {
113
            return jsx.object.getProperty(media_map, s.replace(/\s+/g, " ").toUpperCase(), s);
108
          return jsx.object.getProperty(media_map, s.replace(/\s+/g, " ").toUpperCase(), s);
114
          });
109
        });
115
      }
-
 
116
    }
110
    }
117
111
118
    text.parentNode.lang = "vuh-Media-Gol-modern";
112
    text.parentNode.lang = "vuh-Media-Gol-modern";
119
  }
113
  }
120
114
121
  if (button)
115
  if (button && lcars.language == LANG_VULCAN)
122
  {
116
  {
123
    media_caption = button.firstChild.textContent;
117
    button.setAttribute("data-caption", button.firstChild.textContent);
124
    button.firstChild.textContent = "Latin-Zukitan";
118
    button.firstChild.textContent = "Latin-Zukitan";
125
  }
119
  }
126
120
127
  media_script_used = true;
121
  media_script_used = true;
128
}
122
}
129
123
130
function latinScript (button)
124
function latinScript (button)
131
{
125
{
132
  for (var i = 0, len = vulcan_texts.length; i < len; ++i)
126
  for (var i = 0, len = vulcan_texts.length; i < len; ++i)
133
  {
127
  {
134
    var text = vulcan_texts[i];
128
    var text = vulcan_texts[i];
135
129
136
    text.style.textTransform = "";
130
    text.style.textTransform = "";
137
    text.innerHTML = text.getAttribute('data-html');
131
    text.innerHTML = text.getAttribute('data-html');
138
    text.parentNode.lang = "vuh-Latn-Gol-modern";
132
    text.parentNode.lang = "vuh-Latn-Gol-modern";
139
  }
133
  }
140
134
-
 
135
  if (lcars.language == LANG_VULCAN)
-
 
136
  {
141
  button.firstChild.textContent = media_caption;
137
    button.firstChild.textContent = button.getAttribute("data-caption");
-
 
138
  }
142
139
143
  media_script_used = false;
140
  media_script_used = false;
144
}
141
}
145
 
142