var jsonP = {

  loadData: function(url, callback)
  {
    var scriptID = 'jsonp' + Math.floor(Math.random() * 10001);
    url += ((url.indexOf('?') < 0) ? '?callback=jsonP.' : '&callback=jsonP.') + scriptID;
    var script = jsonP.createScriptTag(url);
    jsonP[scriptID] = function(response)
    {
      if (response.ResponseStatus == 200)
      { callback(response.ResponseData); }
      jsonP[scriptID] = null;
      document.getElementsByTagName("head")[0].removeChild(script);
    };
    document.getElementsByTagName("head")[0].appendChild(script);
  },

  createScriptTag: function(url)
  {
    var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', url);
    return script;
  }
};
function getElementsByClassName(node, classname)
{
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
    {
      if(re.test(els[i].className))
      {
        a.push(els[i]);
      }
    }
    return a;
}

var TemplatedDialogue = {
  Show_PostLogin: function(){}
};

var LoginControl =
{
  containerName: "login_container",
  Show: function()
  {
    var retURL = window.location.href.replace(/\/+$/, '').replace('http://', '');
    window.location = 'http://realestock.com/auth.aspx?returnurl=' + retURL + '&action=auth';
  },
  Logout: function()
  {
    jsonP.loadData('http://realestock.com/webservices/cmaeon/realestate/auth.asmx/UnauthenticateExternal', LoginControl.onUnauthResponded);
  },
  onUnauthResponded: function(data)
  {
    LoginControl.getLoginPanel();
  },
  getLoginPanel: function()
  {
    if (document.getElementById(LoginControl.containerName))
    { jsonP.loadData('http://realestock.com/framework/GetLoginPanelExternal.htm', LoginControl.getLoginPanelResponded); }
  },
  getLoginPanelResponded: function(data)
  {
    if (!data) { return; }
    var div = document.getElementById(LoginControl.containerName);
    //IE is stetarded
    div.innerHTML = LoginControl.unescapeHtml(data.html);
    
    var loadedSubnav = getElementsByClassName(div, 'sub-nav');
    if (loadedSubnav.length)
    {
      document.getElementById('sub-nav').innerHTML = loadedSubnav[0].innerHTML;
    }

    if (window.customGetLoginPanelResponded) { window.customGetLoginPanelResponded(data); }
  },
  unescapeHtml: function(html)
  {
    var temp = document.createElement("div");
    temp.innerHTML = html;
    var result = temp.childNodes[0].nodeValue;
    temp.removeChild(temp.firstChild);
    return result;
  }
};

setTimeout(LoginControl.getLoginPanel, 500);

