function ChangeStateFromURL()
{
     var initialContent = window.location.hash;
     initialContent = initialContent.replace("#", ""); //remove the hash
     if(initialContent == "")
     {
          initialContent = "home";
     }
     // the contentURL and contentDiv variables must be set in the code of the page being loaded
     contentURL = contentURL + initialContent;
     contentURL = ChangeHTMLEntities(contentURL);
     changeDiv(contentURL, contentDiv);
}
function StringReplaceAll(stringToChange, subStringToFind, replacement)
{
     var intIndexOfMatch = 0;
     while (intIndexOfMatch != -1)
     {
          stringToChange = stringToChange.replace(subStringToFind, replacement);
          intIndexOfMatch = stringToChange.indexOf(subStringToFind);
     }
     return stringToChange;
}
function RemoveQuotes(stringToChange)
{
     stringToChange = StringReplaceAll(stringToChange, '&#039;', "");
     stringToChange = StringReplaceAll(stringToChange, '&#39;', "");
     stringToChange = StringReplaceAll(stringToChange, '&#034;', "");
     stringToChange = StringReplaceAll(stringToChange, '&#34;', "");
     stringToChange = StringReplaceAll(stringToChange, '&quot;', "");
     return stringToChange;
}
function ChangeHTMLEntities(stringToChange)
{
     stringToChange = StringReplaceAll(stringToChange, '&#038;', "&");
     stringToChange = StringReplaceAll(stringToChange, '&#38;', "&");
     stringToChange = StringReplaceAll(stringToChange, '&#039;', "\'");
     stringToChange = StringReplaceAll(stringToChange, '&#39;', "\'");
     stringToChange = StringReplaceAll(stringToChange, '&#034;', "\"");
     stringToChange = StringReplaceAll(stringToChange, '&#34;', "\"");
     stringToChange = StringReplaceAll(stringToChange, '&quot;', "\"");
     return stringToChange;
}
function changeDiv(url, target)
{
     xmlhttp=GetXmlHttpObject();
     if (xmlhttp==null)
     {
          alert ("Browser does not support HTTP Request");
          return;
     }
     xmlhttp.onreadystatechange = function() {stateChanged(url, target);};
     xmlhttp.open("GET",url,true);
     xmlhttp.send(null);
     document.getElementById(target).innerHTML="LOADING...";
}                               
function stateChanged(url, target)
{
     if (xmlhttp.readyState==4)
     {
          document.getElementById(target).innerHTML=xmlhttp.responseText;
          EmbedWave();
     }
}                               
function GetXmlHttpObject()
{
     if (window.XMLHttpRequest)
     {
          // code for IE7+, Firefox, Chrome, Opera, Safari
          return new XMLHttpRequest();
     }
     if (window.ActiveXObject)
     {
          // code for IE6, IE5
          return new ActiveXObject("Microsoft.XMLHTTP");
     }
     return null;
}
function EmbedWave(target)
{
     var waveDiv = document.getElementById('wave');
     var IE = /*@cc_on!@*/false; //this line best explained here -> http://devoracles.com/the-best-method-to-check-for-internet-explorer-in-javascript
     if(IE && waveDiv)
     {
          IEWarningHTML = '<FONT COLOR="#FF0000"><p><strong>Embedded Google Waves are not supported in Internet Explorer</strong></p></FONT>';
          IEWarningHTML = IEWarningHTML + '<p><strong>We recommend using one of these browsers:</strong></p>';
          IEWarningHTML = IEWarningHTML + '<p><a href="http://www.google.com/chrome" target="_blank"><img src="http://wave.google.com/useragent/browser_chrome.gif"/>GOOGLE CHROME</a></p>';
          IEWarningHTML = IEWarningHTML + '<p><a href="http://www.apple.com/safari/" target="_blank"><img src="http://wave.google.com/useragent/browser_safari.gif"/>SAFARI</a></p>';
          IEWarningHTML = IEWarningHTML + '<p><a href="http://www.mozilla.com/firefox/" target="_blank"><img src="http://wave.google.com/useragent/browser_firefox.gif"/>FIREFOX</a></p>';
          waveDiv.innerHTML = IEWarningHTML;
     }
     else if(waveDiv)
     {
          var waveID = waveDiv.innerHTML; //wave ID needs to be provided as the innerHTML in the DIV.
          waveDiv.innerHTML = '<p></p>';
          
          var embedOptions = {
              target: waveID,
              header: true,
              footer: true,
              toolbar: true,
              rootUrl: 'https://wave.google.com/wave/'
          }

          var wavePanel = new WavePanel(embedOptions);
          wavePanel.loadWave(waveID);
          wavePanel.setUIConfig("white", "black", "verdana", "12pt");
          wavePanel.init(waveDiv);
     }
}
