	
	var actualElement = null;
	
	/**
	document.onmousemove = function(ev)
	{

		var event = null;
		var target = null;
		if(!ev)
		{
			event = window.event;
			if(event.srcElement.id != "")
			{			
				target = document.getElementById(event.srcElement.id);
			}
		}
		else	
		{			
			target = ev.target;
		}	
		if(target != null)
		{	if(target.id == "")
			{
				hidePopup(actualElement);
			}
		}
		else
		{
			hidePopup(actualElement);
		}
	}
	*/
	function getHTTPObject()
	{
  		var xmlhttp;
		try{
			xmlhttp = new XMLHttpRequest();
		}
		catch(e)
		{
  			try
			{
      				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      			}
      			catch(e)
      			{
       			try
       			{
         				 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
       			}
       			catch(E)
       			{
          				xmlhttp = false;
        			}
   		 	}
		}
    		return xmlhttp;
 	}

	function cutFirstLast(cString)
	{
		return cString.substr(1,cString.length-2);
	}

	var httpReq = getHTTPObject();
	
	function parseAjax(ajaxstring)
	{
		var objectOpen = false,elementOpen = false,sElementOpen = false;
		var elements = new Array();
		var pairs = new Object();
		var actualIndex = 0;
		var actualChar,nextChar;
		elements[actualIndex] = new Object();
		
		var element = "",value = "",actualElement = "";
		
		for(var i = 0; i < ajaxstring.length; i++)
		{
			actualChar = ajaxstring.substr(i,1);
			nextChar = ajaxstring.substr(i+1,1);
			if(actualChar == '{')
			{
				if(objectOpen == false)
				{
					objectOpen = true;
					elementOpen = true;
				}
				else
				{
					elementOpen = true;
				}
			}
			else if(actualChar == '}')
			{
				if(elementOpen == true)
				{
					elementOpen = false;
					elements[actualIndex][cutFirstLast(element)] = cutFirstLast(value);
					actualIndex++;
					elements[actualIndex] = new Object();					
					element = "";
					value = "";
				}
				else
				{
					objectOpen = false;
				}
			}
			else 
			{
				if(actualChar == ',' && sElementOpen == false)
				{
					elements[actualIndex][cutFirstLast(element)] = cutFirstLast(value);					
					element = "";
					value = "";
				}
				else if(actualChar == '"')
				{


					actualElement += '"';
					if(sElementOpen == false)	
					{
						sElementOpen = true;
					}
					else
					{
						if(nextChar == ':' || nextChar == ',' || nextChar == '}')
						{
							if(element != "")
							{
								value = actualElement;
								actualElement = ""; 
							}
							else
							{	
								element = actualElement;
								actualElement = "";
							}
							sElementOpen = false;
						}
					}

				}
				else if(actualChar == ':')
				{
					if(sElementOpen == true)
					{
						actualElement += ':';
					}
				}
				else
				{
					if(sElementOpen == true)
					{
						actualElement += actualChar;
					}
				}
			}
		}
		return elements;
	}

	function evaluateAjax(ajaxstring)
	{
		var elements = new Array();
		elements = parseAjax(ajaxstring);
		for(var i = 0; i < elements.length; i++)
		{	
			if(elements[i]['action'] == 'remove')
			{
				document.getElementById(elements[i]['id']).parentNode.removeChild(document.getElementById(elements[i]['id']));		
			}
			else if(elements[i]['action'] == 'append')
			{
				var div1 = document.createElement("div");
				div1.innerHTML = elements[i]['value'];
				document.getElementById(elements[i]['id']).appendChild(div1);
			}	
			else if(elements[i]['action'] == 'replace')
			{
				var div1 = document.createElement("div");
				if(document.getElementById(elements[i]['id']) != null)
				{
					document.getElementById(elements[i]['id']).innerHTML = elements[i]['value'];
				}
				//document.getElementById(elements[i]['id']).firstChild.replaceData(0,document.getElementById(elements[i]['id']).firstChild.nodeValue.length,elements[i]['value']);
				//document.getElementById(elements[i]['id']).parentNode.replaceChild(div1,document.getElementById(elements[i]['id']));
			}
			else if(elements[i]['action'] == 'insertBefore')
			{
				var div1 = document.createElement("div");
				div1.innerHTML = elements[i]['value'];
				document.getElementById(elements[i]['siblingid']).parentNode.insertBefore(div1,document.getElementById(elements[i]['siblingid']));
			}	
		}
	}
	
	function trim(string)
	{
 		return string.replace (/^\s+/, '').replace (/\s+$/, '');
	}

	
	
	function sendRequest(type,url,parameter,load)
	{
		//alert("test");
		if(load == null || load == false)
		{
			//document.getElementById('loaderback').style.visibility='visible';
			//document.getElementById('loader').style.visibility='visible';
		}
		httpReq = null;
		httpReq = getHTTPObject();
		if(type=='post')
		{
			
			httpReq.open("POST",url,true);
			httpReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  			httpReq.onreadystatechange = handleIncomingData;
  			httpReq.send(parameter);
		}
		else
		{
			httpReq.open("GET",url, true); 
  			httpReq.send(null);
  			httpReq.onreadystatechange = handleIncomingData;
		}
	}
	
	function handleIncomingData()
	{
  		if(httpReq.readyState == 4)
		{
			//document.getElementById('loaderback').style.visibility='hidden';
			//document.getElementById('loader').style.visibility='hidden';
			
			if(httpReq.responseText!='')
			{	
				var string = trim(httpReq.responseText);
				evaluateAjax(string);
			}
    		}


  	}

	function cutPX(string)
	{
		var end = trim(string).length-2;
		return string.substring(0,end);
	}

function showPopup(target)
{
	var popup = document.createElement("div");
	popup.style.width = "250px";
	popup.style.minheight = "70px";
	popup.style.height = "auto";
	
	popup.style.position = "absolute";
	//popup.style.backgroundImage = "url(images/background.png)";
	popup.style.border = "1px solid black";
	popup.style.backgroundColor = "#DEDEDE";
	popup.id = target.id+"_pop";
	popup.style.left = cumulativeOffset(target)[0] + "px";
	if((cumulativeOffset(target)[1] - cutPX(popup.style.height) - 5) >=0)
	{
		popup.style.top = cumulativeOffset(target)[1] - cutPX(popup.style.height) - 2 + "px";
	}
	else
	{
		popup.style.top = cumulativeOffset(target)[1] + target.offsetHeight + 2  + "px";
	}
	popup.innerHTML = "Loading...";
	//alert('/ajax.php?module=deejaypedia&action=showPopup&name='+target.innerHTML+'&id='+target.id);
	sendRequest('get','/ajax.php?module=deejaypedia&action=showPopup&name='+target.innerHTML+'&id='+target.id,null);
	document.getElementsByTagName("body")[0].appendChild(popup);
}

function cumulativeOffset(element)
{ 
	var valueTop = 0;
	var valueLeft = 0;
	do
	{
		valueTop += element.offsetTop  || 0; 
		valueLeft += element.offsetLeft || 0;
		element = element.offsetParent;
	}
	while (element);
	return [valueLeft, valueTop];
} 

function hidePopup(target)
{

	if(document.getElementById(target.id+"_pop") != null)
	{
		document.getElementsByTagName("body")[0].removeChild(document.getElementById(target.id+"_pop"));
	}		
}