
var http;

function createRequest(){
	if(window.XMLHttpRequest) {
          http = new XMLHttpRequest();
        }
        else {
          try { http = new ActiveXObject("MSXML2.XMLHTTP.6.0"); } catch (e) {
            try { http = new ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch (e) {
              try { http = new ActiveXObject("MSXML2.XMLHTTP"); } catch (e) {           
                try { http = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ }
              }
            }
          }
	}
}

function sendRequest(){
	createRequest();
        var myurl = '/handleRequest.php?to_email=' + document.form1.to_email.options[document.form1.to_email.selectedIndex].value + '&from_email=' + document.form1.from_email.value + '&subject=' + document.form1.subject.value + '&body=' + document.form1.body.value;
	http.open('get', myurl);
	http.onreadystatechange = handleResponse;
	http.send(null);
}
    
    
function handleResponse(){
	if(http.readyState == 4 && http.status == 200){
		var response = http.responseText;
		var root = getXMLRoot();
		
		var tableId;
		var message;
 		var error;
		
		if(root.hasChildNodes()) {
			var nds=root.childNodes;
			for (var i = 0; i < nds.length; i++){
				if(nds[i].nodeName == 'tableId' && nds[i].hasChildNodes()){
                                        tableId = nds[i].firstChild.nodeValue;
                                }else if(nds[i].nodeName == 'error' && nds[i].hasChildNodes()){
					error = nds[i].firstChild.nodeValue;
                                }else if(nds[i].nodeName == 'message' && nds[i].hasChildNodes()){
					message = "<em>" + nds[i].firstChild.nodeValue + "</em>";
				}
			}
		}
		
		var resultDiv = document.getElementById(tableId);
		var MAX = 200;
		
		message += "<br />";
		if (error == '1' || error == 1) {
                  var resPar = resultDiv.parentNode;
                  if (resPar.firstChild.id != 'errormsg') {
                    resPar.innerHTML = "<p id=\"errormsg\" style=\"color: #ff0000;\">" + message + "</p>" + resPar.innerHTML;
                  }
                }
                else {
                  var resPar = resultDiv.parentNode;
                  if (resPar.firstChild.id == 'errormsg') {
                    resPar.firstChild.innerHTML = "<span></span>";
                  }
                  if (document.all) {
                    resultDiv.parentNode.innerHTML += "<p>" + message + "</p><table id=\"contactTable\"></table>";// + resultDiv.parentNode.innerHTML;
                  }
                  else {
                    resultDiv.innerHTML = "<p>" + message + "</p>";
                  }
                }
	}
}

function processResults(node){
	var results = new Array();
	var currentOpt;
	
	var nds=node.childNodes;
	for (var i = 0; i < nds.length; i++){
		if(nds[i].nodeName == 'opt' && nds[i].hasChildNodes()){			
			currentOpt = new Object();
			var optNodes = nds[i].childNodes;
			for (var y = 0; y < optNodes.length; y++){
				if(optNodes[y].nodeName == 'label' && optNodes[y].hasChildNodes()){
					currentOpt.label = optNodes[y].firstChild.nodeValue;					
				}else if(optNodes[y].nodeName == 'clicks' && optNodes[y].hasChildNodes()){
					currentOpt.clicks = optNodes[y].firstChild.nodeValue;
					results[results.length] = currentOpt;
				}
			}
		}
	}
        
	return results;
}

function getXMLRoot(){
        var xmlDoc = null;
        if(window.XMLHttpRequest) {
	  var doc = http.responseXML;
	  return doc.documentElement;		
        }
        else {
          try { xmlDoc = new ActiveXObject("MSXML2.XMLHTTP.6.0"); } catch (e) {
            try { xmlDoc = new ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch (e) {
              try { xmlDoc = new ActiveXObject("MSXML2.XMLHTTP"); } catch (e) {
                try { xmlDoc = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ }
              }
            }
          }
	  xmlDoc.async="false";
  	  xmlDoc.loadXML(http.responseText);			
	  return xmlDoc.documentElement;
        }
}

