// functions to allow the user to subscribe to the scue mailing list.
// all ajax like, init?

// deal with people hitting the enter key
function subscribeKeyPress(event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		sendSignUpRequest();
	}
}

// attempt the sign up
function sendSignUpRequest() {
  // grab the address
  var address = document.getElementById('subscribeEmail').value;

  // do some validation on it
  if (address == "mailing list" || address == '') {
    setSubscribeMessage('enter real address');
    return false;
  }

  // if it's ok start the progress indicator going
  startProgressIndicator();

  // send the request to the server and wait for a response
  if (window.XMLHttpRequest) {
	  var servReq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
	  var servReq = new ActiveXObject("Microsoft.XMLHTTP");
	}

  // should really have a fallback system for non XMLHttpRequest enabled browsers
	if (servReq != null) {
  	servReq.onload = function(resp) {onSubscribeResponse(servReq);};
  	servReq.overrideMimeType("text/plain");
  	servReq.open("POST","http://www.scue.co.uk/signup.php");
    servReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  	servReq.setRequestHeader("Cache-Control", "no-cache");
  	servReq.send("email=" + encodeURI(address));	  
	}
}

function onSubscribeResponse(reqobj) {
  // stop progress indicator
  stopProgressIndicator();
  
  // display the response
  setSubscribeMessage(reqobj.responseText);
}



// deal with the interface
function setSubscribeMessage(message) {
  document.getElementById('signupResponse').innerHTML = message;
}

function getSubscribeMessage() {
  return document.getElementById('signupResponse').innerHTML;
}



// deal with the progress indicator animation
var subscribeProgressIndicator;
function startProgressIndicator() {
  indicatorDotCount = 0;
  subscribeProgressIndicator = setInterval(updateProgressIndicator, 500);
}

function stopProgressIndicator() {
	clearInterval(subscribeProgressIndicator);
	subscribeProgressIndicator = null;
}

var indicatorDotCount = 0;
function updateProgressIndicator() {
  if (indicatorDotCount  >= 10) {
    setSubscribeMessage('&nbsp;');
    indicatorDotCount = 0;
  }
  else {
    setSubscribeMessage(getSubscribeMessage() + '.');
    indicatorDotCount++;
  }
}
