var fOK;
var flashVersion = 0;
var ie = (navigator.appName.indexOf("Microsoft") != -1);

if (!ie) {
	var i, j, bFlashInst = false;
	var pluginLength = navigator.plugins.length;
	for (i=0;i<pluginLength;i++) {
		if (navigator.plugins[i].name.indexOf("Flash") != -1) {
			for (j=1;j<15;j++) {
				if (navigator.plugins[i].description.indexOf(j + ".") > -1) {
					flashVersion = j;
					bFlashInst = true;
					break;
				}
			}
		if (bFlashInst) break;
		}
	}
}
else {
	flashVersion = whichFlashVersion();
}
fOK = (flashVersion > 4);

var imgObj = new Array(4);
var fileName = new Array(4);
fileName[0] = "kraal.htm";
fileName[1] = "zulu_man.htm";
fileName[2] = "zulu_hut.htm";
fileName[3] = "accommodation.htm";
var fButStyle = new Array(2);
var fObj = new Array(4);

function init() {
	var fBut = new Array(2);
	with (document) {
		if (!fOK) {
			getElementById("logo").innerHTML = '<img src="images/logo.gif" width="189" height="100" title="" alt="Logo" />';
		}
		imgObj[0] = getElementById("imgA");
		imgObj[1] = getElementById("imgB");
		imgObj[2] = getElementById("imgC");
		imgObj[3] = getElementById("imgD");
		fObj[0] = getElementById("nameFld");
		fObj[1] = getElementById("countryFld");
		fObj[2] = getElementById("emailFld");
		fObj[3] = getElementById("msgFld");
		fBut[0] = getElementById("submitButton");
		fBut[1] = getElementById("resetButton");
	}
	for (i=0;i<4;i++) {
		if (ie) {
			imgObj[i].filters.alpha.enabled = true;
			imgObj[i].style.borderStyle = "none";
		}
		imgObj[i].onmouseover = new Function("chgImgStyle(imgObj[" + i + "], true);");
		imgObj[i].onmouseout = new Function("chgImgStyle(imgObj[" + i + "], false);");
		imgObj[i].onclick = new Function("showEnlargement(fileName[" + i + "]);");
	}
	for (i=0;i<2;i++) {
		fButStyle[i] = fBut[i].style;
		fBut[i].onmousedown = new Function("chgButStyle(fButStyle[" + i + "], true);");
		fBut[i].onmouseup = new Function("chgButStyle(fButStyle[" + i + "], false);");
		fBut[i].onmouseout = new Function("chgButStyle(fButStyle[" + i + "], false);");
	}
	fBut[0].onclick = validateAndSubmit;
	fBut[1].onclick = resetFields;
	document.getElementById("map").onclick = showMap;
}

function chgImgStyle(obj, mOver) {
	if (ie) {
		obj.filters.revealTrans.Apply();
		obj.filters.alpha.enabled = !mOver;
		obj.filters.revealTrans.Play();
	}
	else {
		obj.style.borderColor = (mOver) ? "#99ff99" : "#000000";
	}
}

function chgButStyle(obj, mDown) {
	obj.borderColor = (mDown) ? "#000000 #990000 #990000 #000000" : "#990000 #000000 #000000 #990000";
}

function showEnlargement(fName) {
	window.open("images/" + fName,"","directories=no, location=no, menubar=no, scrollbars=no, status=no, toolbar=no, resizable=no, left=20, top=20, width=600, height=450");
}

function showMap() {
	window.open("images/map.htm","","directories=no, location=no, menubar=no, scrollbars=no, status=no, toolbar=no, resizable=no, left=20, top=20, width=473, height=490");
}

function validateAndSubmit() {
	var errMsg = "";
	var errFld = -1;
	var fVal = new Array(4);
	for (i=0;i<4;i++) {
		fVal[i] = fObj[i].value;
	}
	//Validate Name
	if (fVal[0] == "") {
		errMsg = "Name has to be filled!";
		errFld = 0;
	}
	else if (fVal[0].length < 5) {
		errMsg = "Name is not valid!";
		errFld = 0;
	}
	//Validate Country
	if (fVal[1] == "") {
		errMsg += setErrMsg(errFld) + "Country has to be filled!";
		errFld = (errFld == -1) ? 1 : errFld;
	}
	else if (fVal[1].length < 2) {
		errMsg += setErrMsg(errFld) + "Country is not valid!";
		errFld = (errFld == -1) ? 1 : errFld;
	}
	//Validate Email
	if (fVal[2] == "") {
		errMsg += setErrMsg(errFld) + "Email has to be filled!";
		errFld = (errFld == -1) ? 2 : errFld;
	}
	else if (!validEmail(fVal[2])) {
		errMsg += setErrMsg(errFld) + "Email is not valid!";
		errFld = (errFld == -1) ? 2 : errFld;
	}
	//Validate Message
	if (fVal[3] == "") {
		errMsg += setErrMsg(errFld) + "Message has to be filled!";
		errFld = (errFld == -1) ? 3 : errFld;
	}
	else if (fVal[3].length < 10) {
		errMsg += setErrMsg(errFld) + "Message is not valid!";
		errFld = (errFld == -1) ? 3 : errFld;
	}
	if (errFld != -1) {
		alert(errMsg);
		if (fVal[errFld] == "") {
			fObj[errFld].focus();
		}
		else {
			fObj[errFld].select();
		}
		return;
	}
	//Set values of hidden fields and submit form
	with (document.emailForm) {
		name.value = "Name: " + fVal[0];
		country.value = "Country: " + fVal[1];
		email.value = "Email: " + fVal[2];
		message.value = fVal[3];
		emailFrom.value = fVal[2];
		submit();
	}
}

function setErrMsg(val) {
	if (val != -1) {
		return "\n\n";
	}
	else {
		return "";
	}
}

function validEmail(emailAddress) {
	var emailLength = emailAddress.length;
	var adIndex;
	var lastDotIndex;
	if (emailLength < 6) {
		return false;
	}
	else {
		adIndex = emailAddress.indexOf("@");
		lastDotIndex = emailAddress.lastIndexOf(".");
		if (adIndex < 1 || adIndex > (lastDotIndex - 2) || lastDotIndex > (emailLength - 3) || lastDotIndex < (emailLength - 5)) {
			return false;
		}
	}
	return true;
}

function resetFields() {
	for (i=0;i<4;i++) {
		fObj[i].value = "";
	}
}
