
	//alert(element.style.backgroundImage);


function changeBackground( id, imagefile, over )
{
	element = document.getElementById(id);
	element.style.backgroundImage = "url('"+imagefile+"')";
	if (over)
		element.style.cursor = "pointer";
	else
		element.style.cursor = "default";
}

function formButtonClick(form,cmd,confirmtext)
{
	f = document.forms[form];
	if (confirmtext!="")
	{
		if (!confirm(confirmtext))
			return false;
	}
	
	if (cmd!="")
		f.cmd.value=cmd;
	f.submit();
	return true;
}

function confirmRedirect(confirmtext,redir)
{
	if (confirmtext!="")
	{
		if (!confirm(confirmtext))
			return false;
	}
	window.location.href=redir;
	return true;
}

function getCaption(captiontext,command)
{
	data = prompt('Edit caption for this image', captiontext);
	if (data != null)
	{
		window.location.href=command+"&caption="+data;	
	}
	return true;
}


function initSelection()
{
	// IE requires some tweaking to get this working
	if( document.selection )
	{
		// The current selection
		var range = document.selection.createRange();
		// We'll use this as a 'dummy'
		var stored_range = range.duplicate();
		// Select all text
		stored_range.moveToElementText( element );
		// Now move 'dummy' end point to end point of original range
		stored_range.setEndPoint( 'EndToEnd', range );
		// Now we can calculate start and end points
		element.selectionStart = stored_range.text.length - range.text.length;
		element.selectionEnd = element.selectionStart + range.text.length;
	}		
}

function tagSelection(element,start,end,question,noselquestion)
{
	var carpos = getCaret(element);
	if (end == null)
		end = "";
	var data = "";
	if (question != null)
	{
		data = prompt(question, '');
		if (data == null)
			return;
		else
			data += ":";
	}
	initSelection();
	if (element.selectionStart != undefined && element.selectionStart != element.selectionEnd)
	{
		text = element.value;
		carpos = element.selectionEnd+start.length+end.length+data.length;
		element.value = text.substring(0,element.selectionStart)+start+data+text.substring(element.selectionStart,element.selectionEnd)+end+text.substring(element.selectionEnd);
	}
	else
	{
		var data2 = ""; 
		if (noselquestion != null)
		{
			data2 = prompt(noselquestion, '');
			if (data2 == null)
				return;
		}
		text = element.value;
		element.value = text.substring(0,carpos)+start+data+data2+end+text.substring(carpos);
		carpos += start.length+data.length+data2.length+end.length;
	}
	setCaretPosition(element,carpos);
}

function getCaret(el) 
{
  if (el.selectionStart) { 
    return el.selectionStart; 
  } else if (document.selection) { 
    el.focus(); 

    var r = document.selection.createRange(); 
    if (r == null) { 
      return 0; 
    } 

    var re = el.createTextRange(), 
    rc = re.duplicate(); 
    re.moveToBookmark(r.getBookmark()); 
    rc.setEndPoint('EndToStart', re); 

    var add_newlines = 0;
    for (var i=0; i<rc.text.length; i++) {
      if (rc.text.substr(i, 2) == '\r\n') {
        add_newlines += 2;
        i++;
      }
    }

    return rc.text.length + add_newlines; 
  }  
  return 0; 
}

function setCaretPosition(ctrl, pos)
{ 
	if(ctrl.setSelectionRange)
	{
		ctrl.setSelectionRange(pos,pos);
		ctrl.focus();
	}
	else if (ctrl.createTextRange) {
		var range = ctrl.createTextRange();
		range.collapse(true);
		range.moveEnd('character', pos);
		range.moveStart('character', pos);
		range.select();
	}
}

function addHeader(element,start,prompttext)
{
	initSelection();
	var carpos = getCaret(element);
	var header = "";
	if (element.selectionStart == undefined || element.selectionStart == element.selectionEnd)
	{
		header = prompt(prompttext, '');
	}
	if (header == null)
		return;
	
	if (element.selectionStart != undefined && element.selectionStart != element.selectionEnd)
	{
		var end = "\n"; 
		text = element.value;
		carpos = element.selectionEnd+start.length+end.length;
		element.value = text.substring(0,element.selectionStart)+start+text.substring(element.selectionStart,element.selectionEnd)+end+text.substring(element.selectionEnd);
	}
	else
	{
		if (carpos != undefined)
		{
			text = element.value;
			element.value = text.substring(0,carpos)+start+header+"\n"+text.substring(carpos);
			carpos += start.length+header.length+1;
		}		
	}
	if (carpos != undefined)
		setCaretPosition(element,carpos);
}

function addSelected(element,from,pre)
{
	var caret = getCaret(element);
	if (caret != undefined)
	{
		text = element.value;
		fromtext = from.value;
		element.value = text.substring(0,caret)+pre+fromtext+"\n"+text.substring(caret);
		caret += pre.length+fromtext.length+1;
		setCaretPosition(element,caret);
	}
}

function siteSelector(element,inside)
{
	element = document.getElementById("sitepopup");
	if (inside)
		element.style.visibility='visible';
	else
		element.style.visibility='hidden';
}

