%
title=":::ChatBox:::" 'title of web page
Dim NUMBER_OF_MSG : NUMBER_OF_MSG = 20
Dim CHAT_TIMEOUT : CHAT_TIMEOUT = 10
function checkLogin()
if Trim(request.Cookies("cblogin"))="" then
response.write ""
end if
if mid(request.Cookies("cblogin"),1,1)=" " then
response.write ""
end if
end function
function moveUp()
for i = NUMBER_OF_MSG to 2 step -1
Application(i)=Application(i-1)
next
end function
select case lcase(request("act"))
case "log":
if (InStr(application("cbusrs"), request("log"))<>0) then response.redirect("chat.asp?err=1&usr=" & request("log"))
Response.Cookies("cblogin")=request("log")
Application.Lock
application("cbusrs") = application("cbusrs") & "," & request("log")
application("cbtmrs") = application("cbtmrs") & "," & now()
moveUp
Application("1")=""& request.Cookies("cblogin") & " enters chatBox"
Application.Unlock
Response.Redirect "chat.asp?act=display"
case "post":
checkLogin
if request("text") = "" then response.end
Application.Lock
moveUp
Application("1")="" & request.Cookies("cblogin") & ":"& request("text")
Application.Unlock
users = Split(Application("cbusrs"),",")
tmrs = Split(Application("cbtmrs"),",")
for i=0 to UBound(users)
if users(i) = request.Cookies("cblogin") then
tmrs(i) = now()
exit for
end if
next
Application.Lock()
Application("cbtmrs") = Join(tmrs,",")
Application.Unlock()
Response.End
case "logo":
Response.Write "
"
Response.Write "
"
Response.End
case "logout":
Application.Lock
moveUp
Application("1")=""& request.Cookies("cblogin") & " leaves chatroom"
Application.Unlock
users=split(application("cbusrs"),",")
tmrs =split(Application("cbtmrs"),",")
userscount=UBound(users)
for i= 0 to userscount
if users(i) <> request.Cookies("cblogin") then
newusers = users(i) & ","
newtmrs = tmrs(i) & ","
end if
next
if len(newusers) > 0 then
newusers = left(newusers,len(newusers)-1)
newtmrs = left(newtmrs,len(newtmrs)-1)
end if
Application.Lock
Application("cbusrs") = newusers
Application("cbtmrs") = newtmrs
Application.Unlock
Response.Cookies("cblogin")=""
Response.Redirect"chat.asp"
case "frm":
checkLogin
%>
<%
case "shw":
checkLogin
Response.Write ""
Response.Write ""
Response.Write ""
for f=1 to 20
Response.Write Application(f) & " "
next
users = Split(Application("cbusrs"),",")
tmrs = Split(Application("cbtmrs"),",")
for i=0 to UBound(users)
if users(i) = request.Cookies("cblogin") then
if DateDiff("n",CDate(tmrs(i)),now()) > CHAT_TIMEOUT then ' 10 minutes
blnTimeout = true
exit for
end if
end if
next
if blnTimeout then
Application.Lock
moveUp
Application("1")=""& request.Cookies("cblogin") & " has timeout"
Application.Unlock
for i= 0 to UBound(users)
if users(i) <> request.Cookies("cblogin") then
newusers = users(i) & ","
newtmrs = tmrs(i) & ","
end if
next
if len(newusers) > 0 then
newusers = left(newusers,len(newusers)-1)
newtmrs = left(newtmrs,len(newtmrs)-1)
end if
Application.Lock
Application("cbusrs") = newusers
Application("cbtmrs") = newtmrs
Application.Unlock
Response.Cookies("cblogin")=""
checkLogin
end if
case "lst":
Response.Write ""
Response.Write "
"
users=split(application("cbusrs"),",")
userscount=UBound(users)
for f = 0 to userscount
response.write users(f) & " "
next
response.Write "
"
case "display":
%>
<%=title%>
<%
case default:%>
<%
if Request.Cookies("emchatrefresh")="" then response.Cookies("emchatrefresh")="3"
if request.Cookies("cblogin")<>"" then response.redirect "chat.asp?act=display"
%>