﻿// Phone Book Online
// Developed by: Arsalan Tamiz (iam_mak[at]hotmail.com)
// -------------------------------------------------------------------
var linkitem;
var displayedelement;
var hidethebox;
var curtimer;

function showbox(item, textindiv) {		
	if (
			(linkitem != item) &&
			(displayedelement != null)
		)
		displayedelement.style.display='none';
		

	var pe;
	var newdiv;
	var newdivid;

	linkitem = item;					// note which link item was mouse hovered
	hidethebox = false;					// box should NOT be hidden initially
	
	pe = item.parentNode;
	newdivid = pe.id + 'child';
	newdiv = document.getElementById(newdivid);

	
	if (newdiv == null) {
		newdiv = document.createElement('div');
		newdiv.id = newdivid;
		displayedelement = newdiv;
		newdiv.style.position='absolute';
		//newdiv.style.display='block';
		//newdiv.style.marginTop='2px';
		newdiv.style.zIndex = 10;
		newdiv.innerHTML = "Loading...";
		newdiv.style.backgroundColor='white';
		pe.appendChild(newdiv);
		
		var xmlHttp;
		xmlHttp = createXHR();
		
		//xmlHttp.whichdiv = newdiv;
		xmlHttp.onreadystatechange = function() {
										if (xmlHttp.readyState==4)		// if download completed
											if (xmlHttp.status==200) {	// if successfull
												newdiv.innerHTML = xmlHttp.responseText;
												//this.whichdiv.style.left = (this.whichdiv.parentNode.offsetLeft - 50) + 'px';
												//document.getElementById('messages').innerHTML = this.whichdiv.offsetLeft;
												var mc;
												mc = document.getElementById('featuredcompcontainer');
												
												/*var newdivright;
												var mcright;
												var newdivwidth;
												var l;
												var w;
												
												if (newdiv.offsetLeft > 5) {			// it means IE6
													l = newdiv.parentElement.parentElement.parentElement.clientLeft;
													w = newdiv.parentElement.parentElement.parentElement.clientWidth;										
													
													newdivright = l + newdiv.clientWidth;
													mcright = mc.offsetLeft + mc.clientWidth
													newdivwidth = (w - newdiv.clientWidth);

												}
												else {
													l = newdiv.parentElement.parentElement.parentElement.offsetLeft;
													w = newdiv.parentElement.parentElement.parentElement.clientWidth;										
													
													newdivright = l + newdiv.clientWidth;
													mcright = mc.offsetLeft + mc.clientWidth
													newdivwidth = (w - newdiv.clientWidth);
												}
												
												if (newdivright > mcright)
													//newdiv.style.left = ((mc.offsetLeft + mc.offsetWidth) - newdiv.offsetWidth) + 'px';
													newdiv.style.left = newdivwidth;*/
												var newdivright;
												var mcright;
												var newdivparentleft;
												var newdivparentwidth;
												
												newdivparentleft = newdiv.parentNode.parentNode.parentNode.offsetLeft;
												newdivparentwidth = newdiv.parentNode.parentNode.parentNode.offsetWidth;
												
												newdivright = newdivparentleft + newdiv.clientWidth;
												mcright = mc.offsetWidth;
												
												if (newdivright > mcright)
													newdiv.style.left = (newdivparentleft + (newdivparentwidth - newdiv.clientWidth)) + 'px';
											}
											else
												newdiv.innerHTML = 'Error occurred while accessing information <br> ' + xmlHttp.status.toString();
									};
		try {
			xmlHttp.open("GET", textindiv, true);
			xmlHttp.send(null);
		}
		catch (e) {
			newdiv.innerHTML = e.toString();
		}
		newdiv.onmouseout = function() {
										trytohidethebox();
										};
		newdiv.onmouseover = function() {
								hidethebox=false;
								clearTimeout(curtimer);
								};
	}
	else {
		if (newdiv.style.display != 'block');
			newdiv.style.display='block';
		displayedelement=newdiv;
	}			
}
function hidebox() {
	if (hidethebox == true)
		displayedelement.style.display='none';
}

function trytohidethebox() {
	hidethebox=true;
	curtimer = setTimeout('hidebox()', 500);
}
