function forum_addSlashes( str ) {
	str=str.replace(/([\"\[\]])/g, "\\$1").replace(/\\0/g, "\\0");
    return str;
}

function forum_feit() {
	var txtarea = document.getElementById('skjema_innlegg').innlegg_tekst;

	var start = 0;
	var end = 0;

	if (txtarea.setSelectionRange) {
		var start 	= txtarea.selectionStart;
		var end		= txtarea.selectionEnd + 7;
	}

	mozWrap(txtarea, '[F]', '[/F]');

	if (txtarea.setSelectionRange) {
		txtarea.setSelectionRange(start, end);
	}

	txtarea.focus();
}

function forum_kursiv() {
	var txtarea = document.getElementById('skjema_innlegg').innlegg_tekst;

	var start = 0;
	var end = 0;

	if (txtarea.setSelectionRange) {
		var start 	= txtarea.selectionStart;
		var end		= txtarea.selectionEnd + 7;
	}

	mozWrap(txtarea, '[K]', '[/K]');

	if (txtarea.setSelectionRange) {
		txtarea.setSelectionRange(start, end);
	}

	txtarea.focus();
}

function forum_understrek() {
	var txtarea = document.getElementById('skjema_innlegg').innlegg_tekst;

	var start = 0;
	var end = 0;

	if (txtarea.setSelectionRange) {
		var start 	= txtarea.selectionStart;
		var end		= txtarea.selectionEnd + 7;
	}

	mozWrap(txtarea, '[U]', '[/U]');

	if (txtarea.setSelectionRange) {
		txtarea.setSelectionRange(start, end);
	}

	txtarea.focus();
}

function forum_bilde() {
	var txtarea = document.getElementById('skjema_innlegg').innlegg_tekst;

	var lenke = window.prompt('Lenke til bildet:', 'http://');

	if (lenke == null || lenke == 'http://' || lenke == '') return false;

	var alt = window.prompt('Alternativ tekst:', '');

	var startTagg 	= "[BILDE alt='"+alt+"']";
	var endTagg		= "[/BILDE]";

	var start = 0;
	var end = 0;

	if (txtarea.setSelectionRange) {
		start 	= txtarea.selectionStart;
		end		= txtarea.selectionEnd + startTagg.length + endTagg.length + lenke.length;
	}

	insertAtCursor(txtarea, startTagg+lenke+endTagg);

	txtarea.setSelectionRange(end, end);

	txtarea.focus();
}


function forum_portalbilde() {
	window.open('include/wysiwyg/plugins/portalbilder_popup/image.php'+
				'?callback=forum_portalbilde_callback', 'annonsebilder', 'width=700,height=500,resizable=yes');
}

function forum_portalbilde_callback(bilde) {
	var txtarea = document.getElementById('skjema_innlegg').innlegg_tekst;

	var startTagg 	= "";
	var endTagg		= "";

	var alt = forum_addSlashes(bilde.navn);

	var src;
	if (bilde.thumb_filnavn) {
		src = bilde.thumb_url;
	} else {
		src = bilde.url;
	}

	if (bilde.thumb_url) {
		startTagg 	= "[LENKE=\""+bilde.url+"\"][BILDE alt=\""+alt+"\"]";
		endTagg 	= "[/BILDE][/LENKE]";
	} else {
		startTagg 	= "[BILDE alt=\""+alt+"\"]";
		endTagg 	= "[/BILDE]";
	}



	var start = 0;
	var end = 0;

	if (txtarea.setSelectionRange) {
		start 	= txtarea.selectionStart;
		end		= txtarea.selectionEnd + startTagg.length + endTagg.length + src.length;
	}

	insertAtCursor(txtarea, startTagg+src+endTagg);

	txtarea.setSelectionRange(end, end);

	txtarea.focus();
}

function forum_lenke() {
	var txtarea = document.getElementById('skjema_innlegg').innlegg_tekst;

	var lenke = window.prompt('Lenke til nettstaden:', 'http://');

	if (lenke == null || lenke == 'http://' || lenke == '') return false;

	var startTagg 	= "[LENKE='"+lenke+"']";
	var endTagg		= "[/LENKE]";

	var start = 0;
	var end = 0;

	if (txtarea.setSelectionRange) {
		var start 	= txtarea.selectionStart;
		var end		= txtarea.selectionEnd + startTagg.length + endTagg.length;
	}

	if (txtarea.selectionStart == txtarea.selectionEnd) {
		var tekst = window.prompt('Tekst til lenka:', '');
		if (tekst != null) {
			startTagg += tekst;
			end += tekst.length;
		}
	}

	mozWrap(txtarea, startTagg, endTagg);

	if (txtarea.setSelectionRange) {
		txtarea.setSelectionRange(start, end);
	}

	txtarea.focus();
}

function forum_sitat() {
	/*var tmpurl = xajaxRequestUri;
	xajaxRequestUri="/ajax.php?komponent=forum";
	xajax_visSitatliste(emne_id);
	xajaxRequestUri=tmpurl;*/

	var win = window.open("komponentar/kom_forum/sitatliste.php?emne="+emne_id, "sitatliste", 'location=1,status=1,scrollbars=1,width=700,height=500,resizable=1');
	win.focus();
}

function forum_insert_sitat(innlegg_id, innlegg_tekst) {
	var txtarea = document.getElementById('skjema_innlegg').innlegg_tekst;

	var innlegg = parseInt(innlegg_id);
	if (innlegg == null || innlegg == '' || innlegg <= 0 || isNaN(innlegg)) return;

	var startTagg 	= "[SITAT innlegg='"+innlegg+"']\n"+innlegg_tekst;
	var endTagg		= "\n[/SITAT]\n";

	var start = 0;
	var end = 0;

	if (txtarea.setSelectionRange) {
		var start 	= txtarea.selectionStart;
		var end		= txtarea.selectionEnd + startTagg.length + endTagg.length;
	}

	mozWrap(txtarea, startTagg, endTagg);

	if (txtarea.setSelectionRange) {
		txtarea.setSelectionRange(start, end);
	}

	txtarea.focus();
}


// http://www.massless.org/mozedit/
function mozWrap(txtarea, open, close)
{
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	if (selEnd == 1 || selEnd == 2)
	selEnd = selLength;

	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd)
	var s3 = (txtarea.value).substring(selEnd, selLength);
	txtarea.value = s1 + open + s2 + close + s3;
	return;
}

// http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
function storeCaret(textEl) {
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

//myField accepts an object reference, myValue accepts the text strint to add
function insertAtCursor(myField, myValue) {
	//IE support
	if (document.selection) {
		myField.focus();

		//in effect we are creating a text range with zero
		//length at the cursor location and replacing it
		//with myValue
		sel = document.selection.createRange();
		sel.text = myValue;
	}

	//Mozilla/Firefox/Netscape 7+ support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		//Here we get the start and end points of the
		//selection. Then we create substrings up to the
		//start of the selection and from the end point
		//of the selection to the end of the field value.
		//Then we concatenate the first substring, myValue,
		//and the second substring to get the new value.
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;

		myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);

		if (myField.setSelectionRange) {
			var start 	= startPos;
			var end		= startPos + myValue.length;

			myField.setSelectionRange(start, end);
		}

		myField.focus();
	} else {
		myField.value += myValue;
	}
}

function insert(el,ins) {
    if (el.setSelectionRange){
        el.value = el.value.substring(0,el.selectionStart) + ins + el.value.substring(el.selectionStart,el.selectionEnd) + el.value.substring(el.selectionEnd,el.value.length);
    }
    else if (document.selection && document.selection.createRange) {
        el.focus();
        var range = document.selection.createRange();
        range.text = ins + range.text;
    }
}

function emoticon( smiley ) {
	var txtarea = document.getElementById('skjema_innlegg').innlegg_tekst;

	var start = 0;
	var end = 0;

	if (txtarea.setSelectionRange) {
		var start 	= txtarea.selectionStart;
		var end		= txtarea.selectionEnd + 7;
	}

	insertAtCursor(txtarea, ' '+smiley+' ');

	var pos = start + smiley.length + 2;
	txtarea.setSelectionRange(pos, pos);

	txtarea.focus();
}

