//<!-- Minus AutoDato -->
<!--

// Startup variables
//var imageTag = false;
var theSelection = false;

// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version

var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;

var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);

var is_gecko = /gecko/i.test(navigator.userAgent);
var is_ie    = /MSIE/.test(navigator.userAgent);

// Define the bbCode tags

bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[img]','[/img]','[url]','[/url]','[center]','[/center]','[s]','[/s]', '[color', '[/color]');

bbbegintags = new Array('[b]','[i]','[u]','[s]','[center]', '[img]', '[url', '[color');
bbeindtags = new Array('[/b]','[/i]','[/u]','[/s]','[/center]', '[/img]', '[/url]', '[/color]');

function getSelectionStart(txtArea) {
	if (is_gecko)
		return txtArea.selectionStart;

	if( document.selection )
		{
		var range = document.selection.createRange();
		var stored_range = range.duplicate();
		stored_range.moveToElementText(txtArea);
		stored_range.setEndPoint( 'EndToEnd', range );
		return stored_range.text.length - range.text.length;
		}
};

function setCaretPos(txtArea, pos)
	{
  if(txtArea.createTextRange) 
		{   
    /* Create a TextRange, set the internal pointer to  
    a specified position and show the cursor at this  
    position  
    */  
    var range = txtArea.createTextRange();   
    range.move("character", pos);   
    range.select();   
    } 
	else if(txtArea.selectionStart) 
		{   
    /* Gecko is a little bit shorter on that. Simply  
    focus the element and set the selection to a  
    specified position  
    */  
    txtArea.focus();   
    txtArea.setSelectionRange(pos, pos);   
    }   
	}  

function emoticon(text, txtarea) 
	{
	text = ' ' + text + ' ';
//	insertCode(txtarea, text);
	if (txtarea.createTextRange && txtarea.caretPos) 
		{
		var caretPos = txtarea.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
		txtarea.focus();
		} 
		else 
		{
		txtarea.value  += text;
		txtarea.focus();
		}
	}

//******************************************************************************
// Functie wordt aangeroepen wanneer op opmaak button wordt geklikt 
//******************************************************************************
function bbcodeToevoegen(bbnumber, txtarea, formulier, submitbutton) 
	{
	txtarea.focus();
	theSelection = false;

	//Als er een tekst geselecteerd is, dan worden er tags om deze selectie heen geplaatst.
	if ((clientVer >= 4) && is_ie && is_win)
		{

		theSelection = document.selection.createRange().text; // Get text selection
		if (theSelection) 
			{

			// Add tags around selection
			if (bbnumber == 8)
				{
				url = PromptVoorURL("Geef url (bijv. www.kijkonzebaby.nl): ");
				if (url == "")
					{
					txtarea.focus();
					return;
					}
				else
					{
					document.selection.createRange().text = "[url=" + url + "]" + theSelection + bbtags[bbnumber+1]; 
					}
				}
			else if (bbnumber == 14)
				{
				//aanpassen van tekst kleur
				document.selection.createRange().text = "[color=" + formulier.icon7.value + "]" + theSelection + bbtags[bbnumber+1];
				}
			else
				{
				document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
				}
			pos = getSelectionStart(txtarea) + parseInt(document.selection.createRange().text.length);
			setCaretPos(txtarea, pos);
			JuisteButtonsIndrukken(txtarea);
			txtarea.focus();
			theSelection = '';
			return;
			}
		}
	else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
		{
		//wel tekst geselecteerd, geen ie.

		if (bbnumber == 8)
			{
			url = PromptVoorURL("Geef url (bijv. www.kijkonzebaby.nl): ");
			if (url == "")
				{
				txtarea.focus();
				return;
				}
			else
				{
				mozWrap(txtarea, "[url=" + url + "]", "[/url]");
				return;
				}
			}
		else if (bbnumber == 14)
			{
			mozWrap(txtarea, "[color=" + formulier.icon7.value + "]", bbtags[bbnumber+1]);
			return;
			}
		else
			{
			mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
			return;
			}
		}

	//Geen tekst geselecteerd.
	if (bbnumber == 8)
		{
		url = PromptVoorURL("Geef url (bijv. www.kijkonzebaby.nl): ");
		if (url == "")
			{
			txtarea.focus();
			return;
			}
		else
			{
			omschrijvingurl = PromptVoorURLinhoud();
			if (omschrijvingurl != "")
				{
				insertCode(txtarea,"[url=" + url + "]" + omschrijvingurl + "[/url]");
				return;
				}
			else
				{
				txtarea.focus();
				return;
				}
			}
		}

	else if (bbnumber == 6)
		{
		url = PromptVoorURL("Geef de url van het image \n(bijv. www.kijkonzebaby.nl/afbeelding.jpg): \n\nLet op: Je kunt alleen afbeeldingen gebruiken die al ergens op het internet staan, het is niet mogelijk om hier nieuwe afbeeldingen op het internet te plaatsen.", "");
		if (url == "")
			{
			txtarea.focus();
			return;
			}
		else
			{
			insertCode(txtarea, "[img]" + url + "[/img]");
			return;
			}
		}	


//eigenlijk een beetje onzin, want waarom twee arrays.
	for (i=0; i<bbbegintags.length; i++) 
		{
		if (bbbegintags[i] == bbtags[bbnumber])
			{
			index = i;
			}
		}

	var string = txtarea.value.slice(0, getSelectionStart(txtarea));

	if (IsBBcodeAfgesloten(index, string, string) == false)
		{ //er moet nu een afsluittag komen
		orisubstring = string.slice(string.lastIndexOf(bbbegintags[index]), string.length);
		substring = orisubstring;

		//eventueel moeten er eerst nog andere tags gesloten worden.
		substringlengte = substring.length;
		for (i=0; i<substringlengte; i++)
			{
			for (j=0; j<bbbegintags.length; j++)
				{
				subsublengte = bbbegintags[j].length;
				if (substring.length >= subsublengte && j!=index)
					{ 
					subsub = substring.slice(substring.length - subsublengte, substring.length);

					if (subsub == bbbegintags[j])
						{
						if (IsBBcodeAfgesloten(j, substring, orisubstring) == false)
							{
							insertCode(txtarea, bbeindtags[j]);
							}
						}
					}
				}
			substring = substring.slice(0, substring.length -1);
			}

		if (bbnumber == 14 && formulier.icon7.value != "Standaard")
			{
			insertCode(txtarea, "[/color][color=" + formulier.icon7.value + "]");
			}
		else
			{ 
			insertCode(txtarea, bbeindtags[index]);
			}
		}
	else
		{
		if (bbnumber == 14)
			{
			insertCode(txtarea, "[color=" + formulier.icon7.value + "]");
			}
		else
			{
			insertCode(txtarea, bbbegintags[index]);
			}
		}

	} // einde functie bbcodeToevoegen

// From 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;

	pos = parseInt(txtarea.value.length) - parseInt(s3.length);
	setCaretPos(txtarea, pos);
	JuisteButtonsIndrukken(txtarea);

	return;
}

//********************************************************************
//Functie om code toe te voegen op de plek waar de cursor staat.
//Wordt gebruikt wanneer er geen tekst geselecteerd is.
//********************************************************************

function insertCode(txtarea, thecode) 
	{
	var string1 = txtarea.value.slice(0, getSelectionStart(txtarea));
	var string2 = txtarea.value.slice(getSelectionStart(txtarea), txtarea.value.length);
	txtarea.value = string1 + thecode + string2;
	var pos = parseInt(string1.length) + parseInt(thecode.length) ;
	setCaretPos(txtarea, pos);
	JuisteButtonsIndrukken(txtarea); 
   } 
		
function IsBBcodeAfgesloten(indexTag, string, oristring)
	{
	var positie = 0;
	var aantalbegintag = 0;
	var aantaleindtag = 0;

	string = " " + string + " ";

	while (string.indexOf(bbbegintags[indexTag], positie) != -1)
		{
		//tag gevonden.
		aantalbegintag++;
		positie = string.indexOf(bbbegintags[indexTag], positie) + 1;
		}	

	positie = 0;
	while (oristring.indexOf(bbeindtags[indexTag], positie) != -1)
		{
		//tag gevonden.
		aantaleindtag++;
		positie = oristring.indexOf(bbeindtags[indexTag], positie) + 1;
		}	

	if (aantalbegintag > aantaleindtag)
		{
		return false;
		}
	else
		{
		return true;
		}
	}

function JuisteButtonsIndrukken(txtArea) 
	{
	buttons = new Array('bold','italic','underline','strike','center', 'afbeelding', 'link');

	var string = txtArea.value.slice(0, getSelectionStart(txtArea));

	for (i=0; i<bbbegintags.length; i++)
			{
			if  (IsBBcodeAfgesloten(i, string, string))
				{
//alert (i);
				if (i == 7)
					{
					document.getElementById("icon7").selectedIndex = 0;
					}
				else
					{
					document.getElementById("icon" + i).src = buttonpreload[buttons[i]].src;
					}
				}
			else
				{
				if (i == 7)
					{
					JuisteKleurSelecteren(string);
					}
				else
					{
					//document.getElementById("icon" + i).src = "../images/opmaakbuttons/" + buttons[i] + "ingedrukt.gif";
					document.getElementById("icon" + i).src = buttonpreload[buttons[i] + "ingedrukt"].src;
					}
				}
			}
	}

	function JuisteKleurSelecteren(string)
		{
		pos1 = parseInt(string.lastIndexOf("[color=")) + 7;
		if (pos1 != -1)
			{
			pos2 = parseInt(string.substring(pos1).indexOf("]")) + parseInt(pos1);
			kleur = string.substring(pos1,pos2);
			for (j=0; j<document.getElementById("icon7").length; j++)
				{
				if (kleur==document.getElementById("icon7")[j].value)
					{
					document.getElementById("icon7").selectedIndex = j;
					}
				}
			}
		}

function IsControleNodig(txtarea, e)
	{
	var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
	if (keyCode == 8 || keyCode == 37 || keyCode == 38 || keyCode == 39 || keyCode == 40)
		{
		JuisteButtonsIndrukken(txtarea);
		}
	}

//***********************************************************************
// functie om met een prompt de url bij de tekst link te vragen. 
//***********************************************************************
function PromptVoorURL(commentaar)
	{
	var my_link = prompt(commentaar,"http://");
	if (my_link != null) 
		{
		if (my_link.substr(0,7) != "http://")
			{
			alert ("Vul een geldig www-adres in.");
			return "";
			}
		else
			{
			return my_link;
			}
		}
	else
		{
		return "";
		}
	}

function PromptVoorURLinhoud()
	{
	var inhoud = prompt("Omschrijving van de link \n (bijv. KijkOnzeBaby)", "");
	if (inhoud != null)
		{
		return inhoud;
		}
	else
		{
		return "";
		}
	}

//-->

