function getElementPosition (el) {
	var position = new Object();
	//left
	var currEl = el;
	var left = currEl.offsetLeft;
	while ((currEl = currEl.offsetParent) != null) { left += currEl.offsetLeft; }
	position.left = left;
	
	//top
	var currEl = el;
	var top = currEl.offsetTop;
	
	while((currEl = currEl.offsetParent) != null) { top += currEl.offsetTop; }
	position.top = top;
	
	return position;
}

function openEmailThisDiv(anchorId) {

  var anchorElement = document.getElementById(anchorId);
  var position = getElementPosition(anchorElement);
  var emailThisLoadingImg = document.getElementById("emailThisLoadingImg");
			
  var emailThisDiv = document.getElementById("emailThisDiv");
  emailThisDiv.style.display = 'block';
  emailThisDiv.style.left = position.left+'px';
  emailThisDiv.style.top = position.top+'px';
  emailThisLoadingImg.style.display = "none";
}

function sendEmailThis(formName) {
	var form = document.forms[formName];
	var emailThisDiv = document.getElementById("emailThisDiv");
	var emailToField = document.getElementById("emailTo");
	var emailFromField = document.getElementById("emailFrom");
	var emailThisLoadingImg = document.getElementById("emailThisLoadingImg");
	if(emailToField.value == "") alert("You must enter a to address.");
	else if(emailFromField.value == "") alert("You must enter a from address.");
	else {
		//-------------- Ajax submit -----------------//
		var xhr;
    	if (window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP"); //IE
    	else if (window.XMLHttpRequest) xhr = new XMLHttpRequest();             //Everything else
    	else alert('Could not send email');
    	var data = "emailTo=" + emailToField.value + "&emailFrom=" + emailFromField.value;
		xhr.open("post", form.action, true);
		emailThisLoadingImg.style.display = "inline";
		
		function submitCallback() {
			if (xhr.readyState == 4 && xhr.status != 200) {
				emailThisLoadingImg.style.display = "none";
				alert("Error: " + xhr.status + " " + xhr.statusText);
			} else {
				if(xhr.readyState == 4 && xhr.status == 200) {
					emailThisLoadingImg.style.display = "none";
					alert("Email sent");
					emailThisDiv.style.display = "none";
					emailToField.value = "";
				}
			}
		}
		
		xhr.onreadystatechange = submitCallback;
		xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");	
		xhr.send(data);
		//--------------------------------------------//
		
	}
	
}
