// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

var TopicForm = {
  editNewTitle: function(txtField) {
    $('new_topic').innerHTML = (txtField.value.length > 5) ? txtField.value : 'Nowy wątek';
  }
}

var LoginForm = {
  setToPassword: function() {
    $('openid_fields').hide();
    $('password_fields').show();
  },

  setToOpenID: function() {
    $('password_fields').hide();
    $('openid_fields').show();
  }
}

var EditForm = {
  // show the form
  init: function(postId) {
    $('edit-post-' + postId + '_spinner').show();
    this.clearReplyId();
  },

  // sets the current post id we're editing
  setReplyId: function(postId) {
    $('edit').setAttribute('post_id', postId.toString());
    $('post_' + postId + '-row').addClassName('editing');
    if($('reply')) $('reply').hide();
  },

  // clears the current post id
  clearReplyId: function() {
    var currentId = this.currentReplyId()
    if(!currentId || currentId == '') return;

    var row = $('post_' + currentId + '-row');
    if(row) row.removeClassName('editing');
    $('edit').setAttribute('post_id', '');
  },

  // gets the current post id we're editing
  currentReplyId: function() {
    return $('edit').getAttribute('post_id');
  },

  // checks whether we're editing this post already
  isEditing: function(postId) {
    if (this.currentReplyId() == postId.toString())
    {
      $('edit').show();
      $('edit_post_body').focus();
      return true;
    }
    return false;
  },

  // close reply, clear current reply id
  cancel: function() {
    this.clearReplyId();
    $('edit').hide()
  }
}

var ReplyForm = {
  // yes, i use setTimeout for a reason
  init: function() {
    EditForm.cancel();
    $('reply').toggle();
    $('post_body').focus();
    // for Safari which is sometime weird
//    setTimeout('$(\"post_body\").focus();',50);
  }
}

//Event.addBehavior({
//  '#search,#monitor_submit': function() { this.hide(); }
//})


function animate_pictures(gallery_selector, move_size) {
  if(gallery_selector == null) {
    var gallery_selector = '.mini_gallery';
  }
  if(move_size == null) {
    var move_size =120;
  }
  var gallery_div = jQuery(gallery_selector); //glowny kontener
  var gallery_nav_left = gallery_div.find(".gallery_nav_left"); // kontener nawigacji
  var gallery_nav_right = gallery_div.find(".gallery_nav_right"); // kontener nawigacji
  var button_left = gallery_nav_right.find(".next"); //button w lewo
  var button_right = gallery_nav_left.find(".prev"); // button w prawo
  var movement_trigger = gallery_div.find("ul"); //ul ktory ma animowany lewy margin
  var gallery_elements_count = movement_trigger.find("li").size(); //ilosc elementow
  var first_position = 0; //aktualna pozycja pierszego elementu
  var blocked_animation = false; //blokada animacji

  button_left.click(function(e) {
    e.preventDefault();
    var current_ml = parseInt(movement_trigger.css("marginLeft")); // aktualny margines lewy
    if((gallery_elements_count > 4) && (!blocked_animation) && (first_position*4+gallery_elements_count > 4 )  ) { //jesli jest wiecej niz 4 elementy, animacja jest niezablokowana i ostatni element jest niewidoczny wciaz
      blocked_animation = true;
      first_position --;
      current_ml = current_ml - move_size;
      movement_trigger.animate({marginLeft : current_ml+'px'}, 500, function(){
        blocked_animation = false;
      });
    }
    else {
      if((gallery_elements_count > 4) && (!blocked_animation) && (first_position*4+gallery_elements_count == 4 )  ) { //jesli jest wiecej niz 4 elementy, animacja jest niezablokowana i ostatni element jest niewidoczny wciaz
        blocked_animation = true;
        first_position = 0;
        movement_trigger.animate({marginLeft : 0}, 500, function(){
          blocked_animation = false;
        });
      }
    }
  });

  button_right.click(function(e) {
    e.preventDefault();
    var current_ml = parseInt(movement_trigger.css("marginLeft")); // aktualny margines lewy
    if((gallery_elements_count > 4) && (!blocked_animation) && (first_position < 0) ) {//jesli jest wiecej niz 4 elementy, animacja jest niezablokowana i pierwszy element jest niewidoczny
      blocked_animation = true;
      first_position ++;
      current_ml = current_ml + move_size;
      movement_trigger.animate({marginLeft : current_ml+'px'}, 500, function(){
        blocked_animation = false;
      });
    }
  });
}