﻿function getContent()
{
  var url = " ";
  var href = location.href.replace("%23","#");
  if(href.split('#&&').length == 1)
  {
    /// Handle anchor-less url ///
    if( HF_LastState.value == "" )
    {
      /// Load default url ///
      url = href + '#&&' + HF_DefaultState.value;
    }
    else
    {
      /// Restore lost url (due to language change) ///
      var tmp = href.split('?x=y#&&');
      if(tmp.length == 1)
      { url = href + '#&&' + HF_LastState.value; }
      else
      { url = href + HF_LastState.value; }
    }
    
    location.replace(url);
    loadAddress(url);
    
    enableUrlPoll = true;
    checkAddress("",url);
    //////////////////////////////
  }
  else
  {
    /// Handle unique url ///
    HF_UpdateTrigger.value = "link";
    checkAddress(url,href);
  }
}

function checkAddress(prevurl, newurl)
{
  if(enableUrlPoll)
  {
    /// Poll url for changes ///
    if( prevurl != newurl )
    {
      /// Url-change detected ///
      var list = newurl.split('#');
      if( list.length == 1 || list[1] == "" )
      {
        /// Anchor was cleared. Load default url ///
        location.replace(list[0] + '#&&' + HF_DefaultState.value); newurl = location.href;
      }
      else
      {
        var tmp = list[0].split('?x=y'); 
        if( tmp.length == 1 )
        { location.replace(list[0] + '?x=y#' + list[1]); newurl = location.href; }
      }
      
      if(HF_UpdateTrigger.value == "link")
      {
        /// Load url ///
        loadAddress(newurl);
      }
      else
      {
        /// Detected url-change was not caused by address-editing ///
        HF_UpdateTrigger.value = "link";
      }
      setTimeout ( "checkAddress(\'" + newurl + "\',\'" + newurl + "\')", 200);
    }
    else if( forceLoad )
    {
      /// Tabchange, pagechange, formatchange triggers a load ///
      forceLoad = false;
      HF_UpdateTrigger.value = "link";
      newurl = location.href.replace("%23","#");
      loadAddress(newurl);
      
      setTimeout ( "checkAddress(\'" + newurl + "\',\'" + newurl + "\')", 200);
    }
    else
    { setTimeout ( "checkAddress(\'" + newurl + "\',\'" + location.href.replace("%23","#") + "\')", 200); }
  }
  else
  {
    /// Postpone url-poll ///
    setTimeout ( "checkAddress(\'" + prevurl + "\',\'" + newurl + "\')", 200);
  }
}

function loadAddress(url)
{
  enableOQP(true);
  
  if( !suppressLoad )
  {
    HF_ContentUpdate.value = "update";
    HF_ContentType.value = "trans";
    if( HF_UpdateTrigger.value == "" )
    {
      HF_UpdateTrigger.value = "link";
    }
  }
  
  loadStateFromUrl(url);
  
  if(HF_TabIndex.value == "0")
  {
    t_OQP_Contentnav.rows[0].cells[3].innerHTML = HF_PageState.value;
    t_OQP_Contentnav.style.display = "block";
  }
  else if(HF_TabIndex.value == "1")
  {
    t_OQP_Contentnav.rows[0].cells[3].innerHTML = HF_SuraState.value;
    t_OQP_Contentnav.style.display = "block";
  }
  else
  {
    t_OQP_Contentnav.style.display = "none";
  }
  
  if (errorid == 0)
  {
    if( !suppressLoad )
    { setTimeout('__doPostBack(\'ctl00$HF_ContentUpdate\',\'\')', 0); }
    else
    { highlightAya(); blockOQP(false); }
  }
  else
  {
    handleBadURL();
    enableOQP(false);
    blockOQP(false);
  }
  
  suppressLoad = false;
}

function loadStateIntoUrl()
{
  var ayatag = HF_AyaState.value;
  if(ayatag == "0")
  { ayatag = ""; }
  else
  { ayatag = "&aya=" + ayatag; }
  
  var tmp = "";
  var translist = HF_TransState.value.split(',');
  for(var i = 0; i < translist.length-1; i++)
  { tmp += translist[i].split('%')[1] + ","; }
  tmp = tmp.substring(0,tmp.length-1);
  
  var tmp2 = "";
  var tmp3 = "";
  if( CBL_Show2.checked )
  {
    tmp2 = "arabic";
    for(var i = 0; i < DDL_ShowArabic.options.length; i++)
    {
      if ( DDL_ShowArabic.options[i].selected )
      {
        tmp3 = "," + DDL_ShowArabic.options[i].value;
        break;
      }
    }
    if(CBL_Show1.checked)
    { tmp2 = "both"; }
  }
  else
  { tmp2 = "trans"; }
  
  var list = location.href.replace("%23","#").split('#');
  location.replace(list[0] + '#&&'
    + 'sura=' + (HF_SuraState.value)
    + ayatag
    + "&trans=" + tmp
    + "&show=" + tmp2 + tmp3
    + "&ver=2.00");
}

function loadStateFromUrl(url)
{
  url = url.split('#&&');
  if( url.length == 1 )
  {
    url = url.split('#&');
    if( url.length == 1 )
    { errorid = 11; return; }
    else
    { errorid = 10; return; }
  }
  
  var taglist = url[1].split('&');
  statemap = new Array();
  var pairs;
  for ( var i = 0; i < taglist.length; i++)
  {
    pairs = taglist[i].split('=');
    var found = false;
    for(var j = 0; j < checklist.length;j++)
    {
      if( pairs[0] == checklist[j] )
      {
        found = true;
        statemap[pairs[0]] = pairs[1];
        break;
      }
    }
      
    if(!found)
    {
      if( statemap[pairs[0]] == "" )
      { statemap[pairs[0]] = null; }
      
      errorid = 12; return;
    }
  }
  
  if(statemap["ver"] != null && statemap["ver"] != "")
  {
    if(statemap["ver"] == '1.00' )
    {
      stateLoaderVer_1_00();
    }
    else if(statemap["ver"] == '2.00' )
    {
      stateLoaderVer_2_00();
    }
    else
    {
      errorid = 13;
    }
  }
  else
  {
    statemap["ver"] = '2.00';
    stateLoaderVer_2_00();
  }
  
  return;
}
