/*
*                                                                HM_RESPONSE.JS
* ---------------------------------------------------------------------------------------------------------------------------------------------------
*  Scripts for handling the sending of user inquiries via email.
* ---------------------------------------------------------------------------------------------------------------------------------------------------
*/

function MessageController () {
	this.alertMsgSent ;
	this.alertMsgValidUser ;
	this.alertMsgStatus ;
	this.alertErrorLevel ;
}

MessageController.prototype.listener = function() {

//	alert ("listerner called") ;
	
	if (this.alertErrorLevel == 0) {		
		document.getElementById("divUserContactForm").style.display = "none" ;
		document.getElementById("divsubhdr").style.display = "none" ;
		document.getElementById("divUserContactError").style.display = "none" ;
		document.getElementById("divUserEmailError").style.display = "none" ;
		document.getElementById("divUserContactResponse").style.display = "block" ;
	}
	else if (this.alertErrorLevel == 2) {
		document.getElementById("divUserEmailError").style.display = "block" ;
	}
	else {
		document.getElementById("divUserContactError").style.display = "block" ;
	}
}

MessageController.prototype.sendMsg = function () {

	userInquiry = new ContactEmail(this) ;
		
	userInquiry.sendFormInfo() ;
			
}

MessageController.prototype.cancelMsg = function () {

			
}

function ContactEmail (msgController) {

	this.emailXmlHttp = this.GetEmailXmlHttpObject (msgController) ;

}

ContactEmail.prototype.sendFormInfo = function () { 

//	alert("Begin alert send process") ;

//	  this.emailXmlHttp = this.GetEmailXmlHttpObject() ;
	 
	 if (this.emailXmlHttp==null) {
//  alert ("Browser does not support HTTP Request")
		return ;
	  } 
	  
// =========== form var values ==============

	var username ;
	var userinquiry ;
	var usertele ;
	var usercntry ;
	var userurl ;
	var userorg ;
	var useremail ;
	
	username = document.getElementById("inputUserName").value ;
	userinquiry = document.getElementById("inputUserInquiry").value ;
	usertele = document.getElementById("inputUserTele").value ;
	usercntry = document.getElementById("inputUserCntry").value ;
	userurl = document.getElementById("inputUserUrl").value ;
	userorg = document.getElementById("inputUserOrg").value ;
	useremail = document.getElementById("inputUserEmail").value ;
	
//	alert("Sending notification from user: " + useremail) ;
	  
/* ===== simple var values =======
	  var desc = "test" ;
	  var lat = "1" ;
	  var lon = "2" ;
	  var useremail = "test@me.net" ;
	  var sitename = "testsite" ;
 =============== */
 	  
	var url="/cgi-bin/hm/hm_response.pl?uname=" + username + "&utele=" + usertele + "&ucntry=" + usercntry +
                "&uurl=" + userurl + "&uorg=" + userorg + "&useremail=" + useremail  + "&uinq=" + userinquiry ;
				
//	alert ("Url: " + url) ;
	
	 this.emailXmlHttp.open("GET",url,true) ;
	 this.emailXmlHttp.send(null) ;
 }
 
 ContactEmail.prototype.GetEmailXmlHttpObject = function (msgController) {
	 var objXMLHttp=null
	 if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest()
	 }
	 else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	 }
	  
	 objXMLHttp.onreadystatechange  = function () {
			if (objXMLHttp.readyState==4 || objXMLHttp.readyState=="complete") {

				 // alert("xml request complete") ;
				 
				 var emailStatus ;
				 emailStatus = objXMLHttp.responseText;
				 
				var gotEmailStatus = function (Response) {
						msgController.alertMsgStatus = Response ;
						
//						alert ("Alert: " + msgController.alertMsgStatus) ;

						if (Response.indexOf('Error') != -1) {
							if (Response.indexOf('User Information') != -1) {
								msgController.alertMsgValidUser = false ;
								msgController.alertErrorLevel = 2 ;
//								alert(msgController.alertMsgStatus) ;
							}
							else {
								msgController.alertMsgValidUser = true ;
								msgController.alertMsgSent = false ;
								msgController.alertErrorLevel = 1 ;
//								alert(msgController.alertMsgStatus) ;
							}
						}
						else {
					//	  alert(Response) ;
							msgController.alertMsgValidUser = true ;
							msgController.alertMsgSent = true ;
							msgController.alertErrorLevel = 0 ;
						}
						
						msgController.listener() ;
						
						return ;
				 } 
					
				 gotEmailStatus (emailStatus) ;
				 
				 return ;
			 }
		}
	  
	 return objXMLHttp ;

}



