// Browser detection.
var ie = false;
var moz = false;
var opera = false;
var safari = false;
var mac = false;
if (document.all) {
  ie = true;
} else if (document.implementation.hasFeature("Events", "2.0")) {
  if (navigator.userAgent.indexOf("Opera") != -1) {
    opera = true;
  } else if (navigator.userAgent.indexOf("Safari") != -1) {
    safari = true;
  } else {
    moz = true;
  }
  if (navigator.userAgent.indexOf("Macintosh") != -1) {
    mac = true;
  }
}
String.prototype.startsWith = function(s) { return this.indexOf(s)==0; }
function textCounter(field, remainderbox, maxlimit) {
  if (field.value.length > maxlimit) {
    field.value = field.value.substring(0, maxlimit);
  } else {
    var rchars = maxlimit - field.value.length;
    document.getElementById(remainderbox).innerHTML = rchars;
  }
}
function toggle(myID) {
  if (document.getElementById(myID).style.display == "none") {
    document.getElementById(myID).style.display = "";
  } else {
    document.getElementById(myID).style.display = "none";
  }
}
function toggleHide(panel, control, hidetext, showtext) {
   $("#" + panel).slideToggle("fast");
   if (document.getElementById(control).innerHTML == hidetext) {
     document.getElementById(control).innerHTML = showtext;
   } else {
     document.getElementById(control).innerHTML = hidetext;
   }
}
function toggleHelp(panel) {
   $("#" + panel).slideToggle("fast");
}
function flip(control, panel) {
   var pane = document.getElementById(panel);
   var button = document.getElementById(control);
   $("#" + panel).slideToggle("fast");
   if (button.className == "disabled") { 
     button.className = "";
     button.disabled = false;
   } else {
     button.className = "disabled";
     button.disabled = true;
   }
}
function sRow(rowID, oclass) {
  var r = document.getElementById(rowID);
  if (!r) return;
  r.className = oclass;
}

function toggleCheck(formID, chkbox) {
  if (chkbox.checked == true) {
    checkAll(formID);
  } else {
    uncheckAll(formID);
  }
}

// Form/Checkbox Manipulation.
function checkAll(formID) {
  for (var i = 0; i < document.forms[formID].elements.length; i++) {
    if (document.forms[formID].elements[i].type == "checkbox") {
      document.forms[formID].elements[i].checked = true;
    }
  }
}

function uncheckAll(formID) {
  for (var i = 0; i < document.forms[formID].elements.length; i++) {
    if (document.forms[formID].elements[i].type == "checkbox") {
      document.forms[formID].elements[i].checked = false;
    }
  }
}

function showData(myID) {
  var o = document.getElementById(myID);
  if (o.style.display == "none") {
    o.style.display = "";
  } else {
    o.style.display = "none";
  }
}

function sd(myID) {
  $("#" + myID).slideToggle("fast");
}

function oc(myID) {
  $("#" + myID).slideToggle("fast");
}

function oce(myID) {
  $("#" + myID).slideToggle("fast");
  if (document.getElementById("extras-" + myID)) {
    $("#extras-" + myID).slideToggle("fast");
  }
}
function tp(myID) {
  $("#" + myID).slideToggle("fast");
  if (document.getElementById('extras-' + myID)) {
    $("#extras-" + myID).slideToggle("fast");
  }
  fixPlusIcon(myID);
}

function openPane(myID) {
  $("#" + myID).slideToggle("fast");
  fixPaneIcon(myID);
}
var currtab;
function switchTab(tab) {
  document.getElementById("master-" + currtab).className = "inactive";
  document.getElementById(currtab).style.display = "none";
  document.getElementById("master-" + tab).className = "active";
  document.getElementById(tab).style.display = "";
  currtab = tab;
  
}

function openPanel(myID) {
  var myURL = "/map/panel.do?panel=" + myID;
  openPane(myID);
  window.location = myURL;
}

function openPanelIcon(myID) {
  var myURL = "/map/panel.do?panel=" + myID;
  openPane(myID);
  fixPaneIcon(myID);
  window.location = myURL;
}
function close(paneID) {
  if (document.getElementById(paneID)) {
    document.getElementById(paneID).style.display = "none";
  }
}

function fixPaneIcon(myID) {
  if (!document.images) return;
  if (document.images['image-' + myID]) {
    if (document.images['image-' + myID].src == pO.src) {
      document.images['image-' + myID].src = pC.src;
    } else {
      document.images['image-' + myID].src = pO.src;
    }
  }
}
function fixPlusIcon(myID) {
  if (!document.images) return;
  if (document.images['image-' + myID]) {
    if (document.images['image-' + myID].src == pI.src) {
      document.images['image-' + myID].src = mI.src;
    } else {
      document.images['image-' + myID].src = pI.src;
    }
  }
}

function openPanelGet(myID, url) {
  if (!safari) {
    panelSlot(myID, url);
  }
  openPanel(myID);
}

function panelSlot(panelID, url) {
  if (moz) {
    var w = window.setTimeout('$("#' + panelID + '").load("' + url + '")', 1);
  } else {
    $("#" + panelID).load(url);
  }
}
function psCallBack(panelID, url, callback) {
  if (moz) {
    var w = window.setTimeout('$("#' + panelID + '").load("' + url + '", {}, ' + callback + ')', 1);
  } else {
    $("#" + panelID).load(url, {}, callback);
  }
}

// These do rollover highlights on the +/- symbols in the UI.
function pOn(myID) {
  if (!document.images) return;
  var o = document.getElementById(myID);
  var imageID = "image-" + myID;
  if (o.style.display == "") {
    document.images[imageID].src = mHI.src;
  } else {
    document.images[imageID].src = pHI.src;
  }
}
function pOff(myID) {
  if (!document.images) return;
  var o = document.getElementById(myID);
  var imageID = "image-" + myID;
  if (o.style.display == "") {
    document.images[imageID].src = mI.src;
  } else {
    document.images[imageID].src = pI.src;
  }
}
function closeMessages() {
  if (document.getElementById("errorbox")) {
    document.getElementById("errorbox").style.display = "none";
  }
  if (document.getElementById("resultsbox")) {
    document.getElementById("resultsbox").style.display = "none";
  }
}
function closeUHBox() {
  document.getElementById("uhbox").style.display = "none";
}
function ct(targetID) {
  var win = window.open("/characters/view.do?characterID=" + targetID, "profile");
}
function clickTarget(targetID) { return ct(targetID); }
function navIn(nav) {
  if (nav == "noNav") {
    document.getElementById("secondNav").innerHTML = "";
    document.getElementById("secondNav").style.display = "none";
  } else {
    document.getElementById("secondNav").innerHTML = document.getElementById(nav).innerHTML;
    document.getElementById("secondNav").style.display = "";
  }
  shownNav = nav;
}
function navOut(nav) {
  //document.getElementById(nav).style.display = "none";
  //document.getElementById(openNav).style.display = "";  
}
function subNavOut(nav) {
  document.getElementById(nav).style.display = "none";
  document.getElementById(openNav).style.display = "";  
  shownNav = openNav;
}

function setElement(element, value) {
  var myURL = "/map/context.do?e=" + element + "&v=" + value;
  window.location = myURL;
}
