var elementsUlMain  = null;
var elementsLiMain  = null;
var defaultA        = null;

function getPageSize() {

	  var xScroll, yScroll;

		if (window.innerHeight && window.scrollMaxY) {
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}

		var windowWidth, windowHeight;

		if (self.innerHeight) {	// all except Explorer
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth;
			} else {
				windowWidth = self.innerWidth;
			}
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}

		// for small pages with total height less then height of the viewport
		if(yScroll < windowHeight){
			pageHeight = windowHeight;
		} else {
			pageHeight = yScroll;
		}

		// for small pages with total width less then width of the viewport
		if(xScroll < windowWidth){
			pageWidth = xScroll;
		} else {
			pageWidth = windowWidth;
		}

		return [pageWidth,pageHeight];
	}

function showBigImage(url) {
  var arrayPageSize = getPageSize();

  $('body').append('<div id="overlay" style="width: '+arrayPageSize[0]+'px; height: '+arrayPageSize[1]+'px; opacity: 0.8;"/>');
  

  var elementDIV = document.getElementById("overlay");
  if(elementDIV) {
    elementDIV.onclick = function(){
      var elementDIVtmp = document.getElementById("lightbox");
      elementDIVtmp.parentNode.removeChild(elementDIVtmp);
      this.parentNode.removeChild(this);
    }
  }
  
  
  var image = new Image();
  image.onload = function(){
    var width = image.width + 20;
    var height = image.height + 20;
    
    var left = (arrayPageSize[0] / 2) - (width / 2);
    
    $('body').append('<div id="lightbox" style="margin: 0 auto; width: '+width+'px; height: '+height+'px; top: 20px; left: '+left+'px;"><div id="outerImageContainer" style="width: '+width+'px; height: '+height+'px;"><div id="imageContainer"> <img id="lightboxImage" style="" src="/'+url+'"/><div id="loading" style="display: none;"> <a href="#" id="loadingLink"> <img src="/images/loading.gif"/></a></div></div></div></div>');
  };
  image.src = "/" + url;
  
}

function closeAllUL() {
  for (var i = 0; i < elementsLiMain.length; i++) {
    if (elementsLiMain[i].getElementsByTagName('ul')[0]) {
      elementsLiMain[i].getElementsByTagName('ul')[0].style.visibility = 'hidden';

    }
    if (elementsLiMain[i].getElementsByTagName('a')[0]) elementsLiMain[i].getElementsByTagName('a')[0].className = 'over';
  }
}

function setImagesJSGallery(images) {
  var divJSGallery = document.getElementById('jsGallery');
  var divGalleryWindow = document.getElementById('galleryWindow');
  var divGalleryScrollbox = document.getElementById('galleryScrollbox');
  
  if(divJSGallery && divGalleryWindow && divGalleryScrollbox && images) {
    var arImages = divGalleryScrollbox.getElementsByTagName('img');
    
    for (var i = 0; i < arImages.length; i++) {
      arImages[i].src = images[i].getAttribute('src')
      arImages[i].rel = '';

      var opacityTween = new OpacityTween(arImages[i],Tween.regularEaseIn, 0, 100, 0.8);
      opacityTween.start();

      arImages[i].style.visibility = 'visible';
    }
    
    
  }

}

function setJSGallery() {
  var divJSGallery = document.getElementById('jsGallery');
  var divGalleryWindow = document.getElementById('galleryWindow');
  var divGalleryScrollbox = document.getElementById('galleryScrollbox');

  if(divJSGallery && divGalleryWindow && divGalleryScrollbox) {
    var W_divJSGallery = divJSGallery.offsetWidth;
    var W_divGalleryWindow = divGalleryWindow.offsetWidth;
    var W_divGalleryScrollbox = divGalleryScrollbox.offsetWidth;

    var arImages = divGalleryScrollbox.getElementsByTagName('img');

    var getImageNum = 0;
    var images = [];

    for (var i = 0; i < arImages.length; i++) {
      images[i] = new Image();

      images[i].onload = (function(){
        getImageNum++;
        if (getImageNum == arImages.length) setImagesJSGallery(images);
      });

      images[i].src = arImages[i].getAttribute('rel');
    }
    
    var navLeft = document.getElementById('navLeft');
    var navRight = document.getElementById('navRight');

    if(navLeft && navRight){
      //onmousedown
      navLeft.onmousedown = function() {

        moveFlag = true;
        moveStart('right');
      }
      
      navLeft.onclick = function() {
        moveFlag = false;
      }
      
      navRight.onclick = function() {
        moveFlag = false;
      }
      
      navRight.onmousedown = function() {

        moveFlag = true;
        moveStart('left');
      }
    }

  }
}

var moveFlag = false;

function moveStart(type) {

    if (moveFlag == true) {
      var divJSGallery = document.getElementById('jsGallery');
      var divGalleryWindow = document.getElementById('galleryWindow');
      var divGalleryScrollbox = document.getElementById('galleryScrollbox');

      var leftOrigin = divGalleryScrollbox.style.left.replace(/px|pt/, '') * 1;

      if (type == 'left')   var newLeft = leftOrigin - 2;
      if (type == 'right')  var newLeft = leftOrigin + 2;
      
      var arDiv = divGalleryScrollbox.getElementsByTagName('td'); var W_arDiv = 0;
      for (var i = 0; i < arDiv.length; i++) {
        W_arDiv = W_arDiv + arDiv[i].clientWidth;
      }
      W_divGalleryWindow = divGalleryWindow.clientWidth;

      if (newLeft < (W_divGalleryWindow - W_arDiv) || newLeft > 0) {
        moveFlag = false;
        //divGalleryScrollbox.style.left = newLeft + 'px';
      } else {
        divGalleryScrollbox.style.left = newLeft + 'px';
      }

      setTimeout(function(){
        moveStart(type);
      }, 5);

    }

}

function init() {
  setJSGallery();
  
  var elementIMG = document.getElementById('photoman');
  if (elementIMG && /null\.gif/.test(elementIMG.getAttribute('src'))) {
    //elementIMG.className = 'Off';
  } else {
    //elementIMG.className = 'On';
  }
  
  for (var i = 0; i < document.body.getElementsByTagName('ul').length; i++) {
    if (document.body.getElementsByTagName('ul')[i].className == 'menuMain') elementsUlMain = document.body.getElementsByTagName('ul')[i];
  }

  if (elementsUlMain) {
    elementsLiMain = elementsUlMain.getElementsByTagName('li');

    for (var i = 0; i < elementsLiMain.length; i++) {
    if (elementsLiMain[i].className == 'root') {
      var elementA = elementsLiMain[i].getElementsByTagName('a');
      
      if (elementA[0]) {
        if (elementA[0].className == 'hover') defaultA = elementA[0];

        elementA[0].onmouseover = function() {
          element = this;

          var elementUL = this.parentNode.getElementsByTagName('ul')[0];

          if (elementUL || true) {
            if (element.className != 'hover') {
              closeAllUL();

              element.className = 'hover';

              var opacityTween = new OpacityTween(elementUL,Tween.regularEaseIn, 0, 100, 0.5);
              opacityTween.start();

              elementUL.style.visibility = 'visible';
            } else {
              element.blur();

              element.className = 'over';
              elementUL.style.visibility = 'hidden';
            }
          }

          return true;
        }
      }
    }
    }
  }
}

window.onload = init;