/**
 * @author michaeld
 */
 
	if((typeof AFL_JS == 'undefined') || (typeof AFL_JS.Common == 'undefined'))
		throw("AFL_JS.FormToolTip requires the AFL JavaScript framework");

	var FTT = AFL_JS.FTT = new Object();
	
	FTT.Settings = {
		Messages: {},
		ToolTipId: 'dynamic_hint_msg',
		ToolTipMessageId: 'dynamic_hint_msg_container',
		ToolTipCloseId: 'dynamic_hint_msg_close'
	}
	
	// added to see what is in the FTT.Settings.Messages
	FTT.AlertMessages = function(){
		for(i in FTT.Settings.Messages){			
			alert(i + FTT.Settings.Messages[i]);
		}		
	}
	
	FTT.AddToMessages = function(aMessages){			
		//FTT.Settings.Messages = aMessages;
		for(i in aMessages){	
			FTT.Settings.Messages[i] = aMessages[i];
		}
	}
	
	
	FTT.Storage = {
		CurrentMessageId: null
	}
	
	FTT.CreateToolTipContainer = function(sMessageId) {
		 var CloseIcon = new Element('div', {'id' : FTT.Settings.ToolTipCloseId,'onclick': 'FTT.Hide()'}).update('<span>X</span>');
		 var oParent = new Element('div', {'id' : FTT.Settings.ToolTipId}).update(CloseIcon);
		 
		 Event.observe(CloseIcon, 'click', function() { FTT.Hide() } );
		 
		 oParent.appendChild(new Element('div', {'id': FTT.Settings.ToolTipMessageId}).update(FTT.Settings.Messages[sMessageId]));
		 FTT.Storage.CurrentMessageId = sMessageId;
		 return oParent;
	}
	
	FTT.Show = function(oContainer, sMessageId) {
		
		if(FTT.Storage.CurrentMessageId == sMessageId) return;
		
		FTT.Hide();
		
		if(Object.isUndefined(FTT.Settings.Messages[sMessageId])) return;
			
		oContainer.appendChild(FTT.CreateToolTipContainer(sMessageId));
	}
	
	FTT.ShowDelayed = function(oContainer, sMessageId, iTime) {
		
		clearTimeout(FTT.CurrentTimeout);
		
		FTT.CurrentTimeout = setTimeout(function(){
			FTT.Show(oContainer, sMessageId);
		}, iTime);
	}
	
	FTT.Hide = function() {
		
		clearTimeout(FTT.CurrentTimeout);
		
		FTT.Storage.CurrentMessageId = null;
		
		if($(FTT.Settings.ToolTipId))
			Element.remove(FTT.Settings.ToolTipId);
	}