/* Utilities used by CP pages */

var xmlHttp;
var zeroBasedItemIndex;
var itemListTableId = "f_itemList:dt_itemsList";

function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}
}

function handleStateChange() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			document.getElementById(itemListTableId + ":" + zeroBasedItemIndex + ":pg_messageDiv").innerHTML = xmlHttp.responseText;
		}
	}
}

function showMessageBox(listIndex) {
	var table = document.getElementById(itemListTableId + ":" + (listIndex-1) + ":pg_messageBoxOuter");
	if (table != null) {
		table.style.display = "inline";
		return table;
	}
	else {
		return null;
	}
}

function hideMessageBox(listIndex) {
	var table = document.getElementById(itemListTableId + ":" + (listIndex-1) + ":pg_messageBoxOuter");
	table.style.display = "none";
}

// Returns true if the message box is cleared, false otherwise
function closeMessageBox(listIndex) {
	// First clear all the content in the message div
	var messageDiv = document.getElementById(itemListTableId + ":" + (listIndex-1) + ":pg_messageDiv");
	if (messageDiv == null || !messageDiv.hasChildNodes()) {
		return false;
	}
	
	while (messageDiv.hasChildNodes()) {
		messageDiv.removeChild(messageDiv.childNodes[0]);
	}
	
	// Then hide the message box itself
	hideMessageBox(listIndex);
	return true;
}

function closeAllMessageBoxes() {
	var table = document.getElementById(itemListTableId);
	var rows = table.rows;
	var clearResult = false;
	for (var i=0; i<rows.length; i++) {
		clearResult = closeMessageBox(i+1);
		if (clearResult == true) {
			break;
		}
	}
}

function showProgressBar(listIndex) {
	var messageDiv = document.getElementById(itemListTableId + ":" + (listIndex-1) + ":pg_messageDiv");
	var imgNode = document.createElement("img");
	imgNode.src = "../images/en/shopper/progressBar.gif";
	imgNode.style.width = "180px";
	imgNode.style.height = "16px";
	messageDiv.appendChild(imgNode);
}

function buyNow(itemId, listIndex) {
	closeAllMessageBoxes();
	showMessageBox(listIndex);
	showProgressBar(listIndex);
	createXMLHttpRequest();
	zeroBasedItemIndex = listIndex-1;
	var timeStamp = new Date().getTime();  /* appends timestamp so that the request is unique and browser doesn't cache the response */
	var queryString = "./BuyNow.faces?buyNowItemId=" + itemId + "&listIndex=" + listIndex + "&timeStamp=" + timeStamp;
	xmlHttp.onreadystatechange = handleStateChange;
	xmlHttp.open("GET", queryString, true);
	xmlHttp.send(null);
}

function tellAFriend(categoryId, itemId, language, pid) {
	window.open("./TellAFriendInput.faces?categoryId=" + categoryId + "&itemId=" + itemId + "&language=" + language + "&pid=" + pid, "tellAFriend", "width=400, height=440, top=190, left=250, resizable=no, directories=no, location=no, menubar=no, toolbar=no, status=no, scrollbars=no");
}
