﻿var oXML = fCreateXMLHttpRequest();

function fCreateXMLHttpRequest() {
	var oXmlTemp = "";
	if (window.XMLHttpRequest) {
		try {
			oXmlTemp = new XMLHttpRequest();
		}
		catch (e) {
			oXmlTemp = false;
		}
	}
	else if (window.ActiveXObject) {
		try {
			oXmlTemp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e) {
			oXmlTemp = false;
		}
	}
	return oXmlTemp;
}
function sendRequest(frm, file) {
	var oStatusBar = document.getElementById('ContactUsResults');
	var oSendButton = document.getElementById('SendButton');

	var rnd982g = Math.random();
	var str = "";

	if (frm.id == "ContactUs") {
		var oResults = document.getElementById('ContactUsResults');
	} else {
		var oResults = document.getElementById('results');
	}

	// Cater for different file locations without hardcoding url
	iIndex = location.href.lastIndexOf("co.za");
	sURL = location.href.substring(0, iIndex + 5);
	file = sURL + "/" + file;

	fCleanFields();

	if (str = getForm(frm)) {
		oSendButton.disabled = "disabled";
		oStatusBar.style.color = "black";
		oResults.innerHTML = "Please wait while we send the email";
		str += "&Href=" + location.href;
		str += "&PageName=" + document.title;
		oXML.open('GET', file + '?' + str + '&rnd982g=' + rnd982g);
		oXML.onreadystatechange = handleResponse;
		oXML.send(null);
	}
	return false;
}
function handleResponse() {

	if (oXML.readyState == 4) {
		var response = oXML.responseText;
		//if (document.body.id == "Feedback") {
		document.getElementById('ContactUsResults').innerHTML = response;
		//    document.getElementById("results").innerHTML = response;
		//if (document.getElementById("divSuccess") != null)
		//    document.getElementById("ResetButton").click();
		//} else {
		//    document.getElementById("results").innerHTML = response;
		//}

		if (document.getElementById("divSuccess") != null) {
			// Prevent duplicate emails per page		
			//document.getElementById("TellAFriend").StoreToMail.value = document.getElementById("TellAFriend").ToMail.value;
		}
	}
}
function getForm(fobj) {
	var oStatusBar = document.getElementById('ContactUsResults');

	var str = "";
	var ft = "";
	var fv = "";
	var fn = "";
	var els = "";
	var bError = false, bEmailError = false, bEmailDuplicate = false;

	for (var i = 0; i < fobj.elements.length; i++) {
		els = fobj.elements[i];
		ft = els.title;
		fv = els.value;
		fn = els.name;

		switch (els.type) {
			case "text":
			case "hidden":
			case "password":
			case "textarea":
				if (encodeURI(ft) == "Required%20field" && encodeURI(fv).length < 1) {
					els.style.borderColor = "red";
					bError = true;
				} else {
					// Validate email addresses
					if (fn == "FromMail" || fn == "ToMail") {
						if (!fValidateEmailAddy(fv)) {
							els.style.borderColor = "red";
							bEmailError = true;
						} else {
							els.style.borderColor = "#CCCCCC";
						}
					} else {
						els.style.borderColor = "#CCCCCC";
					}

					if (fn == "Message") {
						if (fv == "") {
							els.style.borderColor = "red";
							bError = true;
						} else {
							els.style.borderColor = "#CCCCCC";
						}
					}
					// Validate FromName
					if (fn == "FromName") {
						if (fv == "") {
							els.style.borderColor = "red";
							bError = true;
						} else {
							els.style.borderColor = "#CCCCCC";
						}
					}

				}
				str += fn + "=" + encodeURI(fv) + "&";
				break;
			case "checkbox":
			case "radio":
				if (els.checked) str += fn + "=" + encodeURI(fv) + "&";
				break;
			case "select-one":
				str += fn + "=" +
			els.options[els.selectedIndex].value + "&";
				break;
		}
	}
	if (!bError && !bEmailError && !bEmailDuplicate) {
		oStatusBar.innerHTML = "";
		str = str.substr(0, (str.length - 1));
		return str;
	} else {
		oStatusBar.style.color = "red";
		if (bError) {
			oStatusBar.innerHTML = "Please complete all the fields marked with red.";
			return false;
		}
		if (bEmailError) {
			oStatusBar.innerHTML = "Please enter a valid email address.";
			return false;
		}
		if (bEmailDuplicate) {
			oStatusBar.innerHTML = "You have already sent an email to this address.";
			return false;
		}

	}
}

function fValidateEmailAddy(sEmailAddy) {

	AtPos = sEmailAddy.indexOf("@")
	StopPos = sEmailAddy.lastIndexOf(".")
	Message = ""

	if (sEmailAddy == "") {
		return false;
	}

	if (AtPos == -1 || StopPos == -1) {
		return false;
	}

	if (StopPos < AtPos) {
		return false;
	}

	if (StopPos - AtPos == 1) {
		return false;
	}
	return true;
}

// Popup
function MM_findObj(n, d) { //v4.01
	var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
		d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
	}
	if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
	for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
	if (!x && d.getElementById) x = d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
	var i, p, v, obj, args = MM_showHideLayers.arguments;
	for (i = 0; i < (args.length - 2); i += 3) if ((obj = MM_findObj(args[i])) != null) {
		v = args[i + 2];
		if (obj.style) { obj = obj.style; v = (v == 'show') ? 'visible' : (v == 'hide') ? 'hidden' : v; }
		obj.visibility = v;
	}

	// Clear form
	fClearForm(v);
}

function fShowHideLayers(oObject, sAction) {

	alert(sAction);
	if (layerLogoDesc.style.visibility == "visible" && sAction == "visible") return;

	layerLogoDesc.style.visibility = sAction;

	return true;

	/*
	var i,p,v,obj,args=fShowHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
	if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
	obj.visibility=v; }
	*/
}

function fClearForm(sStatus) {
	var oForm = document.getElementById("ContactUs");

	if (sStatus == "visible")
		oForm.FromName.focus();
	oForm.FromName.value = "";
	oForm.FromMail.value = "";
	//oForm.ToMail.value = "";
	oForm.Message.value = "";

	oForm.FromName.style.borderColor = "#CCCCCC";
	oForm.FromMail.style.borderColor = "#CCCCCC";
	//oForm.ToMail.style.borderColor = "#CCCCCC";
	oForm.Message.style.borderColor = "#CCCCCC";

	document.getElementById('results').innerHTML = "&nbsp;";

}

function fCleanFields() {

	var oForm = document.getElementById("ContactUs");

	oForm.FromName.value = trimAll(oForm.FromName.value);
	oForm.FromMail.value = trimAll(oForm.FromMail.value);
	//oForm.ToMail.value = trimAll(oForm.ToMail.value);
	oForm.Message.value = trimAll(oForm.Message.value);

}

function trimAll(sString) {
	while (sString.substring(0, 1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length - 1, sString.length) == ' ') {
		sString = sString.substring(0, sString.length - 1);
	}
	return sString;
}
