function grabtext(element,sTag,eTag) {
	var textElement = $(element);
	if( textElement.selectionStart != "undefined" ) {
		var selLength = textElement.textLength;
		var selStart = textElement.selectionStart;
		var selEnd = textElement.selectionEnd;
		if (selEnd == 1 || selEnd == 2)	selEnd = selLength;
		var s1 = (textElement.value).substring(0,selStart);
		var s2 = (textElement.value).substring(selStart, selEnd)
		var s3 = (textElement.value).substring(selEnd, selLength);
		textElement.value = s1 + sTag + s2 + eTag + s3;
		textElement.focus();
		return;
	} else {
		textElement.focus();
		theSelection = document.selection.createRange().text;
		if (!theSelection) {
			textElement.value += sTag + eTag;
			textElement.focus();
			return;
		}
		document.selection.createRange().text = sTag + theSelection + eTag;
		textElement.focus();
		return;
	}
	return;
}

function getMarkedText( field ) {
	var textElement = $(field);
	var theSelection = '';
	if( textElement.selectionStart != "undefined" ) {
		var selLength = textElement.textLength;
		var selStart = textElement.selectionStart;
		var selEnd = textElement.selectionEnd;
		if (selEnd == 1 || selEnd == 2)	selEnd = selLength;
		theSelection = (textElement.value).substring(selStart, selEnd)
	} else {
		theSelection = document.selection.createRange().text;
	}
	return theSelection;
}

function showLinkWindow( field_id ) {
	var markedText = getMarkedText(field_id);
	document.getElementById('link_title').value = markedText;
	jQ('#link_window').show();
}

function hideLinkWindow() {
	jQ('#link_window').hide();
}

function setLink(linkURL, linkTitle) {
	jQ("#link_url").attr("value",linkURL);
	jQ("#link_title").attr("value",linkTitle);
}

function insertLink(element) {
	var textElement = jQ("#"+element);
	var textElementValue = textElement.attr("value");
	var linkURL = jQ("#link_url").attr("value");
	var linkTitle = jQ("#link_title").attr("value");
	var linkTip = jQ("#link_tip").attr("value");
	var linkExtern = jQ("#link_extern").attr("checked");
	if( linkExtern ) {
		var linkTag = 'url';
	} else {
		var linkTag = 'link';
	}
	if( textElement.selectionStart != "undefined" ) {
		var selLength = textElement.val().length;
		var selStart = textElement[0].selectionStart;
		var selEnd = textElement[0].selectionEnd;
		if (selEnd == 1 || selEnd == 2)	selEnd = selLength;
		var s1 = textElementValue.substring(0,selStart);
		var s2 = textElementValue.substring(selStart, selEnd)
		var s3 = textElementValue.substring(selEnd, selLength);
		textElement.attr("value", s1 + "["+linkTag+"=" + linkURL +"]"+linkTitle+"[/"+linkTag+"]" + s3);
		textElement.focus();
		hideLinkWindow();
		return;
	} else {
		textElement.focus();
		theSelection = document.selection.createRange().text;
		if (!theSelection) {
			textElement.attr("value", textElementValue + sTag + eTag);
			textElement.focus();
			return;
		}
		document.selection.createRange().text = "["+linkTag+"=" + linkURL +"]"+linkTitle+"[/"+linkTag+"]";
		textElement.focus();
		hideLinkWindow();
		return;
	}
	return;
}

function startSearch() {
	var searchTyp = jQ('#link_typ').val();
	var searchWord = jQ('#link_search').attr("value");
	if( searchWord.length >= 4 ) {
		showLoadingElement('search_results');
		var ajax_script = "http://www.grafiker.de/ajax/bbcode/searchHelper.php?typ="+searchTyp+"&word="+escape(searchWord);
		jQ("#search_results").load(ajax_script, function(response, status, xhr) {
		  if (status == "error") {
	    	var msg = "Sorry but there was an error calling "+ajax_script+": ";
	    	jQ("#search_results").html(msg + xhr.status + " " + xhr.statusText);
	  	}
		});
	}
}
