var keyboard_pagechange = true;

var current_fontsize   = 16;
var current_lineheight = 19;
function fontsize_increase()
{
  current_fontsize   = current_fontsize + 2;
  current_lineheight = current_lineheight + 2;
  
  document.getElementById("oeuvre_texte").style.fontSize= current_fontsize+'px';
  document.getElementById("oeuvre_texte").style.lineHeight= current_lineheight+'px';

  saveFontSize(current_fontsize,current_lineheight);
}
function fontsize_decrease()
{
  if (current_fontsize >= 7)
  {
    current_fontsize   = current_fontsize - 2;
    current_lineheight = current_lineheight - 2;
  
    document.getElementById("oeuvre_texte").style.fontSize= current_fontsize+'px';
    document.getElementById("oeuvre_texte").style.lineHeight= current_lineheight+'px';
  
    saveFontSize(current_fontsize,current_lineheight);
  }
}

function saveFontSize(page_fontsize,page_lineheight) {
     var xhr_object = null; 
     if(window.XMLHttpRequest) // Firefox 
        xhr_object = new XMLHttpRequest(); 
     else if(window.ActiveXObject) // Internet Explorer 
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
     else { // XMLHttpRequest non support par le navigateur 
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
        return; 
     }    
     xhr_object.open("GET", "/ajax.php?mode=save_font_size&font_size="+page_fontsize+"&line_height="+page_lineheight, true); 
     if (xhr_object.readyState == 4) {
//       all good   
     }
     xhr_object.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
     xhr_object.send(null); 
}

function work_ratings_init() {
  
  // some init to make tips stay once the rating is clicked
  var feel_rating_txt = '';
  var form_rating_txt = '';

  $.fn.rating.options.cancel = 'Annuler la note';

  $('.feel_rating').rating({
    focus: function(value, link){
    var tip = $('#feel_rating_text');
    tip[0].data = tip[0].data || tip.html();
    tip.html(link.title || 'value: '+value);
    },
    blur: function(value, link){
      $('#feel_rating_text').html( feel_rating_txt );
    },
    callback: function(value, link){
      feel_rating_txt = link.title;
    }
  });
          
  $('.form_rating').rating({
    focus: function(value, link){
    var tip_form = $('#form_rating_text');
    tip_form[0].data = tip_form[0].data || tip_form.html();
    tip_form.html(link.title || 'value: '+value);
    },
    blur: function(value, link){
      $('#form_rating_text').html( form_rating_txt );
    },
    callback: function(value, link){
      form_rating_txt = link.title;
    }
  });
}

$(document).ready(function(){

  // Disable keyboard shortcuts when typing in a form **/
  $('textarea, input').live("focus", function(){
    keyboard_pagechange = false;
  });
  $('textarea, input').live("blur", function(){
    keyboard_pagechange = true;
  });
  /*****************************************************/

  // user clicked on "like" *********/
  $('#click_aime').live("click", function(){
    $.get('/ajax/wck_ajax_like_dislike.php', { 'oeuvrenum': oeuvrenum, 'like_or_dislike': 'aime',  'sig' : action_sig },
    function(data){    
      // display confirm or error msg
      $('#quick_avis').html(data);  
    });
            
    return false;        
  });
  /**********************************/
  
  // user clicked on "dislike" ******/
  $('#click_aime_pas').live("click", function(){
    
    a= confirm ("Voulez-vous vraiment signaler que vous n'aimez pas cette oeuvre ?");
    if (a)
    {
      $.get('/ajax/wck_ajax_like_dislike.php', { 'oeuvrenum': oeuvrenum, 'like_or_dislike': 'aime_pas',  'sig' : action_sig },
      function(data){    
        // display confirm or error msg
        $('#quick_avis').html(data);  
      });
    }
    else
      return false;
    
            
    return false;        
  });
  /**********************************/
  
  /* Ratings ************************/    
  work_ratings_init();
  /**********************************/
});

function get_page_text(oeuvrenum,page) {
    
  current_page = page;  
  
  opacity('oeuvre_texte', 100, 0, 250);
  
  http.open("GET", "/ajax/wck_ajax_book_page_content.php?oeuvrenum="+oeuvrenum+"&page="+page, true); 
  http.onreadystatechange = function()
  {
    if (http.readyState == 4) {       

      document.getElementById('book_page_content_and_options').innerHTML = http.responseText;   
      
      opacity('oeuvre_texte', 0, 100, 250);
      
      window.location.hash = '#page_'+current_page;    
      
      work_ratings_init();
        
      // tracking google analytics
      if (pageTracker)
      {
        pageTracker._trackPageview("/lecture_ajax" );
      }
    }
  }
  http.send(null);
  
  
}

// Do not break back button etc. [wip] **#
window.onload = function() {
    getpagefromurl();
}
  
function getpagefromurl() {
  var page_hash = window.location.hash;
  if (page_hash != '')
  {
    var hash_detail = page_hash.split('_');
    
    // jump to detected page
    if (hash_detail[0] == '#page' && hash_detail[1])
    {
      get_page_text(oeuvrenum,  hash_detail[1] );
    }
  }
}
//***************************************#

function lecture_ajax_form_display()
{
 if (http.readyState == 4) 
 { 
    var phpresponse = http.responseText;
    
    document.getElementById('ajax_lecture_forms').innerHTML = phpresponse;
 }
}

function lecture_ajax_forms(action_type, oeuvrenum, pagenum)
{
  var parameters = 'oeuvrenum='+oeuvrenum+"&page="+pagenum;
  
  // Valeurs du formulaire (inputs)
  if (document.getElementById("poster_commentaire"))
  {
    for (var i = 0; (thisline = document.getElementById("poster_commentaire").getElementsByTagName('input')[i]); i++) 
    {
      parameters += "&"+thisline.name+"="+urlencode(thisline.value);
    }
    
    for (var i = 0; (thisline = document.getElementById("poster_commentaire").getElementsByTagName('textarea')[i]); i++) 
    {
      parameters += "&"+thisline.name+"="+urlencode(thisline.value);
    }
  }
  
  // Champs fck ?
  if (document.getElementById("fckfields"))
  {
    var nbr_fckfields = document.getElementById("fckfields").value;
    
    for(var i = 1; i <= nbr_fckfields; i++)
    {
      fieldname   = document.getElementById('fckfield'+i).value;
      
      fieldvalue  = FCKeditorAPI.GetInstance(fieldname).GetXHTML();
      parameters += "&"+fieldname+"="+urlencode(fieldvalue);
    }
  }
  
  http.open('POST', '/ajax/wck_ajax_'+action_type+'.php', true);
  http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http.setRequestHeader("Content-length", parameters.length);
  http.setRequestHeader("Connection", "close");
  
  http.onreadystatechange = lecture_ajax_form_display;
  
  http.send(parameters);
}

// keyboard shortcuts for reading
document.onkeydown = function(e){ 
 if(e.which == 39 && keyboard_pagechange) 
 {
   // current_page needs to be int
   current_page = current_page*1;
   
   // next page
   if (current_page < nbr_pages)
   {
     var next_page = current_page+1;
     get_page_text(oeuvrenum,next_page);
   }
 }
 else if(e.which == 37 && keyboard_pagechange)
 {
   // previous page
   if (current_page > 0)
   {
     var previous_page = current_page-1;
     get_page_text(oeuvrenum,previous_page);
   }
 }

 
} 

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

var http = getHTTPObject();
