function createRequestObject() {
  var req;
  if (window.XMLHttpRequest) { // Firefox, Safari, Opera...
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) { // Internet Explorer 5+
    req = new ActiveXObject("Microsoft.XMLHTTP");
  } else {
    // error creating the request object,
    // (maybe an old browser is being used?)
    alert('There was a problem creating the XMLHttpRequest object');
    req = '';
  }
  return req;
}

// Make the XMLHttpRequest object
var http = createRequestObject();

var thanks = '<em>Thank you for subscribing to the FrumForum newsletter. If you have any questions about your subscription, please call 312.768.6800.</em>';

var source = 'newsletter';

function verifyRequest() {
  var name    = document.getElementById("name").value;
  var company = document.getElementById("company").value;  
  var email   = document.getElementById("email").value;
  var newSource = document.getElementById("source").value;
  if (newSource) {
        source = newSource;
  }

  if (source == 'masthead') {
  	thanks = 'Thank you for subscribing to the FrumForum newsletter. If you have any questions about your subscription, please email us at <a href="mailto:editor@frumforum.com">editor@frumforum.com</a>';
 
  }

  var url = '/cgi-bin/stay_informed.cgi?name='+name+'&company='+company+'&email='+email+'&source='+source;

  http.open('get', url );
  http.onreadystatechange = handleResponse;
  http.send(null);
}

function handleResponse() {
  if(http.readyState == 4 && http.status == 200){
    var response = http.responseText; // Text returned FROM perl script
    if(response) { // UPDATE ajaxTest content
      document.getElementById("errorDiv").innerHTML = response;
    } else {
      opacity('tipSubscribe', 100, 0, 1500);
      //document.getElementById("tipSubscribe").innerHTML= thanks;
    }
  }
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
    for(i = 0; i <= 100; i++) {
        setTimeout("changeOpac(" + i + ",'tipSubscribe')",(timer * speed));
        timer++;
    }
}

function shiftOpacity(id, millisec) {
    //if an element is invisible, make it visible, else make it ivisible
    if(document.getElementById(id).style.opacity == 0) {
      document.getElementById("tipSubscribe").innerHTML= 'Thanks!';
        opacity(id, 0, 100, millisec);
    } else {
        opacity(id, 100, 0, millisec);
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
    if (opacity == 0) {
      document.getElementById("tipSubscribe").innerHTML= thanks;
    }
}

