// --------------------------------------------
// PopupDisplay Area handler functions

function FTB_GetFTB(node)
{
	var ftb = null;
	var parentNode = node;
	while (parentNode != null)
	{
		if (parentNode.ftb)
			return parentNode.ftb;
		else 
			parentNode = parentNode.parentNode;
	}
	
	return null;
}

function FTB_PPACancel(e)
{
	var targetNode = FTB_Browser.isIE ? e.srcElement : e.originalTarget;
	var ftb = FTB_GetFTB(targetNode.parentNode.parentNode.parentNode.parentNode);
	if (ftb == null)
		return;

	if (FTB_Browser.isIE)
	{
		ftb.Focus();
		ftb.SetCursorPosition(ftb.popupDisplayArea.CursorPos);
	}

	ftb.popupDisplayArea.previousSibling.style.visibility = "hidden";
	ftb.popupDisplayArea.style.visibility = "hidden";
	ftb.popupDisplayArea.innerHTML = '';
	ftb.Focus();
}
// --------------------------------------------







// --------------------------------------------
// Link editor popup

function FTB_LinkEditorOptions(isDetailed, showTitle, defaultClassName, defaultTarget, defaultCustomTarget)
{
	this.isDetailed = isDetailed;
	this.showTitle = showTitle;
	this.defaultClassName = defaultClassName;
	this.defaultTarget = defaultTarget;
	this.defaultCustomTarget = defaultCustomTarget;
}

FTB_FreeTextBox.prototype.CreateLink = function() 
{
	var link = this.GetNearest('a');
	var url = '', text = '', linkhref = '', className = '', target = '', customTarget = '';
	if (link) 
	{
		url = link.getAttribute('temp_href');
		if (!url) url = link.getAttribute('href');
		
		text = link.title;
		className = link.className;
		target = link.target;
		if (link.target != '' && link.target != '_blank' && link.target != '_top' && link.target != '_self' && link.target != '_parent')
		{
			target = "_custom";
			customTarget = link.target;
		}	
	} 
	else 
	{
		var sel = this.GetSelection();
		if (FTB_Browser.isIE) 
			text = sel.createRange().text;
		else 
			text = new String(sel);
		
		if (text == '') 
		{
			alert('Please select some text');
			return;
		}
		
		if (text.substring(0, 7) == "http://")
			url = text;
	}

	if (FTB_Browser.isIE)
	{
		this.Focus();
		var pos = this.GetCursorPosition();
		this.popupDisplayArea.CursorPos = pos;
//		alert("Start: " + pos.start + "   end: " + pos.end);
	}

	this.popupDisplayArea.innerHTML = GenerateLinkEditorHtml(this.id, text, url, className, target, customTarget, this.linkEditorOptions);
	this.popupDisplayArea.previousSibling.style.visibility = "visible";
	this.popupDisplayArea.style.visibility = "visible";
	this.hasFocus = false;
};

function FTB_LETLinkTargetChanged(e)
{	
	var targetNode = FTB_Browser.isIE ? e.srcElement : e.originalTarget;
	var ftb = FTB_GetFTB(targetNode.parentNode.parentNode.parentNode.parentNode);
	if (ftb == null)
		return;

	list = document.getElementById(ftb.id+'_LETLinkTarget');
	customtarget = document.getElementById(ftb.id+'_LETCustomTarget');
	customtarget.disabled = !(list.options[list.options.selectedIndex].value == '_custom');
}

function FTB_LETInsertLink(e)
{
	var targetNode = FTB_Browser.isIE ? e.srcElement : e.originalTarget;
	var ftb = FTB_GetFTB(targetNode.parentNode.parentNode.parentNode.parentNode);
	if (ftb == null)
		return;

	if (FTB_Browser.isIE)
	{
		ftb.Focus();
		ftb.SetCursorPosition(ftb.popupDisplayArea.CursorPos);
	}

	link = ftb.GetNearest('a');
	href = document.getElementById(ftb.id+'_LETLinkHRef');

	if (href.value == '')
	{
		alert('You must enter a link');	
		return false;
	}
	
	if (!link) 
	{
		var tempUrl = 'http://tempuri.org/tempuri.html';
		ftb.ExecuteCommand('createlink', null, tempUrl);
		var links = ftb.designEditor.document.getElementsByTagName('a');
		
		for (var i = 0; i < links.length; i++)
		{
			if (links[i].href == tempUrl)
			{
				link = links[i];
				break;
			}
		}
	}
	
	FTB_UpdateLink(ftb.id, link);
	
	ftb.popupDisplayArea.previousSibling.style.visibility = "hidden";
	ftb.popupDisplayArea.style.visibility = "hidden";
	ftb.popupDisplayArea.innerHTML = '';
	ftb.Focus();
}

function FTB_UpdateLink(id, link) 
{
	if (link)
	{
		var href = document.getElementById(id+'_LETLinkHRef');
		var title = document.getElementById(id+'LETLinkTitle');
		var target = document.getElementById(id+'_LETLinkTarget');
		var cssClass = document.getElementById(id+'LETLinkCssClass');
		var targetVal = "";
		if (target.options)
			targetVal = target.options[target.selectedIndex].value;
		else if (target.value)
			targetVal = target.value;
		var customtarget = document.getElementById(id+'_LETCustomTarget');
		
		link.href = href.value;
		link.setAttribute('temp_href', href.value);
		
		if (title)
			if (title.value != '') 
				link.title = title.value;
		if (cssClass.value != '') 
			link.className = cssClass.value;
		if (targetVal == '_custom')
		{
			if (customtarget.value != '') 
				link.target = customtarget.value;
		}
		else 
		{ 
			if (targetVal != '') 
				link.target = targetVal;
			else
				link.removeAttribute('target');
		} 
	}
}
// --------------------------------------------
