var http_request = false;

function makeRequest(url, parameters) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		showErrorAlert();
		return false;
	}
	http_request.onreadystatechange = alertContents;
	http_request.open('GET', url + parameters, true);
	http_request.send(null);
}

function alertContents() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById('email_page_result').innerHTML = "<div style=\"color: #0c0; font-weight: bold; padding-bottom: 10px;\">The page was successfully sent!</div>";
		} else {
			showErrorAlert();
		}
		document.getElementById('EmailPageSubmit').disabled = false;
		document.getElementById('EmailPageSubmit').value = "Send";
	}
}

function showErrorAlert() {
	document.getElementById('email_page_result').innerHTML = "<div style=\"color: #c00; font-weight: bold; padding-bottom: 10px;\">There was a problem sending the page. Please try again.</div>";
}

function get(obj) {
	var result = "?";
	result += getSubNodeValues(obj);
	document.getElementById('email_page_result').innerHTML = "";
	document.getElementById('EmailPageSubmit').disabled = "disabled";
	document.getElementById('EmailPageSubmit').value = "Sending...";
	makeRequest('emailpage.aspx', result);
}

function getSubNodeValues(obj) {
	var result = "";
	for (var i = 0; i<obj.childNodes.length; i++) {
		if (obj.childNodes[i].tagName == "INPUT") {
			if (obj.childNodes[i].type == "text") {
				result += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
			}
			if (obj.childNodes[i].type == "checkbox") {
				if (obj.childNodes[i].checked) {
					result += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
				} else {
					result += obj.childNodes[i].name + "=&";
				}
			}
			if (obj.childNodes[i].type == "radio") {
				if (obj.childNodes[i].checked) {
					result += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
				}
			}
			if (obj.childNodes[i].type == "hidden") {
				result += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
			}
		}
		if (obj.childNodes[i].tagName == "TEXTAREA") {
			var txtAreaValue = obj.childNodes[i].value;
			txtAreaValue = txtAreaValue.replace("\n", "[br]");
			result += obj.childNodes[i].name + "=" + txtAreaValue + "&";
		}
		if (obj.childNodes[i].tagName == "SELECT") {
			var sel = obj.childNodes[i];
			result += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		}
		if (obj.childNodes[i].tagName == "DIV") {
			var sel = obj.childNodes[i];
			result += getSubNodeValues(sel);
		}
	}
	return result;
}

function validate_string(field, alerttxt) {
	with (field) {
		if (value == null || value == "") {
			alert(alerttxt);
			return false;
		}
		else {
			return true;
		}
	}
}

function validate_email(field, alerttxt) {
	with (field) {
		if ((value.indexOf(".") > 2) && (value.indexOf("@") > 0)) {
			return true;
		}
		else {
			alert(alerttxt);
			return false;
		}
	}
}

function validate_radio(field, alerttxt) {
	myOption = -1;
	for (i = field.length - 1; i > -1; i--) {
		if (field[i].checked) {
			myOption = i;
			i = -1;
		}
	}
	if (myOption == -1) {
		alert(alerttxt);
		return false;
	} else {
		return true;
	}
}

var fadeInterval = 0;
var curOpacity = 0;

function setOpacity(obj, opacity) {
	obj.style.opacity = opacity / 100;
	obj.style.MozOpacity = opacity / 100;
	obj.style.KhtmlOpacity = opacity / 100;
	obj.style.filter = "alpha(opacity=" + opacity + ");";
	
	obj.curOpacity = opacity;
}

function fadeIn(obj) {
	obj.style.display = "block";
	
	clearInterval(fadeInterval);
	fadeInterval = setInterval(function() {
		if (curOpacity < 100) {
			curOpacity += 10;
			setOpacity(obj, curOpacity);
		} else {
			setOpacity(obj, 100);
			clearInterval(fadeInterval);
		}
	}, 25);
}

function fadeOut(obj) {
	clearInterval(fadeInterval);
	fadeInterval = setInterval(function() {
		if (curOpacity > 0) {
			curOpacity -= 10;
			setOpacity(obj, curOpacity);
		} else {
			setOpacity(obj, 0);
			obj.style.display = "none";
			clearInterval(fadeInterval);
		}
	}, 25);
}
