Develop and Download Open Source Software

Browse Subversion Repository

Contents of /js/domain.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4 - (show annotations) (download) (as text)
Fri Dec 4 12:17:36 2009 UTC (14 years, 5 months ago) by berupon
File MIME type: application/x-javascript
File size: 6988 byte(s)
まだ完成していないけど途中経過の記録というか…backupとしてcommit
1
2 if (!behaviourAssignors) {
3 var behaviourAssignors = {};
4 }
5
6 behaviourAssignors['number'] = function (elem) {
7 addListener(
8 elem,
9 'keypress',
10 // nonnegative_integers
11 function (event) {
12 var char = pressedChar(event);
13 var unmatched = (char && !char.match(/\d/));
14 cancelEvent(event, unmatched);
15 }
16 );
17 }
18
19 behaviourAssignors['integer'] = function (elem) {
20 addListener(
21 elem,
22 'keypress',
23 function (event) {
24 var char = pressedChar(event);
25 var unmatched = (char && !char.match(/[\-0-9]/));
26 cancelEvent(event, unmatched);
27 }
28 );
29 }
30
31 behaviourAssignors['word'] = function (elem) {
32 addListener(
33 elem,
34 'keypress',
35 function (event) {
36 var char = pressedChar(event);
37 var unmatched = (char && !char.match(/\w/));
38 cancelEvent(event, unmatched);
39 }
40 );
41 }
42
43 behaviourAssignors['date'] = function (elem) {
44 addListener(
45 elem,
46 'keypress',
47 function (event) {
48 var char = pressedChar(event);
49 var unmatched = (char && !char.match(/\d/) && char != '/');
50 cancelEvent(event, unmatched);
51 }
52 );
53 elem.maxLength = 10;
54 }
55
56 behaviourAssignors['slip_code'] = function (elem) {
57 addListener(
58 elem,
59 'keypress',
60 function(event) {
61 var char = pressedChar(event);
62 var unmatched = (char && !char.match(/[a-zA-Z0-9\-]/));
63 cancelEvent(event, unmatched);
64 }
65 );
66 }
67
68 behaviourAssignors['sales_code'] = function (elem) {
69 addListener(
70 elem,
71 'keypress',
72 function(event) {
73 var char = pressedChar(event);
74 var unmatched = (char && !char.match(/[a-zA-Z0-9]/));
75 cancelEvent(event, unmatched);
76 }
77 );
78 }
79
80
81 function setAutoFocus()
82 {
83 var cnt = document.forms.length;
84 for (var i=0; i<cnt; ++i) {
85 var form = document.forms[i];
86 var cnt2 = form.elements.length;
87 for (var j=0; j<cnt2; ++j) {
88 var elem = form.elements[j];
89 if (elem.attributes.getNamedItem("autofocus")) {
90 if (document.activeElement == elem) {
91 return;
92 }
93 var e = elem;
94 do {
95 if (e.style) {
96 if (0
97 || (e.style.display && e.style.display == 'none')
98 || (e.style.visibility && e.style.visibility == 'hidden')
99 ) {
100 return;
101 }
102 }
103 }while (e = e.parentNode);
104 elem.focus();
105 elem.select();
106 return;
107 }
108 }
109 }
110 }
111
112 Event.observe(window, "load", setAutoFocus);
113
114 function toDateFormat(num)
115 {
116 if (num.match(/\d{8,8}/)) {
117 var year = Math.floor(num / 10000);
118 var remain = num % 10000;
119 var month = Math.floor(remain / 100);
120 var day = remain % 100;
121 return "" // damn Automatic Semicolon Insertion ;;
122 + ("00" + year).substr(-4)
123 + "/"
124 + ("00" + month).substr(-2)
125 + "/"
126 + ("00" + day).substr(-2)
127 ;
128 }else {
129 return num;
130 }
131 }
132
133
134 function windowEvent(){
135 if (window.event) return window.event;
136 var caller = arguments.callee.caller;
137 while (caller) {
138 var ob = caller.arguments[0];
139 if (ob && ob.constructor == MouseEvent) return ob;
140 caller = caller.caller;
141 }
142 return null;
143 }
144
145 function clearForm(id) {
146 var form = Event.findElement(windowEvent()).form;
147 clearFormElementsValues(form, id);
148 }
149
150 Ajax.Responders.register({
151 onCreate: function() {
152 $("loading").appear({ duration: 0.1 });
153 },
154 onComplete: function() {
155 $("loading").fade({ duration: 0.5 });
156 }
157 });
158
159 function ajaxRequest(url, method, parameters, onSuccess, onFailure) {
160 new Ajax.Request(
161 url,
162 {
163 "method" : method,
164 "parameters" : parameters,
165 "onSuccess": function(transport) {
166 try {
167 onSuccess(transport);
168 }catch (e) {
169 alert(e);
170 }
171 },
172 "onFailure": function () {
173 if (onFailure) {
174 try {
175 onFailure();
176 }catch (e) {
177 alert(e);
178 }
179 }
180 }
181 }
182 );
183 }
184
185 // ���������������������������������������������template������������������������������������������
186 function modifyTemplate(src, data)
187 {
188 var r = /^#/gm;
189 var r2 = /^[^\s]+/g;
190 var indexes = [];
191
192 while (r.test(src)) {
193 indexes.push(r.lastIndex);
194 }
195
196 if (indexes.length == 0) {
197 return src;
198 }
199
200 function attachParts(pieces, parts, setting)
201 {
202 if (!setting) {
203 for (var j=0; j<parts.length; ++j) {
204 var part = parts[j];
205 pieces.push(part.text);
206 }
207 }else {
208 for (var i=0; i<setting.length; ++i) {
209 var name = setting[i];
210 for (var j=0; j<parts.length; ++j) {
211 var part = parts[j];
212 if (part.name == name) {
213 pieces.push(part.text);
214 break;
215 }
216 }
217 }
218 }
219 }
220
221 var defName = null;
222 var pos = 0;
223 var pieces = [];
224 var piece = src.substr(0, indexes[0] - 1);
225 pieces.push(piece);
226 var parts = [];
227 for (var i=0; i<indexes.length-1; ++i) {
228 var start = indexes[i];
229 var end = indexes[i+1] - 1;
230 piece = src.substr(start, end-start);
231 r2.lastIndex = 0;
232 var ret = r2.exec(piece);
233 if (!ret || !ret.length) {
234 return false;
235 }
236 var key = ret[0];
237 if (!defName) {
238 if (key.charAt(key.length-1) != '{') {
239 return false;
240 }
241 defName = key.substr(0, key.length-1);
242 }else {
243 if (key != '}') {
244 var part = piece.substr(r2.lastIndex, piece.length-1);
245 parts.push({name:key, text:part});
246 }else {
247 attachParts(pieces, parts, data[defName]);
248 parts.clear();
249 defName = null;
250 pieces.push(piece.substr(1,piece.length));
251 }
252 }
253 }
254 if (parts.length) {
255 attachParts(pieces, parts, data[defName]);
256 }
257 var start = indexes[indexes.length-1] + 1;
258 var piece = src.substr(start, src.length-start);
259 pieces.push(piece);
260 return pieces.join("");
261 }
262
263 function digestCookie(key) {
264 var pieces = document.cookie.split('; ');
265 for (var i=0; i<pieces.length; ++i) {
266 var piece = pieces[i];
267 var pair = piece.split('=');
268 if (pair[0] == key) {
269 return unescape(pair[1]).evalJSON();
270 }
271 }
272 return {};
273 }
274
275 function dumpCookie(key, value) {
276 if (!Object.isString(value)) {
277 value = Object.toJSON(value);
278 }
279 var str = key + '=' + escape(value) + ";";
280 var d = new Date();
281 // future yet unknown XD
282 d.setYear(2012);
283 d.setMonth(12);
284 d.setDate(21);
285 str += "expires=" + d.toGMTString() + ";";
286 document.cookie = str;
287 }
288
289 // TODO: rename to DualSelect routines
290 function resetGridSetting(visibles, hiddens, cols) {
291 visibles.options.length = 0;
292 hiddens.options.length = 0;
293 for (var i=0; i<cols.length; ++i) {
294 var col = cols[i];
295 visibles.options[i] = new Option(col.text, col.value);
296 }
297 }
298
299 function setGridSetting(visibles, hiddens, defaultCols, cols) {
300 visibles.options.length = 0;
301 hiddens.options.length = 0;
302 for (var i=0; i<defaultCols.length; ++i) {
303 var col = defaultCols[i];
304 var found = false;
305 for (var j=0; j<cols.length; ++j) {
306 if (cols[j] == col.value) {
307 found = true;
308 break;
309 }
310 }
311 var el = found ? visibles : hiddens;
312 el.options[el.options.length] = new Option(col.text, col.value);
313 }
314 }
315
316 function getGridSetting(visibles) {
317 return collectMember(visibles.options, 'value');
318 }
319

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26