function SBCCase(text)
{
var text = text.replace(/[/r/n]+/img, " ");
var chars = " !"#¥%&'()*+,-./0123456789:;<=>?@" +
"ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`" +
"abcdefghijklmnopqrstuvwxyz{|} ̄";
var result = "";
for (var i = 0; i < text.length; i++)
{
var unicode = text.charCodeAt(i);
if (unicode >= 32 && unicode <= 126)
result += chars.charAt(unicode - 32);
else result += text.charAt(i);
}
return result;
}
function GridBuilder(colCount, rowCount, gridColor)
{
var gridChars = " ╔╤╗╚╧╝═║│";
var result = new Array();
for (var row = 0; row < rowCount; row++)
{
if (row == 0)
{
var temp = new Array();
var char = gridChars.charAt(1);
if (typeof(gridColor) != "undefined")
var char = "[color=" + gridColor + "]" + char;
temp.push(char);
for (var col = 1; col < colCount; col++)
{
temp.push(gridChars.charAt(7));
temp.push(gridChars.charAt(2));
}
temp.push(gridChars.charAt(7));
var char = gridChars.charAt(3);
if (typeof(gridColor) != "undefined")
var char = char + "[/color]";
temp.push(char);
result.push(temp);
}
var temp = new Array();
var char = gridChars.charAt(8);
if (typeof(gridColor) != "undefined")
var char = "[color=" + gridColor + "]" + char + "[/color]";
temp.push(char);
for (var col = 1; col < colCount; col++)
{
temp.push(gridChars.charAt(0));
var char = gridChars.charAt(9);
if (typeof(gridColor) != "undefined")
var char = "[color=" + gridColor + "]" + char + "[/color]";
temp.push(char);
}
temp.push(gridChars.charAt(0));
var char = gridChars.charAt(8);
if (typeof(gridColor) != "undefined")
var char = "[color=" + gridColor + "]" + char + "[/color]";
temp.push(char);
result.push(temp);
if (row == rowCount - 1)
{
var temp = new Array();
var char = gridChars.charAt(4);
if (typeof(gridColor) != "undefined")
var char = "[color=" + gridColor + "]" + char;
temp.push(char);
for (var col = 1; col < colCount; col++)
{
temp.push(gridChars.charAt(7));
temp.push(gridChars.charAt(5));
}
temp.push(gridChars.charAt(7));
var char = gridChars.charAt(6);
if (typeof(gridColor) != "undefined")
var char = char + "[/color]";
temp.push(char);
result.push(temp);
}
}
return result;
}
function GridText(grid)
{
var result = "";
for (var i = 0; i < grid.length; i++)
result += grid[i].join("") + "/r/n";
return result;
}
function GridFull(colCount, rowCount, text, gridColor, textColor, left2right)
{
if (colCount <= 0) return "";
if (rowCount <= 0) return "";
var result = "";
var text = SBCCase(text);
var grid = null;
for (var i = 0; i < text.length; i++)
{
if (!grid) grid = GridBuilder(colCount, rowCount, gridColor);
var j = i % (colCount * rowCount);
var row = j % rowCount;
var col = Math.floor(j / rowCount);
var char = text.charAt(i);
if (typeof(textColor) != "undefined")
var char = "[color=" + textColor + "]" + char + "[/color]";
if (typeof(left2right) != "undefined" && left2right)
grid[row + 1][col * 2 + 1] = char;
else grid[row + 1][(colCount - col) * 2 - 1] = char;
if ((i + 1) % (colCount * rowCount) == 0 )
{
result += GridText(grid) + "/r/n";
grid = null;
}
}
if (grid) result += GridText(grid);
return result;
}
var colCount = 18;
var rowCount = 10;
var left2right = false;
var gridColor = undefined/*"#808080"*/;
var textColor = "#FF0000";
function getEditor()
{
var replyframe = parent.document.getElementById("replyframe");
if (replyframe)
return replyframe.contentWindow.document.getElementById("tb_ReplyBody___Editor");
else
return document.getElementById("ctl00_ctl00_CPH_Content_CPH_BaseContent_tb_TopicBody___Editor");
}
function setEditorText(value)
{
var editor = getEditor();
if (editor)
{
editor.value = value;
editor.focus();
}
}
function getEditorText()
{
var editor = getEditor();
if (editor) return editor.value;
}
function setGrid()
{
setEditorText(GridFull(colCount, rowCount, getEditorText(), gridColor, textColor, left2right));
}
setGrid();