function bookmark(url) {
	var str = new String(url);
	var title = str.substring(str.lastIndexOf("/") + 1);
  if (navigator.userAgent.indexOf('MSIE') != -1)
  	window.external.AddFavorite(url, title);
  else if (navigator.appName == "Netscape")
    window.sidebar.addPanel(title, url, "");
  else
    alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
}

function positionPreview(e) {
	var directoryPreview = document.getElementById("directoryPreview");

	var offsetxpoint = 20;
	var offsetypoint = 0;
	var ie = document.all;
	var ns6 = document.getElementById && !document.all;
	var ietruebody = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;

	var curX = (ns6) ? e.pageX : event.clientX + ietruebody.scrollLeft;
	var curY = (ns6) ? e.pageY : event.clientY + ietruebody.scrollTop;

	//Find out how close the mouse is to the corner of the window
	var rightedge = ie && !window.opera ? ietruebody.clientWidth - event.clientX - offsetxpoint : window.innerWidth - e.clientX - offsetxpoint - 20;
	var bottomedge = ie && !window.opera ? ietruebody.clientHeight - event.clientY - offsetypoint : window.innerHeight - e.clientY - offsetypoint - 20;
	var leftedge = (offsetxpoint < 0) ? offsetxpoint * (-1) : -1000;

	// If the horizontal distance isn't enough to accommodate the width of the context menu
	if (rightedge < directoryPreview.offsetWidth) {
		//move the horizontal position of the menu to the left by it's width
		directoryPreview.style.left = ie ? ietruebody.scrollLeft + event.clientX - directoryPreview.offsetWidth + "px" : window.pageXOffset + e.clientX - directoryPreview.offsetWidth + "px";
	}
	else if (curX < leftedge) {
		directoryPreview.style.left = "5px";
	}
	else {
		//position the horizontal position of the menu where the mouse is positioned
		directoryPreview.style.left = curX + offsetxpoint + "px";
	}

	//same concept with the vertical position
	if (bottomedge < directoryPreview.offsetHeight) {
		directoryPreview.style.top = ie ? ietruebody.scrollTop + event.clientY - directoryPreview.offsetHeight - offsetypoint + "px" : window.pageYOffset + e.clientY - directoryPreview.offsetHeight - offsetypoint + "px";
	}
	else {
		directoryPreview.style.top = curY + offsetypoint + "px";
	}
	
}

function showPreview(imgSrc, imgAlt, previewText) {
	var directoryPreview = document.getElementById("directoryPreview");
	var directoryPreviewImg = document.getElementById("directoryPreviewImg");
	var directoryPreviewText = document.getElementById("directoryPreviewText");

	var newImage = "/directory/ImageHandler.ashx?p=" + imgSrc + "&w=120&h=120";
	directoryPreviewImg.src = newImage;
 
	directoryPreviewImg.alt = imgAlt;
	directoryPreviewText.innerHTML = previewText;
	directoryPreview.style.visibility = "visible";
}

function showCompanyPreview(e, companyId) {
	positionPreview(e);
	ajax.get("/directory/Preview.ashx?cid=" + companyId, showCompanyPreview2);
}

function showProductPreview(e, productId) {
	positionPreview(e);
	ajax.get("/directory/Preview.ashx?pid=" + productId, showCompanyPreview2);
}

function showCompanyPreview2(xml) {
	if(xml.firstChild != null) {
		var nodes = xml.firstChild.childNodes;
		var imgSrc = (nodes[0].firstChild) ? nodes[0].firstChild.nodeValue : "";
		var imgAlt = (nodes[1].firstChild) ? nodes[1].firstChild.nodeValue : "";
		var previewText = (nodes[2].firstChild) ? nodes[2].firstChild.nodeValue : "";
		showPreview(imgSrc, imgAlt, previewText);
	}
}

function hidePreview() {
	document.getElementById("directoryPreview").style.visibility = "hidden";
	var directoryPreviewImg = document.getElementById("directoryPreviewImg");
	directoryPreviewImg.src = "/images/spacer.gif";
}