var req = false;
var locale = "";
var warrior = "";

function fnGetLanguageXML(lang) {
	locale = lang;
	var url = "data/" + locale + ".xml";

	req = false;
	// branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = fnProcessReqChange;
        req.open("GET", url);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = fnProcessReqChange;
            req.open("GET", url);
            req.send();
        } else {
			req = new ActiveXObject("Msxml2.XMLHTTP");
			if (req) {
				req.onreadystatechange = fnProcessReqChange;
				req.open("GET", url);
				req.send();
			}
		}
  }
}

function fnProcessReqChange()
{
  // only if req shows "complete"
  if (req.readyState == 4) {
    // only if "OK"
    if (req.status == 200) {
      // ...processing statements go here...
      var xmlDoc = req.responseXML;
      var stringsXMLNode = xmlDoc.getElementsByTagName("strings")[0];
      var i;
      var j;
      var stringID;
      var stringValue;
      var legalText = "";
      var firstLetter = "";
      var characterProfileText = new Array();
      var overviewText;
      var stringValueSplit;
      var currentString = "";
      var testString;
      var firstCharacter = "";
      var removePlanetDetail = false;

      for (i = 0; i < stringsXMLNode.childNodes.length; i++) {
        stringID = stringsXMLNode.childNodes[i].nodeName;

        try {
          // set document strings by id
          stringValue = stringsXMLNode.childNodes[i].childNodes[0].nodeValue;

          if (stringID == "CreatureName__" + warrior && document.getElementById(stringID)) {
            // creature detail header
            document.getElementById(stringID).innerHTML = stringValue
                + document.getElementById(stringID).innerHTML;

          }
          else if (document.getElementById(stringID + "FirstLetter")) {
            if (stringValue.indexOf("<strong>") == 0) {
              firstCharacter = stringValue.charAt(8);
              stringValue = "<strong>" + stringValue.substr(9);
            }
            else {
              firstCharacter = stringValue.charAt(0);
              stringValue = stringValue.substr(1);
            }
            document.getElementById(stringID + "FirstLetter").innerHTML = firstCharacter;
            document.getElementById(stringID).innerHTML = stringValue;

          }
          else if (stringID == "FooterEALink") {
            try {
              document.getElementById(stringID).setAttribute("href", stringValue);
            }
            catch (e) {}
          }
          else if (document.getElementById(stringID)) {
            // default strings
            document.getElementById(stringID).innerHTML = stringsXMLNode.childNodes[i].childNodes[0].nodeValue;

            if (document.getElementById(stringID + "_copy")) {
              document.getElementById(stringID + "_copy").innerHTML = stringsXMLNode.childNodes[i].childNodes[0].nodeValue;
            }

            var duplicateIndex = 2;

            while (document.getElementById(stringID + "_copy" + duplicateIndex)) {
              document.getElementById(stringID + "_copy" + duplicateIndex).innerHTML = stringsXMLNode.childNodes[i].childNodes[0].nodeValue;
              duplicateIndex++;
            }

            if (stringID == "Promotional_Text" && locale == "en_us") {
              if (document.getElementById("ds_homepage_promo")) {
                if (stringValue.length == 0) {
                  document.getElementById("ds_homepage_promo").style.visibility = "hidden";
                }
                else {
                  document.getElementById("ds_homepage_promo").style.visibility = "visible";
                }
              }
            }

            if (stringID == "PlanetDescriptionTitle") {
              if (stringValue.length == 0) {
                removePlanetDetail = true;
              }
            }
            if (stringID == "PlanetGameplayTitle") {
              if (stringValue.length == 0) {
                removePlanetDetail = true;
              }
            }
          }

        }
        catch (e) {
        }
      }
      // planet map data
      try {
        if (document.getElementById("ds_map_container")) {
          var planetLinks =
            document.getElementById("ds_map_container").getElementsByTagName("div");

          for ( var k = 0; k < planetLinks.length; k++) {
            document.getElementById("ds_map_planet_name_" + k).innerHTML =
              stringsXMLNode.getElementsByTagName("PlanetName" + k)[0].childNodes[0].nodeValue;
          }
        }
      }
      catch (e) {
      }

      try {
        if (removePlanetDetail) {
          document.getElementById("PlanetDescriptionHeader").innerHTML = "";
          document.getElementById("PlanetGamePlay").innerHTML = "";
        }
      }
      catch (e) {
      }

    }
    else {
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
    }

    fnAdjustPage();
  }
}
