/* DOM ONLOAD EVENT TRIGER */
window.addEvent('domready', function() {

  /**
   * TOOL TIPS
   * 
   * Add graphical tooltips for links
   */
  var Tips1 = new Tips($$('.box a'), {
    maxTitleChars: 70
  });
          
  
  /**
   * PROFILE BOX BOTTOM SPACER
   * 
   * Add dotted line to the profile box
   */ 
  spanSpacer = new Element('span');
  spanSpacer.injectInside('boxProfile');
  
  
  /**
   * LOAD MORE del.icio.us LINKS
   * 
   * Add control elements firing AJAX request
   */
  var url = './inc/delicious-data.php';
  var responseList = $('boxInteresting').getElement('ul');
    
  var loadMoreLink = new Element('img', {
    'class': 'loadMore',
    'src': 'images/ico-arrow-next.gif',
    'alt': 'Načíst další data'
  });
  var loadPreviousLink = new Element('img', {
    'class': 'loadMore disabled',
    'src': 'images/ico-arrow-previous.gif',
    'alt': 'Načíst předchozí data'
  });
  
  var responseListEffect = new Fx.Style(responseList, 'opacity',
    {'duration': 250}
  );
  var loadMoreLinkEffect = new Fx.Style(loadMoreLink, 'opacity',
    {'duration': 250}
  );

  loadMoreLinkClick = function(){
    responseListEffect.start(1, 0).chain(function(){
      //define AJAX request
      var ajax = new Ajax(url, { 
        update: responseList,
        method: 'get',
        onSuccess: function() {
          responseListEffect.start(0, 1);
          loadMoreLinkEffect.start(1, 0.4);
          loadMoreLink.addClass('disabled');
          loadMoreLink.removeEvents('click');
          loadPreviousLink.removeClass('disabled');
          loadPreviousLink.addEvent('click', loadPreviousLinkClick);
          loadPreviousLinkEffect.start(0.4, 1);
        },
        onFailure: function(){
          alert('Nepodařilo se načíst další data.');
        }
      });
        
      ajax.request('source=delicious.xml&offset=6');
    });
  }
 
  loadPreviousLinkClick = function(){
    responseListEffect.start(1, 0).chain(function(){
      
      //define AJAX request
      var ajax = new Ajax(url, { 
        update: responseList,
        method: 'get',
        onSuccess: function() {
          responseListEffect.start(0, 1);
          loadPreviousLinkEffect.start(1, 0.4);
          loadPreviousLink.addClass('disabled');
          loadPreviousLink.removeEvents('click');
          loadMoreLink.removeClass('disabled');
          loadMoreLink.addEvent('click', loadMoreLinkClick);
          loadMoreLinkEffect.start(0.4, 1);
        },
        onFailure: function(){
          alert('Nepodařilo se načíst další data.');
        }
      });
        
      ajax.request('source=delicious.xml&offset=0');
    });
  }

  var loadPreviousLinkEffect = new Fx.Style(loadPreviousLink, 'opacity',
    {'duration': 250}
  );
  loadPreviousLinkEffect.set(0.4);

  loadPreviousLink.injectInside('boxInteresting');
  loadMoreLink.injectInside('boxInteresting');
  loadMoreLink.addEvent('click', loadMoreLinkClick);


  /**
   * FLICKR PHOTOS (carousel) NAVIGATION
   * 
   * Add control elements and allow scrolling of list of flickr photos (carousel)
   */ 
  var flickrArrowScroll = new Fx.Style($('boxPhotosFlickr').getElement('ul'), 'left',
    {'duration': 150}
  );
  flickrArrowScroll.addEvent('onComplete', function(){
    //$('boxPhotosFlickr').getElement('ul').style.left = newPosition + 'px';
    if(newPosition >= 0){
      flickrArrowLeft.removeEvents('click');
      flickrArrowLeftEffect.start(1, 0.4);
      flickrArrowLeft.addClass('disabled');
    }
    if(newPosition <= -747){
      flickrArrowRight.removeEvents('click');
      flickrArrowRightEffect.start(1, 0.4);
      flickrArrowRight.addClass('disabled');
    }
  });

  var singleMove = 83;
  var newPosition;
  
  arrowLeftClick = function(){
    var oldPosition = $('boxPhotosFlickr').getElement('ul').getStyle('left').toInt();
    newPosition = oldPosition + singleMove;
    flickrArrowScroll.start(oldPosition, newPosition);
    if (oldPosition <= -747) {
      flickrArrowRight.addEvent('click', arrowRightClick);
      flickrArrowRightEffect.start(0.4, 1);
      flickrArrowRight.removeClass('disabled');
    }
  }
  
  arrowRightClick = function(){
    var oldPosition = $('boxPhotosFlickr').getElement('ul').getStyle('left').toInt();
    newPosition = oldPosition - singleMove;
    flickrArrowScroll.start(oldPosition, newPosition);
    if (oldPosition >= 0) {
      flickrArrowLeft.addEvent('click', arrowLeftClick);
      flickrArrowLeftEffect.start(0.4, 1);
      flickrArrowLeft.removeClass('disabled');
    }
  }
  
  flickrArrowLeft = new Element('img', {
    'class': 'flickrArrowLeft disabled',
    'src': 'images/ico-arrow-previous.gif',
    'alt': 'Předchozí fotka'
  });

  flickrArrowRight = new Element('img', {
    'class': 'flickrArrowRight',
    'src': 'images/ico-arrow-next.gif',
    'alt': 'Následující fotka',
    'events': {
        'click': arrowRightClick
    }
  });
  
  var flickrArrowLeftEffect = new Fx.Style(flickrArrowLeft, 'opacity',
    {'duration': 150}
  );
  var flickrArrowRightEffect = new Fx.Style(flickrArrowRight, 'opacity',
    {'duration': 150}
  );
  flickrArrowLeftEffect.start(1, 0.4);
  
  $('boxPhotosFlickr').addClass('withControls');
  flickrArrowHolder = new Element('div', {
    'class': 'flickrArrowHolder'
  });
  flickrArrowLeft.inject(flickrArrowHolder);
  flickrArrowRight.inject(flickrArrowHolder);
  flickrArrowHolder.inject('boxPhotosFlickr');

});
