Anastasis.Glossary=function()
{
	this.currentDiv=null;
	
	this.dialogTemplate="" +
			"<div style=\"background-color: #fff; border: 2px solid #769AA3; width: 300px;padding: 5px; \">" +
			"	<div style=\"text-align: center; font-weight: bold;\">@LEMMA@</div>" +
			"	<div style=\"text-align: left; font-style:italic; \">@DEFINIZIONE@</div>" +
			"	<div style=\"text-align: right; font-size:0.8em; \">Powered by <a href='' title='Dizionario informatico semplificato'>EasyPedia</a></div>" +
			"</div>";
			
	this.requestTemplate="" +
			"<serena>" +
			"	<service name=\"get\">" +
			"		<ID>@ID@</ID>" +
			"	</service>" +
			"</serena>";	
			
	this.requestPath="/ambienti/NodoCMS/include/GlossaryDefinition.asp";
}

Anastasis.Glossary.prototype.showDefinition=function(sourcelink,id)
{
	var me=this;
	
	this.hideDefinition();
	
	var definition=this.getDefinition(id);
	
	this.currentDiv=document.createElement("div");
	this.currentDiv.id="easypedia_definition_div";
	this.currentDiv.innerHTML=definition;
	this.currentDiv.style.visibility="hidden";
	
	this.currentDiv.style.position="absolute";	
	this.currentDiv.style.left=(sourcelink.offsetLeft-150)+"px";	
		
	sourcelink.offsetParent.appendChild(this.currentDiv);
	
	anastasis.utils.addEvent(this.currentDiv,"mouseover",function(){me.hideDefinition();})
	
	this.currentDiv.style.top=(sourcelink.offsetTop-this.currentDiv.offsetHeight-10)+"px";
	this.currentDiv.style.visibility="visible";
}

Anastasis.Glossary.prototype.hideDefinition=function()
{
	div=document.getElementById("easypedia_definition_div");
	
	if(!div) return;
	
	div.parentNode.removeChild(div);
	this.currentDiv=null;
}

Anastasis.Glossary.prototype.getDefinition=function(id)
{
	var request=this.requestTemplate.replace("@ID@",id);
	var param=new Object();
	param["xml"]=request;
	var reply=anastasis.ajax.send(param,this.requestPath,"POST",true,false);
	var msg=Anastasis.XMessage.buildXMessage(reply);
	
	var lemma=msg.getContentOf("lemma");
	var definizione=msg.getContentOf("definition");
	
	var dialog=this.dialogTemplate.replace("@LEMMA@",lemma);
	dialog=dialog.replace("@DEFINIZIONE@",definizione);
	
	return dialog;
}

//----------------------------------------------//
					   
anastasis.glossary=new Anastasis.Glossary();
