var requester = null;

var _categoryID;
var _itebID;

function _addwishlist(globalID) {
	var arr        = globalID.split(";");
	var categoryID = arr[0];
	var itemID     = arr[1];
	
	_categoryID = categoryID;
	_itemID     = itemID;
	
	showProgress(_categoryID, _itemID);
	
	if (requester != null && requester.readyState != 0 && requester.readyState != 4) {
		requester.abort();
	}
	
	try {
		requester = new XMLHttpRequest();
	}
	catch (error) {
		requester = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	requester.onreadystatechange = onreadystatechange_addwishlist;
	
	requester.open("GET", "/_ajax/wishlist.php?act=add&categoryID=" + categoryID + "&itemID=" + itemID + "&rnd=" + Math.random());
	requester.send(null);
}


function _delwishlist(globalID) {
	var arr        = globalID.split(";");
	var categoryID = arr[0];
	var itemID     = arr[1];
	
	_categoryID = categoryID;
	_itemID     = itemID;
	
	showProgress(_categoryID, _itemID);
	
	if (requester != null && requester.readyState != 0 && requester.readyState != 4) {
		requester.abort();
	}
	
	try {
		requester = new XMLHttpRequest();
	}
	catch (error) {
		requester = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	requester.onreadystatechange = onreadystatechange_delwishlist;
	
	requester.open("GET", "/_ajax/wishlist.php?act=del&categoryID=" + categoryID + "&itemID=" + itemID + "&rnd=" + Math.random());
	requester.send(null);
}


function onreadystatechange_addwishlist() {
	if (requester.readyState == 4) {
		if (requester.status == 200) {
			if (requester.responseText == 'error') {
				sendMessage("loadingmessage", "Fail");
			}
			else {
				update();
				hideAddProgress(_categoryID, _itemID);
			}
		}
		else if (requester.status != 0) {
			alert("There was an error while retrieving the URL: " + requester.statusText);
		}
	}
	
	return true;
}


function onreadystatechange_delwishlist() {
	if (requester.readyState == 4) {
		if (requester.status == 200) {
			if (requester.responseText == 'error') {
				sendMessage("loadingmessage", "Fail");
			}
			else {
				update();
				hideDelProgress(_categoryID, _itemID);
			}
		}
		else if (requester.status != 0) {
			alert("There was an error while retrieving the URL: " + requester.statusText);
		}
	}
	
	return true;
}


function update() {
	var xmlDoc = requester.responseXML.documentElement;
	if (!xmlDoc)
		return;
	
/*	alert(requester.responseText);
	return; */

	// Set pointer to WISHLIST TABLE
	var table = document.getElementById("wishlist-table");
	
	// Create new TABLE
	if (!table) {
		var area = document.getElementById("wishlist-area");
		
		var div = document.createElement("div");
		div.id = "wishlist";
		
		var h2 = document.createElement("h2");
		h2.appendChild(document.createTextNode("Wishlist"));
		
		var br = document.createElement("br");
		br.setAttribute("clear", "all");
		
		var table = document.createElement("table");
		table.cellSpacing = 1;
		table.cellPadding = 1;
		table.id = "wishlist-table";
		
		div.appendChild(h2);
		div.appendChild(br);
		div.appendChild(table);
		area.appendChild(div);
	}
	else {
		// Remove old TBODY
		var tbody = table.tBodies[0];
		table.removeChild(tbody);
	}
	
	// Create new TBODY
	var tbody = document.createElement("tbody");
	
	// ITEMS nodes
	xitems = xmlDoc.getElementsByTagName("item");
	
	for (i = 0; i < xitems.length; i++) {
		var id, url, title;
		var xitem = xitems.item(i);
		
		for (j = 0; j < xitem.childNodes.length; j++) {
			var content = xitem.childNodes.item(j);
			if (content.childNodes.length > 0) {
				var data = content.childNodes.item(0);
				
				switch (content.nodeName) {
					case "id"          : id          = data.data; break;
					case "category_id" : category_id = data.data; break;
					case "url"         : url         = data.data; break;
					case "title"       : title       = data.data; break;
 				}
			}
		}
		
		var row = document.createElement("tr");
		
		var td = document.createElement("td");
		var link = document.createElement("a");
		switch (category_id) {
			case "4" : link.href = "properties/" + url + "/"; break;
			case "5" : link.href = "rentals/" + url + "/"; break;
			case "8" : link.href = "landforsale/" + url + "/"; break;
		}
		link.title = title;
		link.appendChild(document.createTextNode(title));
		td.appendChild(link);
		
		var img = document.createElement("img");
		img.src = "../img/read_more.jpg";
		img.className = "more";
		img.width = 6;
		img.height = 5;
		img.border = 0;
		img.alt = "";
		td.appendChild(img);
		row.appendChild(td);
		
		var td = document.createElement("td");
		td.setAttribute("width", 16);
		var link = document.createElement("a");
		link.href = "javascript:_delwishlist('" + category_id + ";" + id + "');";
		var img = document.createElement("img");
		img.src = "../img/del-ico.png";
		img.width = 16;
		img.height = 16;
		img.border = 0;
		img.id = "delwishlist_" + category_id + "_" + id;
		img.alt = "Remove " + title + " from wishlist";
		link.appendChild(img);
		td.appendChild(link);
		row.appendChild(td);

		tbody.appendChild(row);
	}
	
	if (xitems.length > 0) {
		var row = document.createElement("tr");
		var td = document.createElement("td");

		var br = document.createElement("br");
		br.setAttribute("clear", "all");
		
		var ul = document.createElement("ul");
		var li = document.createElement("li");
		var link = document.createElement("a");
		link.href = "wishlist/";
		link.appendChild(document.createTextNode("Wishlist"));
		li.appendChild(link);
		ul.appendChild(li);
		
		td.appendChild(br);
		td.appendChild(ul);
		
		row.appendChild(td);
		tbody.appendChild(row);
	}
	else {
		var div = document.getElementById("wishlist-area");
		while (div.childNodes[0])
			div.removeChild(div.childNodes[0]);
	}
		
	table.appendChild(tbody);
}

function showProgress(categoryID, itemID) {
	var image = document.getElementById("image-" + categoryID + ";" + itemID);
	if (image) {
		image.src = "img/indicator.gif";
		image.width = "16";
		image.height = "16";
	}
	
	var del = document.getElementById("delwishlist_" + categoryID + "_" + itemID);
	if (del) {
		del.src = "img/indicator.gif";
		del.width = "16";
		del.height = "16";
	}
}

function hideAddProgress(categoryID, itemID) {
	var image = document.getElementById("image-" + categoryID + ";" + itemID);
	if (image) {
		image.src = "img/del-ico.png";
		image.width = "16";
		image.height = "16";
	}
	
	var link = document.getElementById("addtocart_" + categoryID + "_" + itemID);
	while (link.childNodes[0])
		link.removeChild(link.childNodes[0]);
	
	link.href = "javascript:_delwishlist('" + categoryID + ";" + itemID + "');";
	link.appendChild(document.createTextNode("Remove from Wishlist"));
}

function hideDelProgress(categoryID, itemID) {
	var image = document.getElementById("image-" + categoryID + ";" + itemID);
	if (image) {
		image.src = "img/add-ico.gif";
		image.width = "16";
		image.height = "16";
	}
	
	var link = document.getElementById("addtocart_" + categoryID + "_" + itemID);
	while (link.childNodes[0])
		link.removeChild(link.childNodes[0]);
	
	link.href = "javascript:_addwishlist('" + categoryID + ";" + itemID + "');";
	link.appendChild(document.createTextNode("Add to Wishlist"));
}
