function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}

function preparePlaceholder() {
  if (!document.createElement) return false;
  if (!document.createTextNode) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("image-gallery")) return false;
  var placeholder = document.createElement("img");
  placeholder.setAttribute("id","gallery-full-size");
  var gallery = document.getElementById("image-gallery");
  insertAfter(placeholder,gallery);
}

function prepareGallery() {
  if (!document.createElement) return false;
  if (!document.createTextNode) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("image-gallery")) return false;
  var placeholder = document.getElementById("gallery-full-size");
  placeholder.src = largearr[0];
  var gallery = document.getElementById("image-gallery");
  var links = gallery.getElementsByTagName("a");
  var img = gallery.getElementsByTagName("img");
  for ( var i=1; i < links.length - 1; i++ ) {
  	links[i].href = largearr[i];
    links[i].onclick = function() {
      return showPic(this);
    }
    links[i].onkeypress = links[i].onclick;
  }
  
  for ( var i=0; i < img.length; i++ ) {
  	img[i].src = smallarr[i];
  }
}

function showPic(whichpic) {
  if (!document.getElementById("gallery-full-size")) return true;
  var source = whichpic.getAttribute("href");
  var placeHolder = document.getElementById("gallery-full-size");
  placeHolder.setAttribute("src",source);
  return false;
}

function getNext(thenum) {
  if ((thenum + 1) < smallarr.length) {
    return thenum + 1;
  } else {
    return 0;
  }
}

function getPrevious(thenum) {
  if ((thenum - 1) >= 0) {
    return thenum - 1;
  } else {
    return smallarr.length - 1;
  }
}

function switchGallery(nextflag) {
  if (!document.createElement) return false;
  if (!document.createTextNode) return false;
  if (!document.getElementById) return false;
  var l1 = document.getElementById("l1");  
  var l2 = document.getElementById("l2");
  var l3 = document.getElementById("l3");
  var l4 = document.getElementById("l4");
  var i1 = document.getElementById("image-gallery-1");
  var i2 = document.getElementById("image-gallery-2");
  var i3 = document.getElementById("image-gallery-3");
  var i4 = document.getElementById("image-gallery-4");
  
  if ( nextflag == 0) {  	
    var s1 = getPrevious(first);
    var s2 = getPrevious(s1);
    var s3 = getPrevious(s2);
    var s4 = getPrevious(s3);
    first = s4;
    last = s1;
  } else {
    var s1 = getNext(last);
    var s2 = getNext(s1);
    var s3 = getNext(s2);
    var s4 = getNext(s3);
    first = s1;
    last = s4;
  }

  l1.setAttribute("href",largearr[s1]);
  l2.setAttribute("href",largearr[s2]);
  l3.setAttribute("href",largearr[s3]);
  l4.setAttribute("href",largearr[s4]);
  i1.setAttribute("src",smallarr[s1]);
  i2.setAttribute("src",smallarr[s2]);
  i3.setAttribute("src",smallarr[s3]);
  i4.setAttribute("src",smallarr[s4]); 
}

addLoadEvent(preparePlaceholder);
addLoadEvent(prepareGallery);
