function disenableLink()
{  
  if ( parseInt( $('#select_link').val() ) == 0)
  {
    document.getElementById('link_input').disabled = true;    
  }
  else
  {
    document.getElementById('link_input').disabled = false;
  }
    
}

function calculateItemsOrder()
{
  var childes = $('#extended_items').children().children();
  var node = childes.first();
  $('#db_item_order').val('');
  
  for( var i = 0; i < childes.size(); i+=2 )
  { 
    $('#db_item_order').val( $('#db_item_order').val() + ' ' + i/2 + '-' + childes.eq(i).attr('id').split('_')[1] );
  }  
}

// adding new item for extended news (image, text)
function addItem()
{
  addExtendedNews(-1, '', '');
}

function addExtendedNews(insert_item_id, image_name, image_text)
{
  // maximum id
  var number = 0;
  var size = $('#extended_items').children().children().size();
  
  if (insert_item_id == -1)
  {
    for (var i = 0; i < size; i++)
    {
      var num = parseInt( $('#extended_items').children().children().eq(i).attr('id').split('_')[1] );
      if (num > number)
      {
        number = num;
      }  
    }
    
    number = parseInt(number) + 1;      
  }
  else
  {
    number = insert_item_id;
  }
      
  // image item
  var tr = $("<tr></tr>").attr({id: 'first_' + number });
  var td = $("<td></td>");
  tr.append(td);
  td.append( document.createTextNode("Obrázek č. " + number) );
  td.addClass('first');
  
  td = $("<td></td>");
  tr.append(td);
              
  var table = $('<table></table>')
                .attr({ border: '0px', cellspacing: '0px', cellpadding: '0px' })
                .addClass('extended_arrows_images');
                
  table.append(
    $('<tr></tr>')
      .append(
        $('<td></td>')
          .append(
            $("<input/>")
              .attr({type: 'file', id: 'item_image_' + number, name: 'item_image_' + number })
          )
          .addClass('first')
        )
      .append(
        $('<td></td>')
          .addClass('second')
          .attr({ align: 'right'})
          .append(              
            $('<table></table>')
              .attr({ border: '0px', cellspacing: '0px', cellpadding: '0px' })
              .addClass('arrows_images')
              .append(
                $('<tr></tr>')
                  .append(
                    $("<td></td>")
                      .append(
                        $('<img/>')
                          .attr({ src: './_layout/images/arrow_down_extended.png', onclick: '', align: 'right'})
                          .addClass('extended_down_image_' + number)
                          .bind('click', function()
                            {
                              moveExtendedNewsDown( $(this).attr('class').split('_')[3] );
                            })                          
                      )
                  )
                  .append(
                    $("<td></td>")
                      .append(
                        $('<img/>')
                          .attr({ src: './_layout/images/arrow_up_extended.png', onclick: '', align: 'right'})
                          .addClass('extended_up_image_' + number)
                          .bind('click', function()
                            {
                              moveExtendedNewsUp( $(this).attr('class').split('_')[3] );
                            })
                      )
                  )
                  .append(
                    $("<td></td>")
                      .append(
                        $('<img/>')
                          .attr({ src: './_layout/images/delete_extended.png', align: 'right'})
                          .addClass('extended_delete_image_' + number )
                          .bind('click', function()
                            {
                              deleteExtendedNews( $(this).attr('class').split('_')[3] );   
                            })
                      )
                  )
              ) 
          )
      )
  );
  
  td.append( table );
  
  $('#extended_items').append(tr);
  
  // text item
  var tr = $("<tr></tr>").attr({id: 'second_' + number });
  var td = $("<td></td>");
  tr.append(td);
  td.append( document.createTextNode("Text " + number) );
  
  td = $("<td></td>");
  tr.append(td);
  td.append( 
    $("<textarea></textarea>")
      .attr({rows: 6, cols: 50, id: 'item_text_' + number, name: 'item_text_' + number })
  );
  
  $('#extended_items').append(tr);
        
  // redisplaying arrows
  var tableSize = parseInt( $('#extended_items').children().children().size() );
  if ( tableSize == 2 )
  {
    var item_id = $('#extended_items').children().children().first().attr('id').split('_')[1];
    // hide down arrow
    $('img.extended_down_image_' + item_id).hide();
    // hide up arrow
    $('img.extended_up_image_' + item_id).hide();      
  }
  else if ( tableSize == 4 )
  {
    // hide up arrow for the first item pair
    var item_id = $('#extended_items').children().children().first().attr('id').split('_')[1];
    $('img.extended_down_image_' + item_id).show();
    
    // hide down arrow for the second item pair
    item_id = $('#extended_items').children().children().eq(2).attr('id').split('_')[1];
    $('img.extended_up_image_' + item_id).show();
    $('img.extended_down_image_' + item_id).hide();
  }
  else
  {
    // display down arrow for the before last item pair
    var item_id = $('#extended_items').children().children().eq(-4).attr('id').split('_')[1];    
    $('img.extended_down_image_' + item_id).show();
    
    // hide down arrow for the last item pair
    item_id = $('#extended_items').children().children().eq(-2).attr('id').split('_')[1];
    $('img.extended_down_image_' + item_id).hide();
  }
    
  // maximum id
  number = 0;
  size = $('#extended_items').children().children().size();
  for (var i = 0; i < size; i++)
  {
    var num = parseInt( $('#extended_items').children().children().eq(i).attr('id').split('_')[1] );
    if (num > number)
    {
      number = num;
    }  
  }
  
  $('#max_item_number').val( parseInt(number) );

  // inserting values if presented
  if (insert_item_id != -1)
  {
    $('#item_text_' + insert_item_id).val( image_text );
    $('#item_image_' + insert_item_id).css('background-color', 'green' );
    var ids = $('#db_item_indexes').val();
    ids += ' ' + item_id;
    $('#db_item_indexes').val( ids );  
  }
  
  calculateItemsOrder();
        
}

function removeAllItems()
{
  while( $('#extended_items').children().children().size() > 0 )
  {
    $('#extended_items').children().children().first().remove(); 
  }
  calculateItemsOrder();  
}

function findNode(number)
{
  var childes = $('#extended_items').children().children();
  var node = childes.first();
  while(node != childes.last() )
  {
    if (node.attr('id').split('_')[1] == number)
    {          
      return node;
    }
    node = node.next().next();
  }
}
    
function deleteExtendedNews(number)
{
  var childes = $('#extended_items').children().children();
  var node = findNode(number);
  
  // 3 and more nodes
  var items_count = childes.size()/2;
  if (items_count > 2)
  {
    // removing first item
    if ( node.attr('id') == childes.first().attr('id') )
    {
      var item_id = node.next().next().attr('id').split('_')[1];
      $('img.extended_up_image_' + item_id).toggle();  
    }
    // removing last item
    else if ( node.attr('id') == childes.last().prev().attr('id') )
    {
      var item_id = node.prev().prev().attr('id').split('_')[1];
      $('img.extended_down_image_' + item_id).toggle();
    }
    // otherwise there is no need to toggle arrows 
  }
  else if (items_count == 2)
  {
     // removing first item
    if ( node.attr('id') == childes.first().attr('id') )
    {
      var item_id = childes.last().prev().attr('id').split('_')[1];
      $('img.extended_up_image_' + item_id).toggle();  
    }
    // removing last item
    else if ( node.attr('id') == childes.last().prev().attr('id') )
    {
      var item_id = childes.first().attr('id').split('_')[1];
      $('img.extended_down_image_' + item_id).toggle();
    }
  }
  
  node.next().remove();
  node.remove();
  
  // erasing from db_item_indexes
  var indexes = $('#db_item_indexes').val().trim().split(' ');
  $('#db_item_indexes').val('');
  for (var i = 0; i < indexes.length; i++)
  {
    if ( number != indexes[i] )
    {
      $('#db_item_indexes').val( $('#db_item_indexes').val() + ' ' + indexes[i] );
    }  
  }
  
  
  // maximum id
  var number = 0;
  var size = $('#extended_items').children().children().size();
  for (var i = 0; i < size; i++)
  {
    var num = parseInt( $('#extended_items').children().children().eq(i).attr('id').split('_')[1] );
    if (num > number)
    {
      number = num;
    }  
  }
  
  $('#max_item_number').val( parseInt(number) );
  
  calculateItemsOrder();
            
}

function moveExtendedNewsUp(number)
{ 
  var childes = $('#extended_items').children().children();
  var node = findNode(number);
  
  
  
  // if the item is second, move first after second
  if ( node.attr('id') == childes.eq(2).attr('id') )
  { 
    node.next().insertBefore( childes.first() ); // also changind $('#extended_items').children().children(), but childes is not changed
    childes = $('#extended_items').children().children();
    node.insertBefore( childes.first() );
    
    childes = $('#extended_items').children().children();
    
    // arrows
    // 2 items
    if ( childes.size() == 4 )
    {
      var item_id = childes.first().attr('id').split('_')[1];
      $('.extended_up_image_' + item_id).toggle();
      $('.extended_down_image_' + item_id).toggle();
      
      item_id = childes.eq(2).attr('id').split('_')[1];
      $('.extended_up_image_' + item_id).toggle();
      $('.extended_down_image_' + item_id).toggle();
    }
    // otherwise 3 and more items
    else
    {
      var item_id = childes.first().attr('id').split('_')[1];
      $('.extended_up_image_' + item_id).toggle();
      
      item_id = childes.eq(2).attr('id').split('_')[1];
      $('.extended_up_image_' + item_id).toggle();
    }        
  }
  // otherwise move n-th item before (n-1)-th item
  else
  {
    var last = false;
    if (node.attr('id') == childes.eq(-2).attr('id'))
    {
      last = true;
    }
    
    node.prev().prev().prev().after( node.next() );
    node.prev().prev().prev().prev().after( node );
    
    childes = $('#extended_items').children().children();
    
    if (last)
    {
      var item_id = childes.eq(-2).attr('id').split('_')[1];
      $('.extended_down_image_' + item_id).toggle();
      
      item_id = childes.eq(-4).attr('id').split('_')[1];
      $('.extended_down_image_' + item_id).toggle();
    }
  }
  
  calculateItemsOrder(); 
}

function moveExtendedNewsDown(number)
{
  var childes = $('#extended_items').children().children();
  var node = findNode(number);
  
  
  
  //arrows
  // if it is the first item
  if ( node.attr('id') == childes.first().attr('id') )
  {
    if ( childes.size() == 4 )
    {
      var item_id = childes.first().attr('id').split('_')[1];
      $('.extended_up_image_' + item_id).toggle();
      $('.extended_down_image_' + item_id).toggle();
      
      item_id = childes.eq(2).attr('id').split('_')[1];
      $('.extended_up_image_' + item_id).toggle();
      $('.extended_down_image_' + item_id).toggle();  
    }
    else
    {
      var item_id = childes.first().attr('id').split('_')[1];
      $('.extended_up_image_' + item_id).toggle();
      
      item_id = childes.eq(2).attr('id').split('_')[1];
      $('.extended_up_image_' + item_id).toggle();
    }  
  }
  // if it is the item before the last
  else if ( node.attr('id') == childes.eq(-4).attr('id') )
  {
    var item_id = childes.eq(-4).attr('id').split('_')[1];
    $('.extended_down_image_' + item_id).toggle();
    
    item_id = childes.eq(-2).attr('id').split('_')[1];
    $('.extended_down_image_' + item_id).toggle();
  }
  // otherwise there is no need to redisplay arrows
  
  node.next().next().next().after( node.next() );
  node.next().next().after( node );
  
  calculateItemsOrder();
   
}

function redisplayExtendedNews()
{ 
  if ($('#extended_news_checkbox').attr('checked'))
  {
    $('#extended_items').show();
    $('#extended_items_button').show();      
  }
  else
  {
    $('#extended_items').hide();
    $('#extended_items_button').hide();
  }
}
