function getkey(e)
{
if (window.event)
   return window.event.keyCode;
else if (e)
   return e.which;
else
   return null;
}
function setmax(what, m) {
  if (what.value>m) what.value=m; 
  return true; 
}

function JSQ(x) {
  return "\'"+x.replace("\\","\\\\").replace("\'","\\\'").replace("\"","\\\"")+"\'";
}

function goodchars(e, goods)
{
var key, keychar;
key = getkey(e);
if (key == null) return true;

// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();

// check goodkeys
if (goods.indexOf(keychar) != -1)
	return true;

// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
   return true;

// else return false
return false;
}

function makeText(id, text) {
  showBox = document.getElementById(id);
  showBox.innerHTML = text;
  showBox = null;
}

function addImageForm() {
  showBox = document.getElementById("ZFILEA");
  showBox.innerHTML = "<INPUT NAME=image1 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image2 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image3 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image4 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image5 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image6 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image7 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image8 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image9 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image10 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image11 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image12 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image13 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image14 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image15 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image16 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image17 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image18 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image19 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image20 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image21 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image22 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image23 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image24 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image25 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image26 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image27 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image28 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image29 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image30 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image31 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image32 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image33 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image34 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image35 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image36 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image37 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image38 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image39 accept=\"image/*\" TYPE=\"file\"> <INPUT NAME=image40 accept=\"image/*\" TYPE=\"file\"> ";

  // Make sure that Javascript cleans up...
  showBox = null;
}


function showPP(y) {
   var e = document.getElementById('PREVPOST');
   if (e == null) return; 
   e.style.display = "block";
   for(var i=0; i<=y; i++)
     unshowNP(i);
}
function unshowPP() {
   var e = document.getElementById('PREVPOST');
   if (e == null) return; 
   e.style.display = "none";
}
function showNP(x, y) {
  unshowPP(); 
  for(var i=0; i<=y; i++)
    if (i!=x)
      unshowNP(i); 
    else
      {
	var e = document.getElementById('NEXTPOST'+x);
	e.style.display = "block";
      }
}
function unshowNP(x) {
  var e = document.getElementById('NEXTPOST'+x);
  e.style.display = "none";
}

function showName(x) {
   var element = document.getElementById(x);
   element.style.display = "block";
}
function tshowName(x) {
   var element = document.getElementById(x);
   element.style.display = "table-row";
}

function unshowName(x) {
   var element = document.getElementById(x);
   element.style.display = "none"; 
}

function setDisplay(x) {
   var v = document.getElementById('SELECTVIEW');
   var e = document.getElementById('SELECTEDIT');
   var element = document.getElementById('fs');
   var element2 = document.getElementById('fs2');
   var vv=v[v.selectedIndex].value;
   var ev=e[e.selectedIndex].value; 
   if (x=='v')
     if (vv>ev)
       e.value=vv;
   if (x=='e')
     if (vv>ev)
       v.value=ev;
   if ((vv=='4') || (ev=='4'))
     { element.style.display = "block"; 
       element2.style.display = "block"; }
   else
     { element.style.display = "none"; 
       element2.style.display = "none"; }
}

function setDisplayP(x,y) {
   var element = document.getElementById('fsp'+y);
   if ((x=='1') || (x=='3') || (x=='4') )
     { element.style.display = "block"; }
   else
     { element.style.display = "none"; }
}
/*
var req;
function loadXMLDoc(url) {
  var req = new XMLHttpRequest();
  req.onreadystatechange = processReqChange;
  req.open("GET", url, true);
  req.send("");
}
*/
function getHTTPObject() { 
  if (typeof XMLHttpRequest != 'undefined') 
    { return new XMLHttpRequest(); } 
  try { return new ActiveXObject("Msxml2.XMLHTTP"); } 
  catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } 
    catch (e) {} } return false; 
}

/*
function setLV(membernr) {
  var http = getHTTPObject();
  http.open("GET", "add_visit.do?mnr="+membernr, true);
  http.onreadystatechange = function() { 
    if (http.readyState == 4) { 
      var el = document.getElementById('LASTVISITORS');
      el.innerHTML=http.responseText; 
      el = null;
    } 
  } 
  http.send(null);
  return true; 
}
*/
//Not used: 
function encode_utf8( s )
{
  return unescape( encodeURIComponent( s ) );
}
function decode_utf8( s )
{
  return decodeURIComponent( escape( s ) );
}

//Sets the first line of elementid to <h1>t</h1>
function setfirstlineh1(elementid, t)
{
  var el = document.getElementById(elementid);
  var s=el.value;
  var ret="<h1>"+t+"</h1>\n";
  var w;
  w=s.indexOf("\n"); 
  if (w==-1) { 
    el.value=ret+s;
    return true; 
  }
  var s1=s.substring(0, w); 
  if (s1.match(" review"))
    el.value=ret+s.substring(w+1);
  else
    el.value=ret+s;
  return true; 
}
function setfirstlinewiki(elementid, t)
{
  var el = document.getElementById(elementid);
  var s=el.value;
  var ret="<h3>["+t+"@wiki]</h3>\n";
  var w;
  w=s.indexOf("\n"); 
  if (w==-1) { 
    el.value=ret+s;
    return true; 
  }
  var s1=s.substring(0, w); 
  if (s1.match("@wiki"))
    el.value=ret+s.substring(w+1);
  else
    el.value=ret+s;
  return true; 
}
function addthis() {
  var e = document.getElementById('AddThis');
  if (e) { e.innerHTML="<a href=\"http://www.addthis.com/bookmark.php\" onmouseover=\"addthis_url   = location.href; addthis_title = document.title; return addthis_click(this);\" onclick=\"addthis_url   = location.href; addthis_title = document.title; return addthis_click(this);\" target=\"_blank\"><img src = \"http://s7.addthis.com/button1-share.gif\" width=\"125\" height=\"16\" border=\"0\" alt=\"Bookmark and Share\" /></a><script type=\"text/javascript\">var addthis_pub = \"heddahenrik\";</script>"; return;}
  e = document.getElementById('ShareOnFacebookBlog');
  if (e) { e.innerHTML="&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"http://www.addthis.com/bookmark.php\" onmouseover=\"addthis_url   = location.href; addthis_title = document.title; return addthis_click(this);\" onclick=\"addthis_url   = location.href; addthis_title = document.title; return addthis_click(this);\" target=\"_blank\"><img src = \"http://s7.addthis.com/button1-share.gif\" width=\"125\" height=\"16\" border=\"0\" alt=\"Bookmark and Share\" /></a><script type=\"text/javascript\">var addthis_pub = \"heddahenrik\";</script>"; return;}
  e = document.getElementById('ShareOnFacebook');
  if (e) { e.innerHTML="<a href=\"http://www.addthis.com/bookmark.php\" onmouseover=\"addthis_url   = location.href; addthis_title = document.title; return addthis_click(this);\" onclick=\"addthis_url   = location.href; addthis_title = document.title; return addthis_click(this);\" target=\"_blank\"><img src = \"http://s7.addthis.com/button1-share.gif\" width=\"125\" height=\"16\" border=\"0\" alt=\"Bookmark and Share\" /></a><script type=\"text/javascript\">var addthis_pub = \"heddahenrik\";</script><script type=\"text/javascript\" src = \"http://s7.addthis.com/js/widget.php?v=10\"></script>"; return;}
}

//submits the poll with id
function rpollvotec(id) {
  var e = document.getElementById(id);
  e.submit(); 
}
//Prints help about what a fan is
function fanhelp() {
  var e = document.getElementById('fanhelp');
  if (e.innerHTML=="") {
    e.innerHTML="If you list yourself as a fan of this wiki-page, it will be shown for everyone at this wiki-page and in your presentation. You can\'t be a fan of a wiki-page without having the wiki-page on watch. <br><br><a href=\"popular_wikipages.html\">List the wiki-pages with the most fans</a><br><br><a href=\"hot_wikipages.html\">List the hottest wiki-pages</a><br>";
    e.style.margin="2px";
  }
  else { e.innerHTML="";
    e.style.margin="0";
  }
}
function fanhelp2() {
  var e = document.getElementById('fanhelp');
  if (e.innerHTML=="") {
    e.innerHTML="To the right of a wiki-page, you can select to become a fan if it. Then it will be shown for everyone at that wiki-page and in your presentation. <br><a href=\"popular_wikipages.html\">List the wiki-pages with the most fans</a><br><a href=\"hot_wikipages.html\">List the hottest wiki-pages</a><br>";
    e.style.margin="2px";
  }
  else { e.innerHTML="";
    e.style.margin="0";
  }
}
//Lists the fans of a wiki-page in AF
function listfans(wp) {
  var af=document.getElementById('AF');
  ajaxfunc("fanlist.do?name=", wp, 'AF');
  af.style.display='block';
  af.style.backgroundColor='transparent';
  af.style.border="2px solid red";
  af.style.padding="5px";
  af.style.width="90%";
}
//Lists this member's fan wiki-pages.
function wikifan(afwi,mnr) {
  ajaxfunc("fanlist.do?membernr=", mnr, afwi);
}

//Calls the ajax-function wikipoll.do to set ID. 
function rpollvote(id, pollnr, small)
{
  var e = document.getElementById(id);
  if (pollnr<0) 
    e.style.width="520px";
  else 
    e.style.width="100px";
  e.style.backgroundcolor="red"; 
  if (small)
    ajaxfunc("wikipollshow.do?makesmall=1&id="+id+"&pollnr=", pollnr, id);
  else
    ajaxfunc("wikipollshow.do?id="+id+"&pollnr=", pollnr, id);
}

//url ; unameavail.do?uname=
//myvar ; this.value  (The indata to be used)
//elementid ; UNAMEOKP (Where the result should come)
function ajaxfunc(url, myvar,elementid) {
  var http = getHTTPObject();
  http.open("GET", url+encodeURIComponent(myvar), true);

  http.onreadystatechange = function() { 
    if (http.readyState == 4) { 
      var el = document.getElementById(elementid);
      el.innerHTML=http.responseText; 
      //var t=http.responseText; 
      //el.innerHTML=t.replace(/.\0..DOT.\0../g, "..."); 
      // Make sure that Javascript cleans up...
      el = null;
    } 
  } 
  http.send(null);
  return true; 
}
function ajaxret(url, myvar) {
  var http = getHTTPObject();
  http.open("GET", url+encodeURIComponent(myvar), false);
  http.send("");
  return http.responseText; 
}

//I think this should be POST...
function ajaxfunc2(url, myvar,elementid) {
  var http = getHTTPObject();
  http.open("GET", url+encodeURIComponent(myvar), true);
  http.onreadystatechange = function() { 
    if (http.readyState == 4) { 
      var el = document.getElementById(elementid);
      el.value=http.responseText; 
      // Make sure that Javascript cleans up...
      el = null;
    } 
  } 
  http.send(null);
  return true; 
}

//FIXME: Use texts[]! 

//String returners: m: membernr, fid: ID to the GBMESSAGEREPLYBOX
function gbform(member,mnr,uname, fid, commentto) {
 var el = document.getElementById(fid);
 el.innerHTML=
"<DIV CLASS=MESSAGEFORM><a name=\"MESSAGEFORM\"></a><div id=\""+fid+"x\"><table><tr><td><a onClick=\"showImageBox(\'"+fid+"x\', \'"+fid+"y\');\"> <SPAN CLASS=\"BALTBUTTONTEXT2\">&nbsp;Use&nbsp;emotions&nbsp;</SPAN></a></td><td><a href=\"wiki.html?name=my%20emotions%202\" target=\"_blank\"> <SPAN CLASS=\"BALTBUTTONTEXT2\">&nbsp;Your&nbsp;own&nbsp;emotions&nbsp;</SPAN></a></td></tr></table></div><FORM method=\"post\" action=\"gbsend_message.do\"><p>Comment on this text in <a href=\"member.html?membernr="+mnr+"\">"+uname+"</a>\'s guestbook.<br><INPUT TYPE=\"hidden\" name=\"commentto\" VALUE=\""+commentto+"\"><div id=\""+fid+"ypv\" ></div><a onClick=\"var ra=document.getElementById('"+fid+"y');ajaxfunc(\'htmlify.do?s=\', ra.value, \'"+fid+"ypv\');ra.focus();\"><span CLASS=\"BALTBUTTONTEXT2\">&nbsp;Preview&nbsp;</span> </a><br><textarea id=\""+fid+"y\" NAME=newmessage onFocus=\"this.rows=10;\" rows=2 cols=80></textarea><p><INPUT TYPE=\"hidden\" name=\"to\" VALUE=\""+mnr+"\"><DIV CLASS=MESSAGEFORMBUTTON><table><tr><td><INPUT TYPE=\"submit\" CLASS=\"BALTBUTTON1\" value=\"Submit\"></td><td><INPUT TYPE=\"submit\" CLASS=\"BALTBUTTON1\" value=\"Send as a private message\" name=\"private\"></td><td><INPUT TYPE=\"submit\" CLASS=\"BALTBUTTON1\" value=\"Place the comment in your diary\" name=\"diarycomment\"></td></tr></table></DIV></FORM> </DIV></DIV>";
}

function gbformp(member,mnr,uname, fid, commentto) {
 var el = document.getElementById(fid);
 el.innerHTML=
"<DIV CLASS=MESSAGEFORM><a name=\"MESSAGEFORM\"></a><div id=\""+fid+"x\"><table><tr><td><a onClick=\"showImageBox(\'"+fid+"x\', \'"+fid+"y\');\"> <SPAN CLASS=\"BALTBUTTONTEXT2\">&nbsp;Use&nbsp;emotions&nbsp;</SPAN></a></td><td><a href=\"wiki.html?name=my%20emotions%202\" target=\"_blank\"> <SPAN CLASS=\"BALTBUTTONTEXT2\">&nbsp;Your&nbsp;own&nbsp;emotions&nbsp;</SPAN></a></td></tr></table></div><FORM method=\"post\" action=\"gbsend_message.do\"><p>Comment on this text in <a href=\"member.html?membernr="+uname+"\">"+uname+"</a>\'s private messagebox.<br><INPUT TYPE=\"hidden\" name=\"commentto\" VALUE=\""+commentto+"\"><div id=\""+fid+"ypv\" ></div><a onClick=\"var ra=document.getElementById('"+fid+"y');ajaxfunc(\'htmlify.do?s=\', ra.value, \'"+fid+"ypv\');ra.focus();\"><span CLASS=\"BALTBUTTONTEXT2\">&nbsp;Preview&nbsp;</span> </a><br><textarea id=\""+fid+"y\" NAME=newmessage onFocus=\"this.rows=10;\" rows=2 cols=80></textarea><p><INPUT TYPE=\"hidden\" name=\"to\" VALUE=\""+mnr+"\"><DIV CLASS=MESSAGEFORMBUTTON><INPUT TYPE=\"submit\" CLASS=\"BALTBUTTON1\" value=\"Send as a private message\" name=\"private\"></DIV></FORM> </DIV></DIV>";

}
function getEvent(e) {
  if(window.event)
    return window.event;
  else
    return e;
}

function getEventSource(e) {
  var target;
  e = getEvent(e);
  target = (e.target ? e.target : e.srcElement);
  return (target.nodeType == 3 ? target.parentNode : target);
}
function htmlEncode(s) { var str = new String(s); return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\"/g, "&quot;");} 

function cwikiinf(el, wiki) {
  el.innerHTML="You can display these comments on your site by using the following code. Edit this page and make it possible for everyone to comment on it, if you want all your visitors to be able to comment! <pre>"+htmlEncode("<iframe style=\"width: 75%; height: 400px\" src=\"wikic.html?name="+wiki+"\"></iframe>")+"</pre>Edit the style argument to fit your needs! ";
}

function tafix() {
  reloadChat(0);
  if (document.all) {
    var e=document.all; 
    var i=e.length; 
    while(i--) 
      if (e[i].tagName=="TEXTAREA") e[i].onkeydown=akeys; 
  }
}
var nosearch=1; 
var commandkey; 
function akeys(b) {
  var key;
  b = getEvent(b);
  var source = getEventSource(b);
  if(source && (source.tagName == "INPUT" || 
		source.tagName == "SELECT"))// || source.tagName == "TEXTAREA"))
    return true;
  if (nosearch==1) return true; 
  if (b.ctrlKey || b.altKey||b.metaKey) return true; 
  getActiveText(b);
  key = getkey(b);
  if (key == null) return true;
  if (commandkey) return true;
  if ((key== 13) && (b.shiftKey)) {
    var e = document.getElementById('ATEXTq');
    nosearch=1;
    if (e != null) 
      try {e.parentNode.submit();} catch(ex) {};
    return false; 
  }
  if (key== 13) {
    var e = document.getElementById('ATEXTqr');
    nosearch=1;
    if (e != null) 
      try {e.parentNode.submit();} catch(ex) {};
    return false; 
  }
 return true; 
}
function askeys(b) {
  var k=getkey(b);
  if (k==91) commandkey=true; 
  if (k==8)
    {   var el = document.getElementById("ATEXT"); nosearch=1;  el.style.display  = "none"; return true;}
  return getActiveText(b); 
}
function askeysup(b) {
  var k=getkey(b);
  if (k==91) commandkey=false; 
  if (k==8)
    {  var el = document.getElementById("ATEXT"); nosearch=1;  el.style.display  = "none"; return true;}
  return getActiveText(b); 
}

var cs=0; 
function fkeys(b) {
  var key, keychar;
  // Ignore if something has focus 
  //if (w!=null) return true; 
  b = getEvent(b);
  var source = getEventSource(b);
  if (b.ctrlKey || b.altKey||b.metaKey) return true; 
  key = getkey(b);
  if (key == null) return true;
  if (commandkey) return true;

  if(source && (source.tagName == "INPUT" || 
		source.tagName == "SELECT"))
    return true;
  getActiveText(b);
  if ((key== 13) && (b.shiftKey)) {
    if (nosearch==1) return true; 
    var e = document.getElementById('ATEXTq');
    nosearch=1;
    if (e != null) 
      try {e.parentNode.submit();} catch(ex) {};
    return false; 
  }
  if (key== 13) {
    if (nosearch==1) return true; 
    var e = document.getElementById('ATEXTqr');
    nosearch=1;
    if (e != null) 
      try {e.parentNode.submit();} catch(ex) {};
    return false; 
  }
  if(source && (source.tagName == "TEXTAREA")) return true; 

  // get character
  keychar = String.fromCharCode(key);
  keychar = keychar.toLowerCase();
  
  if (keychar == "n") {
    var e = document.getElementById('NP');
    var e2 = document.getElementById('NP2');
    if (e2 != null) 
      e2.submit();
    else if (e != null) 
      e.submit();
    return true; 
  } 
  else if (keychar == "s") {
    var e = document.getElementById('NTHREAD');
    if (e != null) 
      e.focus();
    return true; 
  }
  else if (keychar == "e") {
    var e = document.getElementById('EPOSTING');
    if (e != null) 
      e.focus();
    return true; 
  }
  else if (keychar == "c") {
    var e = document.getElementById('CPOSTING');
    if (e != null) 
      e.focus();
    return true; 
  }
  else if (keychar == "p") {
    var e = document.getElementById('CoPo');
    if (e != null) 
      window.location=e.href;
    return true; 
  } 
  else if (keychar == "r") {
    var e = document.getElementById('FoRep');
    if (e != null) 
      window.location=e.href;
    return true; 
  } 
  else if (keychar == "m") {
    unshowPP(); 
    for(var i=0; 1; i++) {
      var e = document.getElementById('NEXTPOST'+i);
      if (e==null) break; 
      unshowNP(i); 
    }
    var e = document.getElementById('NEXTPOST'+(cs++));
    if (e==null) {
      cs=0; 
      e=document.getElementById('NEXTPOST'+(cs++));
    }
    if (e==null) return true; 
    e.style.display = "block";
    return true;
  }
  else if (keychar == "h") {
    var e = document.getElementById('FHELP');
    e.innerHTML="<i>Help on short-cuts:</i><br><b>H</b> - Turn this window on and off<br><b>N</b> - Next posting (anywhere)<br><b>P</b> - Previous (commented) posting in thread<br><b>C</b> - Comment on this (focus to comment textarea)<br><b>S</b> - Focus to <i>Start a thread</i><br><b>E</b> - Edit your posting<br><b>M</b> - Mingle in the comments<br><b>R</b> - Go to the first of your Forum replies."; 
    if (e.style.display != "block")
      e.style.display="block"; 
    else
      e.style.display="none";
  }

  return true; 
}

var dontreload=0; 
//scroll to the bottom
//reload the page every minute unless
//user is typing? 
function wikic() {
  window.scroll(0,150000); 
  setTimeout('reloadwikic()', 60000); 
}
function reloadwikic() {
  if (dontreload) return;  
  window.location.reload();
  setTimeout('reloadwikic()', 60000); 
}
function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

var st1ad=1; 
function addcat(eid, st1) {
  var e = document.getElementById(eid); 
  e.innerHTML=
    "<INPUT onChange=\"ajaxfunc('wikiis.do?wikipage=', this.value, 'WIKIIS"+(st1ad+st1)+"');\" "+
    " TYPE=\"text\" name=\"category"+(st1ad+st1)+"\" VALUE=\"\" "+
    "size=45 maxlength=50>"+(st1ad+st1)+
    "<span ID=WIKIIS"+(st1ad+st1)+"></SPAN><br>"+
    "<span ID=\"ID"+(st1ad+st1)+"\">"+
    "<br><a onclick=\"addcat('ID"+(st1ad+st1)+"', "+
    (st1)+");\"><SPAN CLASS=\"BALTBUTTONTEXT2\">&nbsp;Add&nbsp;more&nbsp;categories&nbsp;</SPAN></a></SPAN>";
   st1ad=st1ad+1; 
}
function diarylink(mnr)
{
  var e = document.getElementById('LTTE'+mnr); 
  e.innerHTML="<br>To link to this entry, use the URL: <input type=\"text\" value=\"http://www.thunderskeep.org/-"+mnr+"\"><br>On this site, you can use the <a href=\"pseudo_html.html\">pseudo HTML</a> code <input type=\"text\" value=\"&lt;blog:"+mnr+"&gt;\"><br> ";
}
var lpvar=0; 
var lpvar2=0; 
function lp() {
  lpvar2=0; 
  if (lpvar) {
    var e=document.getElementById('POPBOUNCE');
    e.style.display="block"; 
  }
  else {
    setTimeout('lpx()', 3000);
  }
}
function lpx() {
  lpvar=1;
}
function hlp() {
  setTimeout('hlpx()', 2000);
  lpvar2=1;
}
function hlpx() {
  if (lpvar2) {
    var e=document.getElementById('POPBOUNCE');
    e.style.display="none"; 
  } else
    setTimeout('hlpx()', 2000);
}
/*
function stophlp() {
  setTimeout('hlpx()', 5000);
}
function stophlp() {
  setTimeout('hlpx()', 5000);
}
*/


function showAjImgUp(ImgForm, myTextArea) {
  var imgf=document.getElementById(ImgForm);
  imgf.innerHTML = "<iframe id=\"upload_target\" name=\"upload_target\" src  =\"#\" style=\"width:0;height:0;border:0px solid #fff;\"></iframe><form ID=IMGFORM1 ENCTYPE=\"multipart/form-data\" method=\"post\" action=\"imageajax.do\" target=\"upload_target\">Image file: <input type=\"file\" id=\"image\" name=\"image\" accept=\"image/*\" onChange=\"addtgif(this);\"><br>Wanted filename: <INPUT TYPE=\"text\" CLASS=\"TEXTFIELD\" id=\"name\" name=\"name\" value=\"\" size=14 maxlength=40><span ID=IMGFORM1GT></span>&nbsp;<input value=\"Start uploading\" type=\"submit\" CLASS=\"BALTBUTTONTEXT2\" style=\"background-color: transparent;\"> <input type=\"hidden\" name=\"imgform\" value="+ImgForm+"><input type=\"hidden\" name=\"textarea\" value="+myTextArea+"></form>";
}
function joinedForum(id) {
  var e=document.getElementById(id);
  e.innerHTML="Joined the forum.";
}

function endUpload(ImgForm, myTextArea, text, code) {
  var imgf=document.getElementById(ImgForm);
  var el=document.getElementById(myTextArea);
  imgf.innerHTML=text;
  el.value=el.value+code;
  el.focus(); 
}
function addtgif(fileform) {
  var ret=document.getElementById("IMGFORM1GT");
  var v=fileform.value; 
  if (v.length==(v.search(/.gif/i)+4))
    ret.innerHTML=" <label><input type=\"checkbox\" onchange=\"addtgif2(this);\" name=tmp value=y>Make transparent</label> "; 
  else
    ret.innerHTML="";
}
function addtgif2(chbox) {
  var ret=document.getElementById("IMGFORM1GT");
  if (chbox.value=='y') 
    ret.innerHTML=" <br>Transparent colour (0-255): <input type=\"text\" size=4 maxlength=3 name=rgif value=\"auto\" onfocus=\"this.value=\'\';\" onChange=\"setmax(this,255);\" onKeyPress=\"return goodchars(event,\'0123456789\');\"> red, <input type=\"text\" size=4 maxlength=3 name=ggif value=\"auto\" onfocus=\"this.value=\'\';\" onChange=\"setmax(this,255);\" onKeyPress=\" goodchars(event,\'0123456789\');\"> green, <input type=\"text\" size=4 maxlength=3 name=bgif value=\"auto\" onfocus=\"this.value=\'\';\" onChange=\"setmax(this,255);\" onKeyPress=\"return goodchars(event,\'0123456789\');\"> blue.<br> "; 
  else
    ret.innerHTML=" <label><input type=\"checkbox\" onchange=\"addtgif2(this);\" name=tmp value=y>Make transparent</label> "; 
}

function getOut(what) {
  document.onmouseup = getActiveText;
}
function getOut2(what) {
  var el=document.getElementById('ATEXT');
  document.onmouseup = getActiveText;
  el.style.display="none"; 
}
function getIn(what) {
  document.onmouseup = getNothing;
}
function getNothing(e) { return true; }
function getFileName(s)
{
  var sp= s.split('\\');
  return sp[sp.length-1];
}
function sbiframei(mnr) {
  var a=document.getElementById('SBframe');
  a.src="http://www.thunderskeep.org/"+mnr+"/index.html";
}
function SBframethis(url) {
  var a=document.getElementById('SBframe');
  a.src=url; 
}

function sbclear() {
  window.location.reload();
}

function sbSetCn(i) {
  var fn=document.getElementById('FN'+i);
  var sn=document.getElementById('SN'+i);
  var zs=document.getElementById('SBzip'+i);
  sn.value=getFileName(fn.value); 
  var t1 = new RegExp("(\.[.]zip$)|(\.[.]rar$)|(\.[.]tar$)|(\.[.]tar[.]gz$)|(\.[.]tar[.]bz2$)", "i");
  if (t1.test(sn.value)) {
    zs.innerHTML=" <label style=\"color: red;\"><input name=\"zip"+i+
      "\" type=checkbox value=\"zip\">&nbsp;Unpack the zip-file</label>"; 
  } else zs.innerHTML="";

  //Check if the FNs are filled: 
  var j=0; 
  var filled=1; 
  while((++j)<100) {
    var fn2=document.getElementById('FN'+j);
    if (fn2==null) break; 
    if (fn2.value.length==0) { filled=0; break;}
  }
  if (filled&&(j<100)) { 
    var m=document.getElementById('SBmore'+(j-1));
    m.innerHTML="File to upload: <input ID=FN"+j+" name=image"+j+" accept=\"*/*\" TYPE=\"file\" onChange=\"sbSetCn("+j+");\"><br>Wanted name on web-server: <INPUT ID=SN"+j+" TYPE=\"text\" name=\"serverfname"+j+"\" VALUE=\"\"><span ID=SBzip"+j+"></span><div ID=SBmore"+j+"></div>";
  }
}
function SBmess(m) {
var a=document.getElementById('SBmess');
a.innerHTML=m;
}
function SBreload() {
  var a=document.getElementById('SBframe');
  //a.src=s.src; 
  a.contentDocument.location.reload(true);
}
var atext = "";
function getActiveText(e) {
  nosearch=1;
  if(!e) {
    e = window.event;
  }
  var source = (e.target ? e.target : e.srcElement);
      source = (source.nodeType == 3 ? source.parentNode : source);
  var el = document.getElementById("ATEXT");
  if(!el || (source && ((source.tagName == 'INPUT' )|| source.tagName == 'SELECT'))) 
//|| source.tagName == 'TEXTAREA' || source.tagName == 'SELECT'))) 
    {
    return true;
  }
  /*
  var x = e.pageX ? e.pageX : e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
  var y = e.pageY ? e.pageY : e.clientY + document.body.scrollTop  + document.documentElement.scrollTop;
  */
  atext=""; 
  if (!document.all) 
    {
      var myArea= getEventSource(e);
      if (myArea.selectionStart!=undefined) 
	{
	  atext=
	    myArea.value.substr(myArea.selectionStart, 
				myArea.selectionEnd - myArea.selectionStart); 
	  //alert("getActiveText atext:"+atext);
      }
    }
  if (!atext.length)
    {
    atext = (typeof(window.getSelection) == 'function' ? 
	     window.getSelection().toString() :  
	     (typeof(document.getSelection) == 'function' ? 
	      document.getSelection() : document.selection.createRange().text));
    //alert("getActiveText atext2:"+atext);
    }
  var test = new RegExp("^[^A-Za-z]*$");
  
  if((atext.search(/\]/)<0)&&(atext.search(/\[/)<0)&&(atext.length > 1) && (atext.length < 40) && (!test.test(atext))) {
    el.innerHTML = "<table><tr><td><form method=\"get\" action=\"http://www.google.com/custom\" target=\"_blank\"><input type=\"hidden\" name=\"domains\" value=\"thunderskeep.org\"><input ID=ATEXTq type=\"text\" name=\"q\" size=\"16\" maxlength=\"255\" value=\"\"><br><input CLASS=\"BALTBUTTON1\" type=\"submit\" name=\"sa\" value=\"Google Search this site\"><br><input type=\"hidden\" name=\"sitesearch\" value=\"thunderskeep.org\"><input type=\"hidden\" name=\"client\" value=\"pub-7085210971352209\"><input type=\"hidden\" name=\"forid\" value=\"1\"><input type=\"hidden\" name=\"channel\" value=\"0573212097\"><input type=\"hidden\" name=\"ie\" value=\"UTF-8\"><input type=\"hidden\" name=\"oe\" value=\"UTF-8\"><input type=\"hidden\" name=\"cof\" value=\"GALT:#009000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:DEF8D8;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;LH:43;LW:112;L:http://www.thunderskeep.org/logo.jpg;S:http://;FORID:1\"><input type=\"hidden\" name=\"hl\" value=\"en\"></form></td></tr><tr><td>(Shift+Enter for search)</td></tr><tr><td></td></tr><tr><td><form method=\"get\" action=\"http://www.google.com/custom\" target=\"_blank\"><input ID=ATEXTqr type=\"text\" name=\"q\" size=\"16\" maxlength=\"255\" value=\"\"><br><input CLASS=\"BALTBUTTON1\" type=\"submit\" name=\"sa\" value=\"Google Search the Web\"><input type=\"hidden\" name=\"client\" value=\"pub-7085210971352209\"><input type=\"hidden\" name=\"forid\" value=\"1\"><input type=\"hidden\" name=\"channel\" value=\"0573212097\"><input type=\"hidden\" name=\"ie\" value=\"UTF-8\"><input type=\"hidden\" name=\"oe\" value=\"UTF-8\"><input type=\"hidden\" name=\"cof\" value=\"GALT:#009000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:DEF8D8;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;LH:43;LW:112;L:http://www.thunderskeep.org/logo.jpg;S:http://;FORID:1\"><input type=\"hidden\" name=\"hl\" value=\"en\"></form></td></tr><tr><td>(Press enter for websearch)</td></tr><tr><td><a onclick=\"getOut2();\" CLASS=\"BALTBUTTON1\">&nbsp;Close&nbsp;</a></td></tr></table>";
    var q   = document.getElementById('ATEXTq');
    q.value = atext; 
    q = document.getElementById('ATEXTqr');
    q.value = atext; 
    
    /*
    q.focus(); 
    if(y < 100)
      el.style.top  = (y + 20 ) + "px";
    else
      el.style.top  = (y - 100) + "px";
    if(x < 250)
      el.style.left = x + "px";
    else if(x < 500)
      el.style.left = (x - 250) + "px";
    else
      el.style.left = (x - 500) + "px";
*/
    el.style.display="block"; 
    nosearch=0;
  } else {
    nosearch=1;
    //el.innerHTML = "";
    el.style.display  = "none"; 
  }
}
/*
function getActiveText(e) { 
  var el=document.getElementById('ATEXT');
  if (el) {
  //document.onmousemove=mousemove;
  var mouseX=(document.all) ? event.x+document.body.scrollLeft: e.pageX;
  var mouseY=(document.all) ? event.y+document.body.scrollTop: e.pageY;
  atext = (document.all) ? document.selection.createRange().text : document.getSelection();
  //Do not do if inside textarea or input text 
  var a = document.getElementsByTagName( 'textarea' );
  var i = a.length;
  var notTA=1;
  while( i-- ) 
    if (a[i].rows>4) notTA=0;

  if (notTA && (atext.length<70) && (atext.length>1))
    {
      el.innerHTML="<table><tr><td><form method=\"get\" action=\"http://www.google.com/custom\" target=\"_blank\"><input type=\"hidden\" name=\"domains\" value=\"thunderskeep.org\"><input ID=ATEXTq type=\"text\" name=\"q\" size=\"16\" maxlength=\"255\" value=\"\"><br><input CLASS=\"BALTBUTTON1\" type=\"submit\" name=\"sa\" value=\"Google Search this site\"><br><input type=\"hidden\" name=\"sitesearch\" value=\"thunderskeep.org\"><input type=\"hidden\" name=\"client\" value=\"pub-7085210971352209\"><input type=\"hidden\" name=\"forid\" value=\"1\"><input type=\"hidden\" name=\"channel\" value=\"0573212097\"><input type=\"hidden\" name=\"ie\" value=\"UTF-8\"><input type=\"hidden\" name=\"oe\" value=\"UTF-8\"><input type=\"hidden\" name=\"cof\" value=\"GALT:#009000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:DEF8D8;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;LH:43;LW:112;L:http://www.thunderskeep.org/logo.jpg;S:http://;FORID:1\"><input type=\"hidden\" name=\"hl\" value=\"en\"></form></td></tr><tr><td>(Shift+Enter for search)</td></tr><tr><td></td></tr><tr><td><form method=\"get\" action=\"http://www.google.com/custom\" target=\"_blank\"><input ID=ATEXTqr type=\"text\" name=\"q\" size=\"16\" maxlength=\"255\" value=\"\"><br><input CLASS=\"BALTBUTTON1\" type=\"submit\" name=\"sa\" value=\"Google Search the Web\"><input type=\"hidden\" name=\"client\" value=\"pub-7085210971352209\"><input type=\"hidden\" name=\"forid\" value=\"1\"><input type=\"hidden\" name=\"channel\" value=\"0573212097\"><input type=\"hidden\" name=\"ie\" value=\"UTF-8\"><input type=\"hidden\" name=\"oe\" value=\"UTF-8\"><input type=\"hidden\" name=\"cof\" value=\"GALT:#009000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:DEF8D8;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;LH:43;LW:112;L:http://www.thunderskeep.org/logo.jpg;S:http://;FORID:1\"><input type=\"hidden\" name=\"hl\" value=\"en\"></form></td></tr><tr><td>(Press enter for websearch)</td></tr><tr><td><a onclick=\"getOut2();\" CLASS=\"BALTBUTTON1\">&nbsp;Close&nbsp;</a></td></tr></table>";
      var q=document.getElementById('ATEXTq');
      q.value=atext; 
      q=document.getElementById('ATEXTqr');
      q.value=atext; 
      if (mouseY<100)
	el.style.top=(mouseY+20)+"px";
      else
	el.style.top=(mouseY-100)+"px";
      if (mouseX<250)
	el.style.left=mouseX+"px";
      else if (mouseX<500)
	el.style.left=(mouseX-250)+"px";
      else
	el.style.left=(mouseX-500)+"px";

      el.style.display="block"; 
    }
  else { el.style.display="none"; }
  }
  return true;
}
*/


document.onmouseup = getActiveText;
if (!document.all) document.captureEvents(Event.MOUSEUP);
//if (!document.all) document.addEventListener(Event.MOUSEUP);
//Uploads an image by calling imageajax.do
// http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
/* Javascript can't upload files! 
function AjImgUp(ImgForm, myTextArea) {
  var imgf=document.getElementById(ImgForm);
  var theForm=document.getElementById('IMGFORM1');
  var params ="image="+escape(theForm.image.data)+"imagen="+escape(theForm.image.value)+"&name="+escape(theForm.name.value);
  var http = getHTTPObject();
  http.open("POST", "imageajax.do", true);
  http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  http.setRequestHeader("Content-length", params.length);
  http.setRequestHeader("Connection", "close");
  http.onreadystatechange = function() { 
    if (http.readyState == 4) { 
      if (http.responseText=='E') {
        imgf.innerHTML="<span class=WARNING>Error! No image was selected.</span>";
      } else if (http.responseText=='E2') {
        imgf.innerHTML="<span class=WARNING>Error! The file you selected wasn\'t an image. It has to be a JPEG, GIF or PNG image.</span>";
      } else {
        var el = document.getElementById(myTextArea);
        el.innerHTML=el.innerHTML+http.responseText; 
        imgf.innerHTML="Uploading done! Image code at the end of the textarea.  ";
        el = null;
      }
    } 
  } 
  http.send(params);

  return true; 
}
*/


function cookieremove()
{
document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT;";
document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/";

document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/; domain=www.thunderskeep.org";
document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; domain=www.thunderskeep.org";

document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/; domain=thunderskeep.org";
document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; domain=thunderskeep.org";

document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/; domain=www.thunderskeep.org.";
document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; domain=www.thunderskeep.org.";

document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/; domain=thunderskeep.org.";
document.cookie = "heddatesession=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; domain=thunderskeep.org.";

document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT;";
document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/";

document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/; domain=www.thunderskeep.org";
document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; domain=www.thunderskeep.org";

document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/; domain=thunderskeep.org";
document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; domain=thunderskeep.org";

document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/; domain=www.thunderskeep.org.";
document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; domain=www.thunderskeep.org.";

document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; PATH=/; domain=thunderskeep.org.";
document.cookie = "heddatepasswd=1; expires=Monday, 19-Aug-1996 05:00:00 GMT; domain=thunderskeep.org.";

}

function sw24() {
var e=document.getElementById('sw24');
var eb=document.getElementById('sw24b');
if (e)
{
  e.innerHTML = eb.innerHTML;
  eb.innerHTML="";
} else
  eb.innerHTML="";
}
function findPos(obj) {
  var curleft = curtop = 0;
  if (obj.offsetParent) {
    curleft = obj.offsetLeft
      curtop = obj.offsetTop
      while (obj = obj.offsetParent) {
	curleft += obj.offsetLeft
	curtop += obj.offsetTop
      }
  }
  return [curleft,curtop];
}

function mover(t,s) {
  t.innerHTML = s; 
}
function mout(t,s) {
  t.innerHTML = s; 
}

function offset(e) {
  var d = new Date(1233932396*1000);
  //var af=document.getElementById('AF');
  e.title=d.toLocaleString( );
  //af.innerHTML=d.getTimezoneOffset( );
  //af.style.display='block';
}

function dt(utc, t) {
  var d=new Date(t*1000);
  //d=new Date(t*1000+d.getTimezoneOffset()*60000); 
  document.write("<span title=\""+d.toLocaleString()+
		 "\">"+utc+"</span>"); 
}
//replaces time-t inside <span class=WCtimes>12981298<>23:50</span>
function t2time(s) {
  var a=s.split("<span class=WCtimes>");
  for (var x=1; x<a.length; x++) {
    var t=parseInt(a[x]); 
    var d=new Date(t*1000);
    a[x]=a[x].substr(t.toString().length+2);
    var utc=a[x].split("</span>")[0];
    a[x]="<span title=\""+d.toLocaleString()+
      "\">"+utc+"</span>"+a[x].split("</span>").slice(1).join("</span>");
  }

  return a.join("<span class=WCtimes>");

}

//Writes how many days, hours, minutes and seconds it's left to 
//the time t
function tleft(t, i) {
  var o=new Date(t*1000); 
  var n=new Date();
  var d=Math.floor((o.valueOf()-n.valueOf())/1000);
  var res=""; 
  var ago=""; 
  if (d<0) { d=-d; ago=" ago" }
  var s=d%60;
  var m=Math.floor(d%3600/60); 
  var h=Math.floor(d%(24*3600)/3600); 
  var ds=Math.floor(d/(24*3600)); 
  if (ds>=1) res=res+ds+"d "; 
  if (h<10) res=res+"0"+h; 
  else res=res+h; 
  res+=":";
  if (m<10) res=res+"0"+m; 
  else res=res+m; 
  res+=":";
  if (s<10) res=res+"0"+s; 
  else res=res+s; 
  var el=document.getElementById('CoDo'+i);
  if (ago=="")
    el.innerHTML="<tt>"+res+"</tt> <i>Until "+o.toLocaleString()+"</i>";
  else
    el.innerHTML="<tt>"+res+"</tt> <i>Since "+o.toLocaleString()+"</i>";
  setTimeout('tleft('+t+','+i+')', 1000);
}

function CPadd2(name) {
  var el=document.getElementById('CPadd');
  var m=document.getElementById('CATmesDIV');
  m.innerHTML="";
  el.innerHTML="<form id=CPaddF method=\"post\" action=\"addsubwiki.do\" target=\"CPhid\">Wiki-page to add to this category: <INPUT id=aSwp name=\"wikipage\" TYPE=\"text\" value=\"\" onChange=\"addSubCheck();\"> <a CLASS=BALTBUTTON1 onClick=\"addSubCheck();\">&nbsp;Check&nbsp;Name&nbsp;</a>"+
    "<INPUT ID=hFgt TYPE=\"hidden\" name=\"name\" VALUE=\"\">\n"
    +
    "</form>";
  el=document.getElementById('hFgt');
  el.value=name; 
}

var CPchanged=0; 
function CPlist1() {
  var el=document.getElementById('CATEGORYPAGESTRING');
  var s=el.value; 
  var sp=s.split("\n");
  var sp2=s.split("\n");
  var a=new Array(" &nbsp; "); 
  var ret=""; 
  if (s.length<1)
    ret="<tr><td> <span class=WARNING>There are no subpages.</span> </td></tr>";
  else {
    for(var i=0; i<sp.length; i++)
      sp2[i]="<a href=\"wiki.html?name="+
	encodeURIComponent(sp[i].replace("\r",""))+"\">"+
	htmlEncode(sp[i])+"</a>"; 
    if (sp2.length%3==1)
      sp2=sp2.concat(a,a); 
    if (sp2.length%3==2)
      sp2=sp2.concat(a);
    for(var i=0; i<sp2.length; i++)
      ret=ret+
	((i%3==0)?"<tr>":"")+
	"<td>"+
	((i<sp.length)?
	 " <a CLASS=BALTBUTTON1 onclick=\"CPdel("+i+");\">&nbsp;X&nbsp;</a> "+
	 " <a CLASS=BALTBUTTON1 onclick=\"CPUp("+i+");\">&nbsp;Up&nbsp;</a> "+
	 " <a CLASS=BALTBUTTON1 onclick=\"CPDown("+i+");\">&nbsp;Down&nbsp;</a> "
	 :"")+sp2[i]
	+"</td>"+
	((i%3==2)?"</tr>":"");
  }
  if (CPchanged)
    ret="<br><a CLASS=BALTBUTTON1 onclick=\"CPSave();\">&nbsp;&nbsp;Save&nbsp;Changes&nbsp;&nbsp;</a> &nbsp; <a CLASS=BALTBUTTON1 onclick=\"window.top.location.reload();\">&nbsp;&nbsp;Undo&nbsp;Changes&nbsp;&nbsp;</a> <p><br>"+ret+"<br><a CLASS=BALTBUTTON1 onclick=\"CPSave();\">&nbsp;&nbsp;Save&nbsp;Changes&nbsp;&nbsp;</a> &nbsp; <a CLASS=BALTBUTTON1 onclick=\"window.top.location.reload();\">&nbsp;&nbsp;Undo&nbsp;Changes&nbsp;&nbsp;</a> <p><br>";
  ret="<table style=\"width: 100%;\">"+ret+"</table>";
  var el=document.getElementById('CATEGORYPAGETABLE');
  el.innerHTML=ret;
  //document.write(ret); 
}
function CPSave(i) {
  var el=document.getElementById('catpagelist'); 
  var m=document.getElementById('CATmesDIV');
  m.innerHTML="";
  el.submit(); 
  CPchanged=0; 
  CPlist1();
}

function CPDown(i) {
  var el=document.getElementById('CATEGORYPAGESTRING');
  var s=el.value; 
  var m=document.getElementById('CATmesDIV');
  m.innerHTML="<span class=WARNING>Subpage moved down</span>";
  var sp=s.split("\n");
  var ret="";
  if (i>=(sp.length-1)) return; 
  if (i<0) return; 
  var sp1=sp.slice(0,i); 
  var sp2=sp.slice(i+2); 
  var a=new Array(sp[i+1]);
  var b=new Array(sp[i]);
  sp=sp1.concat(a, b, sp2);
  ret=sp.join("\n");
  el.value=ret; 
  CPchanged=1; 
  CPlist1();
}
function CPUp(i) {
  var el=document.getElementById('CATEGORYPAGESTRING');
  var m=document.getElementById('CATmesDIV');
  m.innerHTML="<span class=WARNING>Subpage moved up</span>";
  var s=el.value; 
  var sp=s.split("\n");
  var ret="";
  if (i>=(sp.length)) return; 
  if (i<=0) return; 
  var sp1=sp.slice(0,i-1); 
  var sp2=sp.slice(i+1); 
  var a=new Array(sp[i]);
  var b=new Array(sp[i-1]);
  sp=sp1.concat(a, b, sp2);
  ret=sp.join("\n");
  el.value=ret; 
  CPchanged=1; 
  CPlist1();
}
function CPdel(i) {
  var el=document.getElementById('CATEGORYPAGESTRING');
  var m=document.getElementById('CATmesDIV');
  m.innerHTML="<span class=WARNING>Subpage deleted</span>";
  var s=el.value; 
  var sp=s.split("\n");
  var ret="";
  if (i>=(sp.length)) return; 
  if (i<0) return; 
  if (sp.length==1) el.value=""; 
  else {
    var sp1=sp.slice(0,i); 
    var sp2=sp.slice(i+1); 
    sp=sp1.concat(sp2);
    ret=sp.join("\n");
    el.value=ret; }
  CPchanged=1; 
  CPlist1();
}
function CPadd(s) {
  var el=document.getElementById('CATEGORYPAGESTRING');
  var m=document.getElementById('CATmesDIV');
  m.innerHTML="";
  if (el.value.length<1) el.value=s;
  else {
    var sp=el.value.split("\n");
    var is=0; 
    for (var x in sp) 
      if (sp[x].toLowerCase()==s.toLowerCase()) {
	is=1; break;}
    if (is==0) el.value=s+"\n"+el.value;
  }
  // CPchanged=1;  
  var e2=document.getElementById('CPadd');
  e2.innerHTML="<a CLASS=BALTBUTTON1 onclick=\"CPadd2("+JSQ(gup("name"))+");\">&nbsp;&nbsp;Add&nbsp;wiki-page&nbsp;&nbsp;</a>";
  CPlist1();
}

function addSubCheck() {
  var v=document.getElementById('aSwp').value; 
  //var e=document.getElementById('WIKIISCP'); CATmesDIV
  var e=document.getElementById('CATmesDIV'); 
  if (v.toLowerCase()==gup('name').toLowerCase()) 
    { 
      e.innerHTML="aSC: <span class=WARNING>Can\'t add a page as its own subpage.</span>"; 
      return; 
    } 
  var el=document.getElementById('CATEGORYPAGESTRING');
  var s=el.value.replace("\r",""); 
  var sp=s.split("\n");
  for(var i=0; i<sp.length; i++) 
    if (sp[i].toLowerCase()==v.toLowerCase()) {
      e.innerHTML="aSC:  <span class=WARNING> That wiki-page is already a subpage to this page. </span> ";
      return; 
    }
  e.innerHTML="";
  ajaxfunc('wikiis2.do?wikipage=', v, 'CATmesDIV');
  //  ajaxfunc('wikiis2.do?wikipage=', v, 'WIKIISCP');
  return; 
}

var ImgBoxSize=800; //= 600, 800, 1200, 0
var stopslide=0; 
function closeButt(bid) {
  var af=document.getElementById(bid);
  af.style.position='static';  
  af.style.backgroundColor='transparent';
  af.style.display='none';
  af.style.border="2px solid red";
  af.style.padding="5px";
  af.style.width="75%";
  stopslide=1; 
}
//Shows the box number nr. 
function viewImgBox(nr, nobox,bid, autoslide, prev, next) {
  if (autoslide&&stopslide) return;
  if (!autoslide) stopslide=1; 
  window.scroll(0,0);
  var af=document.getElementById(bid);
  af.style.display='block';
  af.style.position='absolute';  
  af.style.top='0';  
  af.style.left='0';
  af.style.right='auto';
  af.style.bottom='auto';
  af.style.backgroundColor='white';  
  af.style.border="none";
  af.style.padding="0";
  af.style.width="100%";
  af.style.height="2800px"; 
  //nr=nr+1; 
  var bit="BI"; 
  //if (nobox==null) nobox=noboxi; 
  //else if (nobox==0) noboxi=0; 
  if (nobox) bit="BsI"; // noboxi=1;}
  var box; 
  var bi;
  while ((((!box)&&(!nobox))||(!bi))&&(nr<250)) {
    nr++; 
    box=document.getElementById(bid+'BOX'+nr);
    bi=document.getElementById(bid+bit+nr);
    if (prev) break; 
  }
  if ((nr>1) &&(!bi) &&(!prev)) 
    if (!next) return viewImgBox(0,nobox,bid,0,0,1); 
    else { af.innerHTML="Trying to find after next but failed: "+
	bid+bit+nr; return; }
  var errors=250; 
  if ((prev) &&(!bi))
    for(var i=1; i<47111; i++) {
      if (!document.getElementById(bid+bit+i))
	{
	  if (errors--<0) break; 
	}
      else {
	nr=i; 
	box=document.getElementById(bid+'BOX'+nr);
	bi=document.getElementById(bid+bit+nr);
      }
    }
  if (!bi) { af.innerHTML="No "+bid+bit+" found: "+bid+bit+nr; return; }
  var bisrc=bi.src+"";
  var boxtext;
  if (nobox) boxtext="<img ID="+bid+"BsI"+nr+" alt=\"\" src=\"elftownbannersmall.gif\">";
  else {
    boxtext=box.innerHTML;
    //boxtext=boxtext.replace("ID="+bid+"BI", "ID="+bid+"BiX");
    //boxtext=boxtext.replace("id="+bid+"BI", "id="+bid+"BiX");
  }
  af.innerHTML="<table style=\"width: 100%\"><tr><td>"+
    " <a CLASS=MAXBUTT100h onclick=\"viewImgBox("+(nr-2)+","+nobox+",\'"+bid+"\',0,1);\">&nbsp;Previous&nbsp;</a>"
    +"</td><td> <a CLASS=MAXBUTT100h onclick=\""+
    (autoslide?"stopslide=1":"stopslide=0")+
    ";viewImgBox("+(nr-1)+","+nobox+",\'"+bid+"\'"+
    (autoslide?");\">&nbsp;Stop Sliding&nbsp;</a>":",1);\">&nbsp;Auto Play&nbsp;</a>")+
    "</td><td> <a CLASS=MAXBUTT100h onclick=\"viewImgBox("+(nr)+","+nobox+",\'"+bid+"\');\">&nbsp;Next&nbsp;</a>"
    +"</td><td> <a CLASS=MAXBUTT100h onclick=\"closeButt(\'"+bid+"\' );\">&nbsp;Close&nbsp;</a> </td></tr></table><p>"+
    //htmlEncode(boxtext)+
    "<p>"+boxtext+"<p>"+
    "<table style=\"width: 100%\"><tr><td>"+
    " <a CLASS=MAXBUTT100h onclick=\"ImgBoxSize=600;viewImgBox("+(nr-1)+","+nobox+",\'"+bid+"\');\">&nbsp;Small&nbsp;</a></td><td>"+
    " <a CLASS=MAXBUTT100h onclick=\"ImgBoxSize=800;viewImgBox("+(nr-1)+","+nobox+",\'"+bid+"\');\">&nbsp;Normal&nbsp;</a></td><td>"+
    " <a CLASS=MAXBUTT100h onclick=\"ImgBoxSize=1200;viewImgBox("+(nr-1)+","+nobox+",\'"+bid+"\');\">&nbsp;Big&nbsp;</a></td><td>"+
    " <a CLASS=MAXBUTT100h onclick=\"ImgBoxSize=0;viewImgBox("+(nr-1)+","+nobox+",\'"+bid+"\');\">&nbsp;Maximum&nbsp;</a></td></tr></table>";
  bi=document.getElementById(bid+bit+nr);
  bi.src=bisrc.replace(/\?.*?$/, "?x="+ImgBoxSize+"");
  if (ImgBoxSize==0) 
    bi.style.width="100%";
  else
    bi.style.width=ImgBoxSize+"px";
  bi.style.height="auto"; 
  var heavyImage = new Image(); 
  bi=document.getElementById(bid+bit+(nr+1));
  if (!bi) bi=document.getElementById(bid+bit+(1));
  if (bi) {
    bisrc=bi.src; 
    bi.src=bisrc.replace(/\?.*?$/, "?x="+ImgBoxSize+"");
    heavyImage.src = bi.src;
  }
  if (autoslide)  setTimeout('viewImgBox('+(nr)+','+nobox+',\''+bid+'\',1)', 4000); 

//If nr>vad som finns nr=0; 
//If auto then do a  setTimeout('viewImgBox('+(1+nr)+', auto)');  


}

function chatset() {
  var inp=document.getElementById('schatset');
  var ret=document.getElementById('COmess');
  ret.innerHTML="Changing..."; 
  ajaxfunc("chaton.do?mood=", inp.value,'COmess');
}
function lcon() {
 var e=document.getElementById('PClist');
 if (e.style.display=="block") 
   e.style.display="none"; 
 else {
   ajaxfunc('lcon.do?page=',1, 'PClist');
   e.style.display="block"; 
 }
}

function startChat(mnr) {
  ajaxfunc("chaton.do?open=", mnr,'CHAT');
  
}
function closeChat(mnr) {
  ajaxfunc("chaton.do?close=", mnr,'CHAT');
  
}

/* This function reloads the chat:
 It calls chatnew.do to get the new messages. 
 Sends args->lm with the last number it has. 
*/
function emptyForm(id) {
  var e=document.getElementById(id);
  e.value=""; 
}
var lCN=0; //lastChatNr: Must be sent on load! lCN=max(lCN,); 
var RCruns=0; 
function set_lCN(x) { lCN=x; }
function reloadChat(nr) {
  var clog=document.getElementById("CLOG");
  if (!clog) return; 
  clog.innerHTML+="Testing "+nr+" ";
  //Kill other calls to this function! 
  if (nr<1) RCruns=0; //Reset! 
  clog.innerHTML+="RCruns "+RCruns+"<br>";
  if (RCruns>nr) return true; 
  RCruns++;
  var d="";
  d=ajaxret("chatnew.do?lm=", lCN);
  //Do stuff with the data
  if (d!="nil") {
    //clog.innerHTML+="d!=nil "+d+"<br>";
    //Update lCN!
    lCN=parseInt(d.split("\n")[0]);
    d=d.split("\n").slice(1).join("\n");
    clog.innerHTML+=" lCN:"+lCN+" d:"+d+"<br>"; 
    var a=d.split("/").slice(1);
    clog.innerHTML+=" a.length:"+a.length+" "; 
    for(var i=0; i<a.length; i++) {
      clog.innerHTML+=" a["+i+"]:"+a[i]+"<br>";
      var mnr=parseInt(a[i]);
      clog.innerHTML+=" mnr:"+mnr+"<br>";
      var t=a[i].slice(mnr.toString().concat("=").length);
      var e=document.getElementById("XC"+mnr);
      clog.innerHTML+=" t:"+t+" e:"+e+"<br>";
      if (!e) { //Open a new chat. ajax?
	var e2=document.getElementById("CHATL");
	//clog.innerHTML+=" j:"+j+" i:"+(a.length-(++j))+"<br>";
	//j++; //Why doesn't it work to have this below?!? 
	//e2.innerHTML+=ajaxret("chaton.do?i="+(a.length-(j))+"&mnr=", mnr);
	//Count the number of open chat-windows! 
	var j=0;
	var items=
	  document.getElementsByTagName("DIV");
	for(var i=0; i<items.length; i++)
	  if (items[i].className=="PCchat")
	    j++;
	  else clog.innerHTML+=" "+items[i].className;
	e2.innerHTML+=ajaxret("chaton.do?i="+j+"&mnr=", mnr);
      } else {
	e.innerHTML+=decodeURIComponent(t);
      }
    } 
  }
  else {
    clog.innerHTML+="d==nil<br>";
  }
  
  //Repeat this call again!
  setTimeout('reloadChat('+(nr+1)+')', 1000*(6+(nr>10)*6+(nr>20)*60+(nr>40)*180));
  return true; 
}

function deleteOldI2(nr) {
  var d=document.getElementById("dOI");
  d.style.display="none"; 
  d.innerHTML=""; 
  if (nr>0) {
  var r=ajaxret("delete_old_img.do?nr=", nr); 
  d=document.getElementById("UI"+nr);
  d.innerHTML=r; } 
  return false; 
}

//deleteOldI("+JSQ(foo[i]->filename)+","+foo[i]->nr+");
function deleteOldI(img, nr) {
  var d=document.getElementById("dOI");
  d.style.display="block"; 
  d.innerHTML="<div class=dOIpop>"+
    "Do you really want to delete the image? <br><br>"+
    "<table style=\"width: 100%\"><tr><td style=\"text-align:center;\"><a href=\"#\" onclick=\"deleteOldI2("+0+")\"><SPAN CLASS=\"BALTBUTTONTEXT2\">&nbsp;Cancel&nbsp;</span></a></td><td style=\"text-align:center;\">"+
    "<a href=\"#\" onclick=\"deleteOldI2("+nr+")\"><SPAN CLASS=\"BALTBUTTONTEXT2\">&nbsp;Yes, delete!&nbsp;</span></a></td></tr></table>"+
    "<br><br><img align=\"center\" alt=\"image"+nr+"\" src=\""
    +img+"\"></div>";
  return false; 
}

//wcnr = number of the wiki-comment. 
//s = string to replace it with. 
// This function isn't really needed... 
function editWCom(wcnr, s) {
  //FIXME: Write error about something
}
var myPairs = new Array();
// Make the quick element reference
function $(id) { return document.getElementById(id); }

function showImageBox(emotionsImgBox, myTextArea) {
  myPairs[emotionsImgBox] = myTextArea;
  // Make the image box visible
  showBox = $(emotionsImgBox);
  showBox.innerHTML = 
    "<img onClick=\"assignImage('&lt;img:stuff/medieval.gif>', this)\" src=\"stuff/medieval.gif\" alt=\"&lt;img:stuff/medieval.gif&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/torch.gif>', this)\" src=\"stuff/torch.gif\" alt=\"&lt;img:stuff/torch.gif&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/bow_arrow.gif>', this)\" src=\"stuff/bow_arrow.gif\" alt=\"&lt;img:stuff/bow_arrow.gif&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/axeman.gif>', this)\" src=\"stuff/axeman.gif\" alt=\"&lt;img:stuff/axeman.gif&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/2handed.gif>', this)\" src=\"stuff/2handed.gif\" alt=\"&lt;img:stuff/2handed.gif&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/happyswordsman.gif>', this)\" src=\"stuff/happyswordsman.gif\" alt=\"&lt;img:stuff/happyswordsman.gif&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/calisword.gif>', this)\" src=\"stuff/calisword.gif\" alt=\"&lt;img:stuff/calisword.gif&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/castle.png>', this)\" src=\"stuff/castle.png\" alt=\"&lt;img:stuff/castle.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/flag_happy.png>', this)\" src=\"stuff/flag_happy.png\" alt=\"&lt;img:stuff/flag_happy.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/happymedieval.png>', this)\" src=\"stuff/happymedieval.png\" alt=\"&lt;img:stuff/happymedieval.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/angrymedieval.png>', this)\" src=\"stuff/angrymedieval.png\" alt=\"&lt;img:stuff/angrymedieval.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/inlovemedieval.png>', this)\" src=\"stuff/inlovemedieval.png\" alt=\"&lt;img:stuff/inlovemedieval.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/sadmedieval.png>', this)\" src=\"stuff/sadmedieval.png\" alt=\"&lt;img:stuff/sadmedieval.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/surprisedmedieval.png>', this)\" src=\"stuff/surprisedmedieval.png\" alt=\"&lt;img:stuff/surprisedmedieval.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/joustmedieval.png>', this)\" src=\"stuff/joustmedieval.png\" alt=\"&lt;img:stuff/joustmedieval.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/sillymedieval.png>', this)\" src=\"stuff/sillymedieval.png\" alt=\"&lt;img:stuff/sillymedieval.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/happy2medieval.png>', this)\" src=\"stuff/happy2medieval.png\" alt=\"&lt;img:stuff/happy2medieval.png&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/ack.jpg>', this)\" src=\"stuff/ack.jpg\" alt=\"&lt;img:stuff/ack.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/bashful.jpg>', this)\" src=\"stuff/bashful.jpg\" alt=\"&lt;img:stuff/bashful.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/deadmon.jpg>', this)\" src=\"stuff/deadmon.jpg\" alt=\"&lt;img:stuff/deadmon.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/depressed.jpg>', this)\" src=\"stuff/depressed.jpg\" alt=\"&lt;img:stuff/depressed.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/ducktape.jpg>', this)\" src=\"stuff/ducktape.jpg\" alt=\"&lt;img:stuff/ducktape.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/hilarious.jpg>', this)\" src=\"stuff/hilarious.jpg\" alt=\"&lt;img:stuff/hilarious.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/invis.jpg>', this)\" src=\"stuff/invis.jpg\" alt=\"&lt;img:stuff/invis.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/lovey1.jpg>', this)\" src=\"stuff/lovey1.jpg\" alt=\"&lt;img:stuff/lovey1.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/lovey2.jpg>', this)\" src=\"stuff/lovey2.jpg\" alt=\"&lt;img:stuff/lovey2.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/rollseyes.jpg>', this)\" src=\"stuff/rollseyes.jpg\" alt=\"&lt;img:stuff/rollseyes.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/sad.jpg>', this)\" src=\"stuff/sad.jpg\" alt=\"&lt;img:stuff/sad.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/sick.jpg>', this)\" src=\"stuff/sick.jpg\" alt=\"&lt;img:stuff/sick.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/skeerd.jpg>', this)\" src=\"stuff/skeerd.jpg\" alt=\"&lt;img:stuff/skeerd.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/sleepn.jpg>', this)\" src=\"stuff/sleepn.jpg\" alt=\"&lt;img:stuff/sleepn.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/sly.jpg>', this)\" src=\"stuff/sly.jpg\" alt=\"&lt;img:stuff/sly.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/smile.jpg>', this)\" src=\"stuff/smile.jpg\" alt=\"&lt;img:stuff/smile.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/stress.jpg>', this)\" src=\"stuff/stress.jpg\" alt=\"&lt;img:stuff/stress.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/tired.jpg>', this)\" src=\"stuff/tired.jpg\" alt=\"&lt;img:stuff/tired.jpg&gt;\"> <img onClick=\"assignImage('&lt;img:stuff/whoop.jpg>', this)\" src=\"stuff/whoop.jpg\" alt=\"&lt;img:stuff/whoop.jpg&gt;\">";
  // Make sure that Javascript cleans up...
  showBox = null;
}

function assignImage(imgSrc, source) {
  var addBox = $(myPairs[source.parentNode.id]);
  addBox.value += imgSrc;
  addBox.focus();
}

