if (!Prototype) {
	alert('Warning: The prototype.js file is required to use the agent-directory-agent-email.js scripts');
} else {
	var currentMajorVersion = new Number(Prototype.Version.substring(0,Prototype.Version.lastIndexOf('.')));
	if (currentMajorVersion < 1.6) {
		alert('Warning: The agent-directory-agent-email.js script requires that the prototype.js script be at least version 1.6.0');
	} else {
		Event.observe(window, 'load', initFormValidation);
	}
}

function initFormValidation(event) {
	Event.observe($('frmPropertyAgentEmail'), 'submit', validateEmailAgent);
	
	Event.observe($('txtSenderName'),	'focus', HideFormError);
	Event.observe($('txtSenderEmail'),	'focus', HideFormError);
	Event.observe($('txaLetter'), 		'focus', HideFormError);
}

function validateEmailAgent(event) {
	HideFormError(event)
	Event.stop(event);
	var eName = $('txtSenderName');
	if (eName) {	
		if (eName.value== "") {
			ShowFormError(eName, "Please enter your name.");
			return false;	
		}
	}
	
	var eEmail = $('txtSenderEmail');
	if(eEmail)
	{	
		if (eEmail.value== "" || IsValidEmail(eEmail.value) == false)
		{
			ShowFormError(eEmail, "Please enter a valid email address.");
			return false;	
		}
	}
	
	var eLetter = $('txaLetter');
	if(eLetter)
	{	
		if (eLetter.value== "")
		{
			ShowFormError(eLetter, "Please enter a short message for the agent.");
			return false;	
		}
		
		if (eLetter.value.length > 500)
		{
			ShowFormError(eLetter, "Please keep your message to 500 characters or less. Your message is " + eLetter.value.length + " characters long.");
			return false;	
		}			
	}				
	Event.element(event).submit();
}

function ShowFormError(obj, errText)
{
	obj = $(obj);
	obj.addClassName("invalidentry");
	
	var errMsg = document.createElement('div');
	errMsg.className = 'errorMessage';
	
	var errBtm = document.createElement('div');	// used to hold rnd bottom cnrs 
	var errBdy = document.createElement('div'); // used for the sides and to hold the error msg 
	
	errBtm.appendChild(errBdy);
	errMsg.appendChild(errBtm);
	errBdy.innerHTML = errText;
	
	var position = findPos(obj);
	
	$('frmPropertyAgentEmail').appendChild(errMsg);
		
	errMsg.style.top  = position[1]+'px';
	errMsg.style.left = (position[0] - 120) +'px';
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


function HideFormError(event) {
	$$("input.invalidentry").each(function(field) {
		field.removeClassName('invalidentry');
	})
	
	$$("div.errorMessage").each(function(msg) {
		msg.remove();
	})
}

function IsValidEmail(str) {
	re = /^[-\w_]+(\.[-\w_]+)?@[-\w]+\.[-\w\.]+$/i;
	return str.match(re)?true:false; 
}
