// getXMLHttpRequest object
function getXMLHttpRequestObject(){
	var xmlobj;
    // check for existing requests
    if(xmlobj!=null&&xmlobj.readyState!=0&&xmlobj.readyState!=4){
        xmlobj.abort();
    }
    try{
        // instantiate object for Mozilla, Nestcape, etc.
        xmlobj=new XMLHttpRequest();
    }
    catch(e){
        try{
            // instantiate object for Internet Explorer
            xmlobj=new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e){
            // Ajax is not supported by the browser
            xmlobj=null;
            return false;
        }
    }
	return xmlobj;
}

// request 'sendmail.php' file - sends email message
function sendEmailRequest(){
	var message=document.getElementsByTagName('form')[1].elements['message'].value;
	if(message.length>1000){message=message.substring(0,1000)};
	// open socket connection
	emailXMLHttpObj.open('POST','includes/sendmail.php',true);
	// set form http header
	emailXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	// get form values and send http request
   	emailXMLHttpObj.send(getFormValues(document.getElementsByTagName('form')[1]));
	emailXMLHttpObj.onreadystatechange=emailStatusChecker;
}
// check status of email requester object
function emailStatusChecker(){
    // if mail request is completed
    if(emailXMLHttpObj.readyState==4){
        if(emailXMLHttpObj.status==200){
			// if status == 200 display server response
			displayServerResponse();
        }
        else{
            alert('Failed to get response :'+emailXMLHttpObj.statusText);
        }
    }
}

// get form values
function getFormValues(fobj){
    var str='';
    for(var i=0;i< fobj.elements.length;i++){
        str+=fobj.elements[i].name+'='+ escape(fobj.elements[i].value)+'&';
    }
    str=str.substr(0,(str.length-1));
    return str;
}	

function checkEmailAddress(field) {
	// the following expression must be all on one line...
	var goodEmail = field.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
	var lGood = false;

  if (goodEmail) {
    lGood = true;
  } else {
    alert('Please enter a valid e-mail address.');
    field.focus();
    field.select();
  }
	return lGood;
}


//handles email send links
function mailThisUrl() {
	var cURL = window.location;
	var mText = 'A link to Marthapnochimson.com';

	if (checkEmailAddress(document.emailPop.fromEmail) && checkEmailAddress(document.emailPop.toEmail)) {
		sendEmailRequest();
    	// window.location = "mailto:"+document.eMailer.address.value+"?subject="+m+"&body="+document.title+" "+u;
  }
}

// CANCELS EMAIL
function cancelEmail() {
	showDiv('emailPop');
}


// instantiate global email object
var emailXMLHttpObj=getXMLHttpRequestObject();
var commentXMLHttpObj=getXMLHttpRequestObject();
