  // Fungující flash external api
  var obj_swf = null;
  function initFlashFigure()
  {
    if(document.getElementById && document.getElementById("flash_figure"))
    {
      obj_swf = document.getElementById("flash_figure");
    }
  }
  
  // Nastavení šoupání
  var polozky = {
    0: "polozka_1",
    1: "polozka_2",
    2: "polozka_3",
    3: "polozka_4",
    4: "polozka_5"
  };
  var mapa_adresy = {
    0: "#home",
    1: "#references",
    2: "#who_are_we",
    3: "#what_we_do",
    4: "#contact"
  };
  var mapa_adresy_zpet = Array();
    mapa_adresy_zpet[mapa_adresy[0]] = 0;
    mapa_adresy_zpet[mapa_adresy[1]] = 1;
    mapa_adresy_zpet[mapa_adresy[2]] = 2;
    mapa_adresy_zpet[mapa_adresy[3]] = 3;
    mapa_adresy_zpet[mapa_adresy[4]] = 4;
  var pozice_bg = {
    polozka_1: -1630,
    polozka_2: -2540,
    polozka_3: -3565,
    polozka_4: -4560,
    polozka_5: -6075
  };
  var x = 800;
  var pozice_prechodu = {
    pozice_1: -2085,
    pozice_2: -3052,
    pozice_3: -4062,
    pozice_4: -5317
  }
  var bg_width = 6800;
  var min_pozice = 0;
  var max_pozice = $(window).width() - bg_width;
  var pozice = 0;
  var cas_fade_in = 1000;
  var cas_fade_out = 500;
  var aktualni_stranka = null;
  var menu_animace = false;
  
// ONLOAD event
$(window).load(function()
{
  // Zjištění úvodní stránky
  var fragment = window.location.href;
  var i_start = 0;
  if(fragment.indexOf("#") != -1)
  {
    id = fragment.split("#");
    id = id[id.length-1];
    id = mapa_adresy_zpet["#" + id];
    i_start = id;
  }
  else
  {
    window.location.href = window.location.href + mapa_adresy[0];
  }

  // Reset fadeů 
  for(i in polozky)
  {
    $("#" + polozky[i] + " .stranka").fadeOut(0);
  } 
  $("#" + polozky[i_start] + " .stranka").fadeIn(0);

  // Init úvodní stránky
  id = i_start + 1;
  id = "polozka_" + id;
  pozice = find_bg_pozice(pozice_bg[id]);
  $("#polozka_menu_" + (i_start+1)).addClass("selected");
  aktualni_stranka = polozky[i_start];
  $("#bg").css("marginLeft", pozice + "px");

  initFlashFigure();
  if(obj_swf)
  {
    $("#move_hint").css("left", parseInt(($(window).width() / 2) + 60) + "px");
    $("#move_hint").fadeIn(500);
  }

  $("#loading_screen").fadeTo(0, 0.5); // IE hack
  $("#loading_screen").fadeOut(950);
  
  /* ukáže pozice přechodu
  y = 1;
  for(i in pozice_prechodu)
  {
    pozice = pozice_prechodu[i];
    pozice = Math.abs(pozice);
    $("#bg").append("<div class=\"prechodova_cara\" id=\"p_c_" + y + "\">pozice: " + pozice + "</div>");
    $("#p_c_" + y).css("left", pozice + "px");
    y += 1;
  }*/
  
  // Click event, šoupání pomocí menu, práce s odkazama
  $("#hlavni_menu li").each(function(i)
  {
    var polozka_i = i + 1;
    polozka_i = "polozka_" + polozka_i;
    $(this).find("a").attr("href", mapa_adresy[i]);
    $(this).find("a").click(function()
    {
      shift_bg_according_to_menu(i, polozka_i);
      $("#hlavni_menu a.selected").removeClass("selected");
      $(this).addClass("selected");
    });
  });
  
  // Šoupání panďuláka pomocí šipek
  $(document).keydown(function(event)
  {
    if(event.keyCode == '37' || event.keyCode == '39')
    {
      if(event.keyCode == '37') // Šipka doleva
      {      
        call_notify_key_state("left_arrow", 1);
      }
      else if(event.keyCode == '39') // Šipka doprava
      {
        call_notify_key_state("right_arrow", 1);
      }
    }
  });
  
  $(document).keyup(function(event)
  {
    if(event.keyCode == '37' || event.keyCode == '39')
    {
      if(event.keyCode == '37')
      {
        call_notify_key_state("left_arrow", 0);
      }
      else if(event.keyCode == '39')
      {
        call_notify_key_state("right_arrow", 0);
      }
    }
  });
  
  // Resize chování
  $(window).resize(function()
  {
    aktualni_stranka = null;
    nova_max_pozice = $(window).width() - bg_width;
    rozdil_max_pozice = Math.abs(max_pozice - nova_max_pozice);
    if(Math.abs(pozice) > Math.abs(max_pozice - rozdil_max_pozice))
    {
      $("#bg").animate(
        {
          marginLeft: nova_max_pozice + "px"
        },
        {
          duration: 10,
          easing: "linear",
          step: function(now)
          {
            pozice = change_pozice(pozice, now);
          }
        }
      );
    }
    max_pozice = nova_max_pozice;
  });

  // OBSAH \\

// References
  var aktualni_index = 10;
  var max_index = false;
  var is_fade = false; 
  // Click
  $("#polozka_2 li a").each(function(index)
  {
    var i = index + 1;
    max_index = i;
    $(this).click(function()
    {
      change_reference(i, is_fade);
      is_fade = false;
      aktualni_index = i;
      selected_id = i;
    })
  });

  var selected_id = 1;
  var mouse_enter = true;
  // Mouse ul enter/leave
  $("#polozka_2 ul").mouseleave(function()
  {
    change_reference(selected_id, false);
    mouse_enter = true;
  });
  // Mouse a enter
  $("#polozka_2 li a").each(function(index)
  {
    var i = index + 1;
    $(this).mouseenter(function()
    {
      if(mouse_enter)
      {
        selected_id = $("#polozka_2 li a.selected").attr("id");
        selected_id = selected_id.split("_");
        selected_id = selected_id[selected_id.length-1];
        mouse_enter = false;
      }
      change_reference(i, false);
      $("#puntik_" + selected_id).addClass("selected");
    });
  });

  // Směrový šipky
  $("#arrow_left").click(function()
  {
    var i = aktualni_index - 1;
    if(i < 1)
    {
      i = max_index;
    }
    is_fade = true;
    $("#puntik_" + i).trigger("click");
  });
  $("#arrow_right").click(function()
  {
    var i = aktualni_index + 1;
    if(i > max_index)
    {
      i = 1;
    }
    is_fade = true;
    $("#puntik_" + i).trigger("click");
  });

  // Change
  var fade_duration_out = 0;
  var fade_duration_in = 200;
  function change_reference(i, fade)
  {
    $("#polozka_2 ul .selected").removeClass("selected");
    $("#puntik_" + i).addClass("selected");
  
    if(!fade)
    {
      $("#polozka_2 img").hide();
      $("#polozka_2 img").removeClass("visible");
      $("#reference_img_" + i).addClass("visible");
      $("#reference_img_" + i).show();
      
      $("#polozka_2 h3").hide();
      $("#polozka_2 h3").removeClass("visible");
      $("#title_" + i).addClass("visible");
      $("#title_" + i).show();
      
      $("#polozka_2 p").hide();
      $("#polozka_2 p").removeClass("visible");
      $("#info_text_" + i).addClass("visible");
      $("#info_text_" + i).show();
      
      $("#polozka_2 .vlajecky").hide();
      $("#polozka_2 .vlajecky").removeClass("visible");
      $("#vlajecky_" + i).addClass("visible");
      $("#vlajecky_" + i).show();
    }
    else
    {
      $("#polozka_2 img").removeClass("visible");
      $("#polozka_2 img").hide();
      $("#reference_img_" + i).fadeIn(fade_duration_in, function()
      {
        $(this).addClass("visible");
      });
    
      $("#polozka_2 h3").removeClass("visible");
      $("#polozka_2 h3").hide();
      $("#title_" + i).fadeIn(fade_duration_in, function()
      {
         $(this).addClass("visible");
      });
    
      $("#polozka_2 p").removeClass("visible");
      $("#polozka_2 p").hide();
      $("#info_text_" + i).fadeIn(fade_duration_in, function()
      {
        $(this).addClass("visible");
      });
    
      $("#polozka_2 .vlajecky").removeClass("visible");
      $("#polozka_2 .vlajecky").hide();
      $("#vlajecky_" + i).fadeIn(fade_duration_in, function()
      {
        $(this).addClass("visible");
      });
    }
  }
  
// Who are we
  $(".character_selector a").each(function(index)
  {
    var i = index + 1;
    $(this).click(function()
    {
      $(".character_selector a.selected").removeClass("selected");
      $(this).addClass("selected");
      
      $(".character_info.visible").removeClass("visible");
      $("#character_info_" + i).addClass("visible");
      
      $(".portret.visible").removeClass("visible");
      $("#portret_" + i).addClass("visible");

      $(".anchors.visible").removeClass("visible");
      $("#anchors_" + i).addClass("visible");
    })
  });

// What we do
  $(".game_selector a").each(function(index)
  {
    var i = index + 1;
    $(this).click(function()
    {
      $(".game_selector a.selected").removeClass("selected");
      $(this).addClass("selected");

      $("#polozka_4 h3.visible").removeClass("visible");
      $("#game_" + i).addClass("visible");
      
      $(".game_info.visible").removeClass("visible");
      $("#game_info_" + i).addClass("visible");
    })
  });

  $(".contact_us").click(function()
  {
    $('#polozka_menu_5').click();
  });
});

// JS volá FLASH
        
function call_notify_key_state(key, state) 
{
  if(obj_swf && $(obj_swf).css("display") !== "none")
  {
    $("#move_hint").hide();
    obj_swf.notify_key_state(key, state);
  }
}

function call_shift_figure(offset) 
{
  if(obj_swf && $(obj_swf).css("display") !== "none")
  {
    obj_swf.shift_figure(offset);
  }
}

// FLASH volá JS
        
// Funkce volaná z flashe, která posouvá pozadí
function shift_background(offset)
{
  aktualni_stranka = null;
  koef_rychlosti = 1.5;
  zmenena_pozice = pozice + (offset * koef_rychlosti);
  zmenena_pozice = validate_pozice(zmenena_pozice);
  $("#bg").css("marginLeft", zmenena_pozice);
  pozice = change_pozice(pozice, zmenena_pozice);
}

// Obyč JS

function find_bg_pozice(pozice)
{
  pozice = pozice + ($(window).width() / 2);
  return validate_pozice(pozice);
}

function validate_pozice(zamyslena_pozice)
{
  zamyslena_pozice = Math.max(zamyslena_pozice, max_pozice);
  return Math.min(zamyslena_pozice, min_pozice);
}
                  
function shift_bg_according_to_menu(i, polozka_i)
{
  $("#move_hint").hide();
  chci_na_stranku = polozky[i];
  if((chci_na_stranku !== aktualni_stranka)/* && (bg_loaded === true)*/)
  {
    $("#bg").stop();
    aktualni_stranka = chci_na_stranku;
    zamyslena_pozice = find_bg_pozice(pozice_bg[polozka_i]);
    pozice_bg_css = zamyslena_pozice + "px";
    offset = zamyslena_pozice - pozice;
    call_shift_figure(offset);
    menu_animace = true;
    if((navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("firefox") != -1) && (navigator.userAgent.indexOf("Win") != -1 || navigator.userAgent.indexOf("win") != -1))
    { 
      if(obj_swf)
      {
        $(obj_swf).css("display", "none");
      }
      $("#bg").animate(
        {
          marginLeft: pozice_bg_css
        },
        {
          duration: 2000,
          easing: "easeOutCubic",
          complete: function()
          {
            if(obj_swf)
            {
              $(obj_swf).css("display", "block");
            }
            menu_animace = false;            
          },
          step: function(now)
          {
            pozice = change_pozice(pozice, now);
          }
        }
      );
    }
    else
    {
      $("#bg").animate(
        {
          marginLeft: pozice_bg_css
        },
        {
          duration: 2000,
          easing: "easeOutCubic",
          complete: function()
          {
            menu_animace = false;           
          },
          step: function(now)
          {
            pozice = change_pozice(pozice, now);
          }
        }
      );
    }
    if(window.location.href.indexOf("#") >= 0)
    {
      domain = window.location.href.split("#");
      domain = domain[0];
      window.location.href = domain + mapa_adresy[i];
    }
    else
    {
      window.location.href = window.location.href + mapa_adresy[i];
    }
  }
  return false;
}

function change_pozice(pozice, nova_pozice) // Volá se při každé změně proměnné "pozice" - kontroluje fadein/outy
{
  i = 0;
  for(index in pozice_prechodu)
  {                                              
    i += 1;
    half_width = $(window).width() / 2;
    promenna_pozice = pozice - half_width;
    promenna_nova_pozice = nova_pozice - half_width;
    if((pozice_prechodu[index] < promenna_pozice) && (pozice_prechodu[index] > promenna_nova_pozice)) // Zleva doprava
    {
      $("#polozka_" + i + " .stranka").fadeOut(cas_fade_out);
      $("#polozka_" + (i+1) + " .stranka").fadeIn(cas_fade_in);
      if(menu_animace === false)
      {        
        polozka_menu = $("#hlavni_menu .selected").removeClass("selected").attr("id");
        polozka_menu = polozka_menu.substr(polozka_menu.length-1, 1);
        polozka_menu = parseInt(polozka_menu) + 1;
        $("#polozka_menu_" + polozka_menu).addClass("selected");
        if(window.location.href.indexOf("#") >= 0)
        {
          domain = window.location.href.split("#");
          domain = domain[0];
          window.location.href = domain + mapa_adresy[polozka_menu-1];
        }
      }
    }
    else if((pozice_prechodu[index] > promenna_pozice) && (pozice_prechodu[index] < promenna_nova_pozice)) // Zprava doleva
    {
      $("#polozka_" + i + " .stranka").fadeIn(cas_fade_in);
      $("#polozka_" + (i+1) + " .stranka").fadeOut(cas_fade_out);
      if(menu_animace === false)
      {             
        polozka_menu = $("#hlavni_menu .selected").removeClass("selected").attr("id");
        polozka_menu = polozka_menu.substr(polozka_menu.length-1, 1);
        polozka_menu = parseInt(polozka_menu) - 1;
        $("#polozka_menu_" + polozka_menu).addClass("selected");
        if(window.location.href.indexOf("#") >= 0)
        {
          domain = window.location.href.split("#");
          domain = domain[0];
          window.location.href = domain + mapa_adresy[polozka_menu-1];
        }
      }
    }
  }
  return nova_pozice;
}

