var
AutoTips
=
function
(A){
var
elem
=
A.id
?
D.$(A.id) : A.elem;
var
checkLength
=
5
;
var
_this
=
{};
var
key
=
''
;
_this.start
=
function
(){
if
(
!
D.$(config.boxID)){
var
h
=
html.slice();
var
info
=
TT.info(elem);
var
div
=
D.DC(
'
DIV
'
);
var
bs
=
D.BS();
h
=
h.replace(
'
$top$
'
,(info.top
+
bs.top)).
replace(
'
$left$
'
,(info.left
+
bs.left)).
replace(
'
$width$
'
,info.width).
replace(
'
$height$
'
,info.height).
replace(
'
$SCTOP$
'
,
'
0
'
);
div.innerHTML
=
h;
document.body.appendChild(div);
}
else
{
_this.updatePosstion();
}
}
_this.keyupFn
=
function
(e){
var
e
=
e
||
window.event;
var
code
=
e.keyCode;
if
(code
==
38
||
code
==
40
||
code
==
13
) {
if
(code
==
13
&&
D.$(config.wrap).style.display
!=
'
none
'
){
_this.enter();
}
return
false
;
}
var
cp
=
TT.getCursorPosition(elem);
if
(
!
cp)
return
_this.hide();
var
valuep
=
elem.value.slice(
0
, cp);
var
val
=
valuep.slice(
-
checkLength);
var
chars
=
val.match(
/
(\w+)?@(\w+)$|@$
/
);
if
(chars
==
null
)
return
_this.hide();
var
char
=
chars[
2
]
?
chars[
2
] :
''
;
D.$(config.valuepWrap).innerHTML
=
valuep.slice(
0
,valuep.length
-
char
.length).replace(
/
\n
/
g,
'
<br/>
'
).
replace(
/
\s
/
g,
'
'
)
+
config.positionHTML;
_this.showList(
char
);
}
_this.showList
=
function
(
char
){
key
=
char
;
var
data
=
DS.inquiry(friendsData,
char
,
5
);
var
html
=
listHTML.slice();
var
h
=
''
;
var
len
=
data.length;
if
(len
==
0
){_this.hide();
return
;}
var
reg
=
new
RegExp(
char
);
var
em
=
'
<em>
'
+
char
+
'
</em>
'
;
for
(
var
i
=
0
; i
<
len; i
++
){
var
hm
=
data[i][
'
user
'
].replace(reg,em);
h
+=
html.replace(
/
\$ACCOUNT\$|\$NAME\$
/
g,data[i][
'
name
'
]).
replace(
'
$SACCOUNT$
'
,hm).replace(
'
$ID$
'
,data[i][
'
user
'
]);
}
_this.updatePosstion();
var
p
=
D.$(config.position).getBoundingClientRect();
var
bs
=
D.BS();
var
d
=
D.$(config.wrap).style;
d.top
=
p.top
+
20
+
bs.top
+
'
px
'
;
d.left
=
p.left
-
5
+
'
px
'
;
D.$(config.listWrap).innerHTML
=
h;
_this.show();
}
_this.KeyDown
=
function
(e){
var
e
=
e
||
window.event;
var
code
=
e.keyCode;
if
(code
==
38
||
code
==
40
||
code
==
13
){
return
selectList.selectIndex(code);
}
return
true
;
}
_this.updatePosstion
=
function
(){
var
p
=
TT.info(elem);
var
bs
=
D.BS();
var
d
=
D.$(config.boxID).style;
d.top
=
p.top
+
bs.top
+
'
px
'
;
d.left
=
p.left
+
bs.left
+
'
px
'
;
d.width
=
p.width
+
'
px
'
;
d.height
=
p.height
+
'
px
'
;
D.$(config.boxID).scrollTop
=
elem.scrollTop;
}
_this.show
=
function
(){
selectList.list
=
D.$(config.listWrap).getElementsByTagName(
'
li
'
);
selectList.index
=
-
1
;
selectList._this
=
_this;
_this.cursorSelect(selectList.list);
elem.onkeydown
=
_this.KeyDown;
D.$(config.wrap).style.display
=
'
block
'
;
}
_this.cursorSelect
=
function
(list){
for
(
var
i
=
0
; i
<
list.length; i
++
){
list[i].onmouseover
=
(
function
(i){
return
function
(){selectList.setSelected(i)};
})(i);
list[i].onclick
=
_this.enter;
}
}
_this.hide
=
function
(){
selectList.list
=
null
;
selectList.index
=
-
1
;
selectList._this
=
null
;
D.ER(elem,
'
keydown
'
, _this.KeyDown);
D.$(config.wrap).style.display
=
'
none
'
;
}
_this.bind
=
function
(){
elem.onkeyup
=
_this.keyupFn;
elem.onclick
=
_this.keyupFn;
elem.onblur
=
function
(){setTimeout(_this.hide,
100
)}
//
elem.onkeyup= fn;
//
D.EA(elem, 'keyup', _this.keyupFn, false)
//
D.EA(elem, 'keyup', fn, false)
//
D.EA(elem, 'click', _this.keyupFn, false);
//
D.EA(elem, 'blur', function(){setTimeout(_this.hide, 100)}, false);
}
_this.enter
=
function
(){
TT.del(elem, key.length, key);
TT.add(elem, selectList.list[selectList.index].getElementsByTagName(
'
A
'
)[
0
].rel
+
'
'
);
_this.hide();
return
false
;
}
return
_this;
}