

function showDisabledMessage(id, e, offsetx, offsety){
	var div = document.getElementById(id);

	if (e.pageX || e.pageY) {
		div.style.left = (e.pageX + offsetx) + 'px';
		div.style.top = (e.pageY + offsety) + 'px';
	}
	else if (e.clientX || e.clientY) {
		div.style.left = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft + offsetx;
		div.style.top = e.clientY + document.body.scrollTop  + document.documentElement.scrollTop + offsety;
	}
	div.style.display = 'block';
}

function hideDisabledMessage(id){
	var div = document.getElementById(id);
	div.style.display = 'none';
}


function logoutAndUpgrade(store_hostname){

	var url = 'http://' + window.location.hostname + '/logoutAndUpgrade';

	var logoutRequest = newLogoutHttpRequest();

	var handlerFunction = getLogoutReadyStateHandler(logoutRequest, store_hostname, logoutAndUpgradeHandler);
	logoutRequest.open("POST", url, true);
	logoutRequest.onreadystatechange = handlerFunction;
	logoutRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	logoutRequest.send('foo=foo');
}

function logoutAndUpgradeHandler(hostname){
	var form = document.getElementById('upgrade_form');
	form.action = 'https://' + hostname + '/store/upgradeSubscription';
	form.submit();
}

function getLogoutReadyStateHandler(req, hostname, responseHandler) {

  // Return an anonymous function that listens to the
  // XMLHttpRequest instance
  return function () {

    // If the request's status is "complete"
    if (req.readyState == 4) {

      // Check that a successful server response was received
      if (req.status == 200) {

	responseHandler(hostname);

      } else {

	// An HTTP problem has occurred

      }
    }
  }
}

function newLogoutHttpRequest() {

  var xmlreq = false;

  if (window.XMLHttpRequest) {

    // Create XMLHttpRequest object in non-Microsoft browsers
    xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {

    // Create XMLHttpRequest via MS ActiveX
    try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer

      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e1) {

      // Failed to create required ActiveXObject

      try {
	// Try version supported by older versions
	// of Internet Explorer

	xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e2) {

	// Unable to create an XMLHttpRequest with ActiveX
      }
    }
  }

  return xmlreq;
}
