+function prepvar($name,$regex=".*",$require=true)
+{
+ global $HTTP_GET_VARS,$HTTP_POST_VARS;
+
+ if (isset($HTTP_GET_VARS[$name]))
+ $v=$HTTP_GET_VARS[$name];
+ else if (isset($HTTP_POST_VARS[$name]))
+ $v=$HTTP_POST_VARS[$name];
+ else
+ unset($v);
+
+ $name_html="Parametr <span class=\"quote\">".htmlspecialchars($name)."</span>";
+
+ $regex="^$regex\$";
+ if (isset($v) && !ereg($regex,$v))
+ fatal("$name_html nevyhovuje po¾adovanému regexu <span class=\"quote\">".htmlspecialchars($regex)."</span>");
+ if (!isset($v) && $require)
+ fatal("$name_html je vy¾adován");
+
+ if (!isset($v))
+ return(0);
+
+ $GLOBALS[$name]=$v;
+ return($v);
+}
+
+function db_connect()
+{
+ global $db_host,$db_user,$db_pwd,$db_name;
+ global $db_link;
+
+ if (isset($db_link))
+ return;
+ if (!($db_link=mysql_connect($db_host,$db_user,$db_pwd)))
+ fatal("MySQL connect: ".mysql_error());
+ if (!mysql_select_db($db_name,$db_link))
+ fatal("MySQL database select: ".mysql_error());
+}
+
+function db_query($query)
+{
+ global $db_link;
+
+ db_connect();
+ if (!($r=mysql_query($query,$db_link)))
+ fatal("MySQL query \"$query\": ".mysql_error());
+ return($r);
+}
+
+function db_row($query) // pure indexes
+{
+ $q=db_query($query);
+ $r=mysql_fetch_row($q);
+ mysql_free_result($q);
+ return($r);
+}
+
+function db_array($query) // field-names associative
+{
+ $q=db_query($query);
+ $r=mysql_fetch_array($q);
+ mysql_free_result($q);
+ return($r);
+}
+
+function db_item($query)
+{
+ $row=db_row($query);
+ return($row[0]);
+}
+
+function num2greg($num)
+{
+ $r="";
+ $vals=array(1=>"I",5=>"V",10=>"X",50=>"L",100=>"C",500=>"D",1000=>"M");
+ krsort($vals,SORT_NUMERIC);
+ foreach($vals as $val=>$sym) {
+ while ($num<0 && $num+$val<-$num) {
+ $r=substr($r,0,-1).$sym.substr($r,-1,1);
+ $num+=$val;
+ }
+ while (10*$num>=8*$val+(substr($val,0,1)=="1")) {
+ $r=$r.$sym;
+ $num-=$val;
+ }
+ }
+ return($r);
+}
+
+function month_a($year,$month,$month_last=0,$sequential=0)
+{
+ global $tb_obsah,$obsah_year_base;
+
+ if (!$month_last || !$sequential)
+ list($month_last,$sequential)=db_row("select month_last,sequential from $tb_obsah where year='$year' and month='$month'");
+ $month_full=sprintf("%02d".($month==$month_last ? "" : "-%02d"),$month,$month_last);
+
+ $r=array("year"=>$year,"month"=>$month,"month_last"=>$month_last,"month_full"=>$month_full,
+ "name"=>"$month" .($month==$month_last ? "" : "-$month_last")."/$year",
+ "img" =>"img/eap-$year-${month_full}.jpeg",
+ "icon"=>"img/eap-$year-${month_full}s.jpeg",
+ );
+ $r["name_full"]=$r["name"]
+ ." ($sequential".($month==$month_last ? "" : "-".($sequential+$month_last-$month)).")"
+ ." - ".num2greg($year-$obsah_year_base+1).". roèník";
+ return($r);
+}
+
+function img_size($width,$height)
+{
+ global $have_style;
+
+ return(($have_style ? "style=\"border:0;width:${width}px;height:${height}px\"" : "border=\"0\"")
+ ." width=\"$width\" height=\"$height\"");
+}
+
+function img($file,$alt,$attrs="")
+{
+ list($width,$height)=getimagesize($file);
+ $alt=htmlspecialchars($alt);
+ return("<img src=\"$file\" alt=\"$alt\" title=\"$alt\" ".img_size($width,$height)
+ .($attrs=="" ? "" : " ".$attrs)." />");
+}
+
+function gsm_banking()
+{
+ return(img("img/sluzby_bankovni_pggsm.gif","Paegas GSM banking","class=\"img-align\""));
+}
+
+function price_a()
+{
+ if (!($f=fopen("objednavka.js","r")))
+ fatal("Nepodaøilo se naèíst seznam dostupného zbo¾í");
+ $r=array();
+ while (($s=fgets($f,0x1000))) {
+ if (!($s=trim($s)))
+ break;
+ if (!(ereg("^want_price\\[ *'([^']*)'\\]=([0-9]*);$",$s,$matched)))
+ continue;
+ $r[$matched[1]]=$matched[2];
+ }
+ fclose($f);
+ return($r);
+}
+
+function title_name($year,$month)
+{
+ if (isset($year) && isset($month)) {
+ $month_a=month_a($year,$month);
+ return("Èíslo ".$month_a["name_full"]);
+ }
+ else if (isset($year))
+ return("Roèník $year");
+ else
+ return("V¹echny roèníky");
+}
+
+function title_month($year,$month)
+{
+ $month_a=month_a($year,$month);
+ return(""
+ ."<table border=\"0\" width=\"100%\">\n"
+ ."<tr><td align=\"center\"><table border=\"1\" cellpadding=\"10\">\n"
+ ."<tr><td align=\"center\">".img($month_a["img"],"titulní stránka ".$month_a["name"])."</td></tr>\n"
+ ."</table></td></tr>\n"
+ ."</table>\n"
+ );
+}
+
+function title_icons_table_month($year,$month,$month_last,$sequential)
+{
+ global $tb_clanek;
+
+ $month_a=month_a($year,$month,$month_last,$sequential);
+ print("<table border=\"0\">"
+ ."<tr><th align=\"center\">".$month_a["name"]."</th></tr>\n"
+ ."<tr><td align=\"center\" valign=\"top\">"
+ .img($month_a["icon"],"titulní stránka ".$month_a["name_full"])."</td></tr>\n"
+ ."<tr><td align=\"left\" valign=\"top\" class=\"nowrap\">\n"
+ ."• <a href=\"title.php?year=$year&month=$month\">titulní strana</a><br />\n"
+ ."• <a href=\"obsah.php?year=$year&month=$month\">obsah</a><br />\n");
+ $result=db_query("select name,id from $tb_clanek where year=$year and month=$month order by id");
+ while ($row=mysql_fetch_array($result))
+ print("• <a href=\"clanek.php?year=$year&month=$month&id=".$row["id"]."\">"
+ .htmlspecialchars($row["name"])."</a><br />\n");
+ mysql_free_result($result);
+ print("</td></tr></table>");
+}
+
+function title_icons($year,$month)
+{
+ global $tb_obsah;
+
+ print("<h2>"
+ .(isset($year) ? "<a id=\"year_$year\">" : "")
+ .title_name(&$year,&$month)
+ .(isset($year) ? "</a>" : "")
+ ."</h2>\n");
+
+ $result=db_query("select year,month,month_last,sequential from $tb_obsah"
+ .(isset($year) || isset($month) ? " where" : "")
+ .(isset($year ) ? " year=$year" : "")
+ .(isset($year) && isset($month) ? " and" : "")
+ .(isset($month) ? " month=$month" : "")
+ ." order by year,month");
+ $split=4;
+
+ // $year variable changes its meaning here!!!
+ if (isset($year))
+ $wanted_year=$year;
+ $year=0;
+
+ $fin_split="";
+ $fin_year="";
+ while ($row=mysql_fetch_array($result)) {
+ $row["month" ]--;
+ $row["month_last"]--;
+
+ if ($row["year"]!=$year) {
+ print($fin_split.$fin_year);
+
+ $year=$row["year"];
+ print(""
+ .(!isset($wanted_year) ? "<p><a id=\"year_$year\"> </a></p>" : "")
+ ."<table border=\"0\" width=\"100%\"><tr><td align=\"center\"><table border=\"1\" cellpadding=\"5\">\n"
+ ."<tr><th colspan=\"$split\">Roèník $year (<a href=\"obsah.php?year=$year\">obsahy èísel</a>)</th></tr>\n"
+ );
+ $fin_year="</table></td></tr></table>\n";
+ $fin_split="";
+ $month=-1;
+ $floor=-1;
+ }
+ while ($floor<floor($row["month"]/$split)) {
+ print($fin_split."<tr>");
+ $fin_split="</tr>\n";
+ $floor++;
+ $month=$floor*$split-1;
+ }
+ while ($month+1<$row["month"]) {
+ print("<td></td>");
+ $month++;
+ }
+ print("<td align=\"center\" valign=\"top\""
+ .($row["month_last"]!=$row["month"] ? " colspan=\"".($row["month_last"]+1-$row["month"])."\"" : "")
+ .">");
+ title_icons_table_month($year,$row["month"]+1,$row["month_last"]+1,$row["sequential"]);
+ print("</td>\n");
+ $month=$row["month_last"];
+ }
+ mysql_free_result($result);
+ print($fin_split.$fin_year);
+}
+
+function title($year,$month)
+{
+ if (isset($year) && isset($month))
+ return(title_month( $year, $month));
+ else
+ return(title_icons(&$year,&$month));
+}
+
+function image_supported($mime)
+{
+ global $HTTP_SERVER_VARS;
+
+ if (!isset($HTTP_SERVER_VARS["HTTP_ACCEPT"]))
+ return(false);
+ $exp=explode(",",$HTTP_SERVER_VARS["HTTP_ACCEPT"]);
+ while (($s=array_shift($exp))) {
+ $s=trim(ereg_replace(";.*","",$s));
+ if ($s==$mime)
+ return(true);
+ }
+ return(false);
+}
+
+// PHP dirname() is broken: ("/1/2/3"=>"/1/2", "/1"->"/")
+function dirnameslashed($filename)
+{
+ $r=dirname($filename);
+ if (substr($r,-1)!="/")
+ $r.="/";
+ return($r);
+}
+
+function usersize($size)
+{
+ $suffix_a=array("","k","M","G","T");
+ while ($size>=1000 && sizeof($suffix_a)>=2) {
+ $size/=1000;
+ array_shift($suffix_a);
+ }
+ return(round($size)." ".$suffix_a[0]."B");
+}
+
+function data_href($filename,$text,$details="")
+{
+ return("<a href=\"$filename\">$text (".usersize(filesize($filename))."$details)</a>");
+}
+
+function img_href($filename,$text)
+{
+ list($width,$height)=getimagesize($filename);
+ return(data_href($filename,$text,", ${width}x${height} bodù"));
+}
+
+function print_pdf_layout($name,$base)
+{
+ $imgfmt=(image_supported("image/png") ? "png" : "gif");
+ ?>
+<p>Shodný <?php print($name); ?> je dostupný ve dvou rùzných formátech souboru. V pøípadì,
+¾e nemáte/nechcete instalovat
+<a href="http://www.adobe.com/products/acrobat/readstep.html">Adobe Acrobat Reader</a>,
+zvolte prosím druhou mo¾nost:</p>
+
+<table border="0">
+<tr><td><table border="0" cellpadding="1" style="border: ridge;">
+<tr><td align="center"><?php
+ print(img("${base}s.$imgfmt",ucfirst($name)));
+?></td></tr></table></td>
+<td valign="top"><ul>
+
+<li>
+<table border="0">
+<tr><td><?php print("<a href=\"$base.pdf\">".img("img/adobe-pdficon-alpha.gif","Adobe PDF")."</a>"); ?></td>
+ <td><?php print(data_href("$base.pdf","Dokument PDF")); ?></td>
+ </tr>
+</table>
+<blockquote>
+<table border="0">
+<tr><td><a href="http://www.adobe.com/products/acrobat/readstep.html"><?php
+ print(img("img/adobe-getacro.gif","Get Adobe Acrobat Reader"));
+ ?></a></td>
+ <td class="smaller">Soubor je ve formátu <span class="italic">Adobe Acrobat</span>,
+ pro jeho pøeètení si prosím nainstalujte
+ <a href="http://www.adobe.com/products/acrobat/readstep.html">Adobe Acrobat Reader</a>.</td>
+ </tr>
+</table>
+</blockquote>
+</li>
+
+<li>
+<?php print(img_href("$base.$imgfmt","Obrázkový formát ".strtoupper($imgfmt))); ?>
+</li>
+
+</ul></td></tr></table>
+<?php
+}
+
+function format_fields_to_text($title="",$pfx="")
+{
+ global $HTTP_POST_VARS;
+ $fields=array(
+ "Název" ,"name",
+ "Adresa" ,"adresa",
+ "Ulice" ,"ulice",
+ "Mìsto" ,"mesto",
+ "PSÈ" ,"psc",
+ "IÈO" ,"ico",
+ "DIÈ" ,"dic",
+ "Kontakt","contact",
+ "Tel" ,"tel",
+ "Fax" ,"fax",
+ "Poèet" ,"pocet",
+ "e-mail" ,"mail",
+ );
+ $bools=array(
+ "Doklad" ,"doklad",
+ );
+ $texts=array(
+ "Text inzerátu","text",
+ "Jiné sdìlení" ,"comments",
+ );
+
+ $r="";
+ $tab=($title=="" ? "" : "\t");
+ while ($fields) {
+ $pretty=array_shift($fields);
+ $var=$pfx.array_shift($fields);
+ if (!isset($HTTP_POST_VARS[$var]))
+ continue;
+ if (""==($value=trim($HTTP_POST_VARS[$var])))
+ continue;
+ $r.="$tab$pretty:\t$value\n";
+ }
+ while ($bools) {
+ $pretty=array_shift($bools);
+ $var=$pfx.array_shift($bools);
+ if (!isset($HTTP_POST_VARS[$var]))
+ continue;
+ $r.="$tab$pretty:\t".($HTTP_POST_VARS[$var] ? "ANO" : "NE")."\n";
+ }
+ while ($texts) {
+ $pretty=array_shift($texts);
+ $var=$pfx.array_shift($texts);
+ if (!isset($HTTP_POST_VARS[$var]))
+ continue;
+ if (""==($value=trim(ereg_replace("[\r\n]+","\n",$HTTP_POST_VARS[$var]))))
+ continue;
+ $r.="$tab$pretty:".ereg_replace("\n","\\0\t","\n".$value)."\n";
+ }
+ if ($r!="" && $title!="")
+ $r="$title\n".$r;
+ return($r);
+}
+
+function stamp_line()
+{
+ return("stamp:\t".date("r")."\n");
+}
+
+function return_back($what)
+{
+ global $have_js;
+
+ return(""
+ .(!$have_js ? "" : "<input type=\"button\" value=\"")
+ .$what
+ .(!$have_js ? " (tlaèítkem "
+ .""<span class=\"quote\">Zpìt</span>" èi "
+ .""<span class=\"quote\">Back</span>" prohlí¾eèe)"
+ : "\" onclick=\"history.back()\" />")
+ );
+}
+
+// Data acquision error checking:
+function datacheck_fail()
+{
+ print("<p>Nyní se prosím ".return_back("vra»te zpìt")
+ ." na pøedchozí stránku a chybu zadaných dat opravte.</p>\n");
+ footer();
+}
+
+function mail_data($title,$data)
+{
+ global $admin_mail,$mail_to;
+
+ // 5th mail argument is supported from PHP-4.0.5
+ return (!mail($mail_to,"EnergieWeb: $title",$data,
+"From: EnergieWeb <$admin_mail>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=iso-8859-2
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+"));
+}
+
+function gsm_row($name,$value)
+{
+ return("<tr><td align=\"left\">$name</td>"
+ ."<td align=\"right\">".($value=="" ? "neuvádìjte" : $value)."</td>"
+ ."<td align=\"right\">".strtr($value,"/.","#*")."</td></tr>\n");
+}
+
+function gsm_table($total,$varsym)
+{
+ global $firma_ucet,$firma_konstsym,$firma_specsym;
+
+ return("<blockquote><table border=\"1\" cellpadding=\"5\">\n"
+ ."<tr><th>polo¾ka</th><th>bankovní pøíkaz</th><th>".gsm_banking()."</th></tr>\n"
+ .gsm_row("Èíslo úètu",$firma_ucet)
+ .gsm_row("Èástka",sprintf("%.2f",$total))
+ .gsm_row("Konstantní symbol",$firma_konstsym)
+ .gsm_row("Variabilní symbol",$varsym)
+ .gsm_row("Specifický symbol",$firma_specsym)
+ ."</table></blockquote>\n"
+ );
+}
+
+function return_to_homepage()
+{
+ global $HTTP_SERVER_VARS;
+
+ return("<p>Nyní se mù¾ete vrátit na <a href=\"".dirnameslashed($HTTP_SERVER_VARS["SCRIPT_NAME"])."\">úvodní stránku</a>.</p>\n");
+}
+
+function input_text($name,$size,$default_value="",$addons="")
+{
+ $r="<input type=\"text\" name=\"$name\" size=\"$size\"";
+ $value=(isset($GLOBALS[$name]) ? $GLOBALS[$name] : $default_value);
+ if (""!=$value)
+ $r.=" value=\"".htmlspecialchars($value)."\"";
+ $r.=$addons." />";
+ return($r);
+}
+
+function print_form_radkova_inzerce($readonly,$total,$submit_name,$submit_value)
+{
+ global $have_js,$text,$doklad;
+
+ $addons=(!$readonly ? "" : " readonly=\"readonly\"");
+ ?>
+<blockquote>
+<form action="inzerat-submit.php<?php print($have_js); ?>" method="post">
+<table border="1" width="100%" cellpadding="5">
+<tr><td align="center"><table border="0">
+ <tr><td align="left" class="tab-head">Text inzerátu</td></tr>
+ <tr><td align="center"><?php
+ print("<textarea name=\"text\" rows=\"7\" cols=\"60\""
+ .($readonly ? "" : " onkeyup=\"sum_total(this)\" onchange=\"sum_total(this)\"")
+ .$addons.">"
+ .(!isset($text) ? "" : htmlspecialchars(trim($text)))
+ ."</textarea>");
+ ?></td></tr>
+ <?php
+ if ($have_js || $total!="") {
+ ?>
+ <tr><td colspan="3"><hr /></td></tr>
+ <tr><td colspan="3" id="celkova_cena">Celková cena:
+ <input type="text" name="total" value="<?php
+ print(htmlspecialchars($total));
+ ?>" size="8" readonly="readonly" /></td></tr>
+ <?php
+ }
+ ?>
+ </table></td></tr>
+<tr><td align="left"><table border ="0" width="100%">
+ <tr><td>Název firmy / Jméno:</td ><td colspan="3"><?php print(input_text("name" ,60,"",$addons)); ?></td></tr>
+ <tr><td>Úplná adresa:</td ><td colspan="3"><?php print(input_text("adresa",60,"",$addons)); ?></td></tr>
+ <tr><td>Telefon:</td ><td colspan="3"><?php print(input_text("tel" ,25,"",$addons)); ?></td></tr>
+ <tr><td>IÈO:</td ><td ><?php print(input_text("ico" ,20,"",$addons)); ?></td>
+ <td>DIÈ</td ><td ><?php print(input_text("dic" ,20,"",$addons)); ?></td></tr>
+ <tr><td id="danovy_doklad"
+ >Zaslat daòový doklad?</td><td colspan="3"><input type="checkbox" name="doklad"<?php
+ print(""
+ // some hacks as "readonly" not supported for "checkbox"es (->"disabled" for them)
+ .($readonly ? "" : " onclick=\"sum_total(this)\"")
+ .(!($have_js || $readonly) ? "" : " disabled=\"disabled\"")
+ .(!isset($doklad) ? "" : " checked=\"checked\"")
+ .ereg_replace(" readonly=\"readonly\"","",$addons)." />");
+ ?></td></tr>
+ <tr><td id="pocet_zverejneni"
+ >Poèet zveøejnìní:</td ><td ><?php print(input_text("pocet",5,1,
+ $addons." onkeyup=\"sum_total(this)\" onchange=\"sum_total(this)\"")); ?></td>
+ <td>e-mail:</td ><td ><?php print(input_text("mail",40,"",$addons)); ?></td></tr>
+ </table></td></tr>
+<tr><td align="center" id="submit_button"><?php
+ print("<input type=\"submit\" name=\"$submit_name\" value=\"".htmlspecialchars($submit_value)."\""
+ ." onclick=\"return(validate(this.form))\" />");
+ ?></td></tr>
+</table></form>
+</blockquote>
+<?php
+}
+
+function footer_img($url,$text,$size)
+{
+ global $footer_LOCAL;
+ if (!isset($footer_LOCAL))
+ return("<img src=\"$url\" $size alt=\"$text\" />");
+ else
+ return($text);
+}
+
+function footer($delimit=true)