/*
 * Create a button that will bring up the NSDL Popup 
 * window.
 */
function create_nsdl_popup_button(serverUrl) {
	var contentSubHTML = document.getElementById("contentSub");
	var nsdlSearchButtonHTML = 
		"<form method=\"get\" action=\"" + serverUrl + 
			"/Special:SearchResultsDisplay\" onsubmit=\"searchNSDLAction(this, 'NSDLSearch')\">" +
			"<div id=\"nsdl-search\"> " +
				"<h4>Insert a link to a NSDL resource:</h4>" +
				"<div class=\"nsdl-search-fields\"><input type=\"text\" name=\"q\" value=\"\" class=\"nsdl-search-text\" />" +
				"<input type=\"hidden\" name=\"skip\" value=\"0\" />" +
				"<input type=\"hidden\" name=\"action\" value=\"nsdlsearch\" />" +
				"<input type=\"image\" value=\"Search NSDL\" src=\"/extensions/nsdl/resources/images/search_nsdl.gif\" class=\"nsdl-search-button\" />" +
			"</div></div></form>"; 
	document.getElementById("contentSub").innerHTML = nsdlSearchButtonHTML;
}

/*
 * Name the parent window before poping a new window
 */
function name_nsdl_parent_window() {
	window.name = "editWikiPage";
}

/*
 * Insert the resource link into the edit box
 */
function insertNSDLTags(tagOpen, tagClose, sampleText) {
	var txtarea;
	var wikiWindow = window.open("", "editWikiPage");
	if (wikiWindow.document.editform) {
		txtarea = wikiWindow.document.editform.wpTextbox1;
	} else {
		// some alternate form? take the first one we can find
		var areas = wikiWindow.document.getElementsByTagName('textarea');
		txtarea = areas[0];
	}

	// IE
	if (window.opener.document.selection  && !is_gecko) {
		var theSelection = window.opener.document.selection.createRange().text;
		if (!theSelection) {
			theSelection=sampleText;
		}
		txtarea.focus();
		if (theSelection.charAt(theSelection.length - 1) == " ") { // exclude ending space char, if any
			theSelection = theSelection.substring(0, theSelection.length - 1);
			window.opener.document.selection.createRange().text = tagOpen + theSelection + tagClose + " ";
		} else {
			window.opener.document.selection.createRange().text = tagOpen + theSelection + tagClose;
		}

	// Mozilla
	} else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
		var replaced = false;
		var startPos = txtarea.selectionStart;
		var endPos = txtarea.selectionEnd;
		if (endPos-startPos) {
			replaced = true;
		}
		var scrollTop = txtarea.scrollTop;
		var myText = (txtarea.value).substring(startPos, endPos);
		if (!myText) {
			myText=sampleText;
		}
		var subst;
		if (myText.charAt(myText.length - 1) == " ") { // exclude ending space char, if any
			subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
		} else {
			subst = tagOpen + myText + tagClose;
		}
		txtarea.value = txtarea.value.substring(0, startPos) + subst +
			txtarea.value.substring(endPos, txtarea.value.length);
		txtarea.focus();
		//set new selection
		if (replaced) {
			var cPos = startPos+(tagOpen.length+myText.length+tagClose.length);
			txtarea.selectionStart = cPos;
			txtarea.selectionEnd = cPos;
		} else {
			txtarea.selectionStart = startPos+tagOpen.length;
			txtarea.selectionEnd = startPos+tagOpen.length+myText.length;
		}
		txtarea.scrollTop = scrollTop;

	// All other browsers get no toolbar.
	// There was previously support for a crippled "help"
	// bar, but that caused more problems than it solved.
	}
	// reposition cursor if possible
	if (txtarea.createTextRange) {
		txtarea.caretPos = wikiWindow.document.selection.createRange().duplicate();
	}
}


function searchNSDLAction (searchForm, windowName) {
	var newWindow = window.open("", windowName, "width=700,height=700,scrollbars=yes");
	searchForm.target = 'NSDLSearch';
	newWindow.focus();
	return true;
}

