vstup/js/skript.js
author František Kučera <franta-hg@frantovo.cz>
Thu, 09 Feb 2012 14:52:20 +0100
changeset 93 5b55827de220
parent 84 f866267d7b3c
permissions -rw-r--r--
#16 „obfuskované“ odkazy na e-maily, které znesnadní sběr spamovacím robotům
odkazy jsou pro uživatele klikatelné (vyžaduje JavaScript).
     1 /**
     2  * XML Web generátor – program na generování webových stránek
     3  * Copyright © 2012 František Kučera (frantovo.cz)
     4  * 
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, either version 3 of the License, or
     8  * (at your option) any later version.
     9  * 
    10  * This program is distributed in the hope that it will be useful,
    11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13  * GNU General Public License for more details.
    14  * 
    15  * You should have received a copy of the GNU General Public License
    16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    17  */
    18 
    19 /**
    20  * XML Web generátor – jmenný prostor 
    21  */
    22 var xwg = { 
    23 	/**
    24 	 * Zašifruje/dešifruje obsah elementu pomocí Rot13.
    25 	 * @param id ID elementu, jehož text chceme změnit.
    26 	 */
    27 	rot13: function(id) {
    28 		var e = document.getElementById(id);
    29 		e.textContent = e.textContent.rot13();
    30 	},
    31 
    32 	/**
    33 	 * Vloží klikatelný odkaz.
    34 	 * @param id ID span elementu obsahujícího data
    35 	 */
    36 	odkazNaElektronickouPoštu: function(id) {
    37 		var spanČesky = document.getElementById(id);
    38 		var spanObsah = document.getElementById(id + "b");
    39 		var česky = spanČesky.innerHTML;
    40 		var adresa = česky.replace(" zavináč ", "@").replace(" tečka ",".");
    41 
    42 		var odkaz = document.createElement("a");
    43 		odkaz.href = "mailto:" + adresa;
    44 		if (spanObsah.innerHTML.length > 0) {
    45 			odkaz.innerHTML = spanObsah.innerHTML;
    46 		} else {
    47 			odkaz.innerHTML = adresa;
    48 		}
    49 
    50 		spanČesky.parentNode.insertBefore(odkaz, spanČesky);
    51 		spanČesky.parentNode.removeChild(spanČesky);
    52 		spanObsah.parentNode.removeChild(spanObsah);
    53 	},
    54 
    55 };
    56 
    57 /**
    58  * Vrací hodnotu textového řetězce zašifrovanou/dešifrovanou algoritmem Rot13 
    59  */
    60 String.prototype.rot13 = function() {
    61 	return this.replace(/[a-zA-Z]/g, function(z) {
    62 		return String.fromCharCode((z <= "Z" ? 90 : 122) >= (z = z.charCodeAt(0) + 13) ? z : z - 26);
    63 	});
    64 };
    65