<?php
//===========================================================================
//* -- ~~ Shine Live Help ~~ -- *
//===========================================================================
// URL: http://www.iradeon.com/shine.html EMAIL: hide@address.com
// Copyright (C) 2006 iRadeon Group Inc. (http://www.iradeon.com )
// Shine is a derivative of Crafty Syntax Live Help,
// copyright (C) Eric Gerdes 2003--2006
// --------------------------------------------------------------------------
// LICENSE:
// 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;
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program in a file named LICENSE.txt .
// --------------------------------------------------------------------------
require_once("visitor_common.php");
if($serversession)
session_write_close();
// get the info of this user..
$query = "SELECT * FROM livehelp_users WHERE sessionid='".$identity['SESSIONID']."'";
$people = $mydatabase->query($query);
$people = $people->fetchRow(DB_FETCHMODE_ASSOC);
$myid = $people['user_id'];
// get a channel for this user:
$onchannel = createchannel($myid);
if(empty($UNTRUSTED['clear'])){ $clear = ""; } else { $clear = $UNTRUSTED['clear']; }
if(empty($UNTRUSTED['starttimeof'])){ $starttimeof = ""; } else { $starttimeof = $UNTRUSTED['starttimeof']; }
if(empty($UNTRUSTED['offset'])){ $offset = ""; } else { $offset = $UNTRUSTED['offset']; }
if(empty($UNTRUSTED['department'])){ $department = 0; } else { $department = intval($UNTRUSTED['department']); }
if(empty($UNTRUSTED['printit'])){ $printit = ""; } else { $printit = $UNTRUSTED['printit']; }
if(empty($UNTRUSTED['tab'])){ $tab = ""; } else { $tab = $UNTRUSTED['tab']; }
$message_test = date("YmdHis") -1;
// get department information...
$query = "SELECT * FROM livehelp_departments ";
if($department!=0)
$query .= " WHERE recno=".intval($department);
$data_d = $mydatabase->query($query);
$department_a = $data_d->fetchRow(DB_FETCHMODE_ASSOC);
$department = $department_a['recno'];
$topbackground = $department_a['topbackground'];
$colorscheme = $department_a['colorscheme'];
$query = "SELECT * FROM livehelp_users WHERE sessionid='".$identity['SESSIONID']."'";
$people = $mydatabase->query($query);
$people = $people->fetchRow(DB_FETCHMODE_ASSOC);
$myid = $people['user_id'];
$channel = $people['onchannel'];
$isnamed = $people['isnamed'];
$username = $people['username'];
$jsrn = get_jsrn($identity);
$mytimeof = date("YmdHis");
$query = "UPDATE livehelp_users set lastaction='$mytimeof' WHERE user_id='$myid' ";
$mydatabase->query($query);
if($clear == "now"){
// get the timestamp of the last message sent on this channel.
$query = "SELECT timeof FROM livehelp_messages WHERE saidto='$myid' ORDER BY timeof DESC";
$messages = $mydatabase->query($query);
$message = $messages->fetchRow(DB_FETCHMODE_ASSOC);
$timeof = $message['timeof'] - 2;
$offset = $message['timeof'] - 2;
$starttimeof = $message['timeof'] -2;
}
if($starttimeof != ""){
$timeof = $starttimeof;
$offset = $starttimeof;
} else {
$timeof = $offset;
}
if(empty($offset)){ $offset = 2; }
?>
<SCRIPT>
var ismac = navigator.platform.indexOf('Mac');
//-----------------------------------------------------------------
// Update the control image. This is the image that the operators
// use to communitate with the visitor.
function csgetimage()
{
imageloaded = 1;
// set a number to identify this page .
csID=Math.round(Math.random()*9999);
randu=Math.round(Math.random()*9999);
cscontrol = new Image;
var u = 'image.php?randu=' + randu + '&what=messagecheck' + '&message_test=<?php echo $message_test; ?>'
if (ismac > -1){
document.getElementById("imageformac").src= u;
document.getElementById("imageformac").onload = lookatimage;
} else {
cscontrol.src = u;
cscontrol.onload = lookatimage;
}
setTimeout('lookatimage()', 2000);
}
function lookatimage(){
if(typeof(cscontrol) == 'undefined' ){
setTimeout('refreshit()',9000);
return;
}
if(imageloaded == 1){
if (ismac > -1)
w = document.getElementById("imageformac").width;
else
w = cscontrol.width;
if( (w == 55) || (w == 0)){
delete cscontrol;
imageloaded = 0;
refreshit();
}
delete cscontrol;
imageloaded = 0;
}
}
csTimeout = 299;
imageloaded = 0;
cscontrol = new Image;
<?php
if($CSLH_Config['refreshrate']==1) { ?>
setInterval('csgetimage()', 4000);
<?php } ?>
function refreshit(){
window.location.replace("user_chat_refresh.php?department=<?php echo $department; ?>&tab=<?php echo $tab; ?><?php echo $querystringadd; ?>");
}
</SCRIPT>
<?php
if($CSLH_Config['refreshrate']!=1) {
print "<META HTTP-EQUIV=\"refresh\" content=\"". $CSLH_Config['refreshrate'] .";URL=user_chat_refresh.php?department=". $department ."&tab=". $tab . $querystringadd ."\">";
}
$abort_counter_end = 2;
// load javascript.
if($printit != "Y"){
?>
<SCRIPT LANGUAGE="JavaScript" SRC="javascript/xLayer.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="javascript/xBrowser.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="javascript/staticMenu.js"></SCRIPT>
<script language="JavaScript" src="javascript/dynapi/js/dynlayer.js"></script>
<SCRIPT LANGUAGE="JavaScript">
NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
W3C = (document.getElementById) ? 1 : 0;
setTimeout('up();',1000);
function up(){
scroll(1,10000000);
if(skipfocus == 0){
if(window.parent.bottomof.loaded){
window.parent.bottomof.shouldifocus();
}
}
}
skipfocus = 1;
setTimeout('skipfocus=0;',2999);
myBrowser = new xBrowser();
skipfocus = 1;
NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
W3C = (document.getElementById) ? 1 : 0;
starttyping_layer_exists = false;
var whatissaid = new Array(100);
for(i=0;i<100;i++){
whatissaid[i] = 'nullstring';
}
// start up the is typing layer...
//--------------------------------------------------------------
function starttyping(){
if (IE4){
docWidth = document.body.clientWidth;
} else {
docWidth = window.innerWidth;
}
myxvar = 50;
istyping_Layer = new DynLayer('UserIsTypingDiv');
CreateStaticMenu2("UserIsTypingDiv", myxvar2, 5);
starttyping_layer_exists = true;
}
// update the istyping layer.
//---------------------------------------------------------------
function update_typing(){
if(starttyping_layer_exists == true){
ouputtext = "";
foundtext = 0;
for(i=0;i<100;i++){
if(whatissaid[i]!='nullstring'){
ouputtext = ouputtext + whatissaid[i];
foundtext = 1;
}
}
if(foundtext == 1){
fulloutput = '<TABLE BORDER=0 WIDTH=400><TR BGCOLOR=#000000><TD><TABLE BORDER=0 WIDTH=100% CELLPADDING=0 CELLSPACING=0 BORDER=0 background=images/<?php echo $colorscheme; ?>/botbg.gif><TR><TD width=7><img src=images/blank.gif width=7 height=120></TD><TD valign=top><table width=400 background=images/<?php echo $colorscheme; ?>/botbg.gif><tr><td width=90%><?php echo str_replace("'","\\'",$lang['istyping']); ?></td><td width=10%><a href=javascript:istyping_Layer.hide();><b>X</b></a></td></tr></table><br>' + ouputtext + '</TD></TR></TABLE></TD></TR></TABLE>';
istyping_Layer.show();
istyping_Layer.write(fulloutput);
} else {
istyping_Layer.hide();
}
}
}
setTimeout('starttyping()',2000);
function delay(gap){ /* gap is in millisecs */
var then,now; then=new Date().getTime();
now=then;
while((now-then)<gap){ now=new Date().getTime();}
}
function up(){
scroll(1,10000000);
}
skipfocus = 1;
setTimeout('skipfocus=0;',2999);
ns4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;
readyone = ready = false; // ready for onmouse overs (are the layers known yet)
ready = true;
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
W3C = (document.getElementById) ? 1 : 0;
function start()
{
if (IE4){
docWidth = document.body.clientWidth;
} else {
docWidth = window.innerWidth;
}
myxvar = docWidth - 200;
//if (myxvar < 5){
myxvar = 250;
//}
CreateStaticMenu("MenuDiv", myxvar, 1);
}
function moveto(myblock,x,y)
{
myblock.xpos = x
myblock.ypos = y
myblock.left = myblock.xpos
myblock.top = myblock.ypos
}
function expandit() {
window.parent.resizeTo(window.screen.availWidth - 50,
window.screen.availHeight - 50);
if(IE4){
// everything should be ok..
} else {
setTimeout('refreshnow()',900);
}
}
function refreshnow(){
window.location.replace("user_chat_refresh.php?offset=<?php echo $offset; ?>&starttimeof=<?php echo $starttimeof; ?>&department=<?php echo $department; ?>&tab=<?php echo $tab; ?><?php echo $querystringadd; ?>");
}
</SCRIPT>
<body marginheight=0 marginwidth=0 leftmargin=0 topmargin=0 background=images/<?php echo $colorscheme; ?>/mid_bk.gif>
<DIV ID="UserIsTypingDiv" STYLE="position: absolute; z-index: 20; visibility: hidden; top: 0px; left: 0px;"></DIV>
<DIV id="MenuDiv" STYLE="position:absolute;left:250;top:10;width:100;">
<table width=200><tr><td valign=top><a href=javascript:window.print()><img src=images/print.gif width=25 height=25 border=0 Alt="Print"></a> <a href=user_chat_refresh.php?offset=<?php echo $offset; ?>&starttimeof=<?php echo $starttimeof; ?>&department=<?php echo $department; ?> ><img src=images/refresh.gif width=25 height=25 border=0 Alt="Refresh"></a> <a href=user_chat_refresh.php?clear=now&department=<?php echo $department; ?>><img src=images/clear.gif width=25 height=25 border=0 Alt="Clear"></a> <a href=livehelp.php?action=leave&department=<?php echo $department; ?> ><img src=images/exit.gif width=25 height=25 border=0 Alt="EXIT"></a></td></tr></table>
</DIV>
<SCRIPT>setTimeout('start()',900);</SCRIPT>
<pre>
</pre>
<?php
}
// delete auto-invited messages:
$query = "DELETE FROM livehelp_messages WHERE saidfrom='0' AND saidto='$myid'";
$mydatabase->query($query);
$abort_counter = 0;
$abort_counter_end=2;
$timeofDHTML = $timeof;
$timeof_new = $timeof;
$abort_counter++;
print showmessages($myid,"",$timeof,$channel);
?><SCRIPT>up(); setTimeout('up()',9);</SCRIPT><?php
$query = "SELECT * FROM livehelp_users WHERE user_id='$myid' AND status='chat'";
$alive = $mydatabase->query($query);
if($alive->numrows() == 0){
?><b><font color=990000>Session CLOSED!!</font></b><SCRIPT>up()</SCRIPT><?php
$abort_counter = 99999;
?>
<SCRIPT>
function redirectme(){
window.parent.location.replace("wentaway.php?department=<?php echo $UNTRUSTED['department']; ?>");
}
redirectme();
</SCRIPT>
<?php
$mydatabase->close_connect();
exit; }
$mydatabase->close_connect();
print " <img id=\"imageformac\" name=\"imageformac\" src=\"images/blank.gif\" width=10 heith=10 border=\"0\">";
?>
</body>
</html>