/*
  Copyright 2011 ZombieTuesday Ltd.

  Distributed under the terms of the GPL version 3.

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  
  For a copy of the GNU General Public License see <http://www.gnu.org/licenses/>.
 */

/*
  Image item JSON format: [URL, Text, height, width, top, left]
 */

var delay = 5000;

var timerrun = true;

function nextImage() {
  imgptr++;
  if(imgptr >= imageItems.length) {
    imgptr = 0;
  }
  loadImage();
}

function previousImage() {
  imgptr--;
  if(imgptr < 0) {
    imgptr = imageItems.length -1;
  }
  loadImage();
}

function loadImage() {
  if((imgptr < 0) || (imgptr >= imageItems.length)) {
    return;
  }
  $('#fade').height($('window').height());
  $('#fade').width($('window').width());
  $('#fade').fadeIn(800, function() {
      var img = imageItems[imgptr];
      $('html').css('background', 'url(' + img[0] + ') no-repeat top center scroll');
      $('#imagetext').empty();
      $('#imagetext').append(img[1]);
      $('#imagetext').css('height', img[2] + "px");
      $('#imagetext').css('width', img[3] + "px");
      $('#imagetext').css('top', img[4] + "px");
      $('#imagetext').css('left', img[5] + "px");
      $('#fade').fadeOut(800);
      if(timerrun) {
	timer = setTimeout(nextImage, delay);
      } else {
	clearTimeout(timer);
      }
    });
}

function clickPreviousImage() {
  timerrun = false;
  previousImage();
}

function clickNextImage() {
  timerrun = false;
  nextImage();
}

function findImage(src) {
  for(var i = 0; i < imageItems.length; i++) {
    if(imageItems[i][0] == src) {
      return i;
    }
  }
  return -1;
}

var imageItems;
var imgptr = 0;
var timer;

$(document).ready(function() {
    $('#prevbutton').click(clickPreviousImage);
    $('#nextbutton').click(clickNextImage);
    $.getJSON('frontpageimagedata.html', function(data) {
	// last element is always emtpy
	imageItems = data.slice(0, data.length-1);
	loadImage();
      });
    $('.ImageBlob').find('a').click(function(e) {
      e.preventDefault();
      });
    $('.ImageBlob').click(function(e) {
	e.preventDefault();
	var src = $(this).find('input').val();
	var idx = findImage(src);
	if(idx >= 0) {
	  clearTimeout(timer);
	  timerrun = false;
	  imgptr = idx;
	  loadImage();
	}
      });
  });

