<?php

/*
 *****************
 * @author capos *
 *****************
*/

    header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");

$width = 100;
$height = 114;

function buildimg($bytes, $width, $height)
{
	$img=imagecreatetruecolor($width, $height);imagealphablending($img, false);imagesavealpha($img, true);$x=0;$y=0;
	$colors=unpack("N*", implode("",$bytes));
	foreach($colors as $color)
	{
		imagesetpixel($img, $x, $y, (0x7f-($color>>25)<<24)|($color&0xffffff));
		if(++$x==$width)
		{$x=0;$y++;}
	}
	header('Content-Type: image/png');
	imagepng($img);
}

//if($_GET)
//{
	$token = trim($_GET["token"]);
	//if(strlen($token) >= 10)
	//{	
/**

		// Stuff to connect to mus and get banner data.. (prime and generator)
		$fp = fsockopen("ip", 30001, $errno, $errstr, 1);
		if (!is_resource($fp))
		{
			exit("LE FAIL...");
		}
		
		$packet = 'setToken'.chr(1).$token;

		fwrite($fp, $packet); 
		fflush($fp);
		
		stream_set_timeout($fp, 1);
		$data = fgets($fp, 512);
fclose($fp);

***/


$conexion = mysql_connect("host","root","dbpass");
mysql_select_db("dbname", $conexion);
$result = mysql_fetch_assoc(mysql_query("SELECT bannerdata FROM server_status;",$conexion));
$data = $result['bannerdata'];

//$data="1342451846182550614618898458778670684120590689881624754130339:1135845477726102894817523431022206527949967456094879262187953";
		list($prime, $generator) = explode(':', $data);
		

		$insert = chr(strlen($prime)).$prime.chr(strlen($generator)).$generator;
		$Length = strlen($token);$Length2 = strlen($insert);
		$p = 0;$bitsnum = "";
		for($i=0;$i<$Length2;$i++)
		{
			$bits = base_convert(ord($insert[$i]) ^ ord($token[$p]),10,2);
			$need = 8 - strlen($bits);
			for($o=0;$o<$need;$o++)$bits = "0".$bits;
			$bitsnum .= $bits;
			if (++$p == $Length) $p = 0;
		}
		$insertpos = 0;$Length = strlen($bitsnum);
		for ($y = 39; $y < 69; $y++)
		{
			$a = 0;
			for ($r = 4; $r < 84; $r++)
			{
				$pos = (($y + $a) * $width + $r) * 4;
				$b = 1;
				while ($b < 4)
				{
					if($insertpos < $Length)
					{
						$binaryData = base_convert(ord($pixels[$pos + $b]),10,2);
						$need = 8 - strlen($binaryData);
						for($o=0;$o<$need;$o++) $binaryData = "0".$binaryData;
						$binaryData[7] = $bitsnum[$insertpos];
						$pixels[$pos + $b] = chr(base_convert($binaryData,2,10));
						$insertpos++;$b++;
						continue;
					}
					break 3;
				}
				if ($r % 2 == 0) $a++;
			}
		}
		
	//}
//}
buildimg($pixels, $width, $height);
?>