var MyTextarea = ''; // Szerkesztődoboz
var docRoot = 'bbeditor'; // Document elérése

var Mode = new Array(); // Gombsorok
	Mode['mini'] = ['bold', 'italic', 'underline'];
	Mode['normal'] = ['bold', 'italic', 'underline', 'left', 'right', 'center', 'list',
       				  'quote', 'code', 'url', 'email', 'image'];
	Mode['full'] = ['bold', 'italic', 'underline', 'left', 'right', 'center', 'list',
       				'quote', 'code', 'url', 'email', 'image', 'header', 'size', 'style', 'color'];
	Mode['comment'] = ['bold', 'italic', 'underline', 'quote', 'code', 'url'];

function Config(dirRoot, style)
{

	if(!dirRoot)
		docRoot = 'apps/bbeditor';
	else
		docRoot = dirRoot+docRoot

	if(!style)
		myStyle = 'style.css';
	else
		myStyle = style;

	LoadJsCssFile(docRoot+"/inc/colors.js", "js");
	LoadJsCssFile(docRoot+"/inc/"+myStyle, "css");

}

// Css és Js fájl utólagos betöltése
function LoadJsCssFile(filename, filetype)
{
	 if (filetype=="js") // Ha a fájl JavaScript
	 {
	  var fileref=document.createElement('script')
	  fileref.setAttribute("type","text/javascript")
	  fileref.setAttribute("src", filename)
	 }
	 else if (filetype=="css") // Ha a fájl CSS
	 {
	  var fileref=document.createElement("link")
	  fileref.setAttribute("rel", "stylesheet")
	  fileref.setAttribute("type", "text/css")
	  fileref.setAttribute("href", filename)
	 }
	 if (typeof fileref!="undefined") // Head közé írás
	  document.getElementsByTagName("head")[0].appendChild(fileref)
}

function CreateOpenBox(docRoot)
{
	var newDiv = document.createElement('div');
	newDiv.className = 'eOpenBox';
	newDiv.id = 'eOpenBox';
	newDiv.innerHTML = '<div class="eClose"><span id="eTitle"></span><img src="'+docRoot+'/images/cross.png" alt="close" title="Bezárás" onclick="hideBox(\'eOpenBox\')" /></div><div class="eBox" id="Info"></div>';
    document.getElementsByTagName("body")[0].appendChild(newDiv)
}

//MakeColors(obj);
function LoadToolbar(textObj, tools)
{
    if(Mode[tools]==null)
    {   // Nemlétező Gombsor figyelmeztetés
    	alert('Nincs ilyen Gombsor beállítva');
    	return false;
    }

	var MyDivOpen = '<div class="Toolbar" id="My_'+textObj+'">';

	// Gombsor
	var Toolbar = new Array();
    // Félkövér
	Toolbar['bold'] = '<img class="Buttons" src="'+docRoot+'/images/text_bold.png" name="Bold" title="Félkövér" onClick="bbcAdd(\'[b]\', \'[/b]\', \''+textObj+'\')">';
	//Dőlt betű
	Toolbar['italic'] = '<img class="Buttons" src="'+docRoot+'/images/text_italic.png" name="Italic" title="Dőlt" onClick=\"bbcAdd(\'[i]\',\'[/i]\', \''+textObj+'\')">';
	// Aláhúzott betű
	Toolbar['underline'] = '<img class="Buttons" src="'+docRoot+'/images/text_underline.png" name="btnUnderline" title="Aláhúzott" onClick=\"bbcAdd(\'[u]\',\'[/u]\', \''+textObj+'\')">';
	// Szöveg Jobbra igazítás
	Toolbar['left'] = '<img class="Buttons" src="'+docRoot+'/images/text_align_left.png" name="Left" title="Balra igazított" onClick=\"bbcAdd(\'[text=left]\',\'[/text]\', \''+textObj+'\')">';
	// Szöveg Balra igazítás
	Toolbar['right'] = '<img class="Buttons" src="'+docRoot+'/images/text_align_right.png" name="Right" title="Jobbra igazított" onClick=\"bbcAdd(\'[text=right]\',\'[/text]\', \''+textObj+'\')">';
	// Szöveg Középre igazítás
	Toolbar['center'] = '<img class="Buttons" src="'+docRoot+'/images/text_align_center.png" name="Center" title="Középre igazított" onClick=\"bbcAdd(\'[text=center]\',\'[/text]\', \''+textObj+'\')">';
	// Felsorolás
	Toolbar['list'] = '<img class="Buttons" src="'+docRoot+'/images/text_list_bullets.png" name="List" title="Felsorolás" onClick="bbcAdd(\'[list]&#92;n[li]\', \'[/li]&#92;n[li][/li]&#92;n[/list]\', \''+textObj+'\')">';
	// Idézet
	Toolbar['code'] = '<select class="Select" onBlur="this.options[0].selected=true" onchange="bbcAdd(\'[code=\'+this.value+\']\', \'[/code]\', \''+textObj+'\')"><option>Code</option><option value="php">PHP</option><option value="sql">SQL</option><option value="html">HTML</option><option value="css">CSS</option><option value="js">JavaScript</option></select>';
	// Kód
	Toolbar['quote'] = '<img class="Buttons" src="'+docRoot+'/images/comment.png" name="Quote" title="Idézet" onClick="bbcAdd(\'[quote]\',\'[/quote]\', \''+textObj+'\')">';
	// BBkód URL (link) átalakítása
	Toolbar['url'] = '<img class="Buttons" src="'+docRoot+'/images/link.png" name="Url" title="Link" onClick="bbcAdd(\'[url]\',\'[/url]\',\''+textObj+'\')">';
	// BBkód E-mail átalakítása
	Toolbar['email'] = '<img class="Buttons" src="'+docRoot+'/images/email.png" name="Email" title="E-mail" onClick="bbcAdd(\'[mail]\',\'[/mail]\', \''+textObj+'\')">';
	// BBkód Img átalakítása
	Toolbar['image'] = '<img class="Buttons" src="'+docRoot+'/images/image.png" name="Kep" title="Kép" onClick="bbcAdd(\'[img]\',\'[/img]\',\''+textObj+'\')">';
	// Címsor
	Toolbar['header'] = '<div class="c"></div><select class="Select" onBlur="this.options[0].selected=true" onchange="bbcAdd(\'[h\'+this.value+\']\', \'[/h\'+this.value+\']\', \''+textObj+'\')"><option>Címsor</option><option value="1" >Címsor 1</option><option value="2">Címsor 2</option><option value="3">Címsor 3</option><option value="4">Címsor 4</option><option value="5">Címsor 5</option><option value="6">Címsor 6</option></select>';
	// Betűméret
	Toolbar['size'] = '<select class="Select" onBlur="this.options[0].selected=true" onchange="bbcAdd(\'[font=\'+this.value+\']\', \'[/font]\', \''+textObj+'\')"><option>Betűméret</option><option value="10px">10</option><option value="12px">12</option><option value="14px">14</option><option value="16px">16</option><option value="18px">18</option><option value="20px">20</option></select>';
	// Betűstílus
	Toolbar['style'] = '<select class="Select" onBlur="this.options[0].selected=true" onchange="bbcAdd(\'[font=\'+this.value+\']\', \'[/font]\', \''+textObj+'\')"><option>BetűStílus</option><option value="Times New Roman">Times New Roman</option><option value="Roman">Roman</option><option value="Garamond">Garamond</option><option value="Palatino">Palatino</option><option value="Helvetica">Helvetica</option><option value="Impact">Impact</option><option value="Script">Script</option><option value="Modern">Modern</option><option value="Courier">Courier</option><option value="Calibri">Calibri</option><option value="Verdana">Verdana</option><option value="Georgia">Georgia</option></select>';
	// Betűszín
	Toolbar['color'] = '<img class="Buttons" src="'+docRoot+'/images/color-palette.png" id="Color" title="Betűszín" onclick="showBox(\''+textObj+'\', event);" />';
  
  Toolbar['sep'] = '<span style="float:left;height:24px; line-height:24px; background:url('+docRoot+'/images/separator.png) center center no-repeat;" >&nbsp;</span>';
	// Zárás
	var MyDivClose = '<div class="c"></div></div>';
	var NewToolbar = '';
	for (key in Mode[tools])
	{
		NewToolbar += Toolbar[Mode[tools][key]];
	}
	NewToolbar = MyDivOpen + NewToolbar + MyDivClose;
    document.write(NewToolbar);

	// Gombsor méretének igazítása
	setTimeout(function()
	{
	MyTextarea = document.getElementById(textObj);
	MyEditor = document.getElementById('My_'+textObj);
	MyEditor.style.width = parseInt(MyTextarea.style.width)+2+'px';
	MyTextarea.style.border='thin solid #c4c2b2';
	MyTextarea.style.width = MyEditor.style.width;
	}, 200);
}

function showBox(obj, e)
{
	CreateOpenBox(docRoot);

		Object = MakeColors(obj);
		TitleText = "Színpaletta";

	var x = e.clientX+document.body.scrollLeft // Egér pozíciója + a görgetés
	var y = e.clientY+document.body.scrollTop // Egér pozíciója + a görgetés
	var Box = document.getElementById('eOpenBox');
	var Info = document.getElementById('Info');
	var Title = document.getElementById('eTitle');
	//var Info = document.getElementById(id);

	if(document.all)
	{
		x = e.clientX+document.body.scrollLeft;
		y = e.clientY+document.body.scrollTop;
	}
	else
	{
		x = e.pageX;
		y = e.pageY;
	}
    Title.innerHTML = TitleText;
    Info.innerHTML = Object;
	Box.style.left = x+5+'px';
    Box.style.top = y+5+'px';
    Box.style.display = 'block';
}
function hideBox(id)
{
  var Body = document.getElementsByTagName("body")[0];
  var Box = document.getElementById(id);
  Body.removeChild(Box);
}

// BBtagok beszúrása (text1, text2) a szerkesztődobozbe
function bbcAdd(text1, text2, textarea)
{
	textarea = document.getElementById(textarea);

	// Can a text range be created?
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
	{
		var caretPos = textarea.caretPos, temp_length = caretPos.text.length;

		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;

		if (temp_length == 0)
		{
			caretPos.moveStart("character", -text2.length);
			caretPos.moveEnd("character", -text2.length);
			caretPos.select();
		}
		else
			textarea.focus(caretPos);
	}
	// Mozilla text range wrap.
	else if (typeof(textarea.selectionStart) != "undefined")
	{
		var begin = textarea.value.substr(0, textarea.selectionStart);
		var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
		var end = textarea.value.substr(textarea.selectionEnd);
		var newCursorPos = textarea.selectionStart;
		var scrollPos = textarea.scrollTop;

		textarea.value = begin + text1 + selection + text2 + end;

		if (textarea.setSelectionRange)
		{
			if (selection.length == 0)
				textarea.setSelectionRange(newCursorPos + text1.length, newCursorPos + text1.length);
			else
				textarea.setSelectionRange(newCursorPos, newCursorPos + text1.length + selection.length + text2.length);
			textarea.focus();
		}
		textarea.scrollTop = scrollPos;
	}
	// Just put them on the end, then.
	else
	{
		textarea.value += text1 + text2;
		textarea.focus(textarea.value.length - 1);
	}
}
