var refreshTimer;
var submit=0;

function doOnLoad() {
  xmlHttp=createAjax();
  refreshTime();
  focusInput();
  submit=0;
  startPing();
}

function startPing() {
  if (xmlHttp) {
     window.setInterval("runPing()",1000*15);
  }
}

function doOnUnload() {
/*
    if (document.getElementById("eingabe") && submit==0) {
	alert("QUIT");
	submitOrAjax("QUIT");	       
    }
*/
}
function submitAjax() {
  var use_ajax=document.getElementById("use_ajax");
  if (!xmlHttp || (!use_ajax || !use_ajax.checked)) {
    submit=1;
    return true;
  } else {
    runAjax();
    return false;
  }
}

function focusInput() {
  var output=document.getElementById("mudbox");
  if (output) {
     output.scrollTop=output.scrollHeight;
  }
  window.scrollBy(0,100000); 
  if (document.getElementById("eingabe")) {
    document.getElementById("eingabe").value=""; 
    document.getElementById("eingabe").focus(); 
  }
}

function newLines() { 
  var eingabe=document.getElementById("eingabe");
  var refresh=document.getElementById("refresh");
  if (eingabe && eingabe.value=="" && refresh && refresh.checked) {
    if (submitAjax()) {
      document.inputform.submit();
      submit=1;
    }
  }
}

function refreshTime() {
  if (refreshTimer)
     window.clearInterval(refreshTimer);
  var times=document.getElementById('refresh_time');
  refreshTimer=window.setInterval("newLines()",1000*(times ? times.value : 10));
}

var xmlHttp = false;

function createAjax() {
  var xmlHttp=false;
  /* Create a new XMLHttpRequest object to talk to the Web server */
  /*@cc_on @*/
  /*@if (@_jscript_version >= 5)
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}
@end @*/

  if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
  }
  return xmlHttp;
}
function setInput(value) {
    document.getElementById("eingabe").value=value;
}

function submitButtonAjax(value) {
  if (!value) return;
  if (xmlHttp && document.getElementById("use_ajax").checked) {
	setInput(value);
    //   runAjax();
  }
}
function submitOrAjax(value) {
  if (value) {
    document.getElementById("eingabe").value=value;
  }
  if (submitAjax()) {
    document.inputform.submit();
    submit=1;
  }
}
function runAjax() {
  if (!xmlHttp) {
    return;
  }
  xmlHttp=createAjax();
  // Open a connection to the server
  xmlHttp.open("POST", "TelnetBrowser.pl", true);
  xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  // Setup a function for the server to run when it's done
  xmlHttp.onreadystatechange = returnAjax;

  var value=document.getElementById("eingabe").value;
  // Send the request
  var params="ajax=1&session="+encodeURIComponent(document.getElementById("session").value)+"&eingabe="+encodeURIComponent(value);
  // alert(params);
  xmlHttp.send(params);  
}
/*
function returnPing() {
   window.status="returnPing";
}
*/
var pingCount=0;

function runPing() {
  pingCount++;
  var ping=createAjax();
  if (!ping) return;
  ping.open("POST", "TelnetBrowser.pl", true);
  ping.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  var session=document.getElementById("session");
  if (!session) return;
  var params="ping=1&session="+encodeURIComponent(session.value);
  window.status="Ping "+pingCount;
  ping.send(params);  
  // ping.onreadystatechange = returnPing;
}

function returnAjax() {
  if (xmlHttp && xmlHttp.readyState == 4) {
    var response=xmlHttp.responseText;
    var promptPos=response.search(/[^\n\r]+?$/);
    if (promptPos>-1) {
      var prompt=response.slice(promptPos);
      document.getElementById("prompt").innerHTML=prompt;
      document.getElementById("mudbox").innerHTML+=response.slice(0,promptPos);
    } else {
      document.getElementById("mudbox").innerHTML+=response;
    }
    
    focusInput();
  }
}

