/** Gregor Haedicke - November 2010
*
* Form evaluation and pre settings
*
**/
//----------------------------------------------------------------------------------
function writeEmail(sName, sDomain, sTopLevelDomain, sLinkname) {
	var sAnchor = sName + '@' + sDomain + '.' + sTopLevelDomain;
	if (sLinkname == '') {
		sLinkname = sAnchor;
	}
	document.write('<a title="E-Mail an ' + sAnchor + '" href="mailto:"' + sAnchor + '">' + sLinkname + '</a>');
}
//----------------------------------------------------------------------------------
function scanMailField(sValue) {
	var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
	var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
	var regex = "^" + usr + "\@" + domain + "$";
	var rgx = new RegExp(regex);
	return rgx.exec(sValue) ? false : true;
}
//----------------------------------------------------------------------------------
function scanTxtField(sValue) {
	return ((sValue.length < 2) || (sValue == "")) ? true : false;
}
//----------------------------------------------------------------------------------
function scanChars(sValue) {
	return sValue.search(/(\'|\"|<|>|\$|\*|!--|\{|\})/);
}
//----------------------------------------------------------------------------------
function checkSubmit(oForm) {
	with (oForm) {
		for (var i = 0; i < elements.length; i++) {
			if ((elements[i].type == 'text') || (elements[i].type == 'textarea')) {
				if (scanChars(elements[i].value) != -1) {
					alert('Bitte verwenden Sie diese Zeichen nicht: \' " < > $ * !-- { }.');
					return false;
				}
			}
		}
		if (scanTxtField(realname.value)) {
			realname.focus();
			alert('Bitte geben Sie Ihren Namen ein.');
			return false;
		}
		if (scanMailField(email.value)) {
			email.focus();
			alert('Bitte geben Sie eine g\u00FCltige E-Mailadresse ein.');
			return false;
		}
		if (scanTxtField(message.value)) {
			message.focus();
			alert('Bitte geben Sie eine Nachricht ein.');
			return false;
		}
		if ((subject[1].checked) || (subject[2].checked)) {
			if (scanTxtField(phone.value)) {
				phone.focus();
				alert('F\u00FCr eine Tisch- oder Raumreservierung ben\u00F6tigen wir Ihre Telefonnummer.');
				return false;
			}
		}
	}
	return true;
}
//----------------------------------------------------------------------------------
function stripHTML(s) {
	// var sTemp = s.replace(/(<.*['"])([^'"]*)(['"]>)/g, function(x, p1, p2, p3) { return  p1 + p3; });
	var sTemp = s.replace(/<br>/g, '\r\n');
	sTemp = sTemp.replace(/\&amp;/g, '&');
	return sTemp.replace(/<\/?[^>]+>/gi, '');
}
//----------------------------------------------------------------------------------
function detectSubject(sHash) {
	with (document.forms[0]) {
		// clear all fields
		for (var i = 0; i < elements.length; i++) {
			if ((elements[i].type == 'text') || (elements[i].type == 'textarea')) {
				elements[i].value = '';
			}
		}
		if (sHash != '') {
			switch (sHash.substr(0,3)) {
				case '#s0':
					// Allgemeine Anfrage
					var n = 0; break;
				case '#1':
				case '#s1':
					// Eintrittskartenreservierung
					var n = 1; break;
				case '#s2':
					// Tisch-/Raumreservierung
					elements[13].value = 'Ich/wir möchten gerne xx Plätze/einen Tisch/xx Tische für den xx.xx.2012 reservieren.';
					var n = 2; break;
				case '#s3':
					// Newsletter abonnieren
					elements[13].value = 'Hiermit möchte ich gerne den Wiener Hof Newsletter abonnieren.';
					var n = 3; break;
				case '#s4':
					// Newsletter abbestellen
					elements[13].value = 'Hiermit möchte ich den Wiener Hof Newsletter wieder abbestellen.';
					var n = 4; break;
				case '#s5':
					// Lob und positive Kritik
					var n = 5; break;
				case '#wk':
					elements[13].value = "\"Ganze Gänse\" - Vorbestellung/Reservierung";
					var n = 2; break;
			}
			elements.subject[n].checked = true;
		}
		if (sHash.substr(3,5) == '?eID=') {
			try {
				var oSchedules = document.getElementById('menuRight');
				var oAnchors = oSchedules.getElementsByTagName('a');
				var oListItemText = null;
				var id = 'e' + sHash.substr(8);
				sListItemText = oAnchors[id].innerHTML;
			} catch (e) {
			} finally {
				var sDefault = "Ich/wir möchten gerne xx Plätze/Eintrittskarten für die folgende Veranstaltung reservieren:";
				var sDivider = "\r\n------------------------------------------------------------\r\n";
				elements[13].value = sDefault + sDivider + stripHTML(sListItemText) + sDivider;
			}
		}
	}
}

