var locationHeader = '';

function updateContent(command, arguments, targetDiv) {
  /* alert('Calling: ' + locationHeader + command + '(' + arguments + ') to update <div id="' + targetDiv + '">'); */
  var xmlhttp = false;

  try {
    xmlhttp = new XMLHttpRequest();
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Msxml3.XMLHTTP"); 
      } catch (e) {
        try {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        } catch (e) {
          xmlhttp = null;
        }
      }
    }
  }

  if (xmlhttp) {
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4) {
        var response = xmlhttp.responseText;
        /* alert('Response: ' + response); */
        var strLen = response.length;
        var sbstrStart = response.indexOf('<', sbstrStart);
        if (sbstrStart >= 0) {
          while (sbstrStart < strLen) {
            var startIndex = response.indexOf('<', sbstrStart);
            if (startIndex == sbstrStart) {
              startIndex++;
              var endIndex = response.indexOf('>', startIndex);
              if (endIndex > startIndex) {
                targetDiv = response.substring(startIndex, endIndex);
                endIndex++;
                var lastIndex = response.indexOf('</' + targetDiv + '>', endIndex);
                if (lastIndex >= endIndex) {
                  if (targetDiv == 'errorDiv') {
                    alert('*** ERROR ***\n' + response.substring(endIndex, lastIndex));
                  } else if (targetDiv == 'javascript') {
                    /* alert('Evaluating ' + response.substring(endIndex, lastIndex)); */
                    var scrpt;
                    script = document.getElementById('dynamicScript');
                    if (script && script.type && script.type == 'text/javascript') {
                      /* alert('Replacing dynamicScript '); */
                      document.getElementsByTagName("head")[0].removeChild(script);
                    }
                    script = document.createElement('script');
                    script.id = 'dynamicScript';
                    script.type = 'text/javascript';
                    script.text = response.substring(endIndex, lastIndex);
                    document.getElementsByTagName("head")[0].appendChild(script);
                  } else {
                    /* alert('Setting ' + targetDiv + ' to ' + response.substring(endIndex, lastIndex)); */
                    document.getElementById(targetDiv).innerHTML = response.substring(endIndex, lastIndex);
                  }
                  sbstrStart = response.indexOf('<', lastIndex+1);
                  if (sbstrStart < 0) {
                    sbstrStart = strLen;
                  } 
                } else {
                  sbstrStart = strLen;
                }
              } else {
                sbstrStart = strLen;
              }
            } else {
              sbstrStart = strLen;
            }
          }
        }
      }
    }
    var extra = '';
    if (document.getElementById('not_used_yet')) {
      extra = '&extra=' + document.getElementById('not_used_yet').innerHTML;
    }
    /* alert('Posting: ' + locationHeader + command + '.php?targetDiv='+ targetDiv + extra + arguments); */
    xmlhttp.open('post', locationHeader + command + '.php?targetDiv='+ targetDiv + extra + arguments);
    xmlhttp.send(null);
  } else {
    alert('Browser does not support AJAX applications');
  }
}

function leaving() {
  if (document.getElementById('footer-left')) {
    document.getElementById('footer-left').innerHtml="<div></div>";
  }
}

function obfuscate(wList) {
  var pList = 'LzRi';
             /*00000000001111111111222222222233333333334444444444555555555566666666667777777777888*/ /* no # ? & + = \ ` ' " < > */
             /*01234567890123456789012345678901234567890123456789012345678901234567890123456789012*/
  var aList = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@.!_-$*%~|;:,/^()[]{}';
  var wLen = wList.length;
  var pLen = pList.length;
  var aLen = aList.length;

  var newWord = '';
  var j = 0;
  for (var i=0; i<wLen; i++) {
    var kw = aList.indexOf(wList.charAt(i));
    if (kw < 0) {
      return '';
    }

    var kp = aList.indexOf(pList.charAt(j));
    if (kp < 0) {
      return '';
    }
    j++;
    if (j == pLen) {
      j = 0;
    }

    var kn = kw + kp;
    if (kn >= aLen) {
      kn = kn - aLen;
    }

    newWord = newWord + aList.charAt(kn);
  }

  return newWord;
}

function updatePerson(who) {
  updateContent('getMenu', '&fileID=' + who.toLowerCase(), 'menu');
  updateContent('getBlog', '&who=' + obfuscate(who) + '&post=0', 'content');
}

function updateHome() {
  updateContent('getMenu', '&fileID=main', 'menu');
  updateContent('getContent', '&requester=Main', 'content');
}

function updateLZRI() {
  updateContent('getMenu', '&fileID=lzri', 'menu');
  updateContent('getRecentBlogs', '', 'content');
}

function setLocationHeader(hdr) {
  locationHeader = hdr;
}

function playSound(fileName) {
  document.getElementById('soundDiv').innerHTML = '<embed src="ears/' + fileName +
   '" width="100" height="30" autoplay="true" controller="true" loop="false" volume="60"></embed>';
}
