author | Michael Krelin <hacker@klever.net> | 2006-09-29 22:27:02 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2006-09-29 22:27:02 (UTC) |
commit | 3cf3cf1000ce6b27ac622c75fc3d114874e2f3a8 (patch) (unidiff) | |
tree | b76d0ba42afa8252747bc2c9a0bfd6c5b8b3f07b /content/util.js | |
parent | dcd46fa0189aa1893eb2faa7da4fd823dc6c392d (diff) | |
download | fireflix-3cf3cf1000ce6b27ac622c75fc3d114874e2f3a8.zip fireflix-3cf3cf1000ce6b27ac622c75fc3d114874e2f3a8.tar.gz fireflix-3cf3cf1000ce6b27ac622c75fc3d114874e2f3a8.tar.bz2 |
code beauty: moved some code into util.js
git-svn-id: http://svn.klever.net/kin/fireflix/trunk@168 fe716a7a-6dde-0310-88d9-d003556173a8
-rw-r--r-- | content/util.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/content/util.js b/content/util.js new file mode 100644 index 0000000..5af0978 --- a/dev/null +++ b/content/util.js | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * convert unicode string to utf-8 representation. | ||
3 | * needed for correct md5 hash calculation. | ||
4 | */ | ||
5 | function toutf8(ucode) { | ||
6 | var rv = ''; | ||
7 | for(var i=0;i<ucode.length;++i) { | ||
8 | var cc = ucode.charCodeAt(i); | ||
9 | if(cc<=0x7F) | ||
10 | rv += ucode.charAt(i); | ||
11 | else if(cc<=0x7ff) | ||
12 | rv += String.fromCharCode( | ||
13 | 0xc0|((cc>> 6)&0x1f), | ||
14 | 0x80|( cc &0x3f) ); | ||
15 | else if(cc<=0xffff) | ||
16 | rv += String.fromCharCode( | ||
17 | 0xe0|((cc>>12)&0x0f), | ||
18 | 0x80|((cc>> 6)&0x3f), | ||
19 | 0x80|( cc &0x3f) ); | ||
20 | else if(cc<=0x1fffff) | ||
21 | rv += String.fromCharCode( | ||
22 | 0xf0|((cc>>18)&0x07), | ||
23 | 0x80|((cc>>12)&0x3f), | ||
24 | 0x80|((cc>> 6)&0x3f), | ||
25 | 0x80|( cc &0x3f) ); | ||
26 | else if(cc<=0x03ffffff) | ||
27 | rv += String.fromCharCode( | ||
28 | 0xf8|((cc>>24)&0x03), | ||
29 | 0x80|((cc>>18)&0x3f), | ||
30 | 0x80|((cc>>12)&0x3f), | ||
31 | 0x80|((cc>> 6)&0x3f), | ||
32 | 0x80|( cc &0x3f) ); | ||
33 | else if(cc<=0x7fffffff) | ||
34 | rv += String.fromCharCode( | ||
35 | 0xfc|((cc>>30)&0x01), | ||
36 | 0x80|((cc>>24)&0x3f), | ||
37 | 0x80|((cc>>18)&0x3f), | ||
38 | 0x80|((cc>>12)&0x3f), | ||
39 | 0x80|((cc>> 6)&0x3f), | ||
40 | 0x80|( cc &0x3f) ); | ||
41 | } | ||
42 | return rv; | ||
43 | } | ||
44 | |||
45 | /* | ||
46 | * extract xpath-specified string value | ||
47 | */ | ||
48 | function xp_str(xp,x) { | ||
49 | var rv = x.evaluate( | ||
50 | xp, x, null, XPathResult.STRING_TYPE, null ); | ||
51 | return rv.stringValue; | ||
52 | } | ||
53 | /* | ||
54 | * extract xpath-specified node | ||
55 | */ | ||
56 | function xp_node(xp,x) { | ||
57 | var rv = x.evaluate( | ||
58 | xp, x, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ); | ||
59 | return rv.singleNodeValue; | ||
60 | } | ||
61 | |||