// JS QuickTags version 1.2
// Copyright (c) 2002-2005 Alex King - http://www.alexking.org
// Licensed under the LGPL license
// http://www.gnu.org/copyleft/lesser.html
//
// modified by mejbi

var edButtons = new Array();
var edOpenTags = new Array();
var edshortfullval = 0;

function edButton(id, display, tagStart, tagEnd, access, open, title) {
	this.id			= id;
	this.display	= display;
	this.tagStart	= tagStart;
	this.tagEnd		= tagEnd;
	this.access		= access;
	this.open		= open;
	this.title		= title;
}

edButtons.push(new edButton('ed_b', '[b]', '[b]', '[/b]', 'b', '', 'pogrubianie tekstu: [b]tekst[/b]'));
edButtons.push(new edButton('ed_i', '[i]', '[i]', '[/i]', 'i', '', 'pochylanie tekstu: [i]tekst[/i]'));
edButtons.push(new edButton('ed_u', '[u]', '[u]', '[/u]', 'u', '', 'podkreślanie tekstu: [u]tekst[/u]'));
edButtons.push(new edButton('ed_q', '[q]', '[q]', '[/q]', 'q', '', 'tekst cytowany: [q]cytat[/q]'));
edButtons.push(new edButton('ed_hr', '[hr]', '[hr]\n', '', 'h', -1, 'linia pozioma: [hr]'));
edButtons.push(new edButton('ed_pre', '[pre]', '[pre]\n', '[/pre]\n', 'p', '', 'tekst preformatowany: [pre]tekst[/pre]'));
edButtons.push(new edButton('ed_url', '[url]', '[url]', '[/url]', 'a', '', 'odsyłacz: [url]http://adres.pl[/url] lub [url=http://adres.pl]tekst[/url]'));
edButtons.push(new edButton('ed_img', '[img]', '[img=]', '', 'm', -1, 'zdjęcie: [img=x] lub [img=x,a] (x = ID zdjęcia, a = opływanie z lewej/prawej [l/r])'));
var extendedStart = edButtons.length;
edButtons.push(new edButton('ed_br', '[br]', '[br]', '', 'r', -1, 'łamanie wiersza: [br]'));
edButtons.push(new edButton('ed_nb', '[nb]', '[nb]', '[/nb]', 'n', '', 'nie pozwala przełamać wiersza: [nb]tekst ze spacjami[/nb]'));
edButtons.push(new edButton('ed_ul', '[ul]', '[ul]\n', '[/ul]\n', 'l', '', 'wypunktowanie: [ul]wypunktowany tekst[/ul]'));
edButtons.push(new edButton('ed_html', '[html]', '[html]\n', '[/html]\n', 't', '', 'kod HTML: [html]kod HTML[/html]'));
edButtons.push(new edButton('ed_left', '[left]', '[left]\n', '[/left]\n', 'l', '', 'wyrównywanie do lewej: [left]tekst[/left]'));
edButtons.push(new edButton('ed_center', '[center]', '[center]\n', '[/center]\n', 'c', '', 'wyrównywanie do środka: [center]tekst[/center]'));
edButtons.push(new edButton('ed_right', '[right]', '[right]\n', '[/right]\n', 'g', '', 'wyrównywanie do prawej: [right]tekst[/right]'));

function edShowButton(button, i) {
	if(button.access) var accesskey = ' accesskey = "' + button.access + '"'; else var accesskey = '';
	if(button.title) var btitle = button.title; else var btitle = '';
	switch (button.id) {
		case 'ed_url':
			document.write('<input type="button" id="' + button.id + '" ' + accesskey + ' onclick="edInsertLink(edCanvas, ' + i + ');" onMouseOver="document.getElementById(\'ed_tb_description\').innerHTML=\'' + btitle + '\'"' + (button.access ? ' title="hotkey: ' + button.access + '"' : '') + ' value="' + button.display + '" />');
			break;
		default:
			document.write('<input type="button" id="' + button.id + '" ' + accesskey + ' onclick="edInsertTag(edCanvas, ' + i + ');" onMouseOver="document.getElementById(\'ed_tb_description\').innerHTML=\'' + btitle + '\'"' + (button.access ? ' title="hotkey: ' + button.access + '"' : '') + ' value="' + button.display + '" />');
			break;
	}
}

function edInsertLink(myField, i, defaultValue) {
	if(!defaultValue) defaultValue = '';
	if(!edCheckOpenTags(i)) {
		if(edSelectedText(myField)) {
			var URL		= '';
			var LABEL	= prompt('Wpisz etykietę odsyłacza:', '');
		} else {
			var URL		= prompt('Wpisz adres strony:', '');
			var LABEL	= prompt('Wpisz etykietę odsyłacza:', '');
		}
		if(LABEL && LABEL != URL) {
			edButtons[i].tagStart = '[url=' + URL + ']' + LABEL;
		} else if(URL) {
			edButtons[i].tagStart = '[url]' + URL;
		}
		edInsertTag(myField, i);
		if(URL) edInsertTag(myField, i);
	} else {
		edInsertTag(myField, i);
	}
}

function edAddTag(button) {
	if(edButtons[button].tagEnd != '') {
		edOpenTags[edOpenTags.length] = button;
		document.getElementById(edButtons[button].id).style.backgroundColor = '#aaa';
		document.getElementById(edButtons[button].id).style.color = '#fff';
	}
}

function edRemoveTag(button) {
	for(i = 0; i < edOpenTags.length; i ++) {
		if(edOpenTags[i] == button) {
			edOpenTags.splice(i, 1);
		document.getElementById(edButtons[button].id).style.backgroundColor = '#fff';
		document.getElementById(edButtons[button].id).style.color = '#000';
		}
	}
}

function edCheckOpenTags(button) {
	var tag = 0;
	for(i = 0; i < edOpenTags.length; i ++) if(edOpenTags[i] == button) tag++;
	if(tag > 0) return true; else return false;
}	

function edCloseAllTags() {
	var count = edOpenTags.length;
	for(o = 0; o < count; o ++) edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]);
}

function edSetCookie(name, value, expires, path, domain) {
	document.cookie= name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "");
}

function edShowCookie(val) {
	var cookies = document.cookie.split(';');
	for(var i = 0; i < cookies.length; i ++) {
		var cookieData = cookies[i];
		while (cookieData.charAt(0) == ' ') cookieData = cookieData.substring(1, cookieData.length);
		if(cookieData.indexOf(val) == 0) if(cookieData.substring(19, cookieData.length) == 1) return true; else return false;
	}
	return false;
}

function edshortfull() {
	if(edshortfullval == 1) {
		document.getElementById('ed_shortfull').value = '\\/';
		edSetCookie('js_quicktags_short', 0);
		document.getElementById('mNews_full').style.borderColor = '#d00';
		document.getElementById('mNews_short').style.borderColor = '#777';
		edshortfullval = 0;
		return document.getElementById('mNews_full');
	} else {
		document.getElementById('ed_shortfull').value = '/\\';
		edSetCookie('js_quicktags_short', 1);
		document.getElementById('mNews_full').style.borderColor = '#777';
		document.getElementById('mNews_short').style.borderColor = '#d00';
		edshortfullval = 1;
		return document.getElementById('mNews_short');
	}
}

function edShowExtra() {
	if(edShowCookie('js_quicktags_extra')) {
		document.getElementById('ed_extra_show').value = '>';
		document.getElementById('ed_extra_buttons').style.display = 'none';
		edSetCookie('js_quicktags_extra', 0);
	} else {
		document.getElementById('ed_extra_show').value = '<';
		document.getElementById('ed_extra_buttons').style.display = 'block';
		edSetCookie('js_quicktags_extra', 1);
	}
}

function edToolbar(ndouble) {
	document.write('<div id="ed_toolbar"><span>');
	for(i = 0; i < extendedStart; i ++) edShowButton(edButtons[i], i);
	document.write('<input type="button" id="ed_close" onclick="edCloseAllTags();" value="[X]" onMouseOver="document.getElementById(\'ed_tb_description\').innerHTML=\'domknij wszystkie tagi\'" />');
	if(ndouble != 1) {
		document.write('<input type="button" id="ed_shortfull" onclick="edCanvas = edshortfull(); edCanvas.focus();" value="\\/" onMouseOver="document.getElementById(\'ed_tb_description\').innerHTML=\'edycja treści pełnej / skróconej\'" />');
	}
	document.write('<input type="button" id="ed_extra_show" onclick="edShowExtra()" value="' + (edShowCookie('js_quicktags_extra') ? '<' : '>') + '" onMouseOver="document.getElementById(\'ed_tb_description\').innerHTML=\'pokaż / ukryj dodatkowe przyciski\'" />');
	document.write('</span><br />');
	document.write('<span id="ed_extra_buttons"' + (edShowCookie('js_quicktags_extra') ? '' : ' style="display: none;"') + '>');
	for(i = extendedStart; i < edButtons.length; i ++) edShowButton(edButtons[i], i);
	document.write('</span>');
	document.write('<div id="ed_tb_description"></div>');
	document.write('</div>');
}

function edSelectedText(myField) {
	if(document.selection) {
		sel = document.selection.createRange();
		if(sel.text.length > 0) return true;
	}
	if(myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		if(startPos != endPos) return true;
	}
	return false;
}

function edInsertTag(myField, i) {
	if(document.selection) { // IE support
		myField.focus();
		sel = document.selection.createRange();
		if(sel.text.length > 0) {
			sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd;
		} else {
			if(!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
				sel.text = edButtons[i].tagStart;
				edAddTag(i);
			} else {
				sel.text = edButtons[i].tagEnd;
				edRemoveTag(i);
			}
		}
		myField.focus();
	} else if(myField.selectionStart || myField.selectionStart == '0') { // MOZILLA/NETSCAPE support
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		var cursorPos = endPos;
		var scrollTop = myField.scrollTop;
		if(startPos != endPos) {
			myField.value = myField.value.substring(0, startPos)
							+ edButtons[i].tagStart
							+ myField.value.substring(startPos, endPos) 
							+ edButtons[i].tagEnd
							+ myField.value.substring(endPos, myField.value.length);
			cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length;
		} else {
			if(!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
				myField.value = myField.value.substring(0, startPos) 
								+ edButtons[i].tagStart
								+ myField.value.substring(endPos, myField.value.length);
				edAddTag(i);
				cursorPos = startPos + edButtons[i].tagStart.length;
			} else {
				myField.value = myField.value.substring(0, startPos) 
								+ edButtons[i].tagEnd
								+ myField.value.substring(endPos, myField.value.length);
				edRemoveTag(i);
				cursorPos = startPos + edButtons[i].tagEnd.length;
			}
		}
		myField.focus();
		myField.selectionStart = cursorPos;
		myField.selectionEnd = cursorPos;
		myField.scrollTop = scrollTop;
	} else {
		if(!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
			myField.value += edButtons[i].tagStart;
			edAddTag(i);
		} else {
			myField.value += edButtons[i].tagEnd;
			edRemoveTag(i);
		}
		myField.focus();
	}
}
