/* --------------------------------------------------------------------------------
   HTML-Header

   Autor: Dietmar Rabich
   Datei: html_header.js

   Copyright (c) Dietmar Rabich, Duelmen.
   Alle Rechte vorbehalten.

   Diese Datei stammt von http://skripte.rabich.de/.

   Das Entfernen oder Veraendern dieser Informationen ist
   ohne ausdrueckliche Zustimmung des Autors nicht gestattet.

   Aenderungen:
   5.10.2003  Erstellung
-------------------------------------------------------------------------------- */

var	html4	= "HTML 4.01";
var	xhtml1	= "XHTML 1.0";
var	xhtml11	= "XHTML 1.1";
var	version_strict	= "strict";
var	version_transitional	= "transitional";
var	version_frameset	= "frameset";
var	html_version_detail	= "";
var	html_version	= "";
var	mldg	= "Sorry. Die Funktion steht nicht zur Verf\u00FCgung.\n\nIhr Browser unterst\u00FCtzt die erforderliche JavaScript-Version nicht oder nicht vollst\u00E4ndig.";

// Zeichen ersetzen - zumindest aus dem deutschsprachigen Raum
function tune(s)
{
	if(typeof(s.replace) == "undefined")
	{
		alert(mldg);
		return s;
	}

	s	= s.replace(/&/g, "&amp;");
	s	= s.replace(/\"/g, "&quot;");
	s	= s.replace(/\u00DF/g, "&szlig;");
	s	= s.replace(/\u00C4/g, "&Auml;");
	s	= s.replace(/\u00D6/g, "&Ouml;");
	s	= s.replace(/\u00DC/g, "&Uuml;");
	s	= s.replace(/\u00E4/g, "&auml;");
	s	= s.replace(/\u00F6/g, "&ouml;");
	s	= s.replace(/\u00FC/g, "&uuml;");
	s	= s.replace(/\u00E8/g, "&eacute;");
	s	= s.replace(/\u00E9/g, "&ecirc;");
	s	= s.replace(/\u00AE/g, "&reg;");
	s	= s.replace(/\u00A9/g, "&copy;");
	s	= s.replace(/\u00A7/g, "&sect;");
	s	= s.replace(/\u20AC/g, "&euro;");
	return s;
}

// Meta-Tag zusammensetzen
function metatag(isname, name, content, lang)
{
	return "<meta " +
		(isname ? "name" : "http-equiv") + "=\"" + name + "\"" +
		(lang ? (" lang=\"" + lang + "\"") : "") + " " +
		"content=\"" + content + "\"" +
		((html_version == html4) ? "" : " \/") + ">\n";
}

// Link zusammensetzen
function linktag(name, url, title, type, lang, extra)
{
	return "<link rel=\"" + name + "\"" +
		(((title != "") && title) ? (" title=\"" + tune(title) + "\"") : "") +
		(((type != "") && type) ? (" type=\"" + type + "\"") : "") +
		(((lang != "") && lang) ? (" hreflang=\"" + lang + "\"") : "") +
		(((extra != "") && extra) ? (" " + extra) : "") +
		" href=\"" + url + "\"" +
		((html_version == html4) ? "" : " \/") + ">\n";
}

function html_header(form)
{
	var	hh	= "";

	if(form.emptydoc_use.checked)
	{
		// DOCTYPE
		if(form.doctype_use.checked)
		{
			var	charset	= (form.content_type_use.checked) ?
						tune(form.content_type.value) :
						"";

			if(form.htmlxhtml[0].checked)
			{
				html_version = html4;
				if(form.doctype[0].checked)
				{
					html_version_detail	= version_strict;
					hh	+= "<!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.01\/\/EN\" \"http:\/\/www.w3.org\/TR\/html4\/strict.dtd\">\n";
				}
				else if(form.doctype[1].checked)
				{
					html_version_detail	= version_transitional;
					hh	+= "<!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.01 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/html4\/loose.dtd\">\n";
				}
				else if(form.doctype[2].checked)
				{
					html_version_detail	= version_frameset;
					hh	+= "<!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.01 Frameset\/\/EN\" \"http:\/\/www.w3.org\/TR\/html4\/frameset.dtd\">\n";
				}
			}
			else if(form.htmlxhtml[1].checked)
			{
				html_version = xhtml1;
				if(form.doctype[0].checked)
				{
					html_version_detail	= version_strict;
					hh	+= "<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\n" +
							"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Strict\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-strict.dtd\">\n";
				}
				else if(form.doctype[1].checked)
				{
					html_version_detail	= version_transitional;
					hh	+= "<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\n" +
							"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd\">\n";
				}
				else if(form.doctype[2].checked)
				{
					html_version_detail	= version_frameset;
					hh	+= "<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\n" +
							"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Frameset\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-frameset.dtd\">\n";
				}
			}
			else if(form.htmlxhtml[2].checked)
			{
				html_version = xhtml11;
				form.doctype[0].checked	= true;
				html_version_detail	= version_strict;
				hh	+= "<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\n" +
						"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.1\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml11\/DTD\/xhtml11.dtd\">\n";
			}
		}

		hh	+= "<html";
		if((html_version == xhtml1) || (html_version == xhtml11))
		{
			hh	+= " xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" xml:lang=\"" +
					(form.language_use.checked ? form.language.options[form.language.options.selectedIndex].value : "") +
					"\"";
		}
		if(form.language_use.checked && !(html_version == xhtml11))
			hh	+= " lang=\"" +
					form.language.options[form.language.options.selectedIndex].value +
					"\"";
		hh	+= ">\n\n";
		hh	+= "<head>\n";
	}

	// Vorbereitung fuer Mehrsprachlichkeit
	var	lang	= (form.multilanguage[0].checked && form.language_use.checked) ? form.language.options[form.language.options.selectedIndex].value : null

	// Titel
	if(form.title_use.checked)
		hh	+= "<title>" + tune(form.title.value) + "</title>\n"

	// Base
	if(form.base_url_use.checked || form.base_target_use.checked)
	{
		if(form.base_url_use.checked)
		{
			hh	+= "<base href=\"" + form.base_url.value + "\"";
			if(form.base_target_use.checked && (html_version_detail != version_strict))
				hh	+= (form.base_target_use.checked ? (" target=\"" + form.base_target.options[form.base_target.options.selectedIndex].value + "\"") : "");
			hh	+= ((html_version == html4) ? "" : " /") + ">\n";
		}
		else if((!form.base_url_use.checked) && (form.base_target_use.checked && (html_version_detail != version_strict)))
		{
			hh	+= "<base target=\"" +
					form.base_target.options[form.base_target.options.selectedIndex].value +
					"\"" +
					((html_version == html4) ? "" : " /") + ">\n";
		}
	}

	// Meta (Name)
	if(form.description_use.checked)
		hh	+= metatag(true, "description", tune(form.description.value), lang);
	if(form.keywords_use.checked)
		hh	+= metatag(true, "keywords", tune(form.keywords.value), lang);
	if(form.classification_use.checked)
		hh	+= metatag(true, "classification", tune(form.classification.value), lang);
	if(form.author_use.checked)
		if(form.author.value != "")
			hh	+= metatag(true, "author", tune(form.author.value));
	if(form.publisher_use.checked)
		hh	+= metatag(true, "publisher", tune(form.publisher.value));
	if(form.copyright_use.checked)
		hh	+= metatag(true, "copyright", tune(form.copyright.value));
	if(form.language_use.checked)
		hh	+= metatag(true, "language", form.language.options[form.language.options.selectedIndex].value);
	if(form.audience_use.checked)
	{
		var	i;
		var	s	= "";
		for(i = 0; i < form.audience.options.length; i++)
			if(form.audience.options[i].selected)
				s	+= ((s == "") ? "" : ", " ) + form.audience.options[i].value;
		hh	+= metatag(true, "audience", tune(s), lang);
		hh	+= metatag(true, "distribution", tune(s), lang);
	}
	if(form.page_topic_use.checked)
	{
		var	i;
		var	s	= "";
		for(i = 0; i < form.page_topic.options.length; i++)
			if(form.page_topic.options[i].selected)
				s	+= ((s == "") ? "" : ", " ) + form.page_topic.options[i].value;
		hh	+= metatag(true, "page-topic", tune(s), lang);
	}
	if(form.page_type_use.checked)
	{
		var	i;
		var	s	= "";
		for(i = 0; i < form.page_type.options.length; i++)
			if(form.page_type.options[i].selected)
				s	+= ((s == "") ? "" : ", " ) + form.page_type.options[i].value;
		hh	+= metatag(true, "page-type", tune(s), lang);
		hh	+= metatag(true, "object-type", tune(s), lang);
	}
	if(form.robots_use.checked)
		hh	+= metatag(true, "robots",
					form.robots.options[form.robots.options.selectedIndex].value +
					(form.robots_noarchive.checked ? ",noarchive" : "") + (form.robots_noimageindex.checked ? ",noimageindex" : "") +
					(form.robots_noimageclick.checked ? ",noimageclick" : ""));
	if(form.siteinfo_use.checked)
		hh	+= metatag(true, "siteinfo", form.siteinfo_url.value);
	if(form.revisit_after_use.checked)
		hh	+= metatag(true, "revisit-after",
					form.revisit_after_cnt.value + " " +
					form.revisit_after_val.options[form.revisit_after_val.options.selectedIndex].value +
					((form.revisit_after_cnt.value == "1") ? "" : "s"));
	if(form.replyto_use.checked)
		hh	+= metatag(true, "reply-to", form.replyto.value);

	// Meta (Http-Equiv)
	if(form.picslabel_use.checked)
		hh	+= metatag(false, "PICS-Label", form.picslabel.value);
	if(form.p3plabel_use.checked)
		hh	+= metatag(false, "P3P", form.p3plabel.value);
	if(form.language_use.checked)
		hh	+= metatag(false, "content-language", form.language.options[form.language.options.selectedIndex].value);
	if(form.content_type_use.checked)
		hh	+= metatag(false, "content-type", "text/html; charset=" + tune(form.content_type.value));
	if(form.stylesheet_use.checked)
		hh	+= metatag(false, "content-style-type", "text/" + (form.stylesheet_css[0].checked ? "css" : "javascript"));
	if(form.script_use.checked)
		hh	+= metatag(false, "content-script-type", "text/" + (form.script[0].checked ? "javascript" : (form.script[1].checked ? "jscript" : (form.script[2].checked ? "tcl" : "vbscript"))));
	if(form.pragma_use.checked)
		if(!form.pragma[0].checked)
			hh	+= metatag(false, "pragma", "no-cache");
	if(form.cache_control_use.checked)
		hh	+= metatag(false, "cache-control", form.cache_control.options[form.cache_control.options.selectedIndex].value);
	if(form.imagetoolbar_use.checked)
		hh	+= metatag(false, "imagetoolbar", form.imagetoolbar[0].checked ? "yes" : "no");
	if(form.expires_use.checked)
	{
		if(form.expires_tag.value != "" ||
			form.expires_monat.value != "" ||
			form.expires_jahr.value != "" ||
				form.expires.value != "")
		{
			var	zpt	= new Date();
			if(form.expires.value != "")
			{
				zpt.setTime(zpt.getTime() + (86400000 * form.expires.value))
				hh	+= metatag(false, "expires", zpt.toGMTString());
			}
			else
			{
				if(form.expires_jahr.value != "")
					zpt.setYear(parseInt(form.expires_jahr.value));
				if(form.expires_monat.value != "")
					zpt.setMonth(parseInt(form.expires_monat.value) - 1);
				if(form.expires_tag.value != "")
					zpt.setDate(parseInt(form.expires_tag.value));
				zpt.setHours(form.expires_stunde.value ? parseInt(form.expires_stunde.value) : 0)
				zpt.setMinutes(form.expires_minute.value ? parseInt(form.expires_minute.value) : 0)
				zpt.setSeconds(form.expires_sekunde.value ? parseInt(form.expires_sekunde.value) : 0)
				hh	+= metatag(false, "expires", zpt.toGMTString());
			}
		}
		else
			hh	+= metatag(false, "expires", "0");
	}
	if(form.refresh_use.checked)
		hh	+= metatag(false, "refresh", form.refresh_interval.value + ((form.refresh_url.value == "") ? "" : "; url=" + form.refresh_url.value));
	if(form.window_target_use.checked)
		hh	+= metatag(false, "window-target", form.window_target.options[form.window_target.options.selectedIndex].value);
	if(form.defaultstyle_use.checked)
		hh	+= metatag(false, "default-style", form.defaultstyle.value);

	// Link
	if(form.stylesheet_use.checked)
		hh	+= "<link rel=\"stylesheet\" " +
				"type=\"text/" + (form.stylesheet_css[0].checked ? "css" : "javascript") + "\" " +
				"title=\"" + form.stylesheet_title.value + "\" " +
				"media=\"" + form.stylesheet_media.options[form.stylesheet_media.options.selectedIndex].value + "\" " +
				"href=\"" + form.stylesheet.value + "\"" +
				((html_version == html4) ? "" : " /") + ">\n";
	if(form.alternate_stylesheet_use.checked)
		hh	+= "<link rel=\"alternate stylesheet\" " +
				"type=\"text/" + (form.alternate_stylesheet_css[0].checked ? "css" : "javascript") + "\" " +
				"title=\"" + form.alternate_stylesheet_title.value + "\" " +
				"media=\"" + form.alternate_stylesheet_media.options[form.alternate_stylesheet_media.options.selectedIndex].value + "\" " +
				"href=\"" + form.alternate_stylesheet.value + "\"" +
				((html_version == html4) ? "" : " /") + ">\n";
	if(form.favicon_use.checked)
		hh	+= linktag("shortcut icon", form.favicon_url.value, "", "", "", "");
	if(form.icon_use.checked)
		hh	+= linktag("icon", form.icon_url.value, "", "image/" + (form.icon_type[0].checked ? "gif" : (form.icon_type[1].checked ? "jpg" : "png")), "", "");
	if(form.p3pv1label_use.checked)
		hh	+= linktag("P3Pv1", form.p3pv1label_url.value, "", "", "", "");
	if(form.start_use.checked)
		hh	+= linktag("start", form.start_url.value, form.start_title.value, "", lang, "");
	if(form.up_use.checked)
		hh	+= linktag("up", form.up_url.value, form.up_title.value, "", lang, "");
	if(form.first_use.checked)
		hh	+= linktag("first", form.first_url.value, form.first_title.value, "", lang, "");
	if(form.prev_use.checked)
		hh	+= linktag("prev", form.prev_url.value, form.prev_title.value, "", lang, "");
	if(form.next_use.checked)
		hh	+= linktag("next", form.next_url.value, form.next_title.value, "", lang, "");
	if(form.last_use.checked)
		hh	+= linktag("last", form.last_url.value, form.last_title.value, "", lang, "");
	if(form.contents_use.checked)
		hh	+= linktag("contents", form.contents_url.value, form.contents_title.value, "", lang, "");
	if(form.chapter_use.checked)
		hh	+= linktag("chapter", form.chapter_url.value, form.chapter_title.value, "", lang, "");
	if(form.section_use.checked)
		hh	+= linktag("section", form.section_url.value, form.section_title.value, "", lang, "");
	if(form.subsection_use.checked)
		hh	+= linktag("subsection", form.subsection_url.value, form.subsection_title.value, "", lang, "");
	if(form.appendix_use.checked)
		hh	+= linktag("appendix", form.appendix_url.value, form.appendix_title.value, "", lang, "");
	if(form.glossary_use.checked)
		hh	+= linktag("glossary", form.glossary_url.value, form.glossary_title.value, "", lang, "");
	if(form.index_use.checked)
		hh	+= linktag("index", form.index_url.value, form.index_title.value, "", lang, "");
	if(form.help_use.checked)
		hh	+= linktag("help", form.help_url.value, form.help_title.value, "", lang, "");
	if(form.search_use.checked)
		hh	+= linktag("search", form.search_url.value, form.search_title.value, "", lang, "");
	if(form.lauthor_use.checked)
		hh	+= linktag("author", form.lauthor_url.value, form.lauthor_title.value, "", lang, "");
	if(form.lcopyright_use.checked)
		hh	+= linktag("copyright", form.lcopyright_url.value, form.lcopyright_title.value, "", lang, "");
	if(form.bookmark_use.checked)
		hh	+= linktag("bookmark", form.bookmark_url.value, form.bookmark_title.value, "", lang, "");
	if(form.alternate_use.checked)
		hh	+= linktag("alternate", form.alternate_url.value, form.alternate_title.value, "", form.alternate_language.options[form.alternate_language.options.selectedIndex].value, "type=\"" + form.alternate_typ.value + "\"");

	if(form.emptydoc_use.checked)
	{
		hh	+= "</head>\n\n";
		if(html_version_detail == version_frameset)
			hh	+= "<frameset>\n<frame src=\"hier_fehlt_eine_url.html\" \/>\n<noframes>\n<body>\n\n</body>\n</noframes>\n</frameset>";
		else
			hh	+= "<body>\n\n</body>"
		hh	+= "\n\n</html>";
	}

	form.ausgabe.value	= hh;
}

// Beispiel Titelseite
function ex_titel(form)
{
	form.title_use.checked	= true;
	if(form.title.value == "")
		form.title.value	= "Bitte Titel eintragen!";

	form.description_use.checked	= true;
	if(form.description.value == "")
		form.description.value	= "Bitte Beschreibung eintragen!";
	form.keywords_use.checked	= true;
	if(form.keywords.value == "")
		form.keywords.value	= "Bitte Stichworte eintragen!";
	form.classification_use.checked	= true;
	if(form.classification.value == "")
		form.classification.value	= "Bitte Klassifizierung eintragen!";
	form.author_use.checked	= true;
	if(form.author.value == "")
		form.author.value	= "Bitte Autor/-in eintragen!";
	form.publisher_use.checked	= true;
	if(form.publisher.value == "")
		form.publisher.value	= "Bitte Herausgeber/-in eintragen!";
	form.copyright_use.checked	= true;
	if(form.copyright.value == "")
		form.copyright.value	= "Bitte Copyright eintragen!";
	form.language_use.checked	= true;

	form.audience_use.checked	= true;
	form.page_topic_use.checked	= true;
	form.page_type_use.checked	= true;
	form.favicon_use.checked	= true;
	form.favicon_url.value	= "Bitte Pfad zur Datei favicon.ico eintragen!";
	form.icon_use.checked	= true;
	form.icon_url.value	= "Bitte Pfad zur Sinnbild-Datei eintragen!";
	form.icon_type[2].checked	= true;
	form.imagetoolbar_use.checked	= true;
	form.imagetoolbar[1].checked	= true;
	form.robots_use.checked	= true;
	form.robots_noarchive.checked = false;
	form.robots_noimageindex.checked = false;
	form.robots_noimageclick.checked = false;
	if(form.robots.options[form.robots.options.selectedIndex].value == "NONE" || form.robots.options[form.robots.options.selectedIndex].value == "NOINDEX,FOLLOW")
	{
		var	i;
		for(i = 0; i < form.robots.options.length; i++)
		{
			if(form.robots.options[i].value == "ALL")
			{
				form.robots.options.selectedIndex	= i;
				break;
			}
		}
	}

	form.revisit_after_use.checked	= true;
	form.replyto_use.checked	= true;
	if(form.replyto.value == "")
		form.replyto.value	= "Bitte eMail eintragen!";

	form.content_type_use.checked	= true;
}

// Beispiel normale Seite
function ex_normal(form)
{
	form.title_use.checked	= true;
	if(form.title.value == "")
		form.title.value	= "Bitte Titel eintragen!";

	form.copyright_use.checked	= true;
	if(form.copyright.value == "")
		form.copyright.value	= "Bitte Copyright eintragen!";
	form.language_use.checked	= true;

	form.imagetoolbar_use.checked	= true;
	form.imagetoolbar[1].checked	= true;
	form.robots_use.checked	= true;
	form.robots_noarchive.checked = false;
	form.robots_noimageindex.checked = false;
	form.robots_noimageclick.checked = false;
	if(form.robots.options[form.robots.options.selectedIndex].value == "ALL" || form.robots.options[form.robots.options.selectedIndex].value == "INDEX,NOFOLLOW")
	{
		var	i;
		for(i = 0; i < form.robots.options.length; i++)
		{
			if(form.robots.options[i].value == "NONE")
			{
				form.robots.options.selectedIndex	= i;
				break;
			}
		}
	}

	form.replyto_use.checked	= true;
	if(form.replyto.value == "")
		form.replyto.value	= "Bitte eMail eintragen!";

	form.content_type_use.checked	= true;
}

// Schema/Beispiel ausfuellen
function fillexample(form)
{
	// Alle Checkboxen deselektieren
	var	i;
	for(i = 0; i < form.elements.length; i++)
		if(form.elements[i].type == "checkbox")
			if(form.elements[i].name.substr(form.elements[i].name.length - 4) == "_use")
				form.elements[i].checked	= false;

	switch(form.example[form.example.selectedIndex].value)
	{
		case "Titel":
			ex_titel(form);
			return;

		case "Normal":
			ex_normal(form);
			return;

		default:
			alert("Es wurde kein Schema gew\u00E4hlt.");
			return;
	}

	alert("Bitte alle gew\u00E4hlten Felder korrekt ausf\u00FCllen!");
}

// Zeichen zaehlen
function cnt_chars(obj, dest)
{
	dest.value	= tune(obj.value).length;
}

// Optimieren
function optimize(obj, dest)
{
	if(obj.value == "")
		return;

	if(typeof(obj.value.split) == "undefined")
	{
		alert(mldg);
		return;
	}

	// Schluesselworte in Array
	var	keyw	= obj.value.split(",");
	var	i;

	for(i = 0; i < keyw.length; i++)
	{
		while(keyw[i].substr(0, 1) == " ")
			keyw[i]	= keyw[i].substr(1);
		while(keyw[i].substr(keyw[i].length - 1) == " ")
			keyw[i]	= keyw[i].substr(0, keyw[i].length - 1);
		for(j = 0; j < i; j++)
			if(keyw[j] == keyw[i])
			{
				keyw[i]	= null;
				break;
			}
	}

	if((typeof(keyw.join) == "undefined") || (typeof(keyw.splice) == "undefined"))
	{
		alert(mldg);
		return;
	}

	// Mehrfache entfernen
	var	del_keyw_found	= false;
	var	doppelte	= 0;
	do
	{
		del_keyw_found	= false;
		for(i = 0; i < keyw.length; i++)
		{
			if((keyw[i] == null) || (keyw[i] == ""))
			{
				keyw.splice(i, 1);
				del_keyw_found	= true;
				doppelte++;
				break;
			}
		}
	} while(del_keyw_found);

	if(doppelte > 0)
		alert(doppelte + " mehrfache" + ((doppelte == 1) ? "s" : "") + " Schl\u00FCsselwort" + ((doppelte == 1) ? "" : "e") + " entfernt.");

	// Schluesselworte zusammenfuegen
	obj.value	= keyw.join(", ");
	cnt_chars(obj, dest);
}

function val_num(val)
{
	if(val.value != "")
		if(isNaN(parseInt(val.value)))
		{
			alert("Der Wert muss numerisch sein!");
			val.value	= "";
			val.focus();
			val.select();
			return false;
		}
	return true;
}

function val_max(val, max)
{
	if(val.value.length > max)
		alert("Empfohlen wird f\u00FCr das Feld \"" + val.name + "\" eine maximale L\u00E4nge von " + max + " Zeichen.");
}

// EOF
