blob: f50206e275b37c832a86b8b8a7836277dcbccf5b (
plain)
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
|
/**
* QLIB 1.0 Base Abstract Control
* Copyright (C) 2002 2003, Quazzle.com Serge Dolgov
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* http://qlib.quazzle.com
*/
function QControl_init(parent, name) {
this.parent = parent || self;
this.window = (parent && parent.window) || self;
this.document = (parent && parent.document) || self.document;
this.name = (parent && parent.name) ? (parent.name + "." + name) : ("self." + name);
this.id = "Q";
var h = this.hash(this.name);
for (var j=0; j<8; j++) {
this.id += QControl.HEXTABLE.charAt(h & 15);
h >>>= 4;
}
}
function QControl_hash(str) {
var h = 0;
if (str) {
for (var j=str.length-1; j>=0; j--) {
h ^= QControl.ANTABLE.indexOf(str.charAt(j)) + 1;
for (var i=0; i<3; i++) {
var m = (h = h<<7 | h>>>25) & 150994944;
h ^= m ? (m == 150994944 ? 1 : 0) : 1;
}
}
}
return h;
}
function QControl_nop() {
}
function QControl() {
this.init = QControl_init;
this.hash = QControl_hash;
this.window = self;
this.document = self.document;
this.tag = null;
}
QControl.ANTABLE = "w5Q2KkFts3deLIPg8Nynu_JAUBZ9YxmH1XW47oDpa6lcjMRfi0CrhbGSOTvqzEV";
QControl.HEXTABLE = "0123456789ABCDEF";
QControl.nop = QControl_nop;
QControl.event = QControl_nop;
|