var m_tb1;
var m_tb2;
var m_t1;
var m_t2;
var translationfrom;
var translationto;
var transtosave;
var validchar;
var mypuz;
var mytrans = "";
var m_transto;

function StartUp () {
var i;
var j;
var tb1;
var tb2;
var alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var firstday = new Date(2006,12-1,11,5,0,0,0);
var tuday = new Date();
var numdays = Math.floor((tuday.getTime() - firstday.getTime())/(3600000*24)).toString();
var cmd;

translationfrom = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞŸĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIĲĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽSƠƯǍǏǑǓǕǗǙǛǺǼǾƏΆΈΉΊΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫΌΎΏΒΘΦΠΚΡАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁЂЃЄЅІЇЈЉЊЋЌЎЏҐҒҖҚҜҢҮҰҲҸҺӘӨẀẂẄẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ";
validchar = "";
for(i=32;i<65;i++){validchar = validchar + String.fromCharCode(i);}
validchar = validchar + translationfrom;
translationto = "";

for (i=0;i<translationfrom.length;i++){translationto = translationto + " ";} 
transtosave = translationto;

while(alpha.length>0){
j = Math.floor(Math.random()*alpha.length)
if(alpha.substr(j,1)==translationfrom.substr(mytrans.length,1)){if(j>0){j=j-1;}else{j=alpha.length-1;}}
if(j<0){j=0;}
mytrans=mytrans+alpha.substr(j,1);
alpha=alpha.split(alpha.substr(j,1)).join("");
}
if(mytrans.substr(25,1)=='Z'){mytrans=mytrans.substr(0,24)+'Z'+mytrans(24,1);}

//validchar = " !" + '"' + "#$%&       "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞŸĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIĲĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽSƂƄƇƋƑƘƠƢƤƧƬƯƳƵƸƼǄǄǇǇǊǊǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮǱǱǴǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖƁƆƉƊƎƏƐƓƔƗƖƜƝƩƮƱƲƷΆΈΉΊΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫΌΎΏΒΘΦΠϢϤϦϨϪϬϮΚΡАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁЂЃЄЅІЇЈЉЊЋЌЎЏѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӁӃӇӋӐӒӔӖӘӚӜӞӠӢӤӦӨӪӮӰӲӴӸԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸἈἉἊἋἌἍἎἏἘἙἚἛἜἝἨἩἪἫἬἭἮἯἸἹἺἻἼἽἾἿὈὉὊὋὌὍὙὛὝὟὨὩὪὫὬὭὮὯᾺΆῈΈῊΉῚΊῸΌῪΎῺΏᾈᾉᾊᾋᾌᾍᾎᾏᾘᾙᾚᾛᾜᾝᾞᾟᾨᾩᾪᾫᾬᾭᾮᾯᾸᾹᾼῌῘῙῨῩῬῼ";
//validchar = validchar + "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞŸĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIĲĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽSƂƄƇƋƑƘƠƢƤƧƬƯƳƵƸƼǄǄǇǇǊǊǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮǱǱǴǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖƁƆƉƊƎƏƐƓƔƗƖƜƝƩƮƱƲƷΆΈΉΊΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫΌΎΏΒΘΦΠϢϤϦϨϪϬϮΚΡАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁЂЃЄЅІЇЈЉЊЋЌЎЏѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӁӃӇӋӐӒӔӖӘӚӜӞӠӢӤӦӨӪӮӰӲӴӸԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲ";


m_tb1 = document.getElementById("TB1");
m_tb2 = document.getElementById("TB2");
m_t1 = document.getElementById("T1");
m_t2 = document.getElementById("T2");
m_transto = document.getElementById("substitutions");
//tb2=""
//for (i = 1;i<88;i++){
//tb2 = tb2 + String.fromCharCode(i);
//}
//m_tb2.value = tb2;
while(numdays.length<6){numdays='0' + numdays;}
cmd = "javascript/quote/qt" + numdays + ".js"
rexec(cmd,'QT');
}

function LoadQuote() {
var firstday = new Date(2006,12-1,11,5,0,0,0);
var tuday = new Date();
var numdays = Math.floor((tuday.getTime() - firstday.getTime())/(3600000*24));
var numdaysx;
var cmd;
while(numdays > 1063){numdays = numdays - 1063;}
numdaysx = numdays.toString();
while(numdaysx.length<6){numdaysx='0' + numdaysx;}
cmd = "/cgi-bin/cryptogram/javascript/quote/qt" + numdaysx + ".js";
rexec(cmd,'QT');
myorigpuz=quot.toUpperCase();
//document.getElementById("QT");
mypuz='';
for(j=0;j<myorigpuz.length;j++){
if(myorigpuz.substr(j,1)>='A'&&myorigpuz.substr(j,1)<='Z'){mypuz=mypuz+mytrans.substr(translationfrom.indexOf(myorigpuz.substr(j,1)),1);}
else{mypuz=mypuz+myorigpuz.substr(j,1);}
}
m_tb1.value = mypuz;
Refresh();

}

function Refresh () {
var i;
var j;
var k;
var tb1;
var tb2;
var replace;
var cr = String.fromCharCode(13,10);
var t1;
var t2;
var noofcols = 58;
var substitutions;

tb2 = "";
tb1 = m_tb1.value.toUpperCase();
substitutions=m_transto.value;
if(substitutions!="                          "){translationto = substitutions;}

for (i=0;i<tb1.length;i++){if(validchar.indexOf(tb1.substr(i,1)) < 0){tb1=tb1.substr(0,i) + " " + tb1.substr(i+1);}}

while (tb1.indexOf("  ") >=0){tb1 = tb1.split("  ").join(" ");}

i = noofcols;
k = i;
j = 0;
while(i< tb1.length) {
while ((i > j) && (tb1.substr(i,1) != " ")) {i--;}
if (i == j){tb1 = tb1.substr(0,k) + cr + tb1.substr(k);k = k + 2;}
else {tb1 = tb1.substr(0,i) + cr + tb1.substr(i + 1);k = i + 2;}
j = k;
i = k + noofcols; 
k = i;}

t1 = m_t1.value.toUpperCase().split(" ").join("");
if (validchar.indexOf(t1) < 0){t1 = "";}
t2 = m_t2.value.toUpperCase().split(" ").join("");
if (validchar.indexOf(t2) < 0){t2 = "";}

i = translationfrom.indexOf(t1);
if ((t2=="") && (t1.length == 1) && (i>=0))
{translationto = translationto.substr(0,i) + " " + translationto.substr(i + 1);}
else if ((t1.length == 1) && (t2.length == 1) && (i>=0) && (translationfrom.indexOf(t2)>=0) && (t1 != t2))
{translationto = translationto.split(t2).join(" ");
translationto = translationto.substr(0,i) + t2 + translationto.substr(i + 1);}

replace = "";
for (i=0;i<tb1.length;i++){if(translationfrom.indexOf(tb1.substr(i,1))>=0){replace = replace + translationto.substr(translationfrom.indexOf(tb1.substr(i,1)),1);} else {replace = replace + tb1.substr(i,1);}}
i = 0;
while (i<tb1.length) {
j = tb1.substr(i).indexOf(cr);
if (j >= 0) {
tb2 = tb2 + replace.substr(i,j + 2);
tb2 = tb2 + tb1.substr(i,j + 2);
tb2 = tb2 + cr;
i = i + j + 2;
} 
else
{
tb2 = tb2 + replace.substr(i) +  cr + tb1.substr(i) + cr;
i = tb1.length;
}
}
m_tb1.value = tb1;
m_tb2.value = tb2;

m_t1.value = "";
m_t2.value = "";
m_transto.value = translationto;

document.forms[0].T1.focus();
}

function Clear_Translation() {
translationto = transtosave;
m_t1.value = " ";
m_t2.value = " ";
m_transto.value = transtosave;
Refresh();
}

function rexec(cmd,myid){
var head;
var script;

head = document.getElementsByTagName('head').item(0);
script = document.createElement('script');
script.src = cmd;
script.language='JavaScript';
script.type = 'text/javascript';
script.id = myid;
head.appendChild(script);
}

function SetFocusBox2 () {
if(m_t1.value!=''){document.forms[0].T2.focus();}
}

<!--
function FP_swapImg() {//v1.0
 var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
 n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
 elm.$src=elm.src; elm.src=args[n+1]; } }
}

function FP_preloadImgs() {//v1.0
 var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
 for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
}

function FP_getObjectByID(id,o) {//v1.0
 var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
 else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
 if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
 for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
 f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
 for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
 return null;
}
// -->
