
function sendFormValidator(){
    var nameField = document.getElementById('sfNameField');
    var emailField = document.getElementById('sfEmailField');
    var recipientsField = document.getElementById('sfRecipientsField');
    var success = true;
    if(nameField.value==''){
        success = false;
        showError('sfName','The Name field is a required field.');
    } else {
        document.getElementById('sfNameErr').style.display = 'none';
    }
    if(emailField.value==''){
        success = false;
        showError('sfEmail','The Email field is a required field.');
    } else {
        document.getElementById('sfEmailErr').style.display = 'none';
    }
    if(recipientsField.value==''){
        success = false;
        showError('sfRecipients','You must enter 1 - 20 recipient email addresses.');
    } else {
        document.getElementById('sfRecipientsErr').style.display = 'none';
    }
    if(success){ sendFormAjax(); }
}

function showErrorMsg(tID){
    document.getElementById(tID).style.display = 'block';
}

function hideErrorMsg(tID){
    document.getElementById(tID).style.display = 'none';
}

function showError(tID,msg){
    document.getElementById(tID+'ErrMsg').innerHTML = msg;
    document.getElementById(tID+'Err').style.display = 'inline';
}


function sendFormAjax(){
	var http_request;
	try{
		http_request = new XMLHttpRequest();
	} catch (e){
		try{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				alert("Sorry - we are unable to process your request at the current time.");
				return false;
			}
		}
	}
	http_request.onreadystatechange = function(){
	    var sendingMsg = document.getElementById("sendingMsg")
	    if (http_request.readyState > 0 && http_request.readyState < 4){
	        sendingMsg.style.display = 'block';
	    } else if(http_request.readyState == 4 && http_request.status == 200){
			sendingMsg.style.display = 'none';
			sendFormResponseProc(http_request.responseXML);
		}
	}
	
	var pageURL = escape(document.getElementById('sfUrlField').value);
	var name = escape(document.getElementById('sfNameField').value);
	var email = escape(document.getElementById('sfEmailField').value);
	var recipients = escape(document.getElementById('sfRecipientsField').value);
	var message = escape(document.getElementById('sfMessageField').value);
	var copyme = escape(document.getElementById('sfCopymeField').value);
	
	var url = '/services/SendEmail.asmx/SubmitEmailForm';
	url += '?sfUrl='+pageURL;
	url += '&sfName='+name;
	url += '&sfEmail='+email;
	url += '&sfRecipients='+recipients;
	url += '&sfMessage='+message;
	url += '&sfCopyme='+copyme;

	http_request.open("GET", url, true);
	http_request.send(null); 
}

function sendFormResponseProc(xmlObj){
    
    var response = xmlObj.documentElement;
    var success = response.getAttribute("success")
    if(success=='true'){
        document.getElementById('sendFormDiv').style.visibility = 'hidden';
        document.getElementById('sendThankyouDiv').style.display = 'block';
    } else {
        var fields = response.getElementsByTagName('field');
        if(fields.length>0){
            for(i=0;i<fields.length;i++){
                var id = fields[i].getElementsByTagName('id').item(0).firstChild.data;
                var msg = fields[i].getElementsByTagName('msg').item(0).firstChild.data;
                showError(id,msg);
            }
        } else { // general failure - no specific error field / msg provided
            document.getElementById('sendFormDiv').style.visibility = 'hidden';
            document.getElementById('sendFailureDiv').style.display = 'block';
        }
    }
}
