var http_request = false;
var requestActive = false;
var temp_stack = "";

function makePOSTRequest(url, parameters) { 
    http_request = false;
	if (window.XMLHttpRequest) { 
	    http_request = new XMLHttpRequest(); 
		if (http_request.overrideMimeType) { 
		    http_request.overrideMimeType('text/html'); 
		}
	} else if (window.ActiveXObject) { 
	    try { 
		    http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) {
	        try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
     }
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  
  http_request.onreadystatechange = redirectPage;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
  
  return true;
}

function makeGETRequest(url, parameters) { 
    http_request = false;
	if (window.XMLHttpRequest) { 
	    http_request = new XMLHttpRequest(); 
		if (http_request.overrideMimeType) { 
		    http_request.overrideMimeType('text/html'); 
		}
	} else if (window.ActiveXObject) { 
	    try { 
		    http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) {
	        try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
     }
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  
  http_request.onreadystatechange = getAjax;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
  
  return true;
}


function redirectPage() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
         location.href = http_request.responseText;
    } else {
      alert('There was a problem with the request.');
    }
    requestActive = false;
  }
}

function getAjax() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
      response = http_request.responseText.split('|');
      responseStatus = response[0];
      responseContent = response[1];
      if (responseStatus == "ERROR") {
          location.href = responseContent;
      } else if (responseStatus == "SUCCESS") {
         responseTo = response[1];
         responsePut = response[2];
         document.getElementById("q"+responseTo).parentNode.innerHTML = responsePut;
  	 document.getElementById("nav").innerHTML = temp_stack;
         temp_stack = "";
       }
    } else {
      alert('There was a problem with the request.');
    }
    requestActive = false;
  }
}

function submitQuote() {
  if (requestActive == false) {
    requestActive = true;
    document.submit.submit_form.value = "Ouch!";
    document.submit.submit_form.disabled = true;
        var param  = "quote=" + encodeURIComponent( document.submit.post.value );
        param += "&spam=" + encodeURI( document.submit.antispam.value );
        for (var i = 0; i < document.submit.type.length; i++) {
            if (document.submit.type[i].checked) {
                param += "&type=" + encodeURI( document.submit.type[i].value );
                break;
            }
        }
        param += "&comment=" + encodeURIComponent( document.submit.comment.value );
    makePOSTRequest('submit.php', param);
  }
}

function submitSearch() {
  if (requestActive == false) {
    requestActive = true;
    document.forms[0].submit_form.value = "Ouch!";
	document.forms[0].submit_form.disabled = true;
    var param  = "search=" + encodeURIComponent( document.getElementById("search").value );
        param += "&spam=" + encodeURI( document.getElementById("antispam").value );
		param += "&type=" + encodeURI( document.getElementById("type").value );
    makePOSTRequest('search.php', param);
  }
}

function submitGuestbook() {
  if (requestActive == false) {
    requestActive = true;
    document.forms[0].submit_form.value = "Moo!";
    document.forms[0].submit_form.disabled = true;
    var param  = "name=" + encodeURIComponent( document.getElementById("name").value );
        param += "&spam=" + encodeURI( document.getElementById("antispam").value );
	param += "&message=" + encodeURIComponent( document.getElementById("message").value );
    makePOSTRequest('guestbook.php', param);
  }
}

function submitComment() {
  if (requestActive == false) {
    requestActive = true;
    document.forms[0].submit_form.value = "Yay!";
    document.forms[0].submit_form.disabled = true;
    var param  = "name=" + encodeURIComponent( document.getElementById("name").value );
        param += "&spam=" + encodeURI( document.getElementById("antispam").value );
	param += "&comment=" + encodeURIComponent( document.getElementById("comment").value );
	param += "&id=" + encodeURI( document.getElementById("id").value );
    makePOSTRequest('comment.php', param);
  }
}


function submitLogin() {
  if (requestActive == false) {
    requestActive = true;
    document.forms[0].submit.value = "Ouch!";
	document.forms[0].submit_form.disabled = true;
    var param  =  "id=" + encodeURIComponent( document.getElementById("log_id").value );
        param += "&pw=" + encodeURI( document.getElementById("log_pw").value );
    makePOSTRequest('login.php', param);
  }
}

function scoreUp(id) {
  if (requestActive == false) {
	requestActive = true;
	document.getElementById("q"+id).parentNode.innerHTML = "<a id='q"+id+"'>Now Scoring... Please Wait</a>";
        temp_stack = document.getElementById("nav").innerHTML;
	document.getElementById("nav").innerHTML = "Now Scoring... Please Wait";
	var param  =  "id=" + encodeURI(id);
	    param += "&add=1";
	makeGETRequest('score.php',param);
  }
}

function scoreDn(id) {
  if (requestActive == false) {
	requestActive = true;
	document.getElementById("q"+id).parentNode.innerHTML = "<a id='q"+id+"'>Now Scoring... Please Wait</a>";
        temp_stack = document.getElementById("nav").innerHTML;
	document.getElementById("nav").innerHTML = "Now Scoring... Please Wait";
	var param  =  "id=" + encodeURI(id);
	    param += "&add=0";
	makeGETRequest('score.php',param);
  }
}

function deleteQuote(id) {
  alert("Not yet implemented");
}
