/* ASCII-art text generator
 * 
 * (c) Pavel Zbytovský [zbytovsky@gmail.com] 2005
 *  licence GPL (možno modifikovat i kopírovat 
 *  pouze se zachováním jména původního autora)
/*/

function geto(i){return document.getElementById(i)}
window.onload = function(){ascii_art_text()}
function aat_test(b,w){
	if(!b || !w) return;
	
	geto('blc').value=b;
  geto('wht').value=w;
  geto('spc').value=2;
  if(geto('txt').value == "") geto('txt').value="ASCII-art text";
  
  ascii_art_text();
}




// function geto(id){
// return document.getElementById(id);
// }
//// definováno dříve

pis_abc="ABCDEFGHIJKLMNOPQRSTUVWXYZ .,?:-!()";
pis_hex=new Array(
	"69f99",
	"e9e9e",
	"69896",
	"e999e",
	"f8e8f",
	"f8e88",
	"f8b96",
	"99f99",
	"22222",
	"11196",
	"9aca9",
	"8888f",
	"9f999",
	"ddbbb",
	"69996",
	"e9e88",
	"79711",
	"e9ea9",
	"68616",
	"f4444",
	"99996",
	"99966",
	"fff66",
	"99699",
	"99644",
	"f168f",
	"00000",
	"00066",
	"0006c",
	"e1604",
	"66066",
	"00f00",
	"44404",
	"24442",
	"42224"
);
function hex2pis(hex){
  radky=new Array();
  hex=hex.split("");
  for(i=0;i<hex.length;i++){
    radek=hex[i];
    
    radek=parseInt(radek, 16); //udělá dec-hodnotu
    radek=radek.toString(2); //udělá bin-hodnotu
    
    if(radek.length<4) radek="0"+radek;
    if(radek.length<4) radek="0"+radek;
    if(radek.length<4) radek="0"+radek;
    if(radek.length<4) radek="0"+radek;
    
    radky[radky.length]=radek;
  }
  return radky;
}

function array_random(arr){
  rnd=Math.round(Math.random()*(arr.length-1));
  return arr[rnd];
}


function ascii_art_row(txt){
  blc=geto('blc').value.split("");
  wht=geto('wht').value.split("");
  spc=parseInt(geto('spc').value);

  veta=new Array("","","","","");
  
  mezera="";
  for(m=0;m<spc;m++){
    mezera+="0";
  }
  
  for(p=0;p<txt.length;p++){
    pis=txt.charAt(p);
    for(i=0;i<pis_abc.length;i++)
      if(pis==pis_abc.charAt(i)){
        
        radky=hex2pis(pis_hex[i]);
        for(r=0;r<5;r++){
          veta[r]+=radky[r];
          if(p!=txt.length-1) veta[r]+=mezera; //na konci nepřidáváme mezeru
        }
        break;
      }
  }
  /*sestrojí pole věta*/
  
  var output="";
  for(i=0;i<veta.length;i++){
    radek=veta[i];
    for(p=0;p<radek.length;p++){
      radek=radek.replace(/0/,array_random(wht));
      radek=radek.replace(/1/,array_random(blc));
    }
    output+=radek+"<br>";
  }
  
  return output;
}

function ascii_art_text(){
  main_txt=geto('txt').value.toUpperCase().split("\n");
  main_output="";
  
  for(y=0;y<main_txt.length;y++){
    main_output+=ascii_art_row(main_txt[y])+"&nbsp;<br>";
  }
  geto("ascii-art").innerHTML=main_output;
}
