<?php
##############################################################
##In-portal													##
##############################################################
##					      In-portal							##
##					Intechnic Corporation					##
##			   All Rights Reserved, 1998-2002				##
##															##	
##	No portion of this code may be copied, reproduced or	##	
##	   otherwise redistributed without proper written		##
##	  consent of Intechnic Corporation.  Violation will		##
##	   result in revocation of the license and support		##
##	 privileges along maximum prosecution allowed by law.	##
##############################################################

if(!strlen($pathtoroot))
{
  $path=dirname(realpath($_SERVER['SCRIPT_FILENAME']));
  if(strlen($path))
  {
    /* determine the OS type for path parsing */
    $pos = strpos($path,":");
    if ($pos === false)
    {
      $gOS_TYPE="unix";
      $pathchar = "/";
    }
    else
    {
      $gOS_TYPE="win";
      $pathchar="\\";
    }
    $p = $path.$pathchar;
    /*Start looking for the root flag file */
    while(!strlen($pathtoroot) && strlen($p))
    {
      $sub = substr($p,strlen($pathchar)*-1);
      if($sub==$pathchar)
      {
        $filename = $p."root.flg";
      }
      else
        $filename = $p.$pathchar."root.flg";
      if(file_exists($filename))
      {
        $pathtoroot = $p;
      }
      else
      {
        $parent = realpath($p.$pathchar."..".$pathchar);
	if($parent!=$p)
	{
	  $p = $parent;
	}
	else
	  $p = "";
      }
    }
    if(!strlen($pathtoroot))
      $pathtoroot = ".".$pathchar;
  }
  else
  {
    $pathtoroot = ".".$pathchar;
  }
}

$sub = substr($pathtoroot,strlen($pathchar)*-1);
if($sub!=$pathchar)
{
  $pathtoroot = $pathtoroot.$pathchar;
}
//echo $pathtoroot;

require_once($pathtoroot."kernel/startup.php");

if (!admin_login())
{            
    if(!headers_sent())
      setcookie("sid"," ",time()-3600);
    $objSession->Logout();
    header("Location: ".$adminURL."/login.php");
    die();
	//require_once($pathtoroot."admin/login.php");
}

$admin = $objConfig->Get("AdminDirectory");
if(!strlen($admin))
    $admin = "admin";
$rootURL="http://".ThisDomain().$objConfig->Get("Site_Path");

$localURL=$rootURL."kernel/";
$adminURL = $rootURL.$admin;
$imagesURL = $adminURL."/images";

//admin only util

$pathtolocal = $pathtoroot."kernel/";

require_once ($pathtoroot.$admin."/include/elements.php");
require_once ($pathtoroot."kernel/admin/include/navmenu.php");
require_once ($pathtolocal."admin/include/navmenu.php");
require_once($pathtoroot.$admin."/toolbar.php");
require_once($pathtoroot.$admin."/listview/listview.php");

$pathtolocal = $pathtoroot;

//Set Section
if(strlen($_GET["section"]))
{
    $section = $_GET["section"];
}
else
  $section = 'in-portal:userselect'; 

//Set Environment Variable
$envar = "env=" . BuildEnv(); 

//Display header

$objListToolBar = new clsToolBar();

$objListToolBar->Set("section",$section);
$objListToolBar->Set("load_menu_func","");
$objListToolBar->Set("CheckClass","UserChecks");
  
$listImages = array();
                    //$img, $alt, $link, $onMouseOver, $onMouseOut, $onClick

$objListToolBar->Add("select", "la_ToolTip_Select","#","swap('select','toolbar/tool_select_f2.gif');",
                    "swap('select', 'toolbar/tool_select.gif');",
                     "SelectSubmit();",
                     "tool_select.gif");

$objListToolBar->Add("cancel", "la_ToolTip_Stop","#","swap('cancel','toolbar/tool_cancel_f2.gif');",
                    "swap('cancel', 'toolbar/tool_cancel.gif');","window.close();","tool_cancel.gif");


//$objListToolBar->AddToInitScript($listImages);

$order = $objConfig->Get("UserSelect_SortOrder");

$SearchWords = $objSession->GetVariable("UserSelectSearchWord");

if(strlen($SearchWords))
    $SearchWhere = $objUsers->AdminSearchWhereClause($SearchWords);

$where = strlen($SearchWhere) ? "AND $SearchWhere" : '';

$SelectorType = $_REQUEST["Selector"] ? $_REQUEST["Selector"] : 'checkbox';

if(strlen($_GET["source"])>0)
{
  switch($_GET["source"])
  {    
    case "addgroup_users":
      $SelectorType = "radio"; 
      $ado = GetADODBConnection();  
      $sql = "SELECT Distinct(PortalUserId) FROM ".GetTablePrefix()."UserGroup WHERE GroupId=".$_GET["GroupId"];    
      $rs = $ado->Execute($sql);
      $inlist = array();
      while($rs && !$rs->EOF)
      {
        array_push($inlist,$rs->fields["PortalUserId"]);
        $rs->MoveNext();
      }
      if(count($inlist)>0)
      {      
        $catlist = implode(",",$inlist);
        $field = $objConfig->Get("UserSelect_SortField");
        if(!strlen($field))
            $field = "Login";
        $orderby = $field." ".$order;
        $sql = "SELECT u.*,g.Name as GroupName,ELT(u.status+1,'".admin_language("la_Text_Disabled")." ','".admin_language("la_Text_Enabled")." ','".admin_language("la_Text_Pending")."') as UserStatus, ";
        $sql .="FROM_UNIXTIME(u.CreatedOn,'%m-%d-%Y') as DateCreated FROM ".GetTablePrefix()."PortalUser as u ";
        $sql .="LEFT JOIN ".GetTablePrefix()."UserGroup as ug ON (u.PortalUserId=ug.PortalUserId) ";
        $sql .="LEFT JOIN ".GetTablePrefix()."PortalGroup as g ON (ug.GroupId=g.GroupId) WHERE ";
        $sql .= "u.PortalUserId NOT IN (".$catlist.")";
        
        $sql .=" ".GetLimitSQL($objSession->GetVariable("Page_UserSelect"),$objConfig->Get("Perpage_User"));
        $objUsers->Query_Item($sql);

        $itemcount = TableCount(GetTablePrefix()."PortalUser","PortalUserId NOT IN ($catlist)",0);
      }
      else
      {      
          $sql = "SELECT u.*,g.Name as GroupName,ELT(u.status+1,'".admin_language("la_Text_Disabled")." ','".admin_language("la_Text_Enabled")." ','".admin_language("la_Text_Pending")."') as UserStatus, ";
          $sql .="FROM_UNIXTIME(u.CreatedOn,'%m-%d-%Y') as DateCreated FROM ".GetTablePrefix()."PortalUser as u ";
          $sql .="LEFT JOIN ".GetTablePrefix()."UserGroup as ug ON (u.PortalUserId=ug.PortalUserId) ";
          $sql .="LEFT JOIN ".GetTablePrefix()."PortalGroup as g ON (ug.GroupId=g.GroupId) WHERE ug.PrimaryGroup!=0";
          $sql .=" ".GetLimitSQL($objSession->GetVariable("Page_UserSelect"),$objConfig->Get("Perpage_User"));
          $objUsers->Query_Item($sql);
          $itemcount = TableCount(GetTablePrefix()."PortalUser","PortalUserId NOT IN ($catlist)",0);

      }
    break;
  }
}
else
{
    $sql = "SELECT u.*,g.Name as GroupName,ELT(u.status+1,'".admin_language("la_Text_Disabled")." ','".admin_language("la_Text_Enabled")." ','".admin_language("la_Text_Pending")."') as UserStatus, ";
    $sql .="FROM_UNIXTIME(u.CreatedOn,'%m-%d-%Y') as DateCreated FROM ".GetTablePrefix()."PortalUser as u ";
    $sql .="LEFT JOIN ".GetTablePrefix()."UserGroup as ug ON (u.PortalUserId=ug.PortalUserId) ";
    $sql .="LEFT JOIN ".GetTablePrefix()."PortalGroup as g ON (ug.GroupId=g.GroupId) WHERE ug.PrimaryGroup!=0 $where";
    $sql .=" ".GetLimitSQL($objSession->GetVariable("Page_UserSelect"),$objConfig->Get("Perpage_User"));
    
    $objUsers->Query_Item($sql);
    $itemcount = TableCount(GetTablePrefix()."PortalUser","PortalUserId NOT IN ($catlist)",0);
}

if($objSession->HasSystemPermission("DEBUG.LIST"))
   echo htmlentities($sql,ENT_NOQUOTES)."<br>\n";

$objListView = new clsListView($objListToolBar,$objUsers);
if(strlen($_GET["IdField"])>0)
{
    $objListView->IdField = $_GET["IdField"];
}
else
  $objListView->IdField = "ResourceId";
if(strlen($_GET["ReturnField"])>0)
{
  $ReturnField = $_GET["ReturnField"];
}
else
  $ReturnField = $objListView->IdField;

$objListView->PageLinkTemplate = $pathtoroot.$admin."/templates/user_page_link.tpl";

$objListView->ColumnHeaders->Add("Login",admin_language("la_prompt_Username"),1,0,$order,"width=\"15%\"","User_SortField","User_SortOrder","Login");
$objListView->ColumnHeaders->Add("LastName",admin_language("la_prompt_Last_Name"),1,0,$order,"width=\"15%\"","User_SortField","User_SortOrder","LastName");
$objListView->ColumnHeaders->Add("FirstName",admin_language("la_prompt_First_Name"),1,0,$order,"width=\"15%\"","User_SortField","User_SortOrder","FirstName");
$objListView->ColumnHeaders->Add("Email",admin_language("la_prompt_Email"),1,0,$order,"width=\"20%\"","User_SortField","User_SortOrder","Email");
$objListView->ColumnHeaders->Add("GroupName",admin_language("la_prompt_PrimaryGroup"),1,0,$order,"width=\"20%\"","User_SortField","User_SortOrder","GroupName");
$objListView->ColumnHeaders->Add("DateCreated",admin_language("la_prompt_CreatedOn"),1,0,$order,"width=\"15%\"","User_SortField","User_SortOrder","DateCreated");
$objListView->ColumnHeaders->SetSort($objConfig->Get("User_SortField"),$order);


$objListView->PrintToolBar = FALSE;
$objListView->SearchBar = TRUE;
$objListView->SearchKeywords = $SearchWords;
$objListView->SearchAction="m_userselect_search";
$objListView->CurrentPageVar = "Page_UserSelect";
$objListView->PerPageVar = "Perpage_User";
$objListView->CheckboxName = "itemlist[]";
$objListView->SelectorType=$SelectorType;
$objListView->TotalItemCount = $itemcount;

$vals = array_keys($_GET);
for($i=0;$i<count($vals);$i++)
{
 $key = $vals[$i];
 if($key != "env")
 {     
     if(strlen($extra_env))
        $extra_env .= "&";
     $extra_env .= $key."=".$_GET[$key];
 }
}

$objListView->extra_env = $extra_env;

for($i=0;$i<count($objUsers->Items);$i++)
{
    $u =& $objUsers->GetItemRefByIndex($i);
    $objListView->RowIcons[] = $u->StatusIcon();
}

int_header($objListToolBar);


if(strlen($_GET["values"]))
{
  $current_value = explode(",",$_GET["values"]);
}
?>
<FORM method="POST" ACTION="" NAME="userlistform" ID="userlistform">
<?php
  print $objListView->PrintList();
?>
<input type="hidden" name="Action" value="">
</FORM>
<!-- CODE FOR VIEW MENU -->
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"]; ?>" name="viewmenu">
<input type="hidden" name="fieldname" value="">
<input type="hidden" name="varvalue" value="">
<input type="hidden" name="varvalue2" value="">
<input type="hidden" name="Action" value="">
</form>

<FORM ID="ListSearchForm" NAME="ListSearchForm" method="POST" action="<?php 
	echo $_SERVER["PHP_SELF"]."?env=".BuildEnv().PassVar($_GET,'destform','destfield','Selector','IdField'); 
	?>">
   <input type="hidden" name="destform" value="<?php echo $destform; ?>">
   <input type="hidden" name="dosubmit" value="<?php echo $_REQUEST['dosubmit']; ?>">
   <INPUT TYPE="HIDDEN" NAME="Action" VALUE="">
   <INPUT TYPE="HIDDEN" NAME="list_search">
</FORM>

<script src="<?php echo $adminURL; ?>/listview/listview.js"></script>
<script>
initSelectiorContainers();
<?php echo $objListToolBar->Get("CheckClass").".setImages();"; ?>
</script>
<!-- END CODE-->
<?php int_footer(); ?>