Location: PHPKode > projects > SHINE Live Help > shine-1.1.0/user_connect.php
<?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");

$where="";
if(empty($UNTRUSTED['offset'])){ $UNTRUSTED['offset'] = ""; }
if(empty($UNTRUSTED['department'])){ $UNTRUSTED['department'] = ""; }
if(empty($UNTRUSTED['printit'])){ $UNTRUSTED['printit'] = ""; } 
if(!(empty($UNTRUSTED['department']))){ $where = " WHERE recno=". intval($UNTRUSTED['department']); }
if(empty($UNTRUSTED['timeof'])){ $UNTRUSTED['timeof'] = 0; } 
if(empty($UNTRUSTED['tab'])){ $UNTRUSTED['tab'] = "";  }

//department information:
$sqlquery = "SELECT * FROM livehelp_departments $where ";
$data_d = $mydatabase->query($sqlquery);  
$department_a = $data_d->fetchRow(DB_FETCHMODE_ASSOC);
$department = $department_a['recno'];
$topbackground = $department_a['topbackground']; 
$colorscheme = $department_a['colorscheme']; 
$colorscheme = $department_a['colorscheme']; 
$timeout = $department_a['timeout']; 
$dieat = date("YmdHis", mktime( date("H"), date("i"), date("s")+($timeout*2), date("m"), date("d"), date("Y")) );

//user information:
$sqlquery = "SELECT * FROM livehelp_users WHERE sessionid='".$identity['SESSIONID']."'";	
$people = $mydatabase->query($sqlquery);
$people = $people->fetchRow(DB_FETCHMODE_ASSOC);
$myid = $people['user_id'];
$channel = $people['onchannel'];
$isnamed = $people['isnamed'];
$username = $people['username']; 
 
// see if anyone is online . if not send them to the leave a message page..
$sqlquery = "SELECT * 
          FROM livehelp_users,livehelp_operator_departments 
          WHERE livehelp_users.user_id=livehelp_operator_departments.user_id
            AND livehelp_users.isonline='Y'
            AND livehelp_users.isoperator='Y' 
            AND livehelp_operator_departments.department=".intval($department);
$data = $mydatabase->query($sqlquery);  
if($data->numrows() == 0){
 ?>
   <SCRIPT LANGUAGE="JavaScript" >
    window.parent.location.replace("livehelp.php?tab=1&doubleframe=yes&page=offline.php&department=<?php echo $department; ?>");       
    </SCRIPT>
 <?php
  $mydatabase->close_connect();
  exit;
} 

// see if someone is talking to this user on this channel if so send to chat:
$sqlquery = "SELECT * FROM livehelp_operator_channels WHERE channel=" . intval($channel) ." AND userid=".intval($myid) . " LIMIT 1";
$counting = $mydatabase->query($sqlquery);

// update the status of the use to chat:
$rightnow = date("YmdHis");

$sqlquery = "UPDATE livehelp_users
            SET chataction=$rightnow,status='chat' 
            WHERE user_id=".intval($myid);            
$mydatabase->query($sqlquery); 
 
$sqlquery = "UPDATE livehelp_users SET chataction=$rightnow,status='chat' WHERE sessionid='".$identity['SESSIONID']."'";
$mydatabase->query($sqlquery);  
      
// get chatmode:
if(empty($CSLH_Config['chatmode'])) 
   $CSLH_Config['chatmode'] = "flush-xmlhttp-refresh";

$chatmodes = explode('-',$CSLH_Config['chatmode']);
switch ($chatmodes[0]){
	 case "xmlhttp":
      $page = "is_xmlhttp.php";
      break;
	 case "flush":
      $page = "is_flush.php";
      break;
   default:
      $page = "user_chat_refresh.php";
      break;
}      

   
if( $counting->numrows() != 0){
    ?>
    <SCRIPT LANGUAGE="JavaScript" >
      window.parent.bottomof.location.replace("user_bot.php?department=<?php echo $UNTRUSTED['department']; ?>&channel=<?php echo $channel; ?>&myid=<?php echo $myid; ?><?php echo $querystringadd; ?>");
      window.location.replace("<?php echo $page; ?>?try=0&scriptname=user_chat&department=<?php echo $department; ?><?php echo $querystringadd; ?>"); 	 
    </SCRIPT>
 <?php
  $mydatabase->close_connect();
  exit;
} 

?>
<BODY marginheight=0 marginwidth=0 background=images/<?php echo $colorscheme; ?>/mid_bk.gif>
<SCRIPT LANGUAGE="JavaScript" >
function connect_user(){
    /* Need to wait a second here so that the operator side can get set
       up to receive the question. */
    window.parent.bottomof.location.replace("user_bot.php?department=<?php echo $UNTRUSTED['department']; ?>&channel=<?php echo $channel; ?>&myid=<?php echo $myid; ?><?php echo $querystringadd; ?>");
    window.location.replace("<?php echo $page; ?>?try=0&scriptname=user_chat&department=<?php echo $department; ?><?php echo $querystringadd; ?>");
}
 
function timeout_user(){
   window.parent.location.replace("livehelp.php?doubleframe=yes&page=offline.php&department=<?php echo $department; ?>");       	
}

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 + '&department=<?php echo $UNTRUSTED['department']; ?>&what=channelcheck&cslhVISITOR=<?php echo $identity['SESSIONID']; ?>&dieat=<?php echo $dieat; ?>';
	 
	 if (ismac > -1){
       document.getElementById("imageformac").src= u;
       document.getElementById("imageformac").onload = lookatimage;
    } else {
       cscontrol.src = u;
       cscontrol.onload = lookatimage;
    }   
    
}
function refreshit(){
  window.location.replace("user_connect.php");
}

function lookatimage(){
	
	if(typeof(cscontrol) == 'undefined' ){
		setTimeout('refreshit()',9000); 
    return; 
 }  
   
	 	if (ismac > -1)
      w = document.getElementById("imageformac").width;
    else
      w = cscontrol.width;      	  

    if(w == 55){
           delete cscontrol;
           imageloaded = 0; 	
  	       connect_user();
	   } 	        	            
    if(w == 101){
       timeout_user();
    }
     delete cscontrol;            
     imageloaded = 0;      
} 

 

var ismac = navigator.platform.indexOf('Mac');	
var csTimeout = 299; 
var imageloaded = 0;
var cscontrol = new Image;
   setInterval('csgetimage()', 2000);
</SCRIPT>
<center>

<table><tr><td><?php echo $department_a['whilewait']; ?></td></tr></table>

 <br><br> 
 <table cellpadding=0 cellspacing=0 border=0 background=images/<?php echo $colorscheme; ?>/botbg.gif>
   <tr>
    <td width=1 bgcolor=ffffff><img src=images/blank.gif width=1 height=1></td>
    <td width=200 bgcolor=ffffff><img src=images/blank.gif width=1 height=1></td>
    <td width=2 bgcolor=ffffff><img src=images/blank.gif width=2 height=1></td>
   </tr>
   <tr>
    <td width=1 bgcolor=ffffff><img src=images/blank.gif width=1 height=1></td>    
    <td><img src=images/connecting.gif width=200 height=40 border=0></td>
    <td width=2 bgcolor=ffffff><img src=images/blank.gif width=2 height=1></td>
   </tr>
   <tr>
    <td width=1 bgcolor=ffffff><img src=images/blank.gif width=1 height=2></td>
    <td width=200 bgcolor=ffffff><img src=images/blank.gif width=1 height=2></td>
    <td width=2 bgcolor=ffffff><img src=images/blank.gif width=2 height=2></td>
   </tr>  
  </table>
</center>
<img id="imageformac" name="imageformac" src=images/blank.gif border="0">
<?php
    $mydatabase->close_connect();
    exit;
?>
</body>
</html>
Return current item: SHINE Live Help