pokemon-showdown-client/index.php.template.txt
2013-04-01 20:40:00 -07:00

263 lines
8.8 KiB
Plaintext

<?php
// no direct linking to the lobby
if ($_SERVER['REQUEST_URI'] === '/' || $_SERVER['REQUEST_URI'] === '/lobby') {
if (!empty($_SERVER['HTTP_REFERER']) && !preg_match('/^https?:\/\/([a-z0-9-]+.)?(pokemonshowdown\.com|appjs)/', $_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_HOST'] === 'play.pokemonshowdown.com') {
header('HTTP/1.1 303 See Other');
header('Location: http://pokemonshowdown.com/');
die();
}
}
// if (substr($_SERVER['REQUEST_URI'],0,8) === '/battle-') {
// $id = substr($_SERVER['REQUEST_URI'],8);
// }
// never cache
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
$defaultserver = 'showdown';
include '../pokemonshowdown.com/config/servers.inc.php';
$server = @$_REQUEST['server'];
$serverport = 0;
$serverprotocol = '';
$serverid = '';
$usingdefaultserver = false;
$psim = false;
$hostprefix = '';
if (strlen($_SERVER['HTTP_HOST']) > 8 && substr($_SERVER['HTTP_HOST'], -7) === 'psim.us') {
$hostprefix = substr($_SERVER['HTTP_HOST'], 0, -8);
$server = $hostprefix;
$psim = true;
}
$colonpos = strpos($server, ':');
$protocolpos = strrpos($server, '|');
$serverport = intval(@$_REQUEST['serverport']);
$localflag = false;
if ($protocolpos) {
$serverprotocol = substr($server, $protocolpos+1);
if (!strlen($serverprotocol)) $localflag = true;
$server = substr($server, 0, $protocolpos);
}
if ($colonpos) {
if (!$serverport) $serverport = substr($server, $colonpos+1);
$server = substr($server, 0, $colonpos);
}
$afd = false;
if ($psim) {
$hyphenpos = strrpos($server, '-');
if ($hyphenpos) {
if (substr($server, $hyphenpos + 1) === 'afd') {
$afd = true;
$server = substr($server, 0, $hyphenpos);
} else {
$serverport = substr($server, $hyphenpos + 1);
$server = substr($server, 0, $hyphenpos);
}
}
}
$serverdata = array();
$challengeresponse = false;
if (@$PokemonServers[$server]) {
$serverid = $server;
$serverdata = $PokemonServers[$server];
if (!$serverport) $serverport = $PokemonServers[$serverid]['port'];
$serveraltport = @$PokemonServers[$serverid]['altport'];
if (!$serverprotocol) $serverprotocol = $PokemonServers[$serverid]['protocol'];
$server = $PokemonServers[$serverid]['server'];
if ($serverport != $PokemonServers[$serverid]['port']) $serverid .= ':'.$serverport;
$challengeresponse = !empty($PokemonServers[$serverid]['challengeresponse']);
}
if ($localflag) $server = 'localhost';
if (!$server) {
$server = $PokemonServers[$defaultserver]['server'];
$serverport = $PokemonServers[$defaultserver]['port'];
$serveraltport = @$PokemonServers[$defaultserver]['altport'];
$serverprotocol = @$PokemonServers[$defaultserver]['protocol'];
$challengeresponse = !empty($PokemonServers[$defaultserver]['challengeresponse']);
$serverid = $defaultserver;
}
else if (!$serverid) {
$serverid = $server.($serverport?':'.$serverport:'');
}
if (!$serverport) {
$serverport = 8000;
}
if ($serverprotocol !== 'io' && $serverprotocol !== 'eio') {
$serverprotocol = 'ws';
}
$serverlibs = array(
'io' => '/js/socket.io.js',
'eio' => '/js/engine.io.js',
'ws' => '/js/sockjs-0.3.min.js'
);
$serverlibrary = $serverlibs[$serverprotocol];
include '../pokemonshowdown.com/lib/ntbb-session.lib.php';
$upkeep = $users->getUpkeep($server, $challengeresponse);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Showdown!</title>
<link rel="shortcut icon" href="/favicon.ico" id="dynamic-favicon" />
<link rel="stylesheet" href="/style/sim.css?" />
<link rel="stylesheet" href="/style/sim-types.css" />
<link rel="stylesheet" href="/style/battle.css?" />
<link rel="stylesheet" href="/style/replayer.css" /><!-- utilichart -->
<link rel="stylesheet" href="/style/font-awesome.css" />
<?php if (@$serverdata['customcss']) { ?>
<link rel="stylesheet" href="/customcss.php?server=<?php echo $serverid ?>" />
<?php } ?>
<meta id="viewport" name="viewport" content="width=640"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<script>
var Config = {
server: '<?php echo $server ?>',
serverid: '<?php echo $serverid ?>',
serverport: <?php echo $serverport ?>,
<?php if (!empty($serveraltport)) echo "serveraltport: $serveraltport,\n"; ?>
serverprotocol: '<?php echo $serverprotocol ?>',
urlPrefix: '<?php if ($serverid && $serverid !== 'showdown' && !$psim) echo '~~',$serverid,'/'; ?>',
<?php if ($psim) { ?>
crossdomain: {
prefix: <?php echo json_encode($hostprefix) ?>,
challengeresponse: <?php echo intval($challengeresponse) ?>
},
<?php } ?>
upkeep: <?php echo json_encode($upkeep) . "\n" ?>
};
<?php if ($afd) { ?>
Config.afd = true;
<?php } ?>
</script>
<!--[if lte IE 8]><script>
Config.oldie = true;
</script><![endif]-->
<script type="text/javascript">
var _gaq = _gaq || [];
<?php if (!$psim) { ?>
_gaq.push(['_setAccount', 'UA-26211653-1'], ['_setDomainName', 'pokemonshowdown.com']);
<?php } else { ?>
_gaq.push(['_setAccount', 'UA-26211653-2'], ['_setDomainName', 'psim.us']);
<?php } ?>
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<!-- Chrome Frame -->
<!--[if lte IE 8]>
<script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
<style>
/*
CSS rules to use for styling the overlay:
.chromeFrameOverlayContent
.chromeFrameOverlayContent iframe
.chromeFrameOverlayCloseBar
.chromeFrameOverlayUnderlay
*/
</style>
<script>
CFInstall.check({mode: "overlay", destination: "http://play.pokemonshowdown.com"});
</script>
<![endif]-->
<div id="simheader">
<h1 style="margin-top:2px;margin-right:10em;padding-top:0;"><img src="//play.pokemonshowdown.com/pokemonshowdownbeta.png" alt="Pokemon Showdown! (beta)" /></h1>
</div>
<div id="leftbarbg"><div><span></span></div></div>
<div id="leftbar">
<div>
<a id="tabtab-lobby" class="cur" href="#" onclick="return selectTab('lobby');">Lobby</a>
</div>
</div>
<div id="main">
<div id="loading-message" style="padding:20px">Initializing... <noscript>Surprise, surprise, this requires JavaScript</noscript></div>
</div>
<div id="lobbychat" class="lobbychat"></div>
<div id="userbar">
<em>Connecting...</em>
</div>
<div id="backbutton">
<div><button onclick="return selectTab('lobby');">&laquo; Lobby</button></div>
</div>
<div id="overlay" style="display:none"></div>
<div id="tooltipwrapper"><div class="tooltipinner"></div></div>
<div id="foehint"></div>
<script>
document.getElementById('loading-message').innerHTML += ' DONE<br />Loading libraries...';
</script>
<script src="/js/jquery-1.9.0.min.js"></script>
<script src="/js/autoresize.jquery.min.js"></script>
<script src="/js/jquery-cookie.js"></script>
<script src="/js/jquery.json-2.3.min.js"></script>
<script src="/js/soundmanager2-nodebug-jsmin.js"></script>
<script>
soundManager.setup({url: '/swf/'});
</script>
<script src="/js/html-sanitizer-minified.js"></script>
<script>
document.getElementById('loading-message').innerHTML += ' DONE<br />Loading client...';
document.getElementById('loading-message').innerHTML = 'If the client is taking a long time to load, try refreshing in a few minutes. If it still doesn\'t work, Pokemon Showdown may be down for maintenance. We apologize for the inconvenience.<br /><br />'+document.getElementById('loading-message').innerHTML;
</script>
<script src="/js/config.js?"></script>
<script src="/js/battledata.js?"></script>
<script src="/data/pokedex-mini.js?"></script>
<script src="/js/battle.js?"></script>
<!--script src="http://'.$server.':'.$serverport.'/socket.io/socket.io.js"></script-->
<script src="<?php echo $serverlibrary; ?>"></script>
<script src="/js/teambuilder.js?"></script>
<script src="/js/ladder.js?"></script>
<script src="/js/sim.js?"></script>
<script>
if (!teams) Config.down = true;
if (Config.down) overlay('down');
</script>
<script src="/data/learnsets.js?"></script>
<script src="/data/graphics.js?"></script>
<script src="/data/pokedex.js?"></script>
<script src="/data/formats-data.js?"></script>
<script src="/data/moves.js?"></script>
<script src="/data/items.js?"></script>
<script src="/data/abilities.js?"></script>
<script src="/data/formats.js?"></script>
<script src="/data/typechart.js?"></script>
<script src="/js/utilichart.js?"></script>
<script src="/data/aliases.js?" async="async"></script>
<script>
updateResize();
if (init) init();
</script>
</body>
</html>