~crc-x/+junk/sic-gmail

« back to all changes in this revision

Viewing changes to phpmailer/test_script/src/shLegacy.js

  • Committer: crc
  • Date: 2013-01-01 15:46:28 UTC
  • Revision ID: crc@questor-20130101154628-w397tdjf38r20xxd
initial checkin

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * SyntaxHighlighter
 
3
 * http://alexgorbatchev.com/
 
4
 *
 
5
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 
6
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 
7
 *
 
8
 * @version
 
9
 * 2.0.296 (March 01 2009)
 
10
 * 
 
11
 * @copyright
 
12
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 
13
 *
 
14
 * @license
 
15
 * This file is part of SyntaxHighlighter.
 
16
 * 
 
17
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 
18
 * it under the terms of the GNU General Public License as published by
 
19
 * the Free Software Foundation, either version 3 of the License, or
 
20
 * (at your option) any later version.
 
21
 * 
 
22
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 
23
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
24
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
25
 * GNU General Public License for more details.
 
26
 * 
 
27
 * You should have received a copy of the GNU General Public License
 
28
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/licenses/>.
 
29
 */
 
30
var dp = {
 
31
        SyntaxHighlighter : {}
 
32
};
 
33
 
 
34
dp.SyntaxHighlighter = {
 
35
        parseParams: function(
 
36
                                                input,
 
37
                                                showGutter, 
 
38
                                                showControls, 
 
39
                                                collapseAll, 
 
40
                                                firstLine, 
 
41
                                                showColumns
 
42
                                                )
 
43
        {
 
44
                function getValue(list, name)
 
45
                {
 
46
                        var regex = new XRegExp('^' + name + '\\[(?<value>\\w+)\\]$', 'gi'),
 
47
                                match = null
 
48
                                ;
 
49
                        
 
50
                        for (var i = 0; i < list.length; i++) 
 
51
                                if ((match = regex.exec(list[i])) != null)
 
52
                                        return match.value;
 
53
                        
 
54
                        return null;
 
55
                };
 
56
                
 
57
                function defaultValue(value, def)
 
58
                {
 
59
                        return value != null ? value : def;
 
60
                };
 
61
                
 
62
                function asString(value)
 
63
                {
 
64
                        return value != null ? value.toString() : null;
 
65
                };
 
66
 
 
67
                var parts = input.split(':'),
 
68
                        brushName = parts[0],
 
69
                        options = {},
 
70
                        straight = { 'true' : 'true' }
 
71
                        reverse = { 'true' : 'false' },
 
72
                        result = null,
 
73
                        defaults = SyntaxHighlighter.defaults
 
74
                        ;
 
75
                
 
76
                for (var i in parts)
 
77
                        options[parts[i]] = 'true';
 
78
 
 
79
                showGutter = asString(defaultValue(showGutter, defaults.gutter));
 
80
                showControls = asString(defaultValue(showControls, defaults.toolbar));
 
81
                collapseAll = asString(defaultValue(collapseAll, defaults.collapse)); 
 
82
                showColumns = asString(defaultValue(showColumns, defaults.ruler));
 
83
                firstLine = asString(defaultValue(firstLine, defaults['first-line'])); 
 
84
                
 
85
                result = {
 
86
                        brush                   : brushName,
 
87
                        gutter                  : defaultValue(reverse[options.nogutter], showGutter),
 
88
                        toolbar                 : defaultValue(reverse[options.nocontrols], showControls),
 
89
                        collapse                : defaultValue(straight[options.collapse], collapseAll),
 
90
                        ruler                   : defaultValue(straight[options.showcolumns], showColumns),
 
91
                        'first-line'    : defaultValue(getValue(parts, 'firstline'), firstLine)
 
92
                };
 
93
                
 
94
                return result;
 
95
        },
 
96
        
 
97
        HighlightAll: function(
 
98
                                                name, 
 
99
                                                showGutter /* optional */, 
 
100
                                                showControls /* optional */, 
 
101
                                                collapseAll /* optional */, 
 
102
                                                firstLine /* optional */, 
 
103
                                                showColumns /* optional */
 
104
                                                )
 
105
        {
 
106
                function findValue()
 
107
                {
 
108
                        var a = arguments;
 
109
                        
 
110
                        for (var i = 0; i < a.length; i++) 
 
111
                        {
 
112
                                if (a[i] === null) 
 
113
                                        continue;
 
114
                                
 
115
                                if (typeof(a[i]) == 'string' && a[i] != '') 
 
116
                                        return a[i] + '';
 
117
                                
 
118
                                if (typeof(a[i]) == 'object' && a[i].value != '') 
 
119
                                        return a[i].value + '';
 
120
                        }
 
121
                        
 
122
                        return null;
 
123
                };
 
124
 
 
125
                function findTagsByName(list, name, tagName)
 
126
                {
 
127
                        var tags = document.getElementsByTagName(tagName);
 
128
                        
 
129
                        for (var i = 0; i < tags.length; i++) 
 
130
                                if (tags[i].getAttribute('name') == name) 
 
131
                                        list.push(tags[i]);
 
132
                }
 
133
                
 
134
                var elements = [],
 
135
                        highlighter = null,
 
136
                        registered = {},
 
137
                        propertyName = 'innerHTML'
 
138
                        ;
 
139
                
 
140
                // for some reason IE doesn't find <pre/> by name, however it does see them just fine by tag name... 
 
141
                findTagsByName(elements, name, 'pre');
 
142
                findTagsByName(elements, name, 'textarea');
 
143
 
 
144
                if (elements.length === 0)
 
145
                        return;
 
146
                
 
147
                for (var i = 0; i < elements.length; i++)
 
148
                {
 
149
                        var element = elements[i],
 
150
                                params = findValue(
 
151
                                        element.attributes['class'], element.className, 
 
152
                                        element.attributes['language'], element.language
 
153
                                        ),
 
154
                                language = ''
 
155
                                ;
 
156
                        
 
157
                        if (params === null) 
 
158
                                continue;
 
159
 
 
160
                        params = dp.SyntaxHighlighter.parseParams(
 
161
                                params,
 
162
                                showGutter, 
 
163
                                showControls, 
 
164
                                collapseAll, 
 
165
                                firstLine, 
 
166
                                showColumns
 
167
                                );
 
168
 
 
169
                        SyntaxHighlighter.highlight(params, element);
 
170
                }
 
171
        }
 
172
};