// JavaScript Document

var request;
var queryString;   //will hold the POSTed data

// global status variable
document.status = 0;

function sendData(url,hook){
    setQueryString(hook);
    httpRequest("POST",url,true,hook);
}


//event handler for XMLHttpRequest
function contactHook(){
	var now = new Date();
    if(request.readyState == 4){
        if(request.status == 200){
			
			var errormsgs;
			
			response = request.responseText.split('[+]');
			//alert(request.responseText);
			if (response[0] > 0) {
				
				if (response[1].indexOf('[,]') > -1) {
					msgs = response[1].split('[,]');
					errormsgs = msgs[0];
					for (i=1;i<msgs.length;i++) {
						
						errormsgs += msgs[i];
					}
				}
				else {
					errormsgs = response[1];	
				}
				
				document.getElementById("emailerrors").innerHTML = "<div class='info large'>"+errormsgs+"<br /><br />Click to dismiss</div>";
				document.getElementById("emailerrors").style.visibility = "visible";
				document.getElementById("emailprompt").style.display = "none";
				document.status = 0;
			}
			else {
				
				document.getElementById("emailerrors").innerHTML = "<div class='info large'>"+response[1]+"<br /><br />Click to dismiss</div>";
				document.getElementById("emailerrors").style.visibility = "visible";
				document.getElementById("emailspam").style.display = "none";
				document.getElementById("emailprompt").style.display = "none";
				document.status = 1;
			}
			
        } else {
            alert("A problem occurred with communicating between the XMLHttpRequest object and the server program.");
        }
    }//end outer if
}

function shareHook() {
	
	var now = new Date();
    if(request.readyState == 4){
        if(request.status == 200){
			
			var errormsgs;
			
			response = request.responseText.split('[+]');
			
			//alert(request.responseText);
			
			if (response[0] > 0) {
				
				if (response[1].indexOf('[,]') > -1) {
					msgs = response[1].split('[,]');
					errormsgs = msgs[0];
					for (i=1;i<msgs.length;i++) {
						
						errormsgs += msgs[i];
					}
				}
				else {
					errormsgs = response[1];	
				}
				
				document.getElementById("shareerrors").innerHTML = "<div class='info large'>"+errormsgs+"<br /><br />Click to dismiss</div>";
				document.getElementById("shareerrors").style.visibility = "visible";
				document.getElementById("shareprompt").style.display = "none";
				document.status = 0;
				
			}
			else {
				
				document.getElementById("shareerrors").innerHTML = "<div class='info large'>"+response[1]+"<br /><br />Click to dismiss</div>";
				document.getElementById("shareerrors").style.visibility = "visible";
				document.getElementById("sharespam").style.display = "none";
				document.getElementById("shareprompt").style.display = "none";
				document.status = 1;
				
			}
			
        } else {
            alert("A problem occurred with communicating between the XMLHttpRequest object and the server program.");
        }
    }//end outer if
}

/* Initialize a Request object that is already constructed */

function initReq(reqType,url,bool,hook){
    /* Specify the function that will handle the HTTP response */
	
	switch (hook) {
		
		case 0:
		request.onreadystatechange=contactHook;
		break;
		
		case 1:
		request.onreadystatechange=shareHook;
		break;
		
	}
	
    request.open(reqType,url,bool);
    request.setRequestHeader("Content-Type",
            "application/x-www-form-urlencoded; charset=UTF-8");
    request.send(queryString);
}

/* Wrapper function for constructing a Request object.
 Parameters:
  reqType: The HTTP request type such as GET or POST.
  url: The URL of the server program.
  asynch: Whether to send the request asynchronously or not. */
  
function httpRequest(reqType,url,asynch,hook){
    //Mozilla-based browsers
    if(window.XMLHttpRequest){
        request = new XMLHttpRequest();
    } else if (window.ActiveXObject){
        request=new ActiveXObject("Msxml2.XMLHTTP");
        if (! request){
            request=new ActiveXObject("Microsoft.XMLHTTP");
        }
     }
    //the request could still be null if neither ActiveXObject
    //initializations succeeded
    if(request){
       initReq(reqType,url,asynch,hook);
    }  else {
        alert("Your browser does not permit the use of all "+
        "of this application's features!");}
}

function setQueryString(hook){
	
    queryString="";
	
	switch (hook) {
		
		case 0:
    	var frm = document.forms[0];
		break;
		
		case 1:
    	var frm = document.forms[1];
		break;
		
		default:
    	var frm = document.forms[0];
		break;
		
	}
	
    var numberElements =  frm.elements.length;
    for(var i = 0; i < numberElements; i++)  {
            if(i < numberElements-1)  {
                queryString += frm.elements[i].name+"="+
                               encodeURIComponent(frm.elements[i].value)+"&";
            } else {
                queryString += frm.elements[i].name+"="+
                               encodeURIComponent(frm.elements[i].value);
            }

    }
}
