/* asciimo.js - written by Marak Squires saved from the internet @ http://patorjk.com/software/taag/ i had to do unholy things to make the original code work, seriously. check the commit logs on github and you'll see how much "code" i had to delete and refactor. what's left isnt really acceptable, but it does work. let's clean this up and get a more comprehensive font database! -- Marak */ if(typeof exports != 'undefined'){ var fs = require('fs'); var sys = require('sys'); exports.text = function(fontName, text, callback){ fs.readFile('./fonts/' + fontName, function(err, contents){ if(err){ //sys.puts(err); } try{ loadFont(contents.toString()); } catch(err){ sys.puts(('couldnt load font file ' + fontName + ' not going to render your text')); } var font = createLargeText(text); callback(font); }); }; } /**** DRAGONS START HERE, be warned ******/ // MARAK SAYS : ughhh i think we have to setup the base state for this big fontChars array to work. // i haven't figured out if we can just have the loadFont method handle this... var fontChars = new Array(95); // char height var charHeight = 7; // basic font info var fontPointSize = 10; var fontFace = "monospace"; // author's initials var initials = ""; // font file type extension var fontFileExt = "flf"; for (var i = 0; i < 95; i++) { fontChars[i] = new Array(charHeight); } // the first font gets hardcoded for some reason, the rest of the fonts are loaded async // and loaded into memory with loadFont() fontChars[0][0] = "$ $"; fontChars[0][1] = "$ $"; fontChars[0][2] = "$ $"; fontChars[0][3] = "$ $"; fontChars[0][4] = "$ $"; fontChars[0][5] = "$ $"; fontChars[0][6] = "$ $"; fontChars[1][0] = " _ "; fontChars[1][1] = "U|\"|u "; fontChars[1][2] = "\\| |/ "; fontChars[1][3] = " |_| "; fontChars[1][4] = " (_) "; fontChars[1][5] = " |||_ "; fontChars[1][6] = "(__)_) "; fontChars[2][0] = "\""; fontChars[2][1] = " "; fontChars[2][2] = " "; fontChars[2][3] = " "; fontChars[2][4] = " "; fontChars[2][5] = " "; fontChars[2][6] = " "; fontChars[3][0] = ""; fontChars[3][1] = " "; fontChars[3][2] = " "; fontChars[3][3] = " "; fontChars[3][4] = " "; fontChars[3][5] = " "; fontChars[3][6] = " "; fontChars[4][0] = "$"; fontChars[4][1] = " "; fontChars[4][2] = " "; fontChars[4][3] = " "; fontChars[4][4] = " "; fontChars[4][5] = " "; fontChars[4][6] = " "; fontChars[5][0] = "%"; fontChars[5][1] = " "; fontChars[5][2] = " "; fontChars[5][3] = " "; fontChars[5][4] = " "; fontChars[5][5] = " "; fontChars[5][6] = " "; fontChars[6][0] = "&"; fontChars[6][1] = " "; fontChars[6][2] = " "; fontChars[6][3] = " "; fontChars[6][4] = " "; fontChars[6][5] = " "; fontChars[6][6] = " "; fontChars[7][0] = " _ "; fontChars[7][1] = "|\"| "; fontChars[7][2] = "|_| "; fontChars[7][3] = " "; fontChars[7][4] = " "; fontChars[7][5] = " "; fontChars[7][6] = " "; fontChars[8][0] = "("; fontChars[8][1] = " "; fontChars[8][2] = " "; fontChars[8][3] = " "; fontChars[8][4] = " "; fontChars[8][5] = " "; fontChars[8][6] = " "; fontChars[9][0] = ")"; fontChars[9][1] = " "; fontChars[9][2] = " "; fontChars[9][3] = " "; fontChars[9][4] = " "; fontChars[9][5] = " "; fontChars[9][6] = " "; fontChars[10][0] = "*"; fontChars[10][1] = " "; fontChars[10][2] = " "; fontChars[10][3] = " "; fontChars[10][4] = " "; fontChars[10][5] = " "; fontChars[10][6] = " "; fontChars[11][0] = "+"; fontChars[11][1] = " "; fontChars[11][2] = " "; fontChars[11][3] = " "; fontChars[11][4] = " "; fontChars[11][5] = " "; fontChars[11][6] = " "; fontChars[12][0] = " "; fontChars[12][1] = " "; fontChars[12][2] = " "; fontChars[12][3] = " "; fontChars[12][4] = " _ "; fontChars[12][5] = "(\") "; fontChars[12][6] = " \\| "; fontChars[13][0] = " "; fontChars[13][1] = " "; fontChars[13][2] = " U u "; fontChars[13][3] = " /___\\ "; fontChars[13][4] = "|__\"__| "; fontChars[13][5] = " "; fontChars[13][6] = " "; fontChars[14][0] = " "; fontChars[14][1] = " "; fontChars[14][2] = " "; fontChars[14][3] = " "; fontChars[14][4] = " _ "; fontChars[14][5] = "(\") "; fontChars[14][6] = " \" "; fontChars[15][0] = "/"; fontChars[15][1] = " "; fontChars[15][2] = " "; fontChars[15][3] = " "; fontChars[15][4] = " "; fontChars[15][5] = " "; fontChars[15][6] = " "; fontChars[16][0] = " ___ "; fontChars[16][1] = " / _\"\\ u "; fontChars[16][2] = "| / U |/ "; fontChars[16][3] = "| \\// |,-. "; fontChars[16][4] = " \\___/(_/ "; fontChars[16][5] = " // "; fontChars[16][6] = " (__) "; fontChars[17][0] = " _ "; fontChars[17][1] = " /\"| "; fontChars[17][2] = " u | |u "; fontChars[17][3] = " \\| |/ "; fontChars[17][4] = " |_| "; fontChars[17][5] = " _//<,-, "; fontChars[17][6] = "(__)(_/ "; fontChars[18][0] = " ____ "; fontChars[18][1] = " |___\"\\ "; fontChars[18][2] = " U __) | "; fontChars[18][3] = " \\/ __/ \\ "; fontChars[18][4] = " |_____|u "; fontChars[18][5] = " << // "; fontChars[18][6] = "(__)(__) "; fontChars[19][0] = " _____ "; fontChars[19][1] = "|___\"/u "; fontChars[19][2] = "U_|_ \\/ "; fontChars[19][3] = " ___) | "; fontChars[19][4] = "|____/ "; fontChars[19][5] = " _// \\\\ "; fontChars[19][6] = "(__)(__) "; fontChars[20][0] = " _ _ "; fontChars[20][1] = "| ||\"| "; fontChars[20][2] = "| || |_ "; fontChars[20][3] = "|__ _| "; fontChars[20][4] = " /|_|\\ "; fontChars[20][5] = " u_|||_u "; fontChars[20][6] = " (__)__) "; fontChars[21][0] = " ____ "; fontChars[21][1] = "U|\"___|u "; fontChars[21][2] = "\\|___ \\/ "; fontChars[21][3] = " ___) | "; fontChars[21][4] = " |____/ "; fontChars[21][5] = ",-,>>\\,-. "; fontChars[21][6] = " \\ ) (_/ "; fontChars[22][0] = " __ "; fontChars[22][1] = "U /\"/_ u "; fontChars[22][2] = "\\| '_ \\/ "; fontChars[22][3] = " | (_) | "; fontChars[22][4] = " \\___/ "; fontChars[22][5] = " _// \\\\_ "; fontChars[22][6] = "(__) (__) "; fontChars[23][0] = " _____ "; fontChars[23][1] = " |___ \"| "; fontChars[23][2] = " / / "; fontChars[23][3] = " u// /\\ "; fontChars[23][4] = " /_/ U "; fontChars[23][5] = " <<>>_ "; fontChars[23][6] = "(__)__) "; fontChars[24][0] = " ___ "; fontChars[24][1] = "U( \" ) u "; fontChars[24][2] = "\\/ \\/ "; fontChars[24][3] = "| ( ) | "; fontChars[24][4] = " \\___/>> "; fontChars[24][5] = " )( (__) "; fontChars[24][6] = " (__) "; fontChars[25][0] = " ___ "; fontChars[25][1] = " / _\"\\ "; fontChars[25][2] = " | (_) | "; fontChars[25][3] = " /\\__, |\\ "; fontChars[25][4] = "U<< |_/ u "; fontChars[25][5] = "(__) )( "; fontChars[25][6] = " (__) "; fontChars[26][0] = " "; fontChars[26][1] = " _ "; fontChars[26][2] = "(\") "; fontChars[26][3] = " "; fontChars[26][4] = " _ "; fontChars[26][5] = "(\") "; fontChars[26][6] = " "; fontChars[27][0] = ";"; fontChars[27][1] = " "; fontChars[27][2] = " "; fontChars[27][3] = " "; fontChars[27][4] = " "; fontChars[27][5] = " "; fontChars[27][6] = " "; fontChars[28][0] = "<"; fontChars[28][1] = " "; fontChars[28][2] = " "; fontChars[28][3] = " "; fontChars[28][4] = " "; fontChars[28][5] = " "; fontChars[28][6] = " "; fontChars[29][0] = "="; fontChars[29][1] = " "; fontChars[29][2] = " "; fontChars[29][3] = " "; fontChars[29][4] = " "; fontChars[29][5] = " "; fontChars[29][6] = " "; fontChars[30][0] = ">"; fontChars[30][1] = " "; fontChars[30][2] = " "; fontChars[30][3] = " "; fontChars[30][4] = " "; fontChars[30][5] = " "; fontChars[30][6] = " "; fontChars[31][0] = " ___ "; fontChars[31][1] = " |__\"\\ "; fontChars[31][2] = "U / /u "; fontChars[31][3] = " \\|_|/ "; fontChars[31][4] = " (_) "; fontChars[31][5] = " _//\\,-. "; fontChars[31][6] = "(__)( / "; fontChars[32][0] = "@"; fontChars[32][1] = " "; fontChars[32][2] = " "; fontChars[32][3] = " "; fontChars[32][4] = " "; fontChars[32][5] = " "; fontChars[32][6] = " "; fontChars[33][0] = " _ "; fontChars[33][1] = "U /\"\\ u "; fontChars[33][2] = " \\/ _ \\/ "; fontChars[33][3] = " / ___ \\ "; fontChars[33][4] = "/_/ \\_\\ "; fontChars[33][5] = " \\\\ >> "; fontChars[33][6] = "(__) (__) "; fontChars[34][0] = " ____ "; fontChars[34][1] = "U | __\")u "; fontChars[34][2] = " \\| _ \\/ "; fontChars[34][3] = " | |_) | "; fontChars[34][4] = " |____/ "; fontChars[34][5] = " _|| \\\\_ "; fontChars[34][6] = "(__) (__) "; fontChars[35][0] = " ____ "; fontChars[35][1] = "U /\"___| "; fontChars[35][2] = "\\| | u "; fontChars[35][3] = " | |/__ "; fontChars[35][4] = " \\____| "; fontChars[35][5] = " _// \\\\ "; fontChars[35][6] = "(__)(__) "; fontChars[36][0] = " ____ "; fontChars[36][1] = " | _\"\\ "; fontChars[36][2] = "/| | | | "; fontChars[36][3] = "U| |_| |\\ "; fontChars[36][4] = " |____/ u "; fontChars[36][5] = " |||_ "; fontChars[36][6] = " (__)_) "; fontChars[37][0] = "U _____ u "; fontChars[37][1] = "\\| ___\"|/ "; fontChars[37][2] = " | _|\" "; fontChars[37][3] = " | |___ "; fontChars[37][4] = " |_____| "; fontChars[37][5] = " << >> "; fontChars[37][6] = "(__) (__) "; fontChars[38][0] = " _____ "; fontChars[38][1] = " |\" ___| "; fontChars[38][2] = "U| |_ u "; fontChars[38][3] = "\\| _|/ "; fontChars[38][4] = " |_| "; fontChars[38][5] = " )(\\\\,- "; fontChars[38][6] = "(__)(_/ "; fontChars[39][0] = " ____ "; fontChars[39][1] = "U /\"___|u "; fontChars[39][2] = "\\| | _ / "; fontChars[39][3] = " | |_| | "; fontChars[39][4] = " \\____| "; fontChars[39][5] = " _)(|_ "; fontChars[39][6] = " (__)__) "; fontChars[40][0] = " _ _ "; fontChars[40][1] = " |'| |'| "; fontChars[40][2] = "/| |_| |\\ "; fontChars[40][3] = "U| _ |u "; fontChars[40][4] = " |_| |_| "; fontChars[40][5] = " // \\\\ "; fontChars[40][6] = "(_\") (\"_) "; fontChars[41][0] = " "; fontChars[41][1] = " ___ "; fontChars[41][2] = " |_\"_| "; fontChars[41][3] = " | | "; fontChars[41][4] = " U/| |\\u "; fontChars[41][5] = ".-,_|___|_,-. "; fontChars[41][6] = " \\_)-' '-(_/ "; fontChars[42][0] = " _ "; fontChars[42][1] = " U |\"| u "; fontChars[42][2] = " _ \\| |/ "; fontChars[42][3] = "| |_| |_,-. "; fontChars[42][4] = " \\___/-(_/ "; fontChars[42][5] = " _// "; fontChars[42][6] = " (__) "; fontChars[43][0] = " _ __ "; fontChars[43][1] = " |\"|/ / "; fontChars[43][2] = " | ' / "; fontChars[43][3] = "U/| . \\\\u "; fontChars[43][4] = " |_|\\_\\ "; fontChars[43][5] = ",-,>> \\\\,-. "; fontChars[43][6] = " \\.) (_/ "; fontChars[44][0] = " _ "; fontChars[44][1] = " |\"| "; fontChars[44][2] = "U | | u "; fontChars[44][3] = " \\| |/__ "; fontChars[44][4] = " |_____| "; fontChars[44][5] = " // \\\\ "; fontChars[44][6] = " (_\")(\"_) "; fontChars[45][0] = " __ __ "; fontChars[45][1] = "U|' \\/ '|u "; fontChars[45][2] = "\\| |\\/| |/ "; fontChars[45][3] = " | | | | "; fontChars[45][4] = " |_| |_| "; fontChars[45][5] = "<<,-,,-. "; fontChars[45][6] = " (./ \\.) "; fontChars[46][0] = " _ _ "; fontChars[46][1] = " | \\ |\"| "; fontChars[46][2] = "<| \\| |> "; fontChars[46][3] = "U| |\\ |u "; fontChars[46][4] = " |_| \\_| "; fontChars[46][5] = " || \\\\,-. "; fontChars[46][6] = " (_\") (_/ "; fontChars[47][0] = " U ___ u "; fontChars[47][1] = " \\/\"_ \\/ "; fontChars[47][2] = " | | | | "; fontChars[47][3] = ".-,_| |_| | "; fontChars[47][4] = " \\_)-\\___/ "; fontChars[47][5] = " \\\\ "; fontChars[47][6] = " (__) "; fontChars[48][0] = " ____ "; fontChars[48][1] = "U| _\"\\ u "; fontChars[48][2] = "\\| |_) |/ "; fontChars[48][3] = " | __/ "; fontChars[48][4] = " |_| "; fontChars[48][5] = " ||>>_ "; fontChars[48][6] = "(__)__) "; fontChars[49][0] = " ___ "; fontChars[49][1] = " / \" \\ "; fontChars[49][2] = " | |\"| | "; fontChars[49][3] = "/| |_| |\\ "; fontChars[49][4] = "U \\__\\_\\u "; fontChars[49][5] = " \\\\// "; fontChars[49][6] = " (_(__) "; fontChars[50][0] = " ____ "; fontChars[50][1] = "U | _\"\\ u "; fontChars[50][2] = " \\| |_) |/ "; fontChars[50][3] = " | _ < "; fontChars[50][4] = " |_| \\_\\ "; fontChars[50][5] = " // \\\\_ "; fontChars[50][6] = " (__) (__) "; fontChars[51][0] = " ____ "; fontChars[51][1] = " / __\"| u "; fontChars[51][2] = "<\\___ \\/ "; fontChars[51][3] = " u___) | "; fontChars[51][4] = " |____/>> "; fontChars[51][5] = " )( (__) "; fontChars[51][6] = " (__) "; fontChars[52][0] = " _____ "; fontChars[52][1] = " |_ \" _| "; fontChars[52][2] = " | | "; fontChars[52][3] = " /| |\\ "; fontChars[52][4] = " u |_|U "; fontChars[52][5] = " _// \\\\_ "; fontChars[52][6] = "(__) (__) "; fontChars[53][0] = " _ _ "; fontChars[53][1] = "U |\"|u| | "; fontChars[53][2] = " \\| |\\| | "; fontChars[53][3] = " | |_| | "; fontChars[53][4] = " <<\\___/ "; fontChars[53][5] = "(__) )( "; fontChars[53][6] = " (__) "; fontChars[54][0] = " __ __ "; fontChars[54][1] = " \\ \\ /\"/u "; fontChars[54][2] = " \\ \\ / // "; fontChars[54][3] = " /\\ V /_,-. "; fontChars[54][4] = " U \\_/-(_/ "; fontChars[54][5] = " // "; fontChars[54][6] = " (__) "; fontChars[55][0] = " "; fontChars[55][1] = " __ __ "; fontChars[55][2] = " \\\"\\ /\"/ "; fontChars[55][3] = " /\\ \\ /\\ / /\\ "; fontChars[55][4] = "U \\ V V / U"; fontChars[55][5] = ".-,_\\ /\\ /_,-."; fontChars[55][6] = " \\_)-' '-(_/ "; fontChars[56][0] = " __ __ "; fontChars[56][1] = " \\ \\/\"/ "; fontChars[56][2] = " /\\ /\\ "; fontChars[56][3] = " U / \\ u "; fontChars[56][4] = " /_/\\_\\ "; fontChars[56][5] = ",-,>> \\\\_ "; fontChars[56][6] = " \\_) (__) "; fontChars[57][0] = " __ __ "; fontChars[57][1] = " \\ \\ / / "; fontChars[57][2] = " \\ V / "; fontChars[57][3] = " U_|\"|_u "; fontChars[57][4] = " |_| "; fontChars[57][5] = ".-,//|(_ "; fontChars[57][6] = " \\_) (__) "; fontChars[58][0] = " _____ "; fontChars[58][1] = " |\"_ /u "; fontChars[58][2] = " U / // "; fontChars[58][3] = " \\/ /_ "; fontChars[58][4] = " /____| "; fontChars[58][5] = " _//<<,- "; fontChars[58][6] = "(__) (_/ "; fontChars[59][0] = "["; fontChars[59][1] = " "; fontChars[59][2] = " "; fontChars[59][3] = " "; fontChars[59][4] = " "; fontChars[59][5] = " "; fontChars[59][6] = " "; fontChars[60][0] = "\\"; fontChars[60][1] = " "; fontChars[60][2] = " "; fontChars[60][3] = " "; fontChars[60][4] = " "; fontChars[60][5] = " "; fontChars[60][6] = " "; fontChars[61][0] = "]"; fontChars[61][1] = " "; fontChars[61][2] = " "; fontChars[61][3] = " "; fontChars[61][4] = " "; fontChars[61][5] = " "; fontChars[61][6] = " "; fontChars[62][0] = "U _ u "; fontChars[62][1] = "\\/\"\\/ "; fontChars[62][2] = "|/`\\| "; fontChars[62][3] = " "; fontChars[62][4] = " "; fontChars[62][5] = " "; fontChars[62][6] = " "; fontChars[63][0] = "_"; fontChars[63][1] = " "; fontChars[63][2] = " "; fontChars[63][3] = " "; fontChars[63][4] = " "; fontChars[63][5] = " "; fontChars[63][6] = " "; fontChars[64][0] = " ___ "; fontChars[64][1] = "(\" / "; fontChars[64][2] = " )/ "; fontChars[64][3] = " "; fontChars[64][4] = " "; fontChars[64][5] = " "; fontChars[64][6] = " "; fontChars[65][0] = " _ "; fontChars[65][1] = "U /\"\\ u "; fontChars[65][2] = " \\/ _ \\/ "; fontChars[65][3] = " / ___ \\ "; fontChars[65][4] = "/_/ \\_\\ "; fontChars[65][5] = " \\\\ >> "; fontChars[65][6] = "(__) (__) "; fontChars[66][0] = " ____ "; fontChars[66][1] = "U | __\")u "; fontChars[66][2] = " \\| _ \\/ "; fontChars[66][3] = " | |_) | "; fontChars[66][4] = " |____/ "; fontChars[66][5] = " _|| \\\\_ "; fontChars[66][6] = "(__) (__) "; fontChars[67][0] = " ____ "; fontChars[67][1] = "U /\"___| "; fontChars[67][2] = "\\| | u "; fontChars[67][3] = " | |/__ "; fontChars[67][4] = " \\____| "; fontChars[67][5] = " _// \\\\ "; fontChars[67][6] = "(__)(__) "; fontChars[68][0] = " ____ "; fontChars[68][1] = " | _\"\\ "; fontChars[68][2] = "/| | | | "; fontChars[68][3] = "U| |_| |\\ "; fontChars[68][4] = " |____/ u "; fontChars[68][5] = " |||_ "; fontChars[68][6] = " (__)_) "; fontChars[69][0] = "U _____ u "; fontChars[69][1] = "\\| ___\"|/ "; fontChars[69][2] = " | _|\" "; fontChars[69][3] = " | |___ "; fontChars[69][4] = " |_____| "; fontChars[69][5] = " << >> "; fontChars[69][6] = "(__) (__) "; fontChars[70][0] = " _____ "; fontChars[70][1] = " |\" ___| "; fontChars[70][2] = "U| |_ u "; fontChars[70][3] = "\\| _|/ "; fontChars[70][4] = " |_| "; fontChars[70][5] = " )(\\\\,- "; fontChars[70][6] = "(__)(_/ "; fontChars[71][0] = " ____ "; fontChars[71][1] = "U /\"___|u "; fontChars[71][2] = "\\| | _ / "; fontChars[71][3] = " | |_| | "; fontChars[71][4] = " \\____| "; fontChars[71][5] = " _)(|_ "; fontChars[71][6] = " (__)__) "; fontChars[72][0] = " _ _ "; fontChars[72][1] = " |'| |'| "; fontChars[72][2] = "/| |_| |\\ "; fontChars[72][3] = "U| _ |u "; fontChars[72][4] = " |_| |_| "; fontChars[72][5] = " // \\\\ "; fontChars[72][6] = "(_\") (\"_) "; fontChars[73][0] = " "; fontChars[73][1] = " ___ "; fontChars[73][2] = " |_\"_| "; fontChars[73][3] = " | | "; fontChars[73][4] = " U/| |\\u "; fontChars[73][5] = ".-,_|___|_,-. "; fontChars[73][6] = " \\_)-' '-(_/ "; fontChars[74][0] = " _ "; fontChars[74][1] = " U |\"| u "; fontChars[74][2] = " _ \\| |/ "; fontChars[74][3] = "| |_| |_,-. "; fontChars[74][4] = " \\___/-(_/ "; fontChars[74][5] = " _// "; fontChars[74][6] = " (__) "; fontChars[75][0] = " _ __ "; fontChars[75][1] = " |\"|/ / "; fontChars[75][2] = " | ' / "; fontChars[75][3] = "U/| . \\\\u "; fontChars[75][4] = " |_|\\_\\ "; fontChars[75][5] = ",-,>> \\\\,-. "; fontChars[75][6] = " \\.) (_/ "; fontChars[76][0] = " _ "; fontChars[76][1] = " |\"| "; fontChars[76][2] = "U | | u "; fontChars[76][3] = " \\| |/__ "; fontChars[76][4] = " |_____| "; fontChars[76][5] = " // \\\\ "; fontChars[76][6] = " (_\")(\"_) "; fontChars[77][0] = " __ __ "; fontChars[77][1] = "U|' \\/ '|u "; fontChars[77][2] = "\\| |\\/| |/ "; fontChars[77][3] = " | | | | "; fontChars[77][4] = " |_| |_| "; fontChars[77][5] = "<<,-,,-. "; fontChars[77][6] = " (./ \\.) "; fontChars[78][0] = " _ _ "; fontChars[78][1] = " | \\ |\"| "; fontChars[78][2] = "<| \\| |> "; fontChars[78][3] = "U| |\\ |u "; fontChars[78][4] = " |_| \\_| "; fontChars[78][5] = " || \\\\,-. "; fontChars[78][6] = " (_\") (_/ "; fontChars[79][0] = " U ___ u "; fontChars[79][1] = " \\/\"_ \\/ "; fontChars[79][2] = " | | | | "; fontChars[79][3] = ".-,_| |_| | "; fontChars[79][4] = " \\_)-\\___/ "; fontChars[79][5] = " \\\\ "; fontChars[79][6] = " (__) "; fontChars[80][0] = " ____ "; fontChars[80][1] = "U| _\"\\ u "; fontChars[80][2] = "\\| |_) |/ "; fontChars[80][3] = " | __/ "; fontChars[80][4] = " |_| "; fontChars[80][5] = " ||>>_ "; fontChars[80][6] = "(__)__) "; fontChars[81][0] = " ___ "; fontChars[81][1] = " / \" \\ "; fontChars[81][2] = " | |\"| | "; fontChars[81][3] = "/| |_| |\\ "; fontChars[81][4] = "U \\__\\_\\u "; fontChars[81][5] = " \\\\// "; fontChars[81][6] = " (_(__) "; fontChars[82][0] = " ____ "; fontChars[82][1] = "U | _\"\\ u "; fontChars[82][2] = " \\| |_) |/ "; fontChars[82][3] = " | _ < "; fontChars[82][4] = " |_| \\_\\ "; fontChars[82][5] = " // \\\\_ "; fontChars[82][6] = " (__) (__) "; fontChars[83][0] = " ____ "; fontChars[83][1] = " / __\"| u "; fontChars[83][2] = "<\\___ \\/ "; fontChars[83][3] = " u___) | "; fontChars[83][4] = " |____/>> "; fontChars[83][5] = " )( (__) "; fontChars[83][6] = " (__) "; fontChars[84][0] = " _____ "; fontChars[84][1] = " |_ \" _| "; fontChars[84][2] = " | | "; fontChars[84][3] = " /| |\\ "; fontChars[84][4] = " u |_|U "; fontChars[84][5] = " _// \\\\_ "; fontChars[84][6] = "(__) (__) "; fontChars[85][0] = " _ _ "; fontChars[85][1] = "U |\"|u| | "; fontChars[85][2] = " \\| |\\| | "; fontChars[85][3] = " | |_| | "; fontChars[85][4] = " <<\\___/ "; fontChars[85][5] = "(__) )( "; fontChars[85][6] = " (__) "; fontChars[86][0] = " __ __ "; fontChars[86][1] = " \\ \\ /\"/u "; fontChars[86][2] = " \\ \\ / // "; fontChars[86][3] = " /\\ V /_,-. "; fontChars[86][4] = " U \\_/-(_/ "; fontChars[86][5] = " // "; fontChars[86][6] = " (__) "; fontChars[87][0] = " "; fontChars[87][1] = " __ __ "; fontChars[87][2] = " \\\"\\ /\"/ "; fontChars[87][3] = " /\\ \\ /\\ / /\\ "; fontChars[87][4] = "U \\ V V / U"; fontChars[87][5] = ".-,_\\ /\\ /_,-."; fontChars[87][6] = " \\_)-' '-(_/ "; fontChars[88][0] = " __ __ "; fontChars[88][1] = " \\ \\/\"/ "; fontChars[88][2] = " /\\ /\\ "; fontChars[88][3] = " U / \\ u "; fontChars[88][4] = " /_/\\_\\ "; fontChars[88][5] = ",-,>> \\\\_ "; fontChars[88][6] = " \\_) (__) "; fontChars[89][0] = " __ __ "; fontChars[89][1] = " \\ \\ / / "; fontChars[89][2] = " \\ V / "; fontChars[89][3] = " U_|\"|_u "; fontChars[89][4] = " |_| "; fontChars[89][5] = ".-,//|(_ "; fontChars[89][6] = " \\_) (__) "; fontChars[90][0] = " _____ "; fontChars[90][1] = " |\"_ /u "; fontChars[90][2] = " U / // "; fontChars[90][3] = " \\/ /_ "; fontChars[90][4] = " /____| "; fontChars[90][5] = " _//<<,- "; fontChars[90][6] = "(__) (_/ "; fontChars[91][0] = " __ "; fontChars[91][1] = "u /\"/U "; fontChars[91][2] = " \\| |/ "; fontChars[91][3] = " < < "; fontChars[91][4] = " | | "; fontChars[91][5] = " <<\\_\\ "; fontChars[91][6] = "(__)_) "; fontChars[92][0] = "|"; fontChars[92][1] = " "; fontChars[92][2] = " "; fontChars[92][3] = " "; fontChars[92][4] = " "; fontChars[92][5] = " "; fontChars[92][6] = " "; fontChars[93][0] = "__ "; fontChars[93][1] = "\\\"\\ u "; fontChars[93][2] = " | |/ "; fontChars[93][3] = "/ > > "; fontChars[93][4] = "U| | "; fontChars[93][5] = "/_/>>_ "; fontChars[93][6] = " (_(__) "; fontChars[94][0] = "~"; fontChars[94][1] = " "; fontChars[94][2] = " "; fontChars[94][3] = " "; fontChars[94][4] = " "; fontChars[94][5] = " "; fontChars[94][6] = " "; // this variable lets us know the last page the user clicked // this is useful when changing colors of the display (background / text color) // 0 = output page // 1 = author page // 2 = test all page function convert_to_boolean(str) { var ret = false; if (str == "true") { ret = true; } return ret; } function loadFont(fontText) { var retData =fontText; var retArray = retData.split("\n"); var retIndex = 0; theFontName = retArray[retIndex++]; fontFileExt = retArray[retIndex++]; fontPointSize = retArray[retIndex++]; fontFace = retArray[retIndex++]; initials = retArray[retIndex++]; hardblank = retArray[retIndex++]; printDirection = retArray[retIndex++]; hFullWidth = convert_to_boolean(retArray[retIndex++]); hFitting = convert_to_boolean(retArray[retIndex++]); hSmush1 = convert_to_boolean(retArray[retIndex++]); hSmush2 = convert_to_boolean(retArray[retIndex++]); hSmush3 = convert_to_boolean(retArray[retIndex++]); hSmush4 = convert_to_boolean(retArray[retIndex++]); hSmush5 = convert_to_boolean(retArray[retIndex++]); hSmush6 = convert_to_boolean(retArray[retIndex++]); var numChars = retArray[retIndex++]; charHeight = retArray[retIndex++]; //alert(hFitting + "," + hFullWidth + "," + hSmush1 + "," + hSmush2 + "," + hSmush3); //alert(fontFileExt + "," + fontPointSize + "," +fontFace + "," + initials + "," + hardblank); fontChars = null; fontChars = new Array(numChars); for (var i = 0; i < numChars; i++) { fontChars[i] = new Array(charHeight); } var inLoop = 0; for (i = 0; i < numChars; i++) { for (var i2 = 0; i2 < charHeight; i2++) { if ( fontFileExt == "aol" ) { fontChars[i][i2] = text_decode(retArray[retIndex]); } else { fontChars[i][i2] = retArray[retIndex]; } // replace escape sequences fontChars[i][i2] = fontChars[i][i2].replace(//g, ">"); fontChars[i][i2] = fontChars[i][i2].replace(/\\"/g, "\""); fontChars[i][i2] = fontChars[i][i2].replace(/\\\\/g, "\\"); retIndex++; inLoop++; } } // the author's comments authorComments = ""; for (var i2 = retIndex; i2 < retArray.length; i2++) { authorComments = authorComments + retArray[i2] + "\n"; } authorComments = authorComments.replace(/\\"/g, "\""); authorComments = authorComments.replace(/\\\\/g, "\\"); // MARAK SAYS : this should be moot now that we have some real seperation of concerns and control flow, fucking legacy code //generateText(document.fontSettings.inputText.value); curFontName = theFontName; } var defaultHorizontalSmush = true; var hFullWidth = false; var hUnivSmush = false; var hFitting = false; var hSmush1 = true; var hSmush2 = false; var hSmush3 = false; var hSmush4 = false; var hSmush5 = false; var hSmush6 = false; var vFullWidth = true; var vUnivSmush = false; var vFitting = false; var vSmush1 = false; var vSmush2 = false; var vSmush3 = false; var vSmush4 = false; var vSmush5 = false; var hardblank = "$"; var printDirection = 0; var authorComments = "Author : Myflix
Date : 2003/10/18 21:37:14
Version: 1.0
-------------------------------------------------

-------------------------------------------------
This font has been created using JavE's FIGlet font export assistant.
Have a look at: http://www.jave.de

Permission is hereby given to modify this font, as long as the
modifier's name is placed on a comment line.

---

Font modified June 17, 2007 by patorjk
This was to widen the space character.
"; // trims the whites spaces in front and in back of the string String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); } String.prototype.urlsToHyperlinks = function() { return this.replace(/\bhttp:[^ \)\n\<,]+/g, "$&"); } // reverses a string String.prototype.reverse = function() { var ret = ""; for (var i = 0; i <= this.length; i++) { ret = this.charAt(i) + ret; } return ret; } var fL = []; var ii = 0; // font count: 318 fL[ii++] = "1Row.flf"; fL[ii++] = "3-D.flf"; fL[ii++] = "3D Diagonal.flf"; fL[ii++] = "3x5.flf"; fL[ii++] = "4Max.flf"; fL[ii++] = "5 Line Oblique.flf"; fL[ii++] = "AMC 3 Line.flf"; fL[ii++] = "AMC 3 Liv1.flf"; fL[ii++] = "AMC AAA01.flf"; fL[ii++] = "AMC Neko.flf"; fL[ii++] = "AMC Razor.flf"; fL[ii++] = "AMC Razor2.flf"; fL[ii++] = "AMC Slash.flf"; fL[ii++] = "AMC Slider.flf"; fL[ii++] = "AMC Thin.flf"; fL[ii++] = "AMC Tubes.flf"; fL[ii++] = "AMC Untitled.flf"; fL[ii++] = "ASCII New Roman.flf"; fL[ii++] = "Abraxis-Big.aol"; fL[ii++] = "Abraxis-Small.aol"; fL[ii++] = "Acrobatic.flf"; fL[ii++] = "Alligator.flf"; fL[ii++] = "Alligator2.flf"; fL[ii++] = "Alpha.flf"; fL[ii++] = "Alphabet.flf"; fL[ii++] = "Arrows.flf"; fL[ii++] = "Avatar.flf"; fL[ii++] = "B1FF.flf"; fL[ii++] = "Banner.flf"; fL[ii++] = "Banner3-D.flf"; fL[ii++] = "Banner3.flf"; fL[ii++] = "Banner4.flf"; fL[ii++] = "Barbwire.flf"; fL[ii++] = "Basic.flf"; fL[ii++] = "Bear.flf"; fL[ii++] = "Bell.flf"; fL[ii++] = "Benjamin.flf"; fL[ii++] = "Bent.aol"; fL[ii++] = "Big Chief.flf"; fL[ii++] = "Big Money-ne.flf"; fL[ii++] = "Big Money-nw.flf"; fL[ii++] = "Big Money-se.flf"; fL[ii++] = "Big Money-sw.flf"; fL[ii++] = "Big.flf"; fL[ii++] = "Bigfig.flf"; fL[ii++] = "Binary.flf"; fL[ii++] = "Blest.aol"; fL[ii++] = "Block.flf"; fL[ii++] = "Blocks.flf"; fL[ii++] = "Boie.aol"; fL[ii++] = "Boie2.aol"; fL[ii++] = "Bolger.flf"; fL[ii++] = "Bone's Font.aol"; fL[ii++] = "Braced.flf"; fL[ii++] = "Bright.flf"; fL[ii++] = "Broadway KB.flf"; fL[ii++] = "Broadway.flf"; fL[ii++] = "Bubble.flf"; fL[ii++] = "Bulbhead.flf"; fL[ii++] = "CaMiZ.aol"; fL[ii++] = "Caligraphy.flf"; fL[ii++] = "Caligraphy2.flf"; fL[ii++] = "Cards.flf"; fL[ii++] = "Catwalk.flf"; fL[ii++] = "CeA.aol"; fL[ii++] = "CeA2.aol"; fL[ii++] = "Cheese.aol"; fL[ii++] = "Chiseled.flf"; fL[ii++] = "Chunky.flf"; fL[ii++] = "Coinstak.flf"; fL[ii++] = "Cola.flf"; fL[ii++] = "Colossal.flf"; fL[ii++] = "Computer.flf"; fL[ii++] = "Contessa.flf"; fL[ii++] = "Contrast.flf"; fL[ii++] = "Cosmike.flf"; fL[ii++] = "Crawford.flf"; fL[ii++] = "Crawford2.flf"; fL[ii++] = "Crazy.flf"; fL[ii++] = "Cricket.flf"; fL[ii++] = "Cursive.flf"; fL[ii++] = "Cyberlarge.flf"; fL[ii++] = "Cybermedium.flf"; fL[ii++] = "Cybersmall.flf"; fL[ii++] = "Cygnet.flf"; fL[ii++] = "DANC4.flf"; fL[ii++] = "DWhistled.flf"; fL[ii++] = "DaiR.aol"; fL[ii++] = "Dancing Font.flf"; fL[ii++] = "Decimal.flf"; fL[ii++] = "Def Leppard.flf"; fL[ii++] = "Diamond.flf"; fL[ii++] = "Diet Cola.flf"; fL[ii++] = "Digital.flf"; fL[ii++] = "Doh.flf"; fL[ii++] = "Doom.flf"; fL[ii++] = "Dot Matrix.flf"; fL[ii++] = "Double Shorts.flf"; fL[ii++] = "Double.flf"; fL[ii++] = "Dr Pepper.flf"; fL[ii++] = "Efti Chess.flf"; fL[ii++] = "Efti Font.flf"; fL[ii++] = "Efti Italic.flf"; fL[ii++] = "Efti Piti.flf"; fL[ii++] = "Efti Robot.flf"; fL[ii++] = "Efti Wall.flf"; fL[ii++] = "Efti Water.flf"; fL[ii++] = "Epic.flf"; fL[ii++] = "Fender.flf"; fL[ii++] = "Filter.flf"; fL[ii++] = "Filth.aol"; fL[ii++] = "Fire Font-k.flf"; fL[ii++] = "Fire Font-s.flf"; fL[ii++] = "Flipped.flf"; fL[ii++] = "Flower Power.flf"; fL[ii++] = "FoGG.aol"; fL[ii++] = "Four Tops.flf"; fL[ii++] = "Fraktur.flf"; fL[ii++] = "Fun Face.flf"; fL[ii++] = "Fun Faces.flf"; fL[ii++] = "Fuzzy.flf"; fL[ii++] = "Galactus.aol"; fL[ii++] = "Georgi16.flf"; fL[ii++] = "Georgia11.flf"; fL[ii++] = "Ghost.flf"; fL[ii++] = "Ghoulish.flf"; fL[ii++] = "Glenyn.flf"; fL[ii++] = "Glue.aol"; fL[ii++] = "Goofy.flf"; fL[ii++] = "Gothic.flf"; fL[ii++] = "Graceful.flf"; fL[ii++] = "Gradient.flf"; fL[ii++] = "Graffiti.flf"; fL[ii++] = "Greek.flf"; fL[ii++] = "HeX's Font.aol"; fL[ii++] = "Heart Left.flf"; fL[ii++] = "Heart Right.flf"; fL[ii++] = "Hellfire.aol"; fL[ii++] = "Henry 3D.flf"; fL[ii++] = "Hex.flf"; fL[ii++] = "Hieroglyphs.flf"; fL[ii++] = "Hollywood.flf"; fL[ii++] = "Horizontal Left.flf"; fL[ii++] = "Horizontal Right.flf"; fL[ii++] = "ICL-1900.flf"; fL[ii++] = "Impossible.flf"; fL[ii++] = "Invita.flf"; fL[ii++] = "Isometric1.flf"; fL[ii++] = "Isometric2.flf"; fL[ii++] = "Isometric3.flf"; fL[ii++] = "Isometric4.flf"; fL[ii++] = "Italic.flf"; fL[ii++] = "Ivrit.flf"; fL[ii++] = "JS Block Letters.flf"; fL[ii++] = "JS Bracket Letters.flf"; fL[ii++] = "JS Capital Curves.flf"; fL[ii++] = "JS Cursive.flf"; fL[ii++] = "JS Stick Letters.flf"; fL[ii++] = "Jacky.flf"; fL[ii++] = "Jazmine.flf"; fL[ii++] = "Jerusalem.flf"; fL[ii++] = "Katakana.flf"; fL[ii++] = "Kban.flf"; fL[ii++] = "Keyboard.flf"; fL[ii++] = "Knob.flf"; fL[ii++] = "Konto Slant.flf"; fL[ii++] = "Konto.flf"; fL[ii++] = "LCD.flf"; fL[ii++] = "Larry 3D.flf"; fL[ii++] = "Lean.flf"; fL[ii++] = "Letters.flf"; fL[ii++] = "Lil Devil.flf"; fL[ii++] = "Line Blocks.flf"; fL[ii++] = "Linux.flf"; fL[ii++] = "Lockergnome.flf"; fL[ii++] = "Madrid.flf"; fL[ii++] = "Marquee.flf"; fL[ii++] = "Maxfour.flf"; fL[ii++] = "MeDi.aol"; fL[ii++] = "Mer.aol"; fL[ii++] = "Merlin1.flf"; fL[ii++] = "Merlin2.flf"; fL[ii++] = "Mike.flf"; fL[ii++] = "Mini.flf"; fL[ii++] = "Mirror.flf"; fL[ii++] = "Mnemonic.flf"; fL[ii++] = "Modular.flf"; fL[ii++] = "Morse.flf"; fL[ii++] = "Morse2.flf"; fL[ii++] = "Moscow.flf"; fL[ii++] = "Mshebrew210.flf"; fL[ii++] = "Muzzle.flf"; fL[ii++] = "NScript.flf"; fL[ii++] = "NT Greek.flf"; fL[ii++] = "NV Script.flf"; fL[ii++] = "Nancyj-Fancy.flf"; fL[ii++] = "Nancyj-Improved.flf"; fL[ii++] = "Nancyj-Underlined.flf"; fL[ii++] = "Nancyj.flf"; fL[ii++] = "Nipples.flf"; fL[ii++] = "O8.flf"; fL[ii++] = "OS2.flf"; fL[ii++] = "Octal.flf"; fL[ii++] = "Ogre.flf"; fL[ii++] = "Old Banner.flf"; fL[ii++] = "Pawp.flf"; fL[ii++] = "Peaks Slant.flf"; fL[ii++] = "Peaks.flf"; fL[ii++] = "Pebbles.flf"; fL[ii++] = "Pepper.flf"; fL[ii++] = "Poison.flf"; fL[ii++] = "PsY.aol"; fL[ii++] = "PsY2.aol"; fL[ii++] = "Puffy.flf"; fL[ii++] = "Puzzle.flf"; fL[ii++] = "Pyramid.flf"; fL[ii++] = "Rammstein.flf"; fL[ii++] = "Rectangles.flf"; fL[ii++] = "Red Phoenix.flf"; fL[ii++] = "Reeko Font 1.aol"; fL[ii++] = "Relief.flf"; fL[ii++] = "Relief2.flf"; fL[ii++] = "Reverse.flf"; fL[ii++] = "Ribbit.aol"; fL[ii++] = "Ribbit2.aol"; fL[ii++] = "Ribbit3.aol"; fL[ii++] = "Roman.flf"; fL[ii++] = "Rot13.flf"; fL[ii++] = "Rotated.flf"; fL[ii++] = "Rounded.flf"; fL[ii++] = "Rowan Cap.flf"; fL[ii++] = "Rozzo.flf"; fL[ii++] = "Runic.flf"; fL[ii++] = "Runyc.flf"; fL[ii++] = "S Blood.flf"; fL[ii++] = "SL Script.flf"; fL[ii++] = "Santa Clara.flf"; fL[ii++] = "Script.flf"; fL[ii++] = "Serifcap.flf"; fL[ii++] = "Shadow.flf"; fL[ii++] = "Shimrod.flf"; fL[ii++] = "Short.flf"; fL[ii++] = "Slant Relief.flf"; fL[ii++] = "Slant.flf"; fL[ii++] = "Slide.flf"; fL[ii++] = "Small Caps.flf"; fL[ii++] = "Small Isometric1.flf"; fL[ii++] = "Small Keyboard.flf"; fL[ii++] = "Small Poison.flf"; fL[ii++] = "Small Script.flf"; fL[ii++] = "Small Shadow.flf"; fL[ii++] = "Small Slant.flf"; fL[ii++] = "Small Tengwar.flf"; fL[ii++] = "Small.flf"; fL[ii++] = "Soft.flf"; fL[ii++] = "Sony.aol"; fL[ii++] = "Speed.flf"; fL[ii++] = "Spliff.flf"; fL[ii++] = "Stacey.flf"; fL[ii++] = "Stampate.flf"; fL[ii++] = "Stampatello.flf"; fL[ii++] = "Standard.flf"; fL[ii++] = "Star Strips.flf"; fL[ii++] = "Star Wars.flf"; fL[ii++] = "Stellar.flf"; fL[ii++] = "Stforek.flf"; fL[ii++] = "Stick Letters.flf"; fL[ii++] = "Stop.flf"; fL[ii++] = "Straight.flf"; fL[ii++] = "Sub-Zero.flf"; fL[ii++] = "Swamp Land.flf"; fL[ii++] = "Swan.flf"; fL[ii++] = "Sweet.flf"; fL[ii++] = "TRaC Mini.aol"; fL[ii++] = "TRaC Tiny.aol"; fL[ii++] = "TRaC's Old School Font.aol"; fL[ii++] = "TRaC.aol"; fL[ii++] = "Tanja.flf"; fL[ii++] = "Tengwar.flf"; fL[ii++] = "Term.flf"; fL[ii++] = "Test1.flf"; fL[ii++] = "Thick.flf"; fL[ii++] = "Thin.flf"; fL[ii++] = "Thorned.flf"; fL[ii++] = "Three Point.flf"; fL[ii++] = "Ticks Slant.flf"; fL[ii++] = "Ticks.flf"; fL[ii++] = "Tiles.flf"; fL[ii++] = "Tinker-Toy.flf"; fL[ii++] = "Tombstone.flf"; fL[ii++] = "Train.flf"; fL[ii++] = "Trek.flf"; fL[ii++] = "Tsalagi.flf"; fL[ii++] = "Tubular.flf"; fL[ii++] = "Twiggy.aol"; fL[ii++] = "Twisted.flf"; fL[ii++] = "Two Point.flf"; fL[ii++] = "USA Flag.flf"; fL[ii++] = "Univers.flf"; fL[ii++] = "Varsity.flf"; fL[ii++] = "Wavy.flf"; fL[ii++] = "Weird.flf"; fL[ii++] = "Wet Letter.flf"; fL[ii++] = "Whimsy.flf"; fL[ii++] = "Wow.flf"; fL[ii++] = "X-Pose.aol"; fL[ii++] = "X99.aol"; fL[ii++] = "X992.aol"; fL[ii++] = "Zodi.aol"; /** * Function: overlapCompare(str1, str2) * * About: This function compares two lines from a the text array to see at what point they differ * when the two letters are placed next to each other. * **/ function overlapCompare(inputTxt1, inputTxt2) { var str1 = inputTxt1.reverse(); // the character that comes before var str2 = inputTxt2; // the character that comes after var theOverlap = 0; var shouldBreak = false; if (hFullWidth == true) { return 0; } var str1CompIndex = 0; var shouldSmush = true; for (var i = 0; i < str1.length; i++) { if (str1.substr(i, 1) == " ") { str1CompIndex++; theOverlap++; } else { // for control smushing, see if this character can be smushed if (smushChar_GetClassVal(str1.substr(i, 1)) == -1) { shouldSmush = false; } break; } } //alert("start overlap: " + str1CompIndex + "," + "'" + str1 + "'"); if (str1CompIndex == str1.length) { return Math.min(str1.length, str2.length); } for (var i = 0; i < Math.min(str1.length, str2.length); i++) { if (str2.substr(i, 1) == hardblank) { // smush rule 6 + hFitting fix if ((hSmush6 == true && str1.substr(str1CompIndex, 1) == hardblank) ) { theOverlap++; } break; } else if (str2.substr(i, 1) != " " && str1.substr(str1CompIndex, 1) == hardblank) { break; } else if (str2.substr(i, 1) != " ") { if ( smushChar_GetClassVal(str2.substr(i, 1)) == -1 ) { shouldSmush = false; } if (shouldSmush == true && (hFitting == false && defaultHorizontalSmush == true)) { theOverlap++; } break; } theOverlap++; } return theOverlap; } /** * Function: smushAmount(s1, currPos) * * About: This function looks at two letters and seeing how much they should be "smushed". * **/ function smushAmount(prevPos, currPos) { if (prevPos == -1) { return 0; } var smushed = false; var smushedAmount = 10000; // a value so big, it will be replaced with the first return of overlapCompare for (var i = 0; i < charHeight; i++) { val = overlapCompare(fontChars[prevPos][i], fontChars[currPos][i]); if (val < smushedAmount) { smushedAmount = val; } } return smushedAmount; } /** * Function: smushChar_GetClassVal(inputVal) * * About: Gets class of given char. * **/ function smushChar_GetClassVal(inputVal) { var ret = -1; switch( inputVal ) { case ("|"): ret = 1; break; case (String.fromCharCode(92)): ret = 2; break; case ("/"): ret = 2; break; case ("["): ret = 3; break; case ("]"): ret = 3; break; case ("{"): ret = 4; break; case ("}"): ret = 4; break; case ("("): ret = 5; break; case (")"): ret = 5; break; case ("<"): ret = 6; break; case (">"): ret = 6; break; } return ret; } /** * Function: smushTxt(txt1, txt2) * * About: This function "smushes" two strings together * **/ function smushTxt(txt1, txt2, theSmushAmount) { var txt1Offset = txt1.length - theSmushAmount; var ret = txt1.substr(0, txt1Offset); for (var i = 0; i < theSmushAmount; i++) { var txt1_char = txt1.substr(txt1Offset + i, 1); var txt2_char = txt2.substr(i, 1); var txt1_smushClass = smushChar_GetClassVal(txt1_char); var txt2_smushClass = smushChar_GetClassVal(txt2_char); if (hSmush1 == true && txt2_char == txt1_char) { ret = ret + txt1_char; } else if (hSmush2 == true && txt1_char == "_" && txt2_smushClass != -1) { ret = ret + txt2_char; } else if (hSmush2 == true && txt2_char == "_" && txt1_smushClass != -1) { ret = ret + txt1_char; } else if (hSmush3 == true && txt1_smushClass != -1 && txt2_smushClass != -1 && txt2_smushClass != txt1_smushClass) { if (txt1_smushClass > txt2_smushClass) { ret = ret + txt1_char; } else { ret = ret + txt2_char; } } // rule 5 needs to come before rule 4, because of how rule 4 is written here else if (hSmush5 == true && txt2_char == String.fromCharCode(92) && txt1_char == "/" ) { ret = ret + "|"; } else if (hSmush5 == true && txt2_char == "/" && txt1_char == String.fromCharCode(92) ) { ret = ret + "Y"; } else if (hSmush5 == true && txt2_char == "<" && txt1_char == ">") { ret = ret + "X"; } else if (hSmush4 == true && txt2_smushClass != -1 && txt2_smushClass == txt1_smushClass && txt2_char != txt1_char) { ret = ret + "|"; } // for smush rule 6, see the overlapCompare function else if (txt1_char == " ") { ret = ret + txt2_char; } else { ret = ret + txt1_char; } } ret = ret + txt2.substr(theSmushAmount); return ret; } function simpleEncrypt(txt) { var encryptedText="", charSet1, charSet2, i, pos, encryptedChar; charSet1 = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; charSet2 = " nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM"; for(i = 0; i < txt.length; i++) { pos = charSet1.indexOf(txt.substring(i, i+1), 0); if (pos >= 0) { encryptedChar = charSet2.substring(pos, pos+1); encryptedText = encryptedText + encryptedChar; } else { encryptedText = encryptedText + txt.substring(i, i+1); } } return encryptedText } function createLargeText(txt) { var largeText = ""; // now lets handle creating the ascii art text var filteredTxt = txt; // filterText( txt ); // direction is important for fonts like Mirror if (printDirection == 1) { filteredTxt = filteredTxt.reverse(); } var filteredTxtLines = filteredTxt.split("\n"); // ß for (lines = 0; lines < filteredTxtLines.length; lines++) { var alphabet = null; if (fontFileExt == "aol" || fontFileExt == "txt") { alphabet = " abcdefghijklmnopqrstuvwxyz"; filteredTxtLines[lines] = filteredTxtLines[lines].toLowerCase(); } else if (fontFileExt == "flf") { alphabet = " !" + String.fromCharCode(34) + "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[" + String.fromCharCode(92) + "]^_`abcdefghijklmnopqrstuvwxyz{|}~"; } var outputString = ""; var finalText = ""; var prevPos = -1; var smushAmountArray; if (fontFileExt == "flf") { // find the smush amount for each character in the line smushAmountArray = new Array(); for (var i = 0; i < filteredTxtLines[lines].length; i++) { var pos = alphabet.indexOf(filteredTxtLines[lines].substr(i,1)); if (pos != -1) { var theSmushAmount = smushAmount(prevPos, pos); smushAmountArray[i] = theSmushAmount; } prevPos = pos; } } prePos = -1; for (var height = 0; height < charHeight; height++) { for (var i = 0; i < filteredTxtLines[lines].length; i++) { var pos = alphabet.indexOf(filteredTxtLines[lines].substr(i,1)); if (pos != -1) { if (fontFileExt == "aol" || fontFileExt == "txt") { outputString = outputString + fontChars[pos][height]; } else if (fontFileExt == "flf") { var theSmushAmount = smushAmountArray[i]; //smushAmount(prevPos, pos); outputString = smushTxt(outputString, fontChars[pos][height], theSmushAmount); } } prevPos = pos; } if ((lines < (filteredTxtLines.length-1)) || (height < (charHeight-1))) { finalText = finalText + outputString + "\n"; } else { finalText = finalText + outputString; } prevPos = -1; outputString = ""; } if (fontFileExt == "flf") { // remove the hardblanks finalText = finalText.split(hardblank).join(" "); // replace all, we have to do it this way since hardblank could be a special character (for reg expressions) } // print the final text largeText = largeText + finalText; if (lines != (filteredTxtLines.length-1)) { largeText = largeText + "\n"; } } return largeText; } // ---------------------------------------------------------- Above is code for generation /** * Function: displayAuthorInfo() * * About: This function displays the comments inside of the flf font file. * **/ function displayAuthorInfo() { // if we're on the "test all" page, just return if (userLastClicked == 2) { return; } noteThatFooterIsNotVisible(); // the last thing the user did was click for info on the author userLastClicked = 1; var hyperlinkedComments = authorComments.urlsToHyperlinks(); // figure out how to align the text var aIndex = 0; for (var i = 0; i < 3; i++) { if (document.fontSettings.tAlignment[i].checked == true) { aIndex = i; } } var textAlignment = document.fontSettings.tAlignment[aIndex].value; } function text_decode(str) { var strChars = str.split("%"); var retStr = ""; var decNum = ""; // first index in the array will be blank since input strings have the format: // "%XX%XX%XX" for (var i = 1; i < strChars.length; i++) { if (strChars[i] == "GG") { retStr = retStr + "‘"; } else if (strChars[i] == "II") { retStr = retStr + "‚"; } else if (strChars[i] == "JJ") { retStr = retStr + "˜"; } else if (strChars[i] == "LL") { retStr = retStr + "—"; } else if (strChars[i] == "MM") { retStr = retStr + "–"; } else if (strChars[i] == "NN") { retStr = retStr + "“"; } else if (strChars[i] == "PP") { retStr = retStr + "™"; } else if (strChars[i] == "QQ") { retStr = retStr + "›"; } else if (strChars[i] == "RR") { retStr = retStr + "‹"; } else if (strChars[i] == "SS") { retStr = retStr + "’"; } else if (strChars[i] == "TT") { retStr = retStr + "”"; } else if (strChars[i] == "UU") { retStr = retStr + "”"; } else { decNum = parseInt(strChars[i], 16); retStr = retStr + String.fromCharCode(decNum); } } return retStr; }