Fix failed MNGs imagesize detection (existing basename-matching GIF expected)
[www.energie.vellum.cz.git] / common.php
index 118f447..7644141 100644 (file)
@@ -1,6 +1,8 @@
 <?php // $Id$
 
        error_reporting(E_ALL);
+       setlocale(LC_ALL,"cs_CZ.iso-8859-2");
+       fixampvars();
 
        include("config.php");
 
@@ -17,7 +19,7 @@
        $have_js=(isset($HTTP_GET_VARS["have_js"]) || isset($HTTP_POST_VARS["have_js"])
                        ? "?have_js=1" : "");
        if (isset($detect_js) && !$have_js)
-               $head.='<script type="text/javascript" src="have_js.js"></script>'."\n";
+               $head.='<script type="text/javascript" src="'.(!isset($energie_base) ? "" : $energie_base).'have_js.js"></script>'."\n";
 
        $user_agent=(!isset($HTTP_SERVER_VARS["HTTP_USER_AGENT"]) ? "" : $HTTP_SERVER_VARS["HTTP_USER_AGENT"]);
        if (ereg("[[:<:]]MSIE ([0-9]+)\\.",$user_agent,$msie_major_a))
        $have_style=!isset($mozilla_major) || $mozilla_major!=4;
        $have_css=true; // doesn't hurt anybody AFAIK
 
+function fixampvars()
+{
+       $ars=array("HTTP_GET_VARS","HTTP_POST_VARS");
+       foreach ($ars as $ar) {
+               foreach ($GLOBALS[$ar] as $key=>$val) {
+                       if (substr($key,0,4)!="amp;")
+                               continue;
+                       unset($GLOBALS[$ar][$key]);
+                       $GLOBALS[$ar][substr($key,4)]=$val;
+                       }
+               }
+}
+
 function addpercents($url)
 {
        $r=$c="";
@@ -49,7 +64,7 @@ function fatal($msg="UNKNOWN")
        footer();
 }
 
-function prepvar($name,$regex=".",$require=true)
+function prepvar($name,$regex=".*",$require=true)
 {
        global $HTTP_GET_VARS,$HTTP_POST_VARS;
 
@@ -167,14 +182,16 @@ function img_size($width,$height)
 
 function img($file,$alt,$attrs="")
 {
-       list($width,$height)=getimagesize($file);
-       return("<img src=\"$file\" alt=\"".htmlspecialchars($alt)."\" ".img_size($width,$height)
+       list($width,$height)=getimagesize(ereg_replace("\\.mng",".gif",$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\""));
+       return(img("img/sluzby_bankovni_pggsm.".(image_supported("video/x-mng") ? "mng" : "gif"),
+                       "Paegas GSM banking","class=\"img-align\""));
 }
 
 function price_a()
@@ -343,9 +360,255 @@ function usersize($size)
        return(round($size)." ".$suffix_a[0]."B");
 }
 
-function data_href($filename,$text)
+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&nbsp;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.".(image_supported("image/png") ? "png" : "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.".(image_supported("image/png") ? "png" : "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="")
 {
-       return("<a href=\"$filename\">$text (".usersize(filesize($filename)).")</a>");
+       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 "
+                                                       ."&quot;<span class=\"quote\">Zpìt</span>&quot; èi "
+                                                       ."&quot;<span class=\"quote\">Back</span>&quot; 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)
@@ -428,6 +691,8 @@ function heading($title=false)
 .quote    { font-family: monospace; }
 .nowrap   { white-space: nowrap; }
 .centered { text-align: center; }
+.tab-bold { font-weight: bold; }
+.tab-head { font-weight: bold; color: yellow; background-color: transparent; }
 body {
                background-color: black;
                color: white;