var activeTextarea = null;
var dragObject, offsetX, offsetY, isDragging=false;

function initTextToolBox() {
	new Draggable('textToolbox',{});
}

function ReloadContent()
{
		GetTextarea();
		activeTextarea.value = document.getElementById("save" + activeTextarea.id.substring(4, ""+activeTextarea.id.length)).value;
}

function GetTextarea()
{
	//get the first textarea if there is no selected
	if(activeTextarea == null)
	{
			available  = document.getElementsByTagName('textarea');
			if(available[0])
			{
				activeTextarea = available[0];
			} else {
				activeTextarea = null;
			}
	}
}

function ActivateTextarea(obj)
{
	if(obj.type == "textarea")
	{
		activeTextarea = obj;
	}
}

function ActivateTextareaByID(obj_id)
{
	obj = document.getElementById(obj_id);
	if(obj.type == "textarea")
	{
		activeTextarea = obj;
	}
}

function renderPreview(obj)
{	
	alert(tmp);
}

function ShowBox(box)
{
	GetTextarea();
		
	tmp_editor = document.getElementById(activeTextarea.id);
	tmp_preview = document.getElementById("preview" + activeTextarea.id.substring(4, ""+activeTextarea.id.length));

	if(tmp_editor && tmp_editor)
	{
		if(box == "editor")
		{
			tmp_editor.style.display = "block";
			tmp_preview.style.display = "none";
	
		} else if(box == "preview") {
			tmp_text = 'text=' + encodeURIComponent(tmp_editor.value);
			new Ajax.Updater(tmp_preview.id, '/glossary_items/renderTextPreview', {asynchronous:true, evalScripts:true, parameters:tmp_text});
	
			tmp_editor.style.display = "none";
			tmp_preview.style.display = "block";
			
		}
	}
}

function ResetBox() 
{
	GetTextarea();
	activeTextarea.value= "";
}
function AddLink() 
{
	Link = prompt("Insert Link:", "http://");
	AddFormat("\"", "\":" + Link)
}

function AddColor() 
{
	Color = prompt("Insert Color:", "#");
	AddFormat("%{color:" + Color + "}", "%" )

}

function AddMail() 
{
	Link = prompt("Insert E-Mail:", "");
	AddFormat("\"", "\":mailto:" + Link)
}

function AddImage() 
{
	Image = prompt("Insert Link:", "http://");
	AddFormat("!", Image + "!")
}

function AddFormat(aTag, eTag) 
{

	GetTextarea();	
	if(activeTextarea != null)
	{	
		activeTextarea.focus();
	
		/* für Internet Explorer */
		if(typeof document.selection != 'undefined') 
		{
			/* Einfügen des Formatierungscodes */
    		var range = document.selection.createRange();
   		 	var insText = range.text;
    		range.text = aTag + insText + eTag;
    		/* Anpassen der Cursorposition */
    		range = document.selection.createRange();
    		if (insText.length == 0) 
    		{
      			range.move('character', -eTag.length);
    		} else {
      			range.moveStart('character', aTag.length + insText.length + eTag.length);     
	    	}
    	
    		range.select();
  		}
  		/* für neuere auf Gecko basierende Browser */
  		else if(typeof activeTextarea.selectionStart != 'undefined')
  		{
    		/* Einfügen des Formatierungscodes */
   		 	var start = activeTextarea.selectionStart;
   		 	var end = activeTextarea.selectionEnd;
    		var insText = activeTextarea.value.substring(start, end);
    		activeTextarea.value = activeTextarea.value.substr(0, start) + aTag + insText + eTag + activeTextarea.value.substr(end);
    		/* Anpassen der Cursorposition */
    		var pos;
    		if (insText.length == 0) 
    		{
      			pos = start + aTag.length;
    		} else {
      			pos = start + aTag.length + insText.length + eTag.length;
    		}
    		activeTextarea.selectionStart = pos;
    		activeTextarea.selectionEnd = pos;
		}
  		/* für die übrigen Browser */
  		else
		{
			/* Abfrage der Einfügeposition */
			var pos;
    		var re = new RegExp('^[0-9]{0,3}$');
    		while(!re.test(pos)) 
    		{
      			pos = prompt("Einfügen an Position (0.." + activeTextarea.value.length + "):", "0");
    		}
    		if(pos > activeTextarea.value.length) 
    		{
     	 		pos = activeTextarea.value.length;
    		}
    		/* Einfügen des Formatierungscodes */
    		var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
    		activeTextarea.value = activeTextarea.value.substr(0, pos) + aTag + insText + eTag + activeTextarea.value.substr(pos);
  		}
 	} 	
}
