// Noget af koden er lånt fra forskellige steder som ekspeten osv.

// faste variabler
	var text_enter_url      = "Skriv hele adressen for dit link";
	var text_enter_url_name = "Skriv navnet på hjemmesiden";
	var text_enter_image    = "Skriv hele adressen for dit billede";
	var text_enter_email    = "Skriv Email adressen";
	var text_code           = "Gør sådan: [CODE] Din kode her... [/CODE]";
	var text_quote          = "Gør sådan: [QUOTE] Din quote her... [/QUOTE]";
	var error_no_url        = "Du skal skrive en adresse";
	var error_no_title      = "Du skal skrive en titel";
	var error_no_email      = "Du skal skrive en Email adresse";
	var error_no_width      = "Du skal skrive en vidde";
	var error_no_height     = "Du skal skrive en højde";
	var prompt_start        = "Skriv teksten der skal formateres";
	
	var help_smiley         = "Indsæt smiley (klik på billedet)";
	var help_bold           = "Indsæt fed tekst (genvej: Alt + b)";
	var help_italic         = "Indsæt kursiv tekst (genvej: Alt + i)";
	var help_under          = "Indsæt understreget tekst (genvej: Alt + u)";
	var help_url            = "Indsæt et hyperlink (genvej: Alt+ h)";
	var help_img            = "Indsæt et billede (genvej: Alt + g)";
	var help_email          = "Indsæt Email adresse (genvej: Alt + e)";
	var help_quote          = "Indsæt kommenteret tekst (genvej: Alt + q)";
	var help_list           = "Opret en liste (genvej: Alt + l)";
	var help_code           = "Indsæt neutral tekst (genvej: Alt + p)";
	var help_click_close    = "Klik på samme knap for at lukke";
	var list_prompt         = "Skriv dine emner og tryk på 'cancel' eller lad feltet være tomt for at afslutte listen";


// smiley indsættelse
function insertsmilie(smilieface){
	document.reply.R_Content.value+=smilieface;
}


// specielle tags
var B_open = 0;
var I_open = 0;
var U_open = 0;
var QUOTE_open = 0;
var CODE_open = 0;
var SQL_open = 0;
var HTML_open = 0;

var bbtags   = new Array();

// browser test - Lånt fra http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var myAgent   = navigator.userAgent.toLowerCase();
var myVersion = parseInt(navigator.appVersion);

var is_ie   = ((myAgent.indexOf("msie") != -1)  && (myAgent.indexOf("opera") == -1));
var is_nav  = ((myAgent.indexOf('mozilla')!=-1) && (myAgent.indexOf('spoofer')==-1)
                && (myAgent.indexOf('compatible') == -1) && (myAgent.indexOf('opera')==-1)
                && (myAgent.indexOf('webtv') ==-1)       && (myAgent.indexOf('hotjava')==-1));

var is_win   =  ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1));
var is_mac    = (myAgent.indexOf("mac")!=-1);

// hjælpe tekst
function hstat(msg)
{
	document.reply.helpbox.value = eval( "help_" + msg );
}


// stacksize
function stacksize(thearray)
{
	for (i = 0 ; i < thearray.length; i++ ) {
		if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == 'undefined') ) {
			return i;
		}
	}
	
	return thearray.length;
}

// pushstack
function pushstack(thearray, newval)
{
	arraysize = stacksize(thearray);
	thearray[arraysize] = newval;
}

// Popstack
function popstack(thearray)
{
	arraysize = stacksize(thearray);
	theval = thearray[arraysize - 1];
	delete thearray[arraysize - 1];
	return theval;
}

// tilføj kode
function add_code(NewCode)
{
    document.reply.R_Content.value += NewCode;
    document.reply.R_Content.focus();
}


// de nemme tags - B, I, U osv.
function simpletag(thetag)
{
	var tagOpen = eval(thetag + "_open");
	
		if (tagOpen == 0) {
			if(doInsert("[" + thetag + "]", "[/" + thetag + "]", true)){
				eval(thetag + "_open = 1");
				// ændre udseende af knappen
				eval("document.reply." + thetag + ".value += '*'");
		
				pushstack(bbtags, thetag);
				hstat('click_close');
			}
		}
		else {
			// find hvor det samme sidste tag er åbent
			lastindex = 0;
			
			for (i = 0 ; i < bbtags.length; i++ ) {
				if ( bbtags[i] == thetag ) {
					lastindex = i;
				}
			}
			
			// lukker det specielle tag
			while (bbtags[lastindex]) {
				tagRemove = popstack(bbtags);
				doInsert("[/" + tagRemove + "]", "", false)
				
				// ændre udseende af knappen
				eval("document.reply." + tagRemove + ".value = ' " + tagRemove + " '");
				eval(tagRemove + "_open = 0");
			}
		}
}


// list tag
function tag_list()
{
	var listvalue = "init";
	var thelist = "[LIST]\n";
	
	while ( (listvalue != "") && (listvalue != null) ) {
		listvalue = prompt(list_prompt, "");
		if ( (listvalue != "") && (listvalue != null) ) {
			thelist = thelist+"[-]"+listvalue+"\n";
		}
	}

	doInsert(thelist + "[/LIST]\n", "", false);
}

// http tag
function tag_url()
{
    var FoundErrors = '';
    var enterURL   = prompt(text_enter_url, "http://");
    var enterTITLE = prompt(text_enter_url_name, "Din hjemmeside");

    if (!enterURL) {
        FoundErrors += " " + error_no_url;
    }
    if (!enterTITLE) {
        FoundErrors += " " + error_no_title;
    }

    if (FoundErrors) {
        alert("Error!"+FoundErrors);
        return;
    }

	doInsert("[URL="+enterURL+"]"+enterTITLE+"[/URL]", "", false);
}

// billede tag
function tag_image()
{
    var FoundErrors = '';
    var enterURL   = prompt(text_enter_image, "http://");

    if (!enterURL) {
        FoundErrors += " " + error_no_url;
    }

    if (FoundErrors) {
        alert("Error!"+FoundErrors);
        return;
    }

	doInsert("[IMG]"+enterURL+"[/IMG]", "", false);
}

// EMail tag
function tag_email()
{
    var emailAddress = prompt(text_enter_email, "");

    if (!emailAddress) { 
		alert(error_no_email); 
		return; 
	}

	doInsert("[EMAIL]"+emailAddress+"[/EMAIL]", "", false);
}

// generel funktion til insættelse af ting
function doInsert(ibTag, ibClsTag, isSingle)
{
	var isClose = false;
	var obj_ta = document.reply.R_Content;

	if ( (myVersion >= 4) && is_ie && is_win) // Ensure it works for IE4up / Win only
	{
		if(obj_ta.isTextEdit){ // this doesn't work for NS, but it works for IE 4+ and compatible browsers
			obj_ta.focus();
			var sel = document.selection;
			var rng = sel.createRange();
			rng.colapse;
			if((sel.type == "Text" || sel.type == "None") && rng != null){
				if(ibClsTag != "" && rng.text.length > 0)
					ibTag += rng.text + ibClsTag;
				else if(isSingle)
					isClose = true;
	
				rng.text = ibTag;
			}
		}
		else{
			if(isSingle)
				isClose = true;
	
			obj_ta.value += ibTag;
		}
	}
	else
	{
		if(isSingle)
			isClose = true;

		obj_ta.value += ibTag;
	}

	obj_ta.focus();

	return isClose;
}	 