/**
 * $Id: codebuttons.js 323 2004-11-22 02:46:52Z eofredj $
 * Oxygen v1.1.3 © 2002-2004 Oxygen Development Team
 * http://www.o2php.com
 *
 * Please see GPL.txt in the docs/ directory of this distribution.
 *
 * File Last Updated: Sun, 28 Nov 2004 02:58:48 +0100
 */
var collapse = new Image();
var expand = new Image();

var advmode = true; // default mode. either false(normal), true(advanced)

var bbcodes = new Array();
bbcodes['bold'] = new Array('b', 'b', false);
bbcodes['italic'] = new Array('i', 'i', false);
bbcodes['underline'] = new Array('u', 'u', false);
bbcodes['center'] = new Array('center', 'center', false);
bbcodes['hyperlink'] = new Array('url', 'url', false);
bbcodes['email'] = new Array('email', 'email', false);
bbcodes['image'] = new Array('img', 'img', false);
bbcodes['code'] = new Array('code', 'code', false);
bbcodes['quote'] = new Array('quote', 'quote', false);
bbcodes['hide'] = new Array('hide', 'hide', false);
bbcodes['color'] = new Array('color=', 'color', false);
bbcodes['font'] = new Array('font=', 'font', false);
bbcodes['size'] = new Array('size=', 'size', false);

var bold = new Array();
var italic = new Array();
var underline = new Array();
var center = new Array();
var hyperlink = new Array();
var email = new Array();
var image = new Array();
var code = new Array();
var quote = new Array();
var hide = new Array();
var lastbb = new Array();
bold[0] = new Image();
bold[1] = new Image();
italic[0] = new Image();
italic[1] = new Image();
underline[0] = new Image();
underline[1] = new Image();
center[0] = new Image();
center[1] = new Image();
hyperlink[0] = new Image();
hyperlink[1] = new Image();
email[0] = new Image();
email[1] = new Image();
image[0] = new Image();
image[1] = new Image();
code[0] = new Image();
code[1] = new Image();
quote[0] = new Image();
quote[1] = new Image();
hide[0] = new Image();
hide[1] = new Image();

function getSelectionStart(item) {
	var spos = 0;
	spos = item.selectionStart;
	return spos;
}

function getSelectionEnd(item) {
	var epos = 0;
	epos = item.selectionEnd;
	return epos;
}

function setSelectionStart(item, npos) {
	item.selectionStart = npos;
}

function setSelectionEnd(item, npos) {
	item.selectionEnd = npos;
}

function setSelection(item, snew, enew) {
	setSelectionStart(item, snew);
	setSelectionEnd(item, enew);
}

function setPosition(item, pos) {
	setSelectionStart(item, pos);
	setSelectionEnd(item, pos);
}

function txtInsert(item, txt, pos) {
	item.value = item.value.slice(0, pos) + txt + item.value.slice(pos);
}

function txtReplace(item, txt, spos, epos) {
	item.value = item.value.slice(0, spos) + txt + item.value.slice(epos);
}

function dobbcode(bbcode, imgOn, imgOff) {
	var item = FindForm('post', 'message');
	var stag = '[' + bbcodes[bbcode][0] + ']';
	var etag = '[/' + bbcodes[bbcode][1] + ']';
	if(window.getSelection || document.getSelection) {
		var spos = getSelectionStart(item);
		var epos = getSelectionEnd(item);
		if(epos - spos > 0) {
			epos += stag.length;
			txtInsert(item, stag, spos);
			txtInsert(item, etag, epos);
			setSelection(item, spos + stag.length, epos);
		} else {
			if(bbcodes[bbcode][2]) {
				txtInsert(item, etag, spos);
				(FindID(bbcode)).src = imgOn.src;
				bbcodes[bbcode][2] = false;
				setPosition(item, spos + etag.length);
			} else {
				txtInsert(item, stag, spos);
				(FindID(bbcode)).src = imgOff.src;
				bbcodes[bbcode][2] = true;
				setPosition(item, spos + stag.length);
			}
		}
	} else if(document.selection.type != 'None' && document.selection.createRange().parentElement().name == 'message') {
		var sel = document.selection.createRange().text;
		document.selection.createRange().text = stag + sel + etag;
	} else {
		item.focus();
		if(bbcodes[bbcode][2]) {
			(FindID(bbcode)).src = imgOn.src;
			txt = etag;
			bbcodes[bbcode][2] = false;
		} else {
			(FindID(bbcode)).src = imgOff.src;
			txt = stag;
			bbcodes[bbcode][2] = true;
		}
		insertAtCaret(item, txt);
	}
	item.focus();
}

function dobbcodearg(bbcode, arg) {
	var item = FindForm('post', 'message');
	var stag = '[' + bbcode + '=' + arg + ']';
	var etag = '[/' + bbcode + ']';
	if(window.getSelection || document.getSelection) {
		var spos = getSelectionStart(item);
		var epos = getSelectionEnd(item);
		if(epos - spos > 0) {
			epos += stag.length;
			txtInsert(item, stag, spos);
			txtInsert(item, etag, epos);
			setSelection(item, spos + stag.length, epos);
		} else {
			if(bbcodes[bbcode][2]) {
				txtInsert(item, etag, spos);
				bbcodes[bbcode][2] = false;
				setPosition(item, spos + etag.length);
				lastbb[lastbb.length - 1] = null;
				--lastbb.length; 
			} else {
				txtInsert(item, stag, spos);
				bbcodes[bbcode][2] = true;
				setPosition(item, spos + stag.length);
				lastbb[lastbb.length] = etag;
			}
		}
	} else if(document.selection.type != 'None' && document.selection.createRange().parentElement().name == 'message') {
		var sel = document.selection.createRange().text;
		document.selection.createRange().text = stag + sel + etag;
	} else {
		item.focus();
		if(bbcodes[bbcode][2]) {
			txt = etag;
			bbcodes[bbcode][2] = false;
			lastbb[lastbb.length - 1] = null;
			--lastbb.length; 
		} else {
			txt = stag;
			bbcodes[bbcode][2] = true;
			lastbb[lastbb.length] = etag;
		}
		insertAtCaret(item, txt);
	}
	item.focus();
}

function dotxt(txt) {
	var item = FindForm('post', 'message');
	if(window.getSelection || document.getSelection) {
		var spos = getSelectionStart(item);
		var epos = getSelectionEnd(item);
		if(epos - spos > 0) {
			txtReplace(item, txt, spos, epos);
		} else {
			txtInsert(item, txt, spos);
		}
		setPosition(item, spos + txt.length)
	} else if(document.selection.type != 'None' && document.selection.createRange().parentElement().name == 'message') {
		document.selection.createRange().text = txt;
	} else {
		insertAtCaret(item, txt);
	}
	item.focus();
}

function doclose() {
	for(var i = lastbb.length; i > 0; i--) {
		dotxt(lastbb[i - 1]);
		lastbb[i - 1] = null;
	}
	lastbb.length = 0;
}

function maxchars(tag, item, max) {
	var maxtag = FindForm('post', item);
	var len = tag.value.length;
	if(len > max) {
		tag.value = tag.value.substring(0, max);
		len = max;
	}
	maxtag.value = max - len;
}

function storeCaret(tag, maxitem, max) {
	if(0 != max) {
		maxchars(tag, maxitem, max);
	}
	if(document.selection && tag.createTextRange) {
		tag.caretPos = document.selection.createRange().duplicate();
		selectedInputArea = tag;
	} else {
		return false;
	}
}

function insertAtCaret(tag, text) {
	if(tag.createTextRange && tag.caretPos) {
		var caretPos = tag.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
	} else {
		tag.value  += text;
	}
}

function chmode(swtch) {
	if(swtch == 1) {
		advmode = false;
		window.status = "Popups will bring you step by step through the process of inserting BB Code.";
	} else {
		advmode = true;
		window.status = "The BB Code will be inserted without options as soon as you hit the button.";
	}
}

function list() {
	if(advmode) {
		dotxt('[list]\n[*]\n[*]\n[*]\n[/list]');
	} else {
		txt = prompt("Please select your list type\n ('A' for aplhabetic, '1' for nummeric) You can leave this field blank","");               
		while((txt != "") && (txt != "A") && (txt != "a") && (txt != "1") && (txt != null)) {
			txt = prompt("ERROR!\nThe only possible values for type of list are blank 'A' and '1'.", "");               
		}

		if(txt != null) {
			if(txt == "") {
				AddTxt = "[list]\n";
			} else {
				AddTxt = "[list=" + txt + "]\n";
			}

			txt2 = txt;
			txt = "1";
			while((txt != "") && (txt != null)) {
				txt = prompt("List Item:\nLeave it blank to End the List", ""); 
				if(txt != "") {
					AddTxt += "[*]" + txt + "\n"; 
				}
			}

			if(txt2 == "") {
				AddTxt += "[/list]\n";
			} else {
				AddTxt += "[/list=" + txt2 + "]\n";
			}
			dotxt(AddTxt);
		}
	}
}

function icon(code) {
	dotxt(code);
}

function info(text) {
	FindForm('post', 'bbcode_info').value = text;
}

// define the number of color in the color bar
var pas = 20;
//define the height of the color bar
var height1 = 8;

//define the width of the color bar here
var width1 = 2;

var col = new Array();
col[0] = new Array(255, 0, 255, 0, 255, -1);
col[1] = new Array(255, 0, 255, -1, 0, 0);
col[2] = new Array(255, 0, 0, 0, 0, 1);
col[3] = new Array(255, -1, 0, 0, 255, 0);
col[4] = new Array(0, 0, 0, 1, 255, 0);
col[5] = new Array(0, 0, 255, 0, 255, -1);
col[6] = new Array(0, 0, 255, -1, 0, 0);
col[7] = new Array(0, 1, 0, 1, 0, 1);

function dec2Hexa(number) {
	base_hexa = '0123456789abcdef';
	return base_hexa.charAt(Math.floor(number / 16)) + base_hexa.charAt(number % 16);
}

function RGB2Hexa(TR, TG, TB) {
	return '#' + dec2Hexa(TR) + dec2Hexa(TG) + dec2Hexa(TB);
}

function lightCase(MyObject) {
	FindID('ColorUsed').bgColor = MyObject.bgColor;
}

function lightCaseSave(MyObject) {
	FindID('ColorUsedSave').bgColor = MyObject.bgColor;
}

function rgb(pas, w, h) {
	colorpicker = '';
	for(j = 0; j < 7 + 1; j++) {
		for(i = 0; i < pas + 1; i++) {
			r = Math.floor(col[j][0] + col[j][1] * i * 255 / pas);
			g = Math.floor(col[j][2] + col[j][3] * i * 255 / pas);
			b = Math.floor(col[j][4] + col[j][5] * i * 255 / pas);
			codehex = RGB2Hexa(r, g, b);
			colorpicker += '<td bgcolor="' + codehex + '" onclick="lightCaseSave(this);" onmouseover="lightCase(this);" title="' + codehex + '"><img src="images/common/pixel.gif" width="' + w + '" height="' + h + '" border="0"></td>\n';
		}
	}
	document.write(colorpicker);
}

function redirlocate(object, prefix) {
	if(is_nav4up || is_ie4up || is_opera) {
		if(object.options[object.selectedIndex].value != '') {
			window.location = (prefix + object.options[object.selectedIndex].value);
		}
	} else {
		return false;
	}
}

function setfocus() {
	document.post.message.focus();
}

function Popup(url, window_name, window_width, window_height) {
	var win_width = (screen.width - window_width) / 2;
	var win_height = (screen.height - window_height) / 2;
	settings = "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=" + window_width + ", height=" + window_height + ", top=" + win_height + ", left=" + win_width;
	window.open(url, window_name, settings);
}

function moresmilies(icon) { 
	TextElement = opener.document.post.message;
	insertAtCaret(TextElement, icon);
	TextElement.focus();	
} 

function CheckAll(form, me, name) {
	for(var i = 0; i < form.elements.length; i++) {
		var e = form.elements[i];
		
		if ((e != me) && (e.type == 'checkbox') && (e.name == name))
			 e.checked = form[me.name].checked;
	}
}

function setimage(img) {
	if(img[img.selectedIndex].value != "") {
		document.images['avatarpic'].src = img[img.selectedIndex].value;
		img.form.avatarurl.value = img[img.selectedIndex].value;
	} else {
		document.images['avatarpic'].src = "images/common/pixel.gif";
		img.form.avatarurl.value = "";
	}
}

function styleswap(object, style) {
	if(is_nav5up || is_ie4up || is_opera) {
		object.className = style;
	} else {
		return false;
	}
}

function ShowHide(div) {
	Div_expand = FindID(div + '_expand');
	Div_collapse = FindID(div + '_collapse');
	if (Div_expand.style.display == 'none') {
		Div_expand.style.display = 'block';
		Div_collapse.style.display = 'none';
	} else {
		Div_expand.style.display = 'none';
		Div_collapse.style.display = 'block';
	}
}