Mercurial > repos > tabletprog
annotate mquery.js @ 10:02b20292f187
Added fib sample
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 21 Mar 2012 21:25:10 -0700 |
parents | 37d7f60a8ea1 |
children | 85fb6ba15bc6 |
rev | line source |
---|---|
0 | 1 function each(container, fun) |
2 { | |
3 if (container instanceof Array) { | |
4 for (var i = 0; i < container.length; i++) { | |
5 fun(i, conatiner[i]); | |
6 } | |
7 } else { | |
8 for (var i in container) { | |
9 if (container.hasOwnProperty(i)) { | |
10 fun(i, container[i]); | |
11 } | |
12 } | |
13 } | |
14 } | |
15 | |
16 function q(query) | |
17 { | |
18 return document.querySelector(query); | |
19 } | |
20 function qall(query) | |
21 { | |
22 return document.querySelectorAll(query); | |
23 } | |
24 | |
25 function hide(el) | |
26 { | |
27 el.style.display = 'none'; | |
28 } | |
29 | |
30 function show(el, dtype) | |
31 { | |
32 if (dtype === undefined) { | |
33 dtype = 'block'; | |
34 } | |
9
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
35 el.style.display = dtype; |
0 | 36 } |
37 | |
38 function onReady(fun) | |
39 { | |
40 if (document.readyState == 'complete') { | |
41 fun(); | |
42 } else { | |
43 document.onreadystatechange = function() { | |
44 if (document.readyState == 'complete') { | |
45 fun(); | |
46 document.onreadystatechange = null; | |
47 } | |
48 } | |
49 } | |
50 } | |
51 | |
52 function addClass(el, classname) | |
53 { | |
54 var classes = el.className.split(' '); | |
55 if (classes.indexOf(classname) == -1) { | |
56 classes.push(classname); | |
57 el.className = classes.join(' '); | |
58 } | |
59 } | |
60 | |
61 function removeClass(el, classname) | |
62 { | |
63 var classes = el.className.split(' '); | |
64 var idx = classes.indexOf(classname); | |
65 if (idx > -1) { | |
66 classes.splice(idx, 1); | |
67 el.className = classes.join(' '); | |
68 } | |
69 } | |
70 | |
9
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
71 function ajax(method, url, data, onSuccess, onFail, onOthers) |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
72 { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
73 var req; |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
74 try { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
75 req = new XMLHttpRequest(); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
76 } catch (e) { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
77 req = new ActiveXObject("Microsoft.XMLHTTP"); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
78 } |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
79 req.onreadystatechange = function() { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
80 if (req.readyState == 4) { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
81 if ((req.status >= 200 && req.status <= 299) || req.status == 0) { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
82 onSuccess(req); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
83 } else if(onFail) { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
84 onFail(req); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
85 } else { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
86 console.log('request failed:', req); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
87 } |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
88 } else if(onOthers) { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
89 onOthers(req); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
90 } |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
91 } |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
92 req.open(method, url); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
93 if (data && 'mime' in data) { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
94 req.setRequestHeader('Content-Type', data.mime); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
95 req.send(data); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
96 } else { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
97 req.send(data); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
98 } |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
99 } |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
100 |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
101 function get(url, onSuccess, onFail, onOthers) |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
102 { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
103 ajax('GET', url, undefined, onSuccess, onFail, onOthers); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
104 } |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
105 |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
106 function post(url, data, onSuccess, onFail, onOthers) |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
107 { |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
108 ajax('POST', url, data, onSuccess, onFail, onOthers); |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
109 } |
37d7f60a8ea1
Allow use of tabletproglang programs in script tags
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
110 |