<%
' Response.buffer = True
'browser detection, never played with this long enough to make it cross browser happy.
Set objBCap = Server.CreateObject("MSWC.BrowserType")
If InStr(Request.ServerVariables("HTTP_USER_AGENT"), "MSIE 6") then
Browser = "IE6"
ElseIf objBCap.Browser = "IE" And CInt(objBCap.Version) >= 3 Then
Browser = "IE"
ElseIf objBCap.Browser = "Netscape" And CInt(objBCap.Version) >= 3 Then
Browser = "Netscape"
Else ' this if for opera etc
Browser = "Other"
End If
ACTION = Request("act")
if ACTION = "logout" then
Session.abandon
response.redirect "default.asp"
end if
if Session("user") = "" then
response.redirect "default.asp"
end if
ColorArr = Split("gray,black,purple,magenta,red,orange,gold,brown,green,blue,slateblue",",")
DefColor = 1
CalcLen = 256 - 41 - Len(Session("User"))
%>
<html>
<head>
<title>DreX's WebChat</title>
<style>
.handme {
cursor: hand;
font-family: Tahoma;
font-size: 8px;
}
.text
{
font-family: Tahoma;
font-size: 12px;
color: blue;
}
.messagetext
{
font-family: Tahoma;
font-size: 12px;
color: <=ColorArr(DefColor)%>;
}
.entry
{
font-family: Tahoma;
font-size: 12px;
border:solid;
border-width:1;
background:white;
}
</style>
<script type="text/javascript">
var msgpass
var msgstr
var refpoint
function scrollToBottom (element) {
if (document.all)
element.scrollTop = element.scrollHeight;
}
function processXML()
{
xmlDoc=new ActiveXObject("microsoft.xmldom");
xmlDoc.async=false;
xmlDoc.load("responsexml.asp");
makeDocument();
}
function appendXML()
{
if ( document.sender.msg.value == "" )
{
return false;
}
strvar = document.sender.msg.value
refpoint = strvar.lastIndexOf(' ')
if (refpoint > 0 && strvar.length==<%=CalcLen%>)
{
msgpass = strvar.substring(refpoint+1,strvar.length);
document.sender.msg.value = strvar.substring(0,refpoint);
}
else
{
msgpass="";
}
xmlDoc.load( "responsexml.asp?act=add&col=" + document.sender.color.value + "&name="+ URLEncode(document.sender.name.value) +"&msg="+ URLEncode(document.sender.msg.value) );
document.sender.msg.value = msgpass;
document.sender.msg.focus();
}
function makeDocument()
{
tableStr='<table border="0" class="text">';
messages=xmlDoc.documentElement.childNodes;
for ( i=0;i<messages.length;i++ )
tableStr+='<tr><td class="text" nowrap align="right" valign="top">'+messages[ i].childNodes[1].text+':</td><td class="messagetext" align="left" valign="top">'+messages[ i].childNodes[2].text+'</td></tr>';
tableStr+='</table>';
document.getElementById( "mainTable" ).innerHTML = tableStr;
Timer();
}
function Timer()
{
setTimeout( "processXML();",5000 );
}
function OpenClose(url,winid)
{
winvar = window.open(url,winid,'menubar=no,scrollbars=no,resizable=yes,width=200,height=200');
winid.focus();
}
function URLEncode(formobj)
{
// The Javascript escape and unescape functions do not correspond
// with what browsers actually do...
var SAFECHARS = "0123456789" + // Numeric
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetic
"abcdefghijklmnopqrstuvwxyz" +
"-_.!~*'()"; // RFC2396 Mark characters
var HEX = "0123456789ABCDEF";
var plaintext = formobj;
var encoded = "";
for (var i = 0; i < plaintext.length; i++ ) {
var ch = plaintext.charAt(i);
if (ch == " ") {
encoded += "+";
} else if (SAFECHARS.indexOf(ch) != -1) {
encoded += ch;
} else {
var charCode = ch.charCodeAt(0);
if (charCode > 255) {
alert( "Unicode Character '" + ch + "' cannot be encoded using standard URL encoding.\n" +
"(URL encoding only supports 8-bit characters.)\n" +
"A space (+) will be substituted." );
encoded += "+";
} else {
encoded += "%";
encoded += HEX.charAt((charCode >> 4) & 0xF);
encoded += HEX.charAt(charCode & 0xF);
}
}
} // for
return encoded;
};
function colorchanger(colorval)
{
document.sender.msg.style.color = colorval;
labelobj.style.color = colorval;
maintable.style.color = colorval;
document.body.style.scrollbarBaseColor = colorval;
document.sender.sendbtn.style.color = colorval;
document.body.style.scrollbarBaseColor = colorval;
}
function doKey(keypressed)
{
Key=keypressed.keyCode;
if (Key==13)
{
appendXML();
return false;
}
if (document.sender.msg.value.length==<%=CalcLen%>)
{
appendXML();
return false;
}
}
</script>
</head>
<body onload="processXML();colorchanger('<%=ColorArr(DefColor)%>');document.sender.msg.focus();" bgcolor="white" onclick="document.sender.msg.focus();" onUnload="window.open('logout.asp?name=<%=Server.URLEncode(Session("User"))%>','logout','status=no,menubar=no,location=no,scrollbars=no,resizable=no,width=75,height=75');" onfocus="document.sender.msg.focus();">
<script language="javascript">
<!--
var winh = 200;
var winw = 425;
window.resizeTo(winw,winh);
self.moveTo(screen.availWidth - winw,screen.availHeight - winh);
self.focus();
alert('You will be asked if you\nwant to close a window\n if so,\n select YES');
opener.close();
// -->
</script>
<div style="border:1px solid; width:98%; height:75%; overflow-y:auto; overflow-x:auto; background:white;" id="maintable" name="maintable">
<table valign="top" align="left" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><div id="mainTable"> </div></td>
</tr>
</table>
</div>
<table border="0" cellpadding="2" cellspacing="0">
<tr>
<td valign="baseline" align="right"><div id="labelobj" style="font-family: Tahoma;font-size: 12px;" valign="top"><%=Session("user")%>:</div></td>
<td valign="top" align="left" nowrap>
<form name="sender" onsubmit="return false;">
<input type="hidden" name="name" value="<%=Server.HTMLEnCode(Session("user"))%>">
<input type="hidden" name="color" value="<%=DefColor+1%>">
<input type="text" name="msg" size="<%=55-Len(Session("user"))%>" maxlength="<%=CalcLen%>" onKeyPress="return doKey(event);" class="entry">
<input type="button" value="Send" onclick="appendXML();" class="entry" id="sendbtn" name="sendbtn">
</td>
<td></form></td>
</tr>
<tr>
<td colspan="3" valign="top" align="left" nowrap>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="left"><%Colors%></td>
<td align="right">
<img src="/images/smileys/1.gif" border="0" onclick="OpenClose('smileys.asp','smileys');" class="handme">
<img src="/images/smileys/16.gif" border="0" onclick="OpenClose('smileys.asp?all=yes','smileys');" class="handme">
<img src="/images/smileys/06.gif" border="0" onclick="OpenClose('connected.asp','users');" class="handme">
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
<%
Function Colors()
Squaresize = 15
%>
<table bordercolor="yellow" border="1" cellspacing="0" cellpadding="2">
<tr>
<%
For colorval = 0 to ubound(colorarr)
%>
<td bgcolor="<%=ColorArr(colorval)%>" onClick="colorchanger('<%=colorarr(colorval)%>');document.sender.color.value='<%=Colorval+1%>';" height="<%=squaresize%>" width="<%=squaresize%>"class="handme"> </td>
<%
next
%>
</tr>
</table>
<%
End Function
%>