<?php
include("/usr/local/www/htdocs/global.php");
include("/usr/local/www/htdocs/cserver.php");

// $sid = VerifySession(PGET('sid'));

$default_serv = "Maks";
$ops_default = "Maks";

$use_secure = PGET('use_secure');
if($use_secure || $_SERVER['SERVER_PORT'] == 443) {
  $secure = 1;
  $default_serv = $ops_default;
} else {
  $secure = 0;
}

$start_server = PGET('start_server');

$hostname = $_SERVER['SERVER_NAME'];
$myaddr = $_SERVER['HTTP_ADDR'];

if (preg_match("/alamak\.com\.sg$/", $hostname )) {
    $domain = "alamak.com.sg";
} else if (preg_match("/alamak\.com$/", $hostname )) {
    $domain = "alamak.com";   
} else if (preg_match("/alamak\.net$/", $hostname )) {
    $domain = "alamak.net";
} else {
    $domain = $hostname;
}
$svid = '';
if (isset($_COOKIE['svid'])) {
    $svid = $_COOKIE['svid'];
}
if (!$start_server) {

    if (preg_match("/^sg\.|^singapore\./", $hostname )) {
        $start_server = "sg";
    } else if (preg_match("/^fc\./", $hostname )) {
        $start_server = "fc";
    } else if (preg_match("/^global\./", $hostname )) {
        $start_server = "sv2";
    } else if (preg_match("/^me\.|^sa\.|^ae\.|^qt\.|^arab/", $hostname )) {
        $start_server = "ar";
    } else if (preg_match("/^au\.|^australia\.|^aussie\.|^australian\./", $hostname )) {
        $start_server = "au";
    } else if (preg_match("/^ca\.|^canad/", $hostname )) {
        $start_server = "ca";
    } else if (preg_match("/^fr\.|^franc|^conversation\.|^french\.|^quebec\./", $hostname )) {
        $start_server = "fr";
    } else if (preg_match("/inuit/", $hostname )) {
        $start_server = "in2";
    } else if (preg_match("/^littleindia/", $hostname )) {
        $start_server = "lindia";
    } else if (preg_match("/^in\.|^ind\.|^india\.|^hindi\.|^tamil\./", $hostname )) {
        $start_server = "india";
    } else if (preg_match("/^id\.|^indon/", $hostname )) {
        $start_server = "id";
    } else if (preg_match("/^my\.|^malay|^sembang\./", $hostname )) {
        $start_server = "my";
    } else if (preg_match("/^ph\.|^phil|^pinoy\.|^pinay\.|^filip/", $hostname )) {
        $start_server = "ph";
    } else if (preg_match("/^espanol\.|^spanish\.|^es\.|^charlar\.|^charla\.|^ar\.|^br\.|^ch\.|^es\.|^mx\.|^pr\./", $hostname )) {
        $start_server = "mx";
    } else if (preg_match("/^espanol\.|^spanish\.|^es\.|^charlar\.|^charla\.|^es\./", $hostname )) {
        $start_server = "mx";
    } else if (preg_match("/^mx\.|^mex/", $hostname )) {
        $start_server = "mx";
    } else if (preg_match("/^vn\.|^viet/", $hostname )) {
        $start_server = "vn";
    } else if (preg_match("/^tr\.|^turk/", $hostname )) {
        $start_server = "tr";
    } else if (preg_match("/^pk\.|paki/", $hostname )) {
        $start_server = "pk";
    } else if (!$svid) {
        $start_server = "sv1";
    }
}
// $err .= "Test Error svid=$svid start_server=$start_server<br>\n";
if (!$start_server && $svid) {
    if (preg_match("/^(\w+)\.(.+)/", $svid, $m)) {
        reset($SERVERS);
        foreach($SERVERS as $key=>$server) {
            // $err .= "T1 uid=" . $server->uid . " scode=" . $server->scode . " m[1]=$m[1]<br>"; 
            if ($server->uid == $m[1] || $server->scode == $m[1]) {
                $start_server = $server->uid;
                $override = $m[2];
                break;
            }
        }
    }
}
// if (!$svid && $start_server) {
if ($start_server) {
    reset($SERVERS);
    foreach($SERVERS as $key=>$server) {
        // $err .= "T2 uid=" . $server->uid . " scode=" . $server->scode . " start_server=$start_server<br>"; 
        if ($server->uid == $start_server || $server->scode == $start_server) {
            $start_server = $server->uid;
            $found_server = 1; 
            $on_load = "onLoad=\"scook('$server->uid','$server->default_room')\"";
            break;
        }
    }
    if (!$found_server) {
        $start_server = "";
    }
}

if (!$start_server && $default_serv) {
    reset($SERVERS);
    foreach($SERVERS as $key=>$server) {
        if ($server->name == $default_serv) {
            $start_server = $server->uid;
            break;
        }
    }
}
if (!$start_server) {
    reset($SERVERS);
    foreach($SERVERS as $key=>$server) {
        $start_server = $server->uid;
        break;
    }
}

reset($SERVERS);
foreach($SERVERS as $key=>$server) {
    if ($start_server == $server->uid || $start_server == $server->scode) {
        $start_server = $server->uid;
        break;
    }
}
reset($SERVERS);

// get the room counts
// replacement code will insert roomcounts after here
$rc = array ();
$rc["MY.Malaysia"] = "15";//RCD
$rc["3.Pakistan"] = "1";//RCD
$rc["2.Philippines"] = "1";//RCD
$rc["1.Maks"] = "13";//RCD
$rc["FC.FrameChat"] = "1";//RCD
$rc["SG.Alamak"] = "21";//RCD
$rc["SG.Singapore"] = "13";//RCD
$rsid = '';
for ($i=0; $i<=11; $i++) {
  $rand = rand(65, 90); 
  $rsid .= sprintf("%c",$rand);
}
$code='';
for ($i=0; $i<=5; $i++) {
  if (rand(0,3) < 1) {
    $code .= (int)rand(2,9);
  } else {
    $code .= sprintf("%c",rand(97,122));
  }
}

global $roomcount_table;
global $time;


// disable this code use replacement above with template_chatlogin.php and /root/room_counts.cron
$dbh = db_connect("web_data");
if($dbh) {
 access_log('');
  // get room counts
//  $query = "select IDX,Server,Room,Count,UTime from $roomcount_table";
//  $result = mysqli_query($dbh,$query) or log_errors_silent('MySQL Error: '.mysqli_error($dbh).' query='.$query);
//  if ($result && mysqli_num_rows($result) >= 1) {
//    while ($r = mysqli_fetch_array($result)) {
//      if ($r[1] && $r[2] && $r[3] && $time-$r[4] < 600) {
//	$rc["$r[1].$r[2]"] = $r[3];
//      } else {
//	$query2 = "delete from $roomcount_table where IDX='$r[0]'";
//	$result2 = mysqli_query($dbh,$query2) or log_errors_silent('MySQL Error: '.mysqli_error($dbh).' query='.$query2);
//	unset($result2);
//      }
//    }
//  }
//  if( $result) { @mysqli_free_result($result); }

  // check robots on and insert if needed
  if ($server->scode) {
    //$query = "select Server from NoRobots where Server='$server->scode'";
    // $err .= "query=$query<br>\n";
    //$result = mysqli_query($dbh,$query) or log_errors_silent('MySQL Error: ' . mysqli_error($dbh));
    //if ($result && mysqli_num_rows($result) >= 1) {
    //  $norobots = 1;
    //}
    //if ($result) { mysqli_free_result($result); }

      if (is_file("/tmp/norobots" . $server->scode)) {
          $norobots = 1;
      }
      if ($norobots) {
          $query = "insert into NoRobotsCode values (NULL,'$rsid','$code','$time','0')";
          $result = mysqli_query($dbh,$query) or log_errors_silent('MySQL Error: ' . mysqli_error($dbh));
          if ($result) {
              $norobots = mysqli_insert_id($dbh);
          } else {
              $norobots = "";
              log_errors_silent('No Result for insert into RobotCode table');
          }
          unset($result);
      }
  }
  db_close($dbh);
}

$host = GetEnv('HTTP_HOST');
if (preg_match("/rust/i", $host)) {
  $sv = "ru";
} else if (preg_match("/^sg\.|^singapore\./i", $host)) {
  $sv = "sg";

// here
} else if (preg_match("/sg|lin|sgm/i", $start_server)) {
  $sv = "sg";

} else if (preg_match("/malay|^my\./i", $host)) {
  $sv = "my";
} else {
  $sv = "us";
}
$mirror = '';
foreach ($mirrors as $key=>$val) {
    if ($sv == $key->id) {
        $mirror = $val;
        break;
    }
}

// global $col,$color;
// $c = $col[$color];

$js = "<script language=\"javascript\" type=\"text/javascript\">
<!-- hide
function scook(svid,room) {
  document.cookie='svid='+svid+'.'+room+'; domain=$domain; path=/; expires=Sun, 01-Jan-2006 10:10:10 GMT;';
}
function AltPort(form, url, alturl, sec_url, sec_alturl) {
 var secure='$secure';
 if(form.ap.checked) {
  if(secure == '1' || form.https.checked)
   form.action = sec_alturl;
  else
    form.action = alturl
 } else {
   if(secure == '1' || form.https.checked)
    form.action = sec_url;
   else
    form.action = url
 }
}
// -->
</script>\n";
// $on_load = "onLoad=\"foc()\"";

PageTopBG("Chat Login");
ChatLogin($start_server);
PageEnd();

function ChatLogin($start_server) {
    global $PHP_SELF;
    global $SERVERS;
    global $rc;
    global $norobots;
    global $rsid;
    global $hostname;
    global $mirror;
    global $secure; 
    global $time;
    global $agent;
    global $color;
    global $col;
    global $err;
    $c = $col[$color];
    $bg = "#666666";
    $first_server = '';
  
  if ($mirror && $mirror->name != '') {
    $page_title = $mirror->name . " Chat Login";
  } else {
    $page_title = "Chat Login";
  }

  TableTopBG($page_title, "", "", "", $c[2]);

  if ($err) {
    if ($agent=='NS') {
      $font1 = "<font size=-1>";
      $font2 =  "</font>";
      print "<tr><td align=center background=\"/img/bg.gif\"><br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\" background=\"\">\n<tr><td align=center><table width=\"100%\" border=0 cellspacing=0 cellpadding=3 bgcolor=\"#FFFFFF\" background=\"\">\n";
    } else {
      print "<tr><td align=center><br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\">\n<tr><td align=center><table width=\"100%\" cellpadding=3 bgcolor=\"#FFFFFF\">\n";
    }
    TableLine("Debug", "", $c[2]);
    print "<tr><td>$err</td></tr>\n";
    print "</table></td></tr></table>\n";
  }

  if ($agent=='NS') {
    $font1 = "<font size=-1>";
    $font2 =  "</font>";
    print "<tr><td align=center background=\"/img/bg.gif\"><br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\" background=\"\">\n<tr><td align=center><table width=\"100%\" border=0 cellspacing=0 cellpadding=3 bgcolor=\"#FFFFFF\" background=\"\">\n";
  } else {
    print "<tr><td align=center><br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\">\n<tr><td align=center><table width=\"100%\" cellpadding=3 bgcolor=\"#FFFFFF\">\n";
  }
  if (preg_match("/backup|^202\.56\.144\.86$/",$hostname)) {
    TableLine("Backup Servers 1 2 3 MY &amp; TR", "", $c[2]);
    print "<tr><td><center>
<b class=\"red\">NOTICE THESE ARE BACKUP SERVERS</b>
</center>
<br>
These servers are only a backup and should be used only in case you can not access <a href=\"http://www.alamak.com\">http://www.alamak.com</a>.
<br><br>
If you do not find your normal group of chatters here go to our main US Cluster, or try the US Cluster frequently to see if it is back up again.
<br>
<center><b><a href=\"http://www.alamak.com\">www.alamak.com</a></b></center>
</td></tr>\n";
    print "</table></td></tr></table>\n";
  } else {
    TableLine("Important Notice", "", $c[2]);
    print "<tr><td colspan=6><center>
<b>WELCOME TO THE 2025 NEW FASTER ALAMAK CHAT SERVER!!<br>
<a href=\"https://play.google.com/store/apps/details?id=com.staticint.intropls\" target=\"andapp\">Try The Alamak App for Android!!!</a></b>
</center></td></tr>\n";
    print "</table></td></tr></table>\n";
  }

//If you can not access alamak.com or www.alamak.com please try our backup cluster which is <b><a href=\"http://backup.alamak.com\">http://backup.alamak.com</a></b>. Please write down or remember this address in case you can not access the regular servers. This address is also on our list of mirrors in the top right corner of our login page.
//<center><b><a href=\"http://backup.alamak.com\">http://backup.alamak.com</a></b></center>

  if ($agent=='NS') {
    $font1 = "<font size=-1>";
    $font2 =  "</font>";
    print "<br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\" background=\"\">\n<tr><td align=center><table width=\"100%\" border=0 cellspacing=0 cellpadding=3 bgcolor=\"#FFFFFF\" background=\"\">\n";
  } else {
    print "<br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\">\n<tr><td align=center><table width=\"100%\" cellpadding=3 bgcolor=\"#FFFFFF\">\n";
  }
  TableLine("Step 1: Select a Server", 6, $c[2]);

  $count = 0;
  $users = "";
  reset($SERVERS);
  foreach($SERVERS as $key=>$server) {
    if ($start_server == $server->uid) {
      $img =  "bul_on.gif";
    } else {
      $img =  "bul_off.gif";
    }
    $k = $server->scode . "." . $server->default_room;
    if (!isset($rc[$k]) || $rc[$k] < 1) {
      $users = "";
    } else {
      $users = " ($rc[$k] users)";
    }
    if ($count%3==0) {
      print "<tr>";
    } 
    if ($first_server == $server->uid) {
      print "<td><img src=\"/img/$img\" width=7 height=7></td><td nowrap><a href=\"#$server->uid\" onClick=\"scook('$server->uid','$server->default_room')\">$server->name$users</a>&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
    } else {
        if ($secure) {
            $vserver = "https://";
            if (preg_match("/alamak\.com\.sg$/", $hostname )) {	  
                $vserver .= "alamak.com.sg";
            } else if (preg_match("/alamak\.com$|alamak\.net$/", $hostname )) {	  
                $vserver .= "alamak.com";
            }
        } else {
            $vserver = "http://";
            if ($server->vhost) {
                $vserver .= $server->vhost;
            } else if (preg_match("/alamak\.com\.sg$/", $hostname )) {	  
                $vserver .= "alamak.com.sg";
            } else if (preg_match("/alamak\.com$|alamak\.net$/", $hostname )) {	  
                $vserver .= "www.alamak.com";
            } else {
                $vserver .= "failed.alamak.com";
            }
        }
        print "<td><img src=\"/img/$img\" width=7 height=7></td><td nowrap><a href=\"$vserver/chatlogin.php?start_server=$server->uid\" onClick=\"scook('$server->uid','$server->default_room')\">$server->name$users</a>&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
    }
    $count++;
    if ($count%3==0) {
      print "</tr>";
    }
  }
  if ($count%3!=0) {
    while ($count%3!=0) {
      print "<td>&nbsp;</td><td>&nbsp;</td>\n";
      $count++;
    }
    print "</tr>";
  }
  print "</table></td></tr></table>\n";

  reset($SERVERS);
  foreach($SERVERS as $key=>$server) {
    if ($start_server == $server->uid) {
      break;
    }
  }
  if ($err) {
    if ($agent=='NS') {
    $font1 = "<font size=-1>";
    $font2 =  "</font>";
    print "<br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\" background=\"\">\n<tr><td align=center><table width=\"100%\" border=0 cellspacing=0 cellpadding=3 bgcolor=\"#FFFFFF\" background=\"\">\n";
    } else {
      print "<br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\">\n<tr><td align=center><table width=\"100%\" cellpadding=3 bgcolor=\"#FFFFFF\">\n";
    }
    TableLine("Debuging Notes - Errors", 3, $c[2]);
    print "<tr><td>$err</td></tr>\n";
    print "</table></td></tr></table>\n";
  }

  if ($agent=='NS') {
    $font1 = "<font size=-1>";
    $font2 =  "</font>";
    print "<br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\" background=\"\">\n<tr><td align=center><table width=\"100%\" border=0 cellspacing=0 cellpadding=3 bgcolor=\"#FFFFFF\" background=\"\">\n";
  } else {
    print "<br><table width=\"85%\" border=0 cellpadding=1 cellspacing=0 bgcolor=\"$bg\">\n<tr><td align=center><table width=\"100%\" cellpadding=3 bgcolor=\"#FFFFFF\">\n";
  }
  TableLine("Step 2: Login $server->name ( $server->vhost )", 3, $c[2]);

  if ($secure) {
    print("<form method=post action=\"$server->Sec_URL\">\n");
  } else {
    print("<form method=post action=\"$server->URL\">\n");
  }
  print "<tr><td class=bb>Nickname&nbsp;&nbsp;</td><td>$font1<input type=text size=16 maxlength=16 name=\"n\" onBlur=\"if(n.value!=''){lpass.focus();}\" value=\"\">$font2&nbsp;</td><td>Pick a nickname, use 3-16 characters including A-Z, a-z, 0-9</td></tr>\n";
  if ($norobots) {
    print("<tr><td class=bb>Password&nbsp;</td><td>$font1<input type=password size=16 maxlength=16 name=\"lpass\" value=\"\">$font2&nbsp;</td><td>Non-Members use <img valign=middle src=\"/img/img.php?i=$norobots\" alt=\"User Password Image\"> for Password!<br>Members use Operator Password to Login</td></tr>\n");
  } else {
    print"<tr><td class=bb>Password&nbsp;</td><td>$font1<input type=password size=16 maxlength=16 name=\"lpass\" name=\"lpass\" value=\"\">$font2&nbsp;</td><td nowrap>Non-Member password not required.<br>Members use Operator Password to Login</td></tr>\n";
  }
  print "<tr><td class=bb nowrap>Starting Room&nbsp;</td><td colspan=2>$font1<select name=\"r\" size=1 onChange=\"scook('$server->uid',this.options[this.selectedIndex].value)\">\n";
  $server->RoomList($override);
  print"</select>$font2&nbsp;</td></tr>
<input type=hidden name=orb value=\"$rsid\">
<tr><td nowrap class=bb>Frames&nbsp;</td><td nowrap colspan=2><input type=checkbox checked value=\"a\" name=\"w\">&nbsp;&nbsp;&nbsp;";
  print "Alt Port <input type=checkbox name=ap onClick=\"AltPort(this.form, '$server->URL', '$server->Alt_URL', '$server->Sec_URL', '$server->Sec_Alt_URL');\"\">&nbsp;&nbsp;&nbsp;";
  if ($secure) {
    print "<b class=bb>Secure Ops Login Enabled</b>";
  } else {
    print "<a href=\"$PHP_SELF?first_server=$server->uid&amp;use_secure=1\">Secure Ops Login</a> <input type=checkbox name=https onClick=\"AltPort(this.form,  '$server->URL', '$server->Alt_URL', '$server->Sec_URL', '$server->Sec_Alt_URL')\">";
  }
  print "</td></tr>\n<tr><td>&nbsp;</td><td colspan=2 nowrap>$font1<b><input type=submit VALUE=\" Chat Now \"></b>$font2</td>
</form></tr>
</table></td></tr></table>
</td></tr>\n";
  TableEnd();
}

?>
