<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>KADIMI &#187; Webdesign</title>
	<atom:link href="http://www.kadimi.com/en/webdesign/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kadimi.com/en</link>
	<description>[Web developper, Linux addict, Technical translator...]</description>
	<lastBuildDate>Sun, 15 Jan 2012 10:48:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Fix &#8220;xyz.widget is not a function&#8221; when jQuerying in Drupal</title>
		<link>http://www.kadimi.com/en/widget-is-not-a-function-897</link>
		<comments>http://www.kadimi.com/en/widget-is-not-a-function-897#comments</comments>
		<pubDate>Mon, 31 Oct 2011 18:13:50 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=897</guid>
		<description><![CDATA[The error looks like: c.widget is not a function Or: d.widget is not a function I get this error when I do theming or module development for Drupal. Basically this tells you that the file jquery.ui.widget.js is missing. check the code you were writting and add that file to Drupal like this: 1 drupal_add_js&#40;'misc/ui/jquery.ui.widget.min.js'&#41;;]]></description>
			<content:encoded><![CDATA[<p>The error looks like:</p>
<blockquote><p>c.widget is not a function</p></blockquote>
<p>Or:</p>
<blockquote><p>d.widget is not a function</p></blockquote>
<p>I get this error when I do theming or module development for Drupal. Basically this tells you that the file jquery.ui.widget.js is missing. check the code you were writting and add that file to Drupal like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">drupal_add_js<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'misc/ui/jquery.ui.widget.min.js'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/widget-is-not-a-function-897/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera: CSS rotation and other transformations</title>
		<link>http://www.kadimi.com/en/opera-css-rotation-382</link>
		<comments>http://www.kadimi.com/en/opera-css-rotation-382#comments</comments>
		<pubDate>Fri, 01 Jan 2010 17:49:54 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[rotation]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=382</guid>
		<description><![CDATA[After the release of Opera 10.5 Alpha, it&#8217;s now be possible to rotate elements, this new release includes support for CSS3 rotation and other transitions and transforms, we may not longer need JavaScript for some basic transformations, have a taste: Download Opera 10.5 Alpha See the demonstration The demonstration doesn&#8217;t show rotation, so the CSS [...]]]></description>
			<content:encoded><![CDATA[<p>After the release of Opera 10.5 Alpha, it&#8217;s now be possible to rotate elements, this new release includes support for CSS3 rotation and other transitions and transforms, we may not longer need JavaScript for some basic transformations, have a taste:</p>
<ul>
<li>Download <a href="http://labs.opera.com/downloads/">Opera 10.5 Alpha</a></li>
<li>See the <a href="http://people.opera.com/dstorey/transitions/multiple-transitions.html">demonstration</a></li>
</ul>
<p>The demonstration doesn&#8217;t show rotation, so the CSS for rotation under Opera is:</p>
<blockquote>
<pre><code>-o-transform:rotate(90deg);</code></pre>
</blockquote>
<h2>FYI</h2>
<p>When you install Opera 10.5 Alpha, your previous installation of Opera (Stable) is not removed, giving you the chance to test and compare&#8230;</p>
<h2>Read</h2>
<p>Find more about Crossbrowser CSS rotation at <a href="http://samuli.hakoniemi.net/cross-browser-rotation-transformation-with-css/">hakoniemi&#8217;s blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/opera-css-rotation-382/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Tween function</title>
		<link>http://www.kadimi.com/en/javascript-tween-function-368</link>
		<comments>http://www.kadimi.com/en/javascript-tween-function-368#comments</comments>
		<pubDate>Thu, 17 Dec 2009 23:59:34 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ease]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[tween]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=368</guid>
		<description><![CDATA[This is a small library I wrote for creating simple and complicated easing effects without using JQuery, MooTools or other JS libraries. The library is small 13.4 KB or 5.6 KB compressed, The function can be called as follows: 1 tween&#40;element, property, from, to, duration, &#60;/code&#62;&#60;code&#62;&#91;optional&#93; &#60;/code&#62;&#60;code&#62;function&#41; Parameters element: The id  of the HTML element [...]]]></description>
			<content:encoded><![CDATA[<p>This is a small library I wrote for creating simple and complicated easing effects without using JQuery, MooTools or other JS libraries.</p>
<p>The library is small 13.4 KB or 5.6 KB compressed,</p>
<p>The function can be called as follows:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">tween<span style="color: #009900;">&#40;</span>element<span style="color: #339933;">,</span> property<span style="color: #339933;">,</span> from<span style="color: #339933;">,</span> to<span style="color: #339933;">,</span> duration<span style="color: #339933;">,</span> <span style="color: #339933;">&lt;/</span>code<span style="color: #339933;">&gt;&lt;</span>code<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#91;</span>optional<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;/</span>code<span style="color: #339933;">&gt;&lt;</span>code<span style="color: #339933;">&gt;</span>function<span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<h2>Parameters</h2>
<p><strong>element</strong>: The id  of the HTML element you want to animate like  &#8220;my_div&#8221;, &#8220;left_sidebar&#8221;, DOM objects are also accepted</p>
<p><strong>property</strong>: The CSS property that you want to animate like &#8220;color&#8221;, background-color&#8221;, &#8220;left&#8221;, &#8220;margin-top&#8221;&#8230;</p>
<p><strong>from</strong>: The initial value, like 0px, top, none, 0.5&#8230;</p>
<p><strong>to</strong>: The final value</p>
<p><strong>duration</strong>: the animation duration in ms</p>
<p><strong>function</strong> (optional): the easing function to use, by default the tween function uses the linear tween, there are nine other functions included (easeInBack, easeOutBack, easeInOutBack, easeInCirc, easeOutCirc, easeInOutCirc, easeInBounce, easeOutBounce &amp; easeInOutBounce)</p>
<h2>Examples</h2>
<p><a href="http://kadimi.com/demo/tween/">Demos available here</a></p>
<h2>Minified version</h2>
<p><a href="http://kadimi.com/demo/tween/tween.js">Function available here</a></p>
<h2>Full version</h2>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> fps <span style="color: #339933;">=</span> <span style="color: #CC0000;">40</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> debugging <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> tw <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> rand_str <span style="color: #339933;">=</span> generatePassword<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> float_pcre <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;(<span style="color: #000099; font-weight: bold;">\\</span>+|-)?(<span style="color: #000099; font-weight: bold;">\\</span>d*<span style="color: #000099; font-weight: bold;">\\</span>.)?<span style="color: #000099; font-weight: bold;">\\</span>d+&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'g'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> color_at_end <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;[Cc]olor$&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> tween<span style="color: #009900;">&#40;</span>element<span style="color: #339933;">,</span> property<span style="color: #339933;">,</span> from<span style="color: #339933;">,</span> to<span style="color: #339933;">,</span> duration<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>arguments.<span style="color: #660066;">length</span> <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// Let's first remove old tweens from the tw table to gain performance</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;=</span> <span style="color: #CC0000;">0.75</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> tw.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span>i<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;status&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;playing&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">==</span> tw.<span style="color: #660066;">length</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                tw <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">var</span> tw_id <span style="color: #339933;">=</span> tw.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;f&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>Boolean<span style="color: #009900;">&#40;</span>arguments<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> arguments<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;linear&quot;</span><span style="color: #339933;">;</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;ez&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// defined here to avoid collisions on simultaneous tw</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;status&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;playing&quot;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// playing, aborted, complete</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;element&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> resolve_element<span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;property&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> resolve_property<span style="color: #009900;">&#40;</span>property<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>Boolean<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;property&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>color_at_end<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;is_color_tween&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;duration&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> duration<span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//ms</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;interval&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">1000</span> <span style="color: #339933;">/</span> fps<span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//ms</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;steps&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> Math.<span style="color: #660066;">ceil</span><span style="color: #009900;">&#40;</span>duration <span style="color: #339933;">/</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;interval&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> from<span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//  '', 'current', '1', '30%' ...</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to_orig&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> to<span style="color: #339933;">;</span>
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;timer&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// Stop simultaneous</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> kounter <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> kounter <span style="color: #339933;">&lt;</span> tw_id<span style="color: #339933;">;</span> <span style="color: #339933;">++</span>kounter<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>kounter<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;status&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!==</span> <span style="color: #3366CC;">&quot;playing&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>kounter<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;element&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!==</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;element&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>kounter<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;property&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!==</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;property&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
        <span style="color: #006600; font-style: italic;">// We arrived here! that means 2 tw on the same element with the same property, keep the newest tween..</span>
        tw<span style="color: #009900;">&#91;</span>kounter<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;status&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;aborted&quot;</span><span style="color: #339933;">;</span>
        clearInterval<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>kounter<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;timer&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'current'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> getStyle<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;element&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;property&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">''</span> <span style="color: #339933;">||</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'NaN'</span> <span style="color: #339933;">||</span> <span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;undefined&quot;</span><span style="color: #009900;">&#41;</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;element&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">style</span><span style="color: #009900;">&#91;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;property&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">''</span> <span style="color: #339933;">||</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'NaN'</span> <span style="color: #339933;">||</span> <span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;undefined&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;is_color_tween&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;#7F7F7F&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">else</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'0'</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #006600; font-style: italic;">// Format the color array</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;is_color_tween&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> resolve_color<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;is_color_tween&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'current'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// tw[tw_id][&quot;from&quot;]	= tw[tw_id][&quot;from&quot;];</span>
        <span style="color: #000066; font-weight: bold;">else</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> resolve_color<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> resolve_color<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to_orig&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;change&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;change&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;red&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;red&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;red&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;change&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;green&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;green&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;green&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;change&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;blue&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;blue&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;blue&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!==</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #006600; font-style: italic;">// tmp is a temporary variable that I use for retrieving prefix and suffix</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'current'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
                    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>float_pcre<span style="color: #009900;">&#41;</span>
                <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>float_pcre<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> parseFloat<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> parseFloat<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to_orig&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>float_pcre<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;change&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #003366; font-weight: bold;">var</span> tmp<span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'current'</span><span style="color: #009900;">&#41;</span> tmp <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;to_orig&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">else</span> tmp <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            tmp <span style="color: #339933;">=</span> tmp.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>float_pcre<span style="color: #339933;">,</span> rand_str<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;prefix&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tmp.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> tmp.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span>rand_str<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;suffix&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> str_replace<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;prefix&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> rand_str<span style="color: #339933;">,</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">,</span> tmp<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// debuggg...</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>debugging<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> tw_info <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> String<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> elm_props <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'id'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'tagName'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'className'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #000066; font-weight: bold;">in</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            tw_info <span style="color: #339933;">+=</span> i <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;: &quot;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">!==</span> <span style="color: #3366CC;">&quot;element&quot;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">===</span> <span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #009900;">&#40;</span>Object<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> j <span style="color: #000066; font-weight: bold;">in</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
                tw_info <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\t</span>&quot;</span> <span style="color: #339933;">+</span> j <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;: &quot;</span> <span style="color: #339933;">+</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;element&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> j <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> elm_props.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                tw_info <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\t</span>&quot;</span> <span style="color: #339933;">+</span> elm_props<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;: &quot;</span> <span style="color: #339933;">+</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>elm_props<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> tw_info <span style="color: #339933;">+=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            tw_info <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>tw_info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from_orig&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;status&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;playing&quot;</span><span style="color: #339933;">;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;timer&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> setTimeout<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tw[&quot;</span> <span style="color: #339933;">+</span> tw_id <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;][<span style="color: #000099; font-weight: bold;">\&quot;</span>element<span style="color: #000099; font-weight: bold;">\&quot;</span>].style[tw[&quot;</span> <span style="color: #339933;">+</span> tw_id <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;][<span style="color: #000099; font-weight: bold;">\&quot;</span>property<span style="color: #000099; font-weight: bold;">\&quot;</span>]] = tw[&quot;</span> <span style="color: #339933;">+</span> tw_id <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;][<span style="color: #000099; font-weight: bold;">\&quot;</span>to_orig<span style="color: #000099; font-weight: bold;">\&quot;</span>];tw[&quot;</span> <span style="color: #339933;">+</span> tw_id <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;][<span style="color: #000099; font-weight: bold;">\&quot;</span>status<span style="color: #000099; font-weight: bold;">\&quot;</span>] = <span style="color: #000099; font-weight: bold;">\&quot;</span>complete<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #339933;">,</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;duration&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> ease<span style="color: #009900;">&#40;</span>tw_id<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">return</span> tw_id<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> ease<span style="color: #009900;">&#40;</span>tw_id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;status&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;playing&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;is_color_tween&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;element&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">style</span><span style="color: #009900;">&#91;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;property&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;rgb(&quot;</span> <span style="color: #339933;">+</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;red&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;,&quot;</span> <span style="color: #339933;">+</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;green&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;,&quot;</span> <span style="color: #339933;">+</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;blue&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;)&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">else</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;element&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">style</span><span style="color: #009900;">&#91;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;property&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;prefix&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;suffix&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;steps&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!==</span> <span style="color: #CC0000;">0</span> <span style="color: #339933;">&amp;&amp;</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;status&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'playing'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;is_color_tween&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> red <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;f&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> parseInt<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;red&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> parseInt<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;change&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;red&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;steps&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #003366; font-weight: bold;">var</span> green <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;f&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> parseInt<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;green&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> parseInt<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;change&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;green&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;steps&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #003366; font-weight: bold;">var</span> blue <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;f&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> parseInt<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;blue&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> parseInt<span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;change&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;blue&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;steps&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;ez&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;rgb(&quot;</span> <span style="color: #339933;">+</span> red <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;,&quot;</span> <span style="color: #339933;">+</span> green <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;,&quot;</span> <span style="color: #339933;">+</span> blue <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;)&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
            tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;ez&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;f&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;from&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;change&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;steps&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span>
            tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;ez&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;prefix&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;ez&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;suffix&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;timer&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> setTimeout<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ease_repeat(&quot;</span> <span style="color: #339933;">+</span> tw_id <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;)&quot;</span><span style="color: #339933;">,</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;interval&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;step&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;steps&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;status&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;complete&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> ease_repeat<span style="color: #009900;">&#40;</span>tw_id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
        tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;element&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">style</span><span style="color: #009900;">&#91;</span>tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;property&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tw<span style="color: #009900;">&#91;</span>tw_id<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;ez&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        ease<span style="color: #009900;">&#40;</span>tw_id<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #009966; font-style: italic;">/* Keep it simple with these nice functions */</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> h2d<span style="color: #009900;">&#40;</span>h<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// hex to decimal</span>
    <span style="color: #000066; font-weight: bold;">return</span> parseInt<span style="color: #009900;">&#40;</span>h<span style="color: #339933;">,</span> <span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> str_replace<span style="color: #009900;">&#40;</span>search<span style="color: #339933;">,</span> replace<span style="color: #339933;">,</span> subject<span style="color: #339933;">,</span> count<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// version: 908.406</span>
    <span style="color: #006600; font-style: italic;">// discuss at: http://phpjs.org/functions/str_replace</span>
    <span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
        j <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
        temp <span style="color: #339933;">=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">,</span>
        repl <span style="color: #339933;">=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">,</span>
        sl <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
        fl <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
        f <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">concat</span><span style="color: #009900;">&#40;</span>search<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        r <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">concat</span><span style="color: #009900;">&#40;</span>replace<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        s <span style="color: #339933;">=</span> subject<span style="color: #339933;">,</span>
        ra <span style="color: #339933;">=</span> r <span style="color: #000066; font-weight: bold;">instanceof</span> Array<span style="color: #339933;">,</span>
        sa <span style="color: #339933;">=</span> s <span style="color: #000066; font-weight: bold;">instanceof</span> Array<span style="color: #339933;">;</span>
    s <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">concat</span><span style="color: #009900;">&#40;</span>s<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>count<span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">window</span><span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> sl <span style="color: #339933;">=</span> s.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> sl<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>s<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> fl <span style="color: #339933;">=</span> f.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> fl<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            temp <span style="color: #339933;">=</span> s<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>
            repl <span style="color: #339933;">=</span> ra <span style="color: #339933;">?</span> <span style="color: #009900;">&#40;</span>r<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">!==</span> undefined <span style="color: #339933;">?</span> r<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> r<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            s<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>temp<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span>repl<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>count <span style="color: #339933;">&amp;&amp;</span> s<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">!==</span> temp<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">window</span><span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span>temp.<span style="color: #660066;">length</span> <span style="color: #339933;">-</span> s<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> f<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">return</span> sa <span style="color: #339933;">?</span> s <span style="color: #339933;">:</span> s<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> resolve_element<span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;object&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;string&quot;</span><span style="color: #009900;">&#41;</span> element <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>element.<span style="color: #660066;">tagName</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;undefined&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> element<span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> resolve_property<span style="color: #009900;">&#40;</span>property<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//  resolve_property(&quot;-moz-border-radius&quot;) =&gt; &quot;MozBorderRadius&quot;;</span>
    <span style="color: #003366; font-weight: bold;">var</span> matched<span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> dash_letter <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;-[a-z]&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>matched <span style="color: #339933;">=</span> property.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>dash_letter<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            matched <span style="color: #339933;">=</span> matched.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            property <span style="color: #339933;">=</span> str_replace<span style="color: #009900;">&#40;</span>matched<span style="color: #339933;">,</span> matched.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toUpperCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> property<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">return</span> property<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> resolve_color<span style="color: #009900;">&#40;</span>color<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// return an array containing R, G and B values </span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>color <span style="color: #339933;">===</span> <span style="color: #3366CC;">'transparent'</span><span style="color: #009900;">&#41;</span> <span style="color: #006600; font-style: italic;">// IE (6 and ?)</span>
    color <span style="color: #339933;">=</span> <span style="color: #3366CC;">'#FFF'</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> r<span style="color: #339933;">,</span> g<span style="color: #339933;">,</span> b<span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> hex_color_pcre <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;^#[0-9a-f]{3}([0-9a-f]{3})?$&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'gi'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> rgb_color_pcre <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;rgb<span style="color: #000099; font-weight: bold;">\\</span>(<span style="color: #000099; font-weight: bold;">\\</span>s*((?:[0-2]?[0-9])?[0-9])<span style="color: #000099; font-weight: bold;">\\</span>s*,<span style="color: #000099; font-weight: bold;">\\</span>s*((?:[0-2]?[0-9])?[0-9])<span style="color: #000099; font-weight: bold;">\\</span>s*,<span style="color: #000099; font-weight: bold;">\\</span>s*((?:[0-2]?[0-9])?[0-9])<span style="color: #000099; font-weight: bold;">\\</span>s*<span style="color: #000099; font-weight: bold;">\\</span>)$&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'gi'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> rgb_percent_color_pcre <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;rgb<span style="color: #000099; font-weight: bold;">\\</span>(<span style="color: #000099; font-weight: bold;">\\</span>s*((?:[0-1]?[0-9])?[0-9])%<span style="color: #000099; font-weight: bold;">\\</span>s*,<span style="color: #000099; font-weight: bold;">\\</span>s*((?:[0-1]?[0-9])?[0-9])%<span style="color: #000099; font-weight: bold;">\\</span>s*,<span style="color: #000099; font-weight: bold;">\\</span>s*((?:[0-1]?[0-9])?[0-9])%<span style="color: #000099; font-weight: bold;">\\</span>s*<span style="color: #000099; font-weight: bold;">\\</span>)$&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'gi'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>color.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>hex_color_pcre<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>color.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            r <span style="color: #339933;">=</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&quot;</span> <span style="color: #339933;">+</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            g <span style="color: #339933;">=</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&quot;</span> <span style="color: #339933;">+</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            b <span style="color: #339933;">=</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&quot;</span> <span style="color: #339933;">+</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
            r <span style="color: #339933;">=</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&quot;</span> <span style="color: #339933;">+</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            g <span style="color: #339933;">=</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&quot;</span> <span style="color: #339933;">+</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            b <span style="color: #339933;">=</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&quot;</span> <span style="color: #339933;">+</span> color.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        r <span style="color: #339933;">=</span> h2d<span style="color: #009900;">&#40;</span>r<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        g <span style="color: #339933;">=</span> h2d<span style="color: #009900;">&#40;</span>g<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        b <span style="color: #339933;">=</span> h2d<span style="color: #009900;">&#40;</span>b<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>color.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>rgb_color_pcre<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        r <span style="color: #339933;">=</span> RegExp.$1<span style="color: #339933;">;</span>
        g <span style="color: #339933;">=</span> RegExp.$2<span style="color: #339933;">;</span>
        b <span style="color: #339933;">=</span> RegExp.$3<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>color.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>rgb_percent_color_pcre<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        r <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>RegExp.$1<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">2.55</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        g <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>RegExp.$2<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">2.55</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        b <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>RegExp.$3<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">2.55</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">var</span> returned <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    returned<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'red'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> r<span style="color: #339933;">;</span>
    returned<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'green'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> g<span style="color: #339933;">;</span>
    returned<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'blue'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> b<span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> returned<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> getStyle<span style="color: #009900;">&#40;</span>oElm<span style="color: #339933;">,</span> strCssRule<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// http://robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/</span>
    <span style="color: #003366; font-weight: bold;">var</span> strValue <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">defaultView</span> <span style="color: #339933;">&amp;&amp;</span> document.<span style="color: #660066;">defaultView</span>.<span style="color: #660066;">getComputedStyle</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        strValue <span style="color: #339933;">=</span> document.<span style="color: #660066;">defaultView</span>.<span style="color: #660066;">getComputedStyle</span><span style="color: #009900;">&#40;</span>oElm<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getPropertyValue</span><span style="color: #009900;">&#40;</span>strCssRule<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>oElm.<span style="color: #660066;">currentStyle</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        strCssRule <span style="color: #339933;">=</span> strCssRule.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/\-(\w)/g</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>strMatch<span style="color: #339933;">,</span> p1<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">return</span> p1.<span style="color: #660066;">toUpperCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        strValue <span style="color: #339933;">=</span> oElm.<span style="color: #660066;">currentStyle</span><span style="color: #009900;">&#91;</span>strCssRule<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">return</span> strValue<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> generatePassword<span style="color: #009900;">&#40;</span>len<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// http://www.kadimi.com/en/javascript/random-password-string/</span>
    len <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>len<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>len<span style="color: #009900;">&#41;</span> len <span style="color: #339933;">=</span> <span style="color: #CC0000;">6</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> password <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> chars <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> charsN <span style="color: #339933;">=</span> chars.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> nextChar<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> len<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        nextChar <span style="color: #339933;">=</span> chars.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> charsN<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        password <span style="color: #339933;">+=</span> nextChar
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">return</span> password<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> substr<span style="color: #009900;">&#40;</span>f_string<span style="color: #339933;">,</span> f_start<span style="color: #339933;">,</span> f_length<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// version: 908.406</span>
    <span style="color: #006600; font-style: italic;">// discuss at: http://phpjs.org/functions/substr</span>
    f_string <span style="color: #339933;">+=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>f_start <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        f_start <span style="color: #339933;">+=</span> f_string.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>f_length <span style="color: #339933;">==</span> undefined<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        f_length <span style="color: #339933;">=</span> f_string.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>f_length <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        f_length <span style="color: #339933;">+=</span> f_string.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        f_length <span style="color: #339933;">+=</span> f_start<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>f_length <span style="color: #339933;">&lt;</span> f_start<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        f_length <span style="color: #339933;">=</span> f_start<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">return</span> f_string.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span>f_start<span style="color: #339933;">,</span> f_length<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> microtime<span style="color: #009900;">&#40;</span>get_as_float<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// Returns either a string or a float containing the current time in seconds and microseconds  </span>
    <span style="color: #006600; font-style: italic;">// discuss at: http://phpjs.org/functions/microtime</span>
    <span style="color: #006600; font-style: italic;">// +   original by: Paulo Ricardo F. Santos</span>
    <span style="color: #006600; font-style: italic;">// *     example 1: timeStamp = microtime(true);</span>
    <span style="color: #006600; font-style: italic;">// *     results 1: timeStamp &gt; 1000000000 &amp;&amp; timeStamp &lt; 2000000000</span>
    <span style="color: #003366; font-weight: bold;">var</span> now <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">1000</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> s <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>now<span style="color: #339933;">,</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>get_as_float<span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> now <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">round</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>now <span style="color: #339933;">-</span> s<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">' '</span> <span style="color: #339933;">+</span> s<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// My favorite $()</span>
&nbsp;
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> $<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//http://v3.thewatchmakerproject.com/code/extended-dollar.txt</span>
    <span style="color: #003366; font-weight: bold;">var</span> elements <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> len <span style="color: #339933;">=</span> arguments.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> len<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> element <span style="color: #339933;">=</span> arguments<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> element <span style="color: #339933;">==</span> <span style="color: #3366CC;">'string'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> matched <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>matched<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                elements.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>matched<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #003366; font-weight: bold;">var</span> allels <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">all</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">all</span> <span style="color: #339933;">:</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'*'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003366; font-weight: bold;">var</span> regexp <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'(^| )'</span> <span style="color: #339933;">+</span> element <span style="color: #339933;">+</span> <span style="color: #3366CC;">'( |$)'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> len <span style="color: #339933;">=</span> allels.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> len<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>regexp.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>allels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">className</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> elements.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>allels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>elements.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> elements <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>elements.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                elements <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003366; font-weight: bold;">var</span> allels <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">all</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">all</span> <span style="color: #339933;">:</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'*'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> len <span style="color: #339933;">=</span> allels.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> len<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>allels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">getAttribute</span><span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> elements.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>allels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>elements.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #003366; font-weight: bold;">var</span> allels <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">all</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">all</span> <span style="color: #339933;">:</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'*'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> len <span style="color: #339933;">=</span> allels.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> len<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>allels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">attributes</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> j <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> lenn <span style="color: #339933;">=</span> allels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">attributes</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> lenn<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>allels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">attributes</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">specified</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>allels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">attributes</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">nodeValue</span> <span style="color: #339933;">==</span> element<span style="color: #009900;">&#41;</span> elements.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>allels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
            elements.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>elements.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> elements<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> elements<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #006600; font-style: italic;">// Ease function(s)</span>
linear <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">*</span> t <span style="color: #339933;">/</span> d <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
<span style="color: #006600; font-style: italic;">// ease functions</span>
<span style="color: #006600; font-style: italic;">// Back</span>
easeInBack <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #339933;">,</span> s<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>s <span style="color: #339933;">==</span> undefined<span style="color: #009900;">&#41;</span> s <span style="color: #339933;">=</span> <span style="color: #CC0000;">1.70158</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">/=</span> d<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>s <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">-</span> s<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
easeOutBack <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #339933;">,</span> s<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>s <span style="color: #339933;">==</span> undefined<span style="color: #009900;">&#41;</span> s <span style="color: #339933;">=</span> <span style="color: #CC0000;">1.70158</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>t <span style="color: #339933;">=</span> t <span style="color: #339933;">/</span> d <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>s <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">+</span> s<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
easeInOutBack <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #339933;">,</span> s<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>s <span style="color: #339933;">==</span> undefined<span style="color: #009900;">&#41;</span> s <span style="color: #339933;">=</span> <span style="color: #CC0000;">1.70158</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>t <span style="color: #009966; font-style: italic;">/= d /</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">*</span> t <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>s <span style="color: #339933;">*=</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1.525</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">-</span> s<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>t <span style="color: #339933;">-=</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>s <span style="color: #339933;">*=</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1.525</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">+</span> s<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
<span style="color: #006600; font-style: italic;">//Circulat</span>
easeInCirc <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #339933;">-</span>c <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">sqrt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">/=</span> d<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t<span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
easeOutCirc <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">*</span> Math.<span style="color: #660066;">sqrt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">=</span> t <span style="color: #339933;">/</span> d <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
easeInOutCirc <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>t <span style="color: #009966; font-style: italic;">/= d /</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #339933;">-</span>c <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">sqrt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">-</span> t <span style="color: #339933;">*</span> t<span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">sqrt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">-=</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//Bounce</span>
easeInBounce <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">-</span> easeOutBounce<span style="color: #009900;">&#40;</span>d <span style="color: #339933;">-</span> t<span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
easeOutBounce <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>t <span style="color: #009966; font-style: italic;">/= d) &lt; (1 /</span> <span style="color: #CC0000;">2.75</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">7.5625</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">*</span> t<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">&lt;</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2.75</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">7.5625</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">-=</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1.5</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2.75</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">+</span> .75<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">&lt;</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2.5</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2.75</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">7.5625</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">-=</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2.25</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2.75</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">+</span> .9375<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> c <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">7.5625</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">-=</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2.625</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2.75</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> t <span style="color: #339933;">+</span> .984375<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
easeInOutBounce <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>t<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">&lt;</span> d <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> easeInBounce<span style="color: #009900;">&#40;</span>t <span style="color: #339933;">*</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> .5 <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> easeOutBounce<span style="color: #009900;">&#40;</span>t <span style="color: #339933;">*</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">-</span> d<span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> c<span style="color: #339933;">,</span> d<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> .5 <span style="color: #339933;">+</span> c <span style="color: #339933;">*</span> .5 <span style="color: #339933;">+</span> b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//*/</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/javascript-tween-function-368/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>JavaScript round float to n decimal points</title>
		<link>http://www.kadimi.com/en/round-float-349</link>
		<comments>http://www.kadimi.com/en/round-float-349#comments</comments>
		<pubDate>Mon, 24 Aug 2009 07:09:26 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=349</guid>
		<description><![CDATA[The best you can do with built in JavaScript functions is to round a number to the nearest integer using the method Math.round(x), so to round a float to n decimal points we need to come up with our own function. The function round_float() rounds a floating point number x to n decimals, if you [...]]]></description>
			<content:encoded><![CDATA[<p>The best you can do with built in JavaScript functions is to round a number to the nearest integer using the method <strong>Math.round(x)</strong>, so to round a float to n decimal points we need to come up with our own function.</p>
<p>The function <strong>round_float()</strong> rounds a floating point number <strong>x</strong> to <strong>n</strong> decimals, if you ommit the parameter n, the function will have the same behaviour as the round() method, here is the round_float function definition:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> round_float<span style="color: #009900;">&#40;</span>x<span style="color: #339933;">,</span>n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>parseInt<span style="color: #009900;">&#40;</span>n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
  	<span style="color: #003366; font-weight: bold;">var</span> n<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>parseFloat<span style="color: #009900;">&#40;</span>x<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
  	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">return</span> Math.<span style="color: #660066;">round</span><span style="color: #009900;">&#40;</span>x<span style="color: #339933;">*</span>Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span>n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h2>With prototyping</h2>
<p>Dmitry suggested a better approach using prototyping:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>Number.<span style="color: #660066;">toFixed</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  Number.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">toFixed</span><span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> Math.<span style="color: #660066;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">*</span>Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span> n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> Math.<span style="color: #660066;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span> n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// example:</span>
floating_number <span style="color: #339933;">=</span> <span style="color: #CC0000;">123.45687</span><span style="color: #339933;">;</span>
decimal_points <span style="color: #339933;">=</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
window.<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>floating_number.<span style="color: #660066;">toFixed</span><span style="color: #009900;">&#40;</span>decimal_points<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/round-float-349/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>setAttribute/getAttribute(&#8220;style&#8221;) crossbrowser alternative</title>
		<link>http://www.kadimi.com/en/setattribute-getattribute-315</link>
		<comments>http://www.kadimi.com/en/setattribute-getattribute-315#comments</comments>
		<pubDate>Mon, 10 Aug 2009 02:21:50 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=315</guid>
		<description><![CDATA[The JavaScript methods setAttribute and getAttribute are very handy when you are designing dynamic effects for your website, but those methods have a lot of bugs in IE (6 an 7 at least), I use these two crossbrowser functions as alternatives instead of using directly setAttribute() and getAttribute(), I&#8217;ve been using them for quite a [...]]]></description>
			<content:encoded><![CDATA[<p>The JavaScript methods setAttribute and getAttribute are very handy when you are designing dynamic effects for your website, but those methods have a lot of bugs in IE (6 an 7 at least), I use these two crossbrowser functions as alternatives instead of using directly setAttribute() and getAttribute(), I&#8217;ve been using them for quite a long time and have had excellent results (crossbrowser compatibility):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/* setStyle function */</span>
<span style="color: #003366; font-weight: bold;">function</span> setStyle<span style="color: #009900;">&#40;</span>element<span style="color: #339933;">,</span> styleText<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>element.<span style="color: #660066;">style</span>.<span style="color: #660066;">setAttribute</span><span style="color: #009900;">&#41;</span>
		element.<span style="color: #660066;">style</span>.<span style="color: #660066;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;cssText&quot;</span><span style="color: #339933;">,</span> styleText <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">else</span>
		element.<span style="color: #660066;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;style&quot;</span><span style="color: #339933;">,</span> styleText <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009966; font-style: italic;">/* getStyle function */</span>
<span style="color: #003366; font-weight: bold;">function</span> getStyle<span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 	<span style="color: #003366; font-weight: bold;">var</span> styleText <span style="color: #339933;">=</span> element.<span style="color: #660066;">getAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'style'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>styleText <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> styleText <span style="color: #339933;">==</span> <span style="color: #3366CC;">'string'</span><span style="color: #009900;">&#41;</span> <span style="color: #006600; font-style: italic;">// !IE</span>
		<span style="color: #000066; font-weight: bold;">return</span> styleText<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">else</span>  <span style="color: #006600; font-style: italic;">// IE</span>
		<span style="color: #000066; font-weight: bold;">return</span> styleText.<span style="color: #660066;">cssText</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Now use the setStyle function whenever you need to change the style attribite of a HTML element</p>
<h2>Demonstration</h2>
<p>Roll over this <a id="trigger" href="#" onclick="return false;">trigger</a>:</p>
<div id="test_div" style="border:solid 2px green;padding:10px">setStyle and getStyle Test (using border and padding)</div>
<h2>Explanation</h2>
<p>On the demonstration we define two style for the div, the default one and one that we will swith to once we &#8220;mouseover&#8221; the div.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
/* <span style="color: #339933;">&lt;![CDATA[ */</span>
<span style="color: #339933;">/* Test */</span>
<span style="color: #339933;">var my_element = document.getElementById(&quot;test_div&quot;);</span>
<span style="color: #339933;">var my_trigger = document.getElementById(&quot;trigger&quot;);</span>
<span style="color: #339933;">var initial_style = getStyle(my_element);</span>
<span style="color: #339933;">var alternative_style = &quot;border:solid 6px green;padding:6px&quot;;</span>
<span style="color: #339933;">my_trigger.onmouseover = my_element.onload = function (){</span>
<span style="color: #339933;">	setStyle(my_element, alternative_style);</span>
<span style="color: #339933;">};</span>
<span style="color: #339933;">my_trigger.onmouseout = function (){</span>
<span style="color: #339933;">	setStyle(my_element, initial_style)</span>
<span style="color: #339933;">};</span>
<span style="color: #339933;">/* ]]&gt;</span> */
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
Roll over this <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;trigger&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;#&quot;</span> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">&quot;return false;&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>trigger<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;test_div&quot;</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;border:solid 2px green;padding:10px&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  setStyle and getStyle Test (using border and padding)
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<div style="display:n<div style="display:none">
<script type="text/javascript">
// <![CDATA[
/* setStyle function */
function setStyle(element, styleText){
	if(element.style.setAttribute)
		element.style.setAttribute("cssText", styleText );
	else 		
		element.setAttribute("style", styleText );
} 
/* getStyle function */ 
function getStyle(element){
 	var styleText = element.getAttribute('style');
 	if(styleText == null) 	
		return "";
	if (typeof styleText == 'string') // !IE 		
		return styleText; 	
	else  // IE 		
		return styleText.cssText; 
} 
/* Test */ 
var my_element = document.getElementById("test_div"); 
var my_trigger = document.getElementById("trigger");
var initial_style = getStyle(my_element);  
var alternative_style = "border:solid 6px green;padding:6px";  
my_trigger.onmouseover = my_element.onload = function (){
	setStyle(my_element, alternative_style);
}; 
my_trigger.onmouseout = function (){
	setStyle(my_element, initial_style) 
};
// ]]&gt;
</script>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/setattribute-getattribute-315/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Print HTML code from JavaScript variable</title>
		<link>http://www.kadimi.com/en/html-code-variable-235</link>
		<comments>http://www.kadimi.com/en/html-code-variable-235#comments</comments>
		<pubDate>Wed, 05 Aug 2009 06:35:11 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=235</guid>
		<description><![CDATA[This also was about to drive me crazy so I will not let it go without writing about it.. Let&#8217;s say you have some long HTML code contained on a PHP variable, something like this 1 2 3 4 5 6 7 &#60;?php $some_div = ' &#60;div id=&#34;box&#34;&#62; &#60;h1&#62;Title&#60;/h1&#62; &#60;p&#62;Article contents + comments&#60;/p&#62; &#60;div&#62;'; ?&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>This also was about to drive me crazy so I will not let it go without writing about it..</p>
<p>Let&#8217;s say you have some long HTML code contained on a PHP variable, something like this</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$some_div</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'
&lt;div id=&quot;box&quot;&gt;
  &lt;h1&gt;Title&lt;/h1&gt;
  &lt;p&gt;Article contents + comments&lt;/p&gt;
&lt;div&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Now you want to use this HTML code as a JavaScript variable instead of printing it directly, you will tell me you&#8217;ll do this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">&lt;script type=&quot;text/javascript&quot;&gt;
/* &lt;![CDATA[ */
  var some_div = '<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$some_div</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>';
/* ]]&gt; */
&lt;/script&gt;</pre></td></tr></table></div>

<p>JavaScript doesn&#8217;t like unescaped new lines and special characters (mainly &#8220;, &lt;  and &gt;) too much, so the previous code won&#8217;t work, my quick solution for that is to do the following:</p>
<ul>
<li>Encode the html code in PHP using urlencode</li>
<li>Decode it within JavaScript</li>
</ul>
<p>When using PHP&#8217;s urlencode function, all whitespace characters will be replaced by + signs, so we&#8217;d better deal with those characters before encoding them,  otherwise, we won&#8217;t make a difference between spaces and real + signs, please read the comment on the PHP code below to understand:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// replace consecutive white space characters with a single space</span>
<span style="color: #000088;">$some_div_2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/\s+/'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span><span style="color: #000088;">$some_div</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Explode (cut the string on the white space and put the resulting part on an array)</span>
<span style="color: #000088;">$some_div_2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$some_div_2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Encode the text contained on the array cells</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$some_div_2</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$index</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span>
  <span style="color: #000088;">$some_div_2</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Implode (reassemble) the array to a string again</span>
<span style="color: #000088;">$some_div_2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$some_div_2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
&lt;script type=&quot;text/javascript&quot;&gt;
/* &lt;![CDATA[ */
&nbsp;
  // Import the variable from PHP
  var some_div = <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$some_div_2</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
  // Decode it
  some_div_2 = unescape(decodeURI(some_div));
&nbsp;
  // Display it
  document.writeln(some_div_2);
&nbsp;
/* ]]&gt; */
&lt;/script&gt;</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/html-code-variable-235/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A note on JavaScript arrays creation &amp; initialization</title>
		<link>http://www.kadimi.com/en/arrays-creation-and-initialization-225</link>
		<comments>http://www.kadimi.com/en/arrays-creation-and-initialization-225#comments</comments>
		<pubDate>Wed, 05 Aug 2009 04:19:01 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=225</guid>
		<description><![CDATA[I use PHP a lot in my projects and it happens that sometimes I combine PHP with another language and write completely useless code. PHP arrays can be created and initialized with like this: &#60;?php $cities[] = "mecca"; $cities[] = "medina"; ?&#62; I thought that the same would apply to javascript&#8230; Yes, it can work, [...]]]></description>
			<content:encoded><![CDATA[<p>I use PHP a lot in my projects and it happens that sometimes I combine PHP with another language and write completely useless code.</p>
<p>PHP arrays can be created and initialized with like this:</p>
<blockquote>
<pre><code>&lt;?php
  $cities[] = "mecca";
  $cities[] = "medina";
?&gt;
</code></pre>
</blockquote>
<p>I thought that the same would apply to javascript&#8230; Yes, it can work, but only if the array already exists, otherwise you will get an error, Your browser will tell you that it can&#8217;t find that array, pretty simple&#8230; maybe&#8230;</p>
<blockquote>
<pre><code>var cities = []// we create the array first
  cities[0] = "mecca";
  cities[1] = "medina";
</code></pre>
</blockquote>
<p>Note that JavaScript doesn&#8217;t automatically assign table indexes, you have to set them automatically. +1 for PHP (on most other languages)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/arrays-creation-and-initialization-225/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generate passwords with JavaScript</title>
		<link>http://www.kadimi.com/en/random-password-string-107</link>
		<comments>http://www.kadimi.com/en/random-password-string-107#comments</comments>
		<pubDate>Sat, 06 Jun 2009 03:56:50 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=107</guid>
		<description><![CDATA[The function generatePassword() is a simple yet customizable function that generates a random password string, the default password length is 6, you can override it by calling the function like this  generatePassword(n) where n is the password length. The possible characters are defined within the function with the variable chars The function: generatePassword([len=6]) 1 2 [...]]]></description>
			<content:encoded><![CDATA[<p><script src="http://www.kadimi.com/en/wp-content/uploads/generatePassword.js" type="text/javascript"></script><br />
The function <strong><code>generatePassword()</code></strong> is a simple yet customizable function that generates a random password string, the default password length is 6, you can override it by calling the function like this  <strong><code>generatePassword(n)</code></strong> where <strong><code>n</code></strong> is the password length. The possible characters are defined within the function with the variable <code>chars</code><span id="more-107"></span></p>
<h2>The function: generatePassword([len=6])</h2>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> generatePassword<span style="color: #009900;">&#40;</span>len<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	len	<span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>len<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>len<span style="color: #009900;">&#41;</span>
		len <span style="color: #339933;">=</span> <span style="color: #CC0000;">6</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> password <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> chars    <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> charsN   <span style="color: #339933;">=</span> chars.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> nextChar<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>len<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		nextChar <span style="color: #339933;">=</span> chars.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>charsN<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		password <span style="color: #339933;">+=</span> nextChar<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">return</span> password<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h2>Usage</h2>
<p>The first example show the function without the optional <code>len</code> patamater(string length), and second example makes use of it:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// Example 1: No len</span>
window.<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;A random string of 6 characters: &quot;</span> <span style="color: #339933;">+</span> generatePassword<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Example 2: Using len</span>
pwdLen <span style="color: #339933;">=</span> <span style="color: #CC0000;">10</span><span style="color: #339933;">;</span>
window.<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;A random string of &quot;</span> <span style="color: #339933;">+</span> pwdLen <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;characters: &quot;</span> <span style="color: #339933;">+</span> generatePassword<span style="color: #009900;">&#40;</span>pwdLen<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h2>Try it</h2>
<p><a onclick="pass = generatePassword(128);alert('A random string of 128 characters: '+pass);return false;" href="#">Generate</a> a random password of 128 characters.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/random-password-string-107/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to style input fields with CSS?</title>
		<link>http://www.kadimi.com/en/styling-input-fields-97</link>
		<comments>http://www.kadimi.com/en/styling-input-fields-97#comments</comments>
		<pubDate>Fri, 05 Jun 2009 11:13:56 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Forms]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=97</guid>
		<description><![CDATA[<a href="http://www.kadimi.com/en/styling-input-fields-97"><img align="left" hspace="5" width="150" src="http://www.kadimi.com/en/wp-content/uploads/bad_input_css.jpg" class="alignleft wp-post-image tfe" alt="bad input css" title="" /></a>There are situations where you need to style input fields depending on there types. Doing this is wrong: input{ border:solid 1px red; } As you see in the image, the CSS rule has been applied to all input fields (a text input field, and an image input) You can specify the type of input field [...]]]></description>
			<content:encoded><![CDATA[<p>There are situations where you need to style input fields depending on there types.</p>
<p>Doing this is wrong:</p>
<blockquote>
<pre><code>input{
    border:solid 1px red;
}</code>
<img class="alignnone size-full wp-image-102" src="http://www.kadimi.com/en/wp-content/uploads/bad_input_css.jpg" alt="bad input css" /></pre>
</blockquote>
<p>As you see in the image, the CSS rule has been applied to all input fields<span id="more-97"></span> (a text input field, and an image input)</p>
<p>You can specify the type of input field that you are targeting by doing like this:</p>
<blockquote>
<pre><code>input[type="password"]{
    border:solid 1px red;
}</code>
<img class="alignnone size-full wp-image-102" src="http://www.kadimi.com/en/wp-content/uploads/good_input_css.jpg" alt="good input css" /></pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/styling-input-fields-97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generate a negative random number using JavaScript</title>
		<link>http://www.kadimi.com/en/negative-random-87</link>
		<comments>http://www.kadimi.com/en/negative-random-87#comments</comments>
		<pubDate>Tue, 05 May 2009 01:54:31 +0000</pubDate>
		<dc:creator>Nabil</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.kadimi.com/en/?p=87</guid>
		<description><![CDATA[Maths Ok, so you already know how to generate positive rondom numbers but let&#8217;s do it again: To generate a random number varying from 0 to 9 we will use this code: 1 var randomN = Math.floor&#40;Math.random&#40;&#41;*10&#41; This expression on the right of the &#8220;=&#8221; produces a random number from 0 to 1 (excluding 1, [...]]]></description>
			<content:encoded><![CDATA[<h2>Maths</h2>
<p>Ok, so you already know how to generate positive rondom numbers but let&#8217;s do it again:</p>
<p>To generate a random number varying from 0 to 9 we will use this code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> randomN <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<p>This expression on the right of the &#8220;=&#8221;</p>
<ol>
<li>produces a random number from 0 to 1 (excluding 1, say 0.917) with <code>Math.random()</code></li>
<li>multiplies it by 10 (9.71)</li>
<li>removes decimals (9) with <code>Math.floor</code></li>
</ol>
<p>For negative values from -9 to 0 we will  simply subtract 9 from the previous result:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> negativeRandomN <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">9</span></pre></td></tr></table></div>

<p>Now what if you wanted a rondom integer from -10 to 20&#8230; ?<br />
Yes you guessed it right! we will generate a random number from 0 to 30 then substact 10 from it</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> randomN <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">31</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">10</span></pre></td></tr></table></div>

<p>So the rule is:<br />
To generate a random integer from <em>m</em> to <em>n</em>, here is the code</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> randomN <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>n<span style="color: #339933;">-</span>m<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> m</pre></td></tr></table></div>

<h2>Examples</h2>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"># Random integer from <span style="color: #CC0000;">1</span> to <span style="color: #CC0000;">10</span>
<span style="color: #003366; font-weight: bold;">var</span> randomN <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span>
&nbsp;
# Random integer from <span style="color: #339933;">-</span><span style="color: #CC0000;">100</span> to <span style="color: #CC0000;">100</span>
<span style="color: #003366; font-weight: bold;">var</span> randomN <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">201</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">100</span>
&nbsp;
# Random integer from <span style="color: #CC0000;">0</span> to <span style="color: #CC0000;">255</span>
<span style="color: #003366; font-weight: bold;">var</span> randomN <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">256</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.kadimi.com/en/negative-random-87/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

