﻿function Content_Nav(dist)
{
  if( HF_TabIndex.value == "0" )
  {
    if(dist < 0)
    { Page_PrevPage(); }
    else
    { Page_NextPage(); }
  }
  else if( HF_TabIndex.value == "1" )
  { Sura_Change(parseInt(HF_SuraState.value)+dist); }
}

function Sura_Change(sura)
{
  if(sura < 1 || sura > 114)
  { return; }
  
  highlightSuraFlyout(sura);
  
  handleFlyout(OQP_Flyout_Sura,1,0,90,0);
  
  if(HF_SuraState.value != sura+"")
  {
    blockOQP(true);
    pageWasTrigger = false;
    
    HF_SuraState.value = sura;
    HF_AyaState.value = 0;
    DDL_OQP_Aya.selectedIndex = 0;
    
    HF_ContentUpdate.value = "update";
    HF_ContentType.value = "trans";
    HF_UpdateTrigger.value = "link";
    
    var tmp = suramap[parseInt(sura)-1];
    var i; var tmp2;
    for(i = 0; i < pagemap.length; i++)
    {
      tmp2 = pagemap[i];
      
      if( tmp < tmp2 )
      {
        i--;
        break;
      }
    }
    
    if( HF_TabIndex.value == "0" )
    {
      isTabLoaded[1] = 0; HF_AyaHighlightState2.value = "";
      
      if(HF_PageState.value != ((i+1)+""))
      {
        suppressLoad = false;
        
        TB_OQP_PageSelect.value = i+1;
        HF_PageState.value = i+1;
        
        HF_AyaHighlightState.value = "";
      }
      else
      { suppressLoad = true; }
      
      HF_AyaState.value = 1;
    }
    else if( HF_TabIndex.value == "1" )
    {
      HF_AyaHighlightState2.value = "";
      t_OQP_Contentnav.rows[0].cells[3].innerHTML = sura;
      
      if(HF_PageState.value == (i+""))
      {
        if( isTabLoaded[0] == 1 )
        { isTabLoaded[0] = 2; }
      }
      else
      { isTabLoaded[0] = 0; HF_AyaHighlightState.value = ""; }
    }
    
    protectPage = false;
    
    loadStateIntoUrl();
  }
}
function highlightSuraFlyout(sura)
{
  var tmp;
  if(selectedsuraindex != -1)
  {
    tmp = OQP_Flyout_Sura_Content.childNodes[0 + 1*hack_offset].childNodes[hack_offset].childNodes[hack_offset].rows[(selectedsuraindex%38)].cells[parseInt(selectedsuraindex/38)];
    tmp.style.color = "#DDDDDD";
    tmp.style.fontWeight = "normal";
    
    tmp = OQP_Flyout_Sura_Content.childNodes[1 + 2*hack_offset].childNodes[hack_offset].childNodes[hack_offset].rows[(selectedsuraindex%38)].cells[parseInt(selectedsuraindex/38)];
    tmp.style.color = "#DDDDDD";
    tmp.style.fontWeight = "normal";
    
    tmp = OQP_Flyout_Sura_Content.childNodes[2 + 3*hack_offset].childNodes[hack_offset].childNodes[hack_offset].rows[(selectedsuraindex%38)].cells[parseInt(selectedsuraindex/38)];
    tmp.style.color = "#DDDDDD";
    tmp.style.fontWeight = "normal";
  }
  
  sura--;
  
  tmp = OQP_Flyout_Sura_Content.childNodes[0 + 1*hack_offset].childNodes[hack_offset].childNodes[hack_offset].rows[(sura%38)].cells[parseInt(sura/38)];
  tmp.style.color = "#FFBC3F";
  tmp.style.fontWeight = "900";

  tmp = OQP_Flyout_Sura_Content.childNodes[1 + 2*hack_offset].childNodes[hack_offset].childNodes[hack_offset].rows[(sura%38)].cells[parseInt(sura/38)];
  tmp.style.color = "#FFBC3F";
  tmp.style.fontWeight = "900";

  tmp = OQP_Flyout_Sura_Content.childNodes[2 + 3*hack_offset].childNodes[hack_offset].childNodes[hack_offset].rows[(sura%38)].cells[parseInt(sura/38)];
  tmp.style.color = "#FFBC3F";
  tmp.style.fontWeight = "900";

  selectedsuraindex = sura;
}

function Aya_Change()
{
  HF_UpdateTrigger.value = "";
  
  if( HF_TabIndex.value == "0" )
  {
    var tmp = DDL_OQP_Aya.value.split(" ");
    HF_AyaState.value = parseInt(tmp[0]);
    
    if( tmp.length == 2 )
    {
      b_oqp_sura.value = t_OQP_SuraSelection_Local.rows[((tmp[1]-1)%38)].cells[parseInt((tmp[1]-1)/38)].innerHTML;
      if( HF_SuraState.value != (tmp[1]+"") )
      { isTabLoaded[1] = 0; HF_AyaHighlightState2.value = ""; }
      HF_SuraState.value = tmp[1];
    }
  }
  else
  {
    HF_AyaState.value = DDL_OQP_Aya2.selectedIndex;
    
    var tmp = parseInt(HF_SuraState.value)-1;
    var tmp2 = suramap[tmp] + DDL_OQP_Aya2.selectedIndex - 1;
    var tmp3 = parseInt(HF_PageState.value)-1;
    tmp = 0;
    
    if( tmp2 >= pagemap[tmp3] && tmp2 < pagemap[tmp3+1] )
    {
      while(tmp < DDL_OQP_Aya.options.length)
      {
        if( DDL_OQP_Aya.options[tmp].value == HF_AyaState.value + " " + HF_SuraState.value )
        { DDL_OQP_Aya.selectedIndex = tmp; break; }
        tmp++;
      }
    }
    else
    {
      isTabLoaded[0] = 0;
      HF_AyaHighlightState.value = "";
      
      for(var i = 0; i < pagemap.length; i++)
      {
        if( tmp2 < pagemap[i] )
        {
          if(DDL_OQP_Aya2.selectedIndex == 0)
          { i++; }
          TB_OQP_PageSelect.value = i;
          HF_PageState.value = i;
          break;
        }
      }
    }
  }
  
  highlightAya();
  updateTitle();
  
  loadStateIntoUrl();
}
function highlightAya()
{
  var tabindex = parseInt(HF_TabIndex.value);
  if(tabindex != 2)
  {
    var cellindex = hack_offset + tabindex*(1+hack_offset);
    
    var sura = parseInt(HF_SuraState.value)-1;
    var aya = parseInt(HF_AyaState.value)-1;
    var page = parseInt(HF_PageState.value)-1;
    
    var topAya;
    var prevHighlight;
    if( tabindex == 0 )
    {
      topAya = pagemap[page];
      prevHighlight = HF_AyaHighlightState;
    }
    else if( tabindex == 1 )
    {
      topAya = suramap[sura];
      prevHighlight = HF_AyaHighlightState2;
    }
    
    var prevHighlightIndex;
    var prevHighlightColor;
    
    if( prevHighlight.value == "" )
    {
      prevHighlightIndex = "na";
      prevHighlightColor = "na"
    }
    else
    {
      var tmp2 = prevHighlight.value.split("$");
      prevHighlightIndex = tmp2[0];
      prevHighlightColor = colorToHex(tmp2[1]);
    }
    
    var aya_index;
    var tmp;
    if(HF_ContentFormat.value == "rows")
    {
      var contenttable = OQP_Text.childNodes[cellindex].childNodes[hack_offset].childNodes[hack_offset].childNodes[hack_offset];
      
      if(!isNaN(prevHighlightIndex))
      {
        contenttable.rows[prevHighlightIndex].style.backgroundColor = prevHighlightColor;
      }
      
      if( aya > -1 )
      {
        tmp = suraOffset(topAya,sura,suramap[sura] + aya);
        prevHighlight.value = tmp + "$" + contenttable.rows[tmp].style.backgroundColor;
        
        contenttable.rows[tmp].style.backgroundColor = "#BFDEFF";
        OQP_Text_scrollbar.scrollTo(0,contenttable.rows[tmp].cells[0].offsetTop);
        //contenttable.rows[tmp].cells[0].scrollIntoView(true);
      }
      else
      {
        tmp = suraOffset(topAya,sura,suramap[sura]);
        if( tmp < 0 )
        { tmp = 0; }
        else
        { tmp--; }
        OQP_Text_scrollbar.scrollTo(0,contenttable.rows[tmp].cells[0].offsetTop);
        //contenttable.rows[tmp].cells[0].scrollIntoView(true);
        prevHighlight.value = "";
      }
    }
    else
    {
      var contentlist = OQP_Text.childNodes[cellindex].childNodes[hack_offset].childNodes[hack_offset].childNodes[hack_offset].rows[0];
      
      if(!isNaN(prevHighlightIndex))
      {
        contentlist.cells[0].childNodes[prevHighlightIndex].style.backgroundColor = "Transparent";
        if( CBL_Show1.checked && CBL_Show2.checked )
        { contentlist.cells[1].childNodes[prevHighlightIndex].style.backgroundColor = "Transparent"; }
      }
      
      if( aya > -1 )
      {
        tmp = suraOffset(topAya,sura,suramap[sura] + aya);
        prevHighlight.value = tmp + "$" + contentlist.cells[0].childNodes[tmp].style.backgroundColor;
        
        contentlist.cells[0].childNodes[tmp].style.backgroundColor = "#BFDEFF";
        if( CBL_Show1.checked && CBL_Show2.checked )
        { contentlist.cells[1].childNodes[tmp].style.backgroundColor = "#BFDEFF"; }
        
        OQP_Text_scrollbar.scrollTo(0,contentlist.cells[0].childNodes[tmp].offsetTop);
        //contentlist.cells[0].childNodes[tmp].scrollIntoView(true);
      }
      else
      {
        tmp = suraOffset(topAya,sura,suramap[sura]);
        if( tmp < 0 )
        { tmp = 0; }
        else
        { tmp--; }
        OQP_Text_scrollbar.scrollTo(0,contentlist.cells[0].childNodes[tmp].offsetTop);
        //contentlist.cells[0].childNodes[tmp].scrollIntoView(true);
        prevHighlight.value = "";
      }
    }
  }
}
function suraOffset(top,sura,aya)
{
  if(top > suramap[sura])
  { return aya - top; }
  
  var offset = 0;
  for(var i = 0; i < 4 && sura > -1; i++)
  {
    if(top <= suramap[sura])
    {
      offset++;
      sura--;
    }
    else
    { break; }
  }
  
  return offset + aya - top;
}

function Page_NextPage()
{ Page_Change(1); }
function Page_PrevPage()
{ Page_Change(-1); }
function Page_Change(dist)
{
  var tmp = parseInt(TB_OQP_PageSelect.value) + dist;
  
  if( isNaN(tmp) || tmp < 1 || tmp > 604 )
  {
    TB_OQP_PageSelect.value = HF_PageState.value;
    return;
  }
  
  if(HF_PageState.value != (tmp+""))
  {
    blockOQP(true);
    pageWasTrigger = true;
    TB_OQP_PageSelect.value = tmp;
    HF_PageState.value = tmp;
    
    var i = 0;
    var tmp55 = tmp;
    tmp = pagemap[tmp-1];
    for(; i < suramap.length-1; i++)
    {
      tmp2 = suramap[i];
    
      if( tmp < tmp2 )
      {
        HF_AyaState.value = (pagemap[tmp55-1] - suramap[i-1]+1);
        break;
      }
    }
    
    HF_ContentUpdate.value = "update";
    HF_ContentType.value = "trans";
    HF_UpdateTrigger.value = "link";
    
    if( HF_TabIndex.value == "0" )
    {
      t_OQP_Contentnav.rows[0].cells[3].innerHTML = HF_PageState.value;
      
      if(HF_SuraState.value == (i+""))
      {
        if( isTabLoaded[1] >= 1 )
        { isTabLoaded[1] = 2; }
      }
      else
      { isTabLoaded[1] = 0; HF_AyaHighlightState2.value = ""; }
      
      HF_SuraState.value = i;
      HF_AyaHighlightState.value = "";
      forceLoad = true;
    }
    else if( HF_TabIndex.value == "1" )
    {
      isTabLoaded[0] = 0; HF_AyaHighlightState.value = "";
      
      if(HF_SuraState.value != (i+""))
      {
        suppressLoad = false;
        HF_AyaHighlightState2.value = "";
        HF_SuraState.value = i;
      }
      else
      {
        suppressLoad = true;
      }
    }
    
    b_oqp_nextpage.disabled = (HF_PageState.value == "604");
    b_oqp_prevpage.disabled = (HF_PageState.value == "1");
    
    protectPage = true;
    
    updateTitle();
    
    loadStateIntoUrl();
  }
}

function Trans_Change()
{
  var count = 0;
  HF_TransState.value = "";
  var tmp;
  var header;
  for(var i = 1; i < t_OQP_Flyout_Trans_Overview.rows.length; i++)
  {
    tmp = t_OQP_Flyout_Trans_Overview.rows[i].className;
    if(tmp != "" && tmp != null )
    {
      header = t_OQP_Flyout_Trans_Overview.rows[i].cells[1].innerHTML;
      i++;
    }
    else
    {
      if( t_OQP_Flyout_Trans_Overview.rows[i].cells[0].childNodes[0].checked )
      {
        count++;
        HF_TransState.value += header + ": " + t_OQP_Flyout_Trans_Overview.rows[i].cells[1].innerHTML + "%" + t_OQP_Flyout_Trans_Overview.rows[i].cells[3].innerHTML + ",";
        if(count == 5)
        { break; }
      }
    }
  }
  
  handleFlyout(OQP_Flyout_Trans,1,0,90,0);
  
  loadStateIntoUrl();
}

function DDL_Arabic_Show_Change()
{
  blockOQP(true);
  HF_ContentUpdate.value = "update";
  HF_ContentType.value = "trans";
  HF_UpdateTrigger.value = "link"
  
  HF_UthmaIsOrig.value = (DDL_ShowArabic.selectedIndex < 5);
  
  HF_AyaHighlightState.value = "";
  HF_AyaHighlightState2.value = "";
  
  loadStateIntoUrl();
}
function RBL_Show_Trans()
{
  blockOQP(true);
  if( !CBL_Show1.checked && !CBL_Show2.checked )
  { CBL_Show2.checked = true; }
  
  if( CBL_Show2.checked )
  { DDL_ShowArabic.disabled = false; }
  else
  { DDL_ShowArabic.disabled = true; }
  
  HF_ContentUpdate.value = "update";
  HF_ContentType.value = "trans";
  HF_UpdateTrigger.value = "link"
  
  HF_AyaHighlightState.value = "";
  HF_AyaHighlightState2.value = "";
  
  loadStateIntoUrl();
}
function RBL_Show_Arabic()
{
  blockOQP(true);
  if( !CBL_Show1.checked && !CBL_Show2.checked )
  { CBL_Show1.checked = true; }
  
  if( CBL_Show2.checked )
  { DDL_ShowArabic.disabled = false; }
  else
  { DDL_ShowArabic.disabled = true; }
  
  HF_ContentUpdate.value = "update";
  HF_ContentType.value = "trans";
  HF_UpdateTrigger.value = "link"
  
  HF_AyaHighlightState.value = "";
  HF_AyaHighlightState2.value = "";
  
  loadStateIntoUrl();
}

