    var EmailAddressDB;
    var EmailXSL;
	function getServerSideData(){ 
	var req = null; 
        if (window.ActiveXObject) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } else if (window.XMLHttpRequest) {
            req = new XMLHttpRequest();
        }
		//Dynamiclly Create function to check onreadystate for the xmlHttp Call
		//you create and are using to get the data from the server.
		req.onreadystatechange = function()
		{ 
			if(req.readyState == 4){
				if(req.status == 200){
					EmailAddressDB= loadXMLDoc(req.responseText);
				}else{
					alert("Error: returned status code " + req.status + " " + req.statusText);
				}
			}
		}; 
		req.open("GET", "../globaldb/data.xml", true); 
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		req.send(null);
	}
	
	function getTheAddress(fullName,subj){
	    var paramNames = new Array("fullName");
	    var paramValues = new Array(fullName);
        EmailXSL = '../globalpg/getAnEmailAddress.xsl';
	    //alert("Name Passed to look up email address: " + fullName);
	    var emailString = loadXMLDoc(applyXSLtransformationWithParams(EmailAddressDB, EmailXSL, paramNames, paramValues));
        var emailAddressReturned = emailString.getElementsByTagName("emailAddress").item(0).getAttribute("email");
        //alert("Emaill Returned: " +emailAddressReturned);
        mailThisUrl(emailAddressReturned,subj);
	}
	
    function mailThisUrl(passedEmailAddress,subj){
        //alert("mailto:"+passedEmailAddress+"?Subject="+subj);
        window.location = "mailto:"+passedEmailAddress+"?Subject="+subj;
    }

// Generic Functions below here
//This function is to be called to load the ajax response in xml doc
//The input to this function should be reqXMLHTTP.responseText
//As most of the times this function is called after calling POSTsynchAJAXrequest
//which returns reqXMLHTTP.responseText so the result of POSTsynchAJAXrequest
//can be passed as input to this function
function loadXMLDoc(result){
	var xmlDoc;
    //load xml document
	if (window.ActiveXObject) {
		//IE
		xmlDoc = new ActiveXObject("MSXML2.FREETHREADEDDOMDOCUMENT.3.0");
		xmlDoc.async="false";
		xmlDoc.loadXML(result);
	} else if (document.implementation && document.implementation.createDocument) {
		// MOZILLA
		var parser = new DOMParser(); 
		xmlDoc = parser.parseFromString(result, "text/xml"); 
	}
	return xmlDoc;
}
function applyXSLtransformationWithParams(xmlDoc, stylesheetName, paramNames, paramValues) {
	var htmlToReturn;
	if (window.ActiveXObject) {
		//IE
		var tmplate = new ActiveXObject("Msxml2.XSLTemplate.3.0");
		var xmlStyle = new ActiveXObject("MSXML2.FREETHREADEDDOMDOCUMENT.3.0");
		var xmlProc;
		xmlStyle.async = false;	
		try {
			xmlStyle.load(stylesheetName);
			tmplate.stylesheet = xmlStyle;
			xmlProc = tmplate.createProcessor();
			xmlProc.input = xmlDoc;
			for(var ii=0;ii<paramNames.length;ii++) {
				xmlProc.addParameter(paramNames[ii], paramValues[ii]);
			}
			xmlProc.transform();
			htmlToReturn = xmlProc.output;
			window.status = "Transform Complete!";
		}
		catch(e) {
			alert(e);
		}
	} else if (document.implementation && document.implementation.createDocument) {
		// MOZILLA
		var myXMLHTTPRequest = new XMLHttpRequest();
		myXMLHTTPRequest.open("GET", stylesheetName, false);
		myXMLHTTPRequest.send(null);
		var xslStylesheet = myXMLHTTPRequest.responseXML;
		
		var xsltProcessor = new XSLTProcessor();
		xsltProcessor.importStylesheet(xslStylesheet);
		for(var ii=0;ii<paramNames.length;ii++) {
			xsltProcessor.setParameter(null,paramNames[ii], paramValues[ii]);
		}
		xmlDoc = xsltProcessor.transformToDocument(xmlDoc);
		
		var xmls = new XMLSerializer();
		htmlToReturn = xmls.serializeToString(xmlDoc);
		window.status = "Transform Complete!";
	}
	return htmlToReturn;
}

