/*
   Centralni javascript 
   Projekt: www.biooko.net
   Autor: Martin Michalek, Studio Shortcat, michalek@shortcat.cz
*/


/* ----------------------------------------------------------------------------
   jQuery: Po nacteni DOM pridame cekani na akce uzivatele 
*/
$(document).ready(function() { 

  if ($('#logo').length)   
    handle_logo(); 

  if ($('table.program').length) 
    handle_program_table();

  if ($('#newsletter_link').length)
    handle_newsletter_link();   

  if ($('#newsletter-text').length)
    handle_newsletter_text_input();  

  if ($('#paging').length) 
    handle_paging();    

  if ($('#page_film').length) 
    handle_detail();     

  // Najeti mysi na tlacitko zpet zmeni nadpis na napovedu
  if ($('.back_link').length) 
    handle_backlink();

  if ($('.message').length)
    handle_message_fadeout();

  if ($('#list').length)
    handle_list();

  if ($('#page_festivals').length)
    handle_festival_opening();

  // Nacteni dat automaticky z Flickr setu ve fotogaleri
  if ($('#page_photogallery').length)
    handle_photogallery();

  // Spustime nahradu fontu Cufónem 
  Cufon.replace
    ('h1')
    ('#home_front h2')
    ('table.program td.movie .movie_name_block strong')
    ('#page_filmdatabase #letter_list')
    ('#page_static #oko_address');



}); 



/* ----------------------------------------------------------------------------
   JQuery: Cekame na nacteni obrazku
*/   
$(window).load( function() {

  // Vyrovnavame vysku cernych boxiku na titulce
  if ($('.home_front_box').length)
    handle_home_front_box(); 

});



// -----------------------------------------------------------------------------
// Handlery pro osetreni chovani jednotlivych prvku

// Mouseover nad logotypem
function handle_logo() {  
   original_logo = $('#logo').find('img').attr('src');
   if (original_logo.search(/biooko.png/) != -1) {
     $('#logo').hover(function() {
  	   $(this).find('img').attr('src', original_logo.replace(/biooko.png/,'biooko_mouseover.png'));
     },function(){
  	   $(this).find('img').attr('src', original_logo)
     });   
   }
   // IE 6
   if (original_logo.search(/biooko.gif/) != -1) {
     $('#logo').hover(function() {
  	   $(this).find('img').attr('src', original_logo.replace(/biooko.gif/,'biooko_mouseover.gif'));
     },function(){
  	   $(this).find('img').attr('src', original_logo)
     });   
   }   
}

// Programova tabulka - mouseovery a klikani
function handle_program_table() {  
   $('table.program tr:not(".day")').hover(function() {
	   $(this).addClass('hover');
   },function(){
	   $(this).removeClass('hover');
   });   
   $('table.program tr:not(".day")').click(function(event) {
      location.href=$(this).find("td.movie a").attr("href");
   });
}

// Otevirani formulare s prihlasenim k newsletteru
function handle_newsletter_link() {
   $("#newsletter_link").click(function() { 										 
	 if ($(this).hasClass("opened") ) {
	   $(this).removeClass("opened");
	   $("#newsletter_form").css("display", "none");
	   return false;
	 } else {
	   $(this).addClass("opened");
	   $("#newsletter_form").css("display", "block");
	   return false;		 
	 }
   });          
}

// Osetrujeme kliknuti na policko formulare pro vepsani emailu
function handle_newsletter_text_input() {
  // Ulozime text ve zminovanem policku
  var original_value = $("#newsletter-text").attr("value");    
  // pri zamereni uzivatele na vyhledavaci policko odstranime text a pridame tridu focus, ktera pole zvyraznuje
  $('#newsletter-text').focus(function() {
    $(this).attr("value","");
  // pri zamereni uzivatele kdekoliv jinam vratime text a odstranime tridu focus
  }).blur(function () { 
      // $(this).attr("value", original_value);
  // pri zmacknuti Escape  totez
  }).keyup(function(event) {
    if (event.keyCode == 27) {
      // $(this).attr("value", original_value);
    }
  });
}

// Strankovani
function handle_paging() {
  // Mouseover nad sipkou zpet
   $('#paging a.backward, #paging a.forward').hover(function() {
	   $('#paging span.help').text($(this).text());
   },function(){
	   $('#paging span.help').text('');
   }); 
}

// Cerne boxiky na uvodni strance - hlidame jejich vysku a pripadne 
// je usekavame a pak po kliknuti rolujeme
function handle_home_front_box() {  

  // Pokud jsou boxiky vyssi nez je potreba, urizneme je
  $('.home_front_box').each(function(i) {  
    // console.log('height: '+$(this).height());
    if ($(this).height() > 320) {
      // console.log('adding .to_roll...'+i)
      $(this).addClass('to_roll');
    } 
  });   
  
  // Po kliknuti na odkaz "Rozbalit" boxik rozbalime
  $('.home_front_box .roll_out_anchor a.open').click( function() {
    $('.home_front_box.to_roll .roll_out_anchor').find('a.open').hide();
    $(this).parents('.roll_out_anchor').find('a.close').show();     
    $('.home_front_box.to_roll').addClass('rolled_down').removeClass('to_roll');   
    return false;
  });
  
  // Po kliknuti na odkaz "Sbalit" v rozbalenem jej zase sbalime
  $('.home_front_box .roll_out_anchor a.close').click( function() {
    $('.home_front_box.rolled_down .roll_out_anchor').find('a.close').hide();
    $('.home_front_box.rolled_down .roll_out_anchor').find('a.open').show();
    $('.home_front_box.rolled_down').addClass('to_roll').removeClass('rolled_down');    
    return false;
  });  
}

// Osetreni udalosti na seznamu klikatelnych polozek (#list ul)
function handle_list() {
  // Mouseover
  $('#list li').hover(function () {
    $(this).addClass('hover');  
  }, function () {
    $(this).removeClass('hover');  
  });
  //Kliknuti
  $('#list li').click(function() {
    location.href=$(this).find("strong a").attr("href");     
      
  });
}

// Otevirani jednotlivych festivalu na strance festivaly
function handle_festival_opening() {
  $('.festival').addClass('closed');
  $('.festival .opening-link').click(function() {
    $(this).parents('.festival')
      .removeClass('closed')
      .addClass('opened');   
    return false;                        
  });
  $('.festival .closing-link').click(function() {
    $(this).parents('.festival')
      .removeClass('opened')
      .addClass('closed'); 
    return false;              
  });  
}

// Detail filmu
function handle_detail() {

  // Zbozi z Terryho ponozek
  function handle_terry() {   
     $(".terryGood").hover(function() {
       $(this).addClass("hover");
     },function() {
       $(this).removeClass("hover");
     });     
     $(".terryGood").click(function(event) {
  	   location.href=$(this).find("a").attr("href");	     					  
     });
  }    
  
  // Trailer
  function handle_trailer() {
  	$('#trailer').hide();	
  	$("#movie_trailer h3").unbind("click").click(function(event) {
  	   $('#trailer').toggle(200);
  	   return false;
    });
  }
  
  // Programova tabulka v detailu
  function handle_program() {
     $('#movie_program table tr:not(".day")').hover(function() {
  	   $(this).addClass('hover');
     },function(){
  	   $(this).removeClass('hover');
     });   
     $('#movie_program table tr').click(function(event) {
        location.href=$(this).find("td.time a").attr("href");
     });
  }  
    
  handle_terry();
  handle_trailer();    
  handle_program();    
         
}

// Fadeout chybove nebo informativni hlasky 
function handle_message_fadeout() {
  function blind_up(element) {
    $(element).animate({ 
      top: '-50px'
    }, 200 );
  }  
  setTimeout(blind_up, 3000,'.message');
}

// Najeti mysi na tlacitko zpet zmeni nadpis na napovedu
function handle_backlink() {
   function swap_backlink_content(element) {
      var h1_original_height = $('h1').height();
      var original_content = element.find('span').text();
      element.find('span').text($('h1').text());
      $('h1').height(h1_original_height);
      $('h1').text(original_content); 
      Cufon.refresh('h1');     
   }
   $('.back_link').hover(function() {        
      swap_backlink_content($(this))
   },function () {
      swap_backlink_content($(this))
   });         
}


// Nacteni dat automaticky z Flickr setu ve fotogaleri
function handle_photogallery() {

  // Nacitame data automaticky z Flickru
  // TODO: spustime loading indikator
  $(".set a").click(function() {
    // Vycistime tu globalni promennou
    $.fancybox.showActivity();
    window.fancygallery_flickr_auto_data = [];  
    get_flickr_data_from_set( get_flickr_set_id($(this).attr('href')) , fancygallery_flickr_api_key );
    return false;
  });

  // Cekame na skonceni AJAXU, kterym se nacita JSON z Flickru
  // TODO: 
  // * je potreba zobecnit: hlidat, jestli mame plne fancygallery_flickr_auto_data a ukoncit vsechny 
  //   loading indikatory 
  // * Seskupit nastaveni FB do nejakeho objektu dovnitr naseho pluginu
  $(window).ajaxComplete(function(){
    if (!!$('html.fancygallery-complete').length) {
      $.fancybox( 
      // Data
      fancygallery_flickr_auto_data,
      // Nastaveni Fancyboxu
      {
        'onComplete': fancygallery_start,     
        'onClosed': function() { $("body").removeClass('fancybox-active'); $("html").removeClass('fancygallery-complete'); $('#fancybox-thumbnails').remove(); },
        'overlayOpacity': .8,
        'overlayColor': '#000',
        'padding': '0'
      }
      );
    }
  });
}


