function createRequestObject() {
	var ro;
	ro = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	return ro;
}

var http = createRequestObject();

function sendRequest(type, action) {

	displayProcessingMessage();

	var date = new Date();
	var url = '/ajaxRemote?timestamp=' + date.getTime() + '&action=' + action;
	
	http.open('get', url);
	
	switch (type) {
		case 'checkRegistrationEmail':
			http.onreadystatechange = processEmailCheckResponse;
			break;
	}
	
	http.send(null);
	
}

function processEmailCheckResponse() {
	if (http.readyState == 4) {
		if (http.status != 200) return false;
		var xml = http.responseXML;
		var error = xml.getElementsByTagName('error');
		if (error && error.length > 0) {
			for (var i = 0; i < error.length; i++) {
				alert(error[i].getElementsByTagName('message')[0].childNodes[0].nodeValue);
			}
			if (document.getElementById('userEmail')) {
				document.getElementById('userEmail').className = 'error';
				document.getElementById('userEmail').focus();
				document.getElementById('userEmail').select();
			}
		} else {
			if (document.getElementById('userEmail')) {
				document.getElementById('userEmail').className = '';
			}
		}
	} else {
		
	}
}

function handlePricingSetData() {
	if (http.readyState == 4 && http.status == 200) {
		var xml = http.responseXML;
		error = xml.getElementsByTagName('error');
		if (error && error.length > 0) {
			for (var i = 0; i < error.length; i++) {
				alert(error[i].getElementsByTagName('message')[0].childNodes[0].nodeValue);
			}
		} else {
			var prices = xml.getElementsByTagName('price');

			for (var i = 0; i < prices.length; i++) {
				var price = prices[i];
				if (document.getElementById('variantPriceSpan_' + price.getAttribute('variantID'))) {
					var target = document.getElementById('variantPriceSpan_' + price.getAttribute('variantID'));
					target.innerHTML  = decodeURIComponent(price.getAttribute('currencySymbol'));
					target.innerHTML += price.getAttribute('priceAmount');
				}
			}

			refreshCartAJAX();

		}
	}
}

function blurOnEnter(f, e, evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
	if (charCode == 13 || charCode == 2) {
		e.blur();
		return false;
	}
	return true;
}

function displayProcessingMessage(display) {
	if (!display) var display = 'inline';
	if (document.getElementById('processingMessage')) {
		document.getElementById('processingMessage').style.display=display;
	}
}

function old_checkRegistrationEmailAddress(ad) {
	var type = 'checkRegistrationEmail';
	var action = 'checkRegistrationEmail&address=' + encodeURIComponent(ad);
	
	sendRequest(type, action);
}