var thumbdelay = 2300; // delay in milliseconds
var numthumb   = 3; // number of image positions
var numimages  = 30; // number of different images

var photosLoaded = false;

function in_array($search_value, $array_to_search) {
  for ($i = 0; $i < $array_to_search.length; $i++) {
    if ($search_value == $array_to_search[$i]) {
      return true;
    }
  }
  return false;
}

function thumbsWidthDetails()
{
  setTimeout("setObjectsThumbsWidth('scrollerThumbs','thumbnail');",200);
}

function setObjectsThumbsWidth(div,classe)
{
  if(holder=document.getElementById(div))
  {
    var thumbsWidth = 0;
    count = 0;
    if(nav=document.getElementsByTagName('div'))
    {
      for(i=0;i<nav.length;i++)
      {
        if(nav[i].className.indexOf(classe)!=-1)
        {
          thumbsWidth += nav[i].offsetWidth;
          count++;
        }
      }
    }
    holder.style.width = (thumbsWidth + 4) + 'px';
  }
}


function activateObjectTab(selectedTab) {
  selectedTab = selectedTab.id;
  if (tabControl = document.getElementById('objectdetailcontent'))
  {
    tabControlChilds = tabControl.childNodes;
    for (i = 0; i < tabControlChilds.length; i++)
    {
      node = tabControlChilds[i];
      if (node.nodeName == "DIV") { // Checks if it is a tab
        if (node.className == selectedTab) {
          node.style.display = 'block';
          node.style.visibility = 'visible';
          if (node.className == 'locatie') {
            node.style.height = '391px';
          }
        }
        else {
          node.style.display = 'none';
        }
      }
    }
  }
  activateObjectTabLink(selectedTab);

  return false;
}

function activateObjectTabLink(selectedTab) {
  tabs = document.getElementById('objectdetailtabs').childNodes;
  for (i = 0; i < tabs.length; i++) {
    if (tabs[i].nodeName == 'DIV') {
      if (tabs[i].className == 'tabholder active' && tabs[i].id != selectedTab)
      {
        tabs[i].className = 'tabholder';
      }
      else if (tabs[i].id == selectedTab) {
        tabs[i].className = 'tabholder active';
      }
    }
  }
}

function retrieveThumbnails(uuid, buildingType)
{
  if (photosLoaded === false && document.getElementById('thumbsholder'))
  {
    var url               = 'object_details_thumbnails.php';
    var params            = 'uuid=' + uuid + '&buildingType=' + buildingType;
    var responseFunction  = 'retrieveThumbnailsResponse';
    remoteRequest(url, params, responseFunction, 'POST');
  }
}

function retrieveThumbnailsResponse()
{
  if (http_request && http_request.readyState == 4)
  {
    if (div = document.getElementById('thumbsholder'))
    {
      if (http_request.status == 200 && http_request.responseText!='')
      {
        div.innerHTML           = http_request.responseText;
      }

      div.style.backgroundImage = 'none';
      photosLoaded              = true;
    }
  }
}


function retrieveImagePopup(uuid, buildingType, imageNum)
{
  if(table = document.getElementById('imagepopup'))
  {
    scroll(0,0);
    removeImagePopup();

    var windowSize = getWindowSize();
    var height     = ((document.body.scrollHeight > windowSize[1]) ? document.body.scrollHeight : windowSize[1]);
    var opacity    = 60;

    var fillScreen = document.createElement("div");
    fillScreen.setAttribute("id", "popupFillScreen");
    fillScreen.style.position        = 'absolute';
    fillScreen.style.zIndex          = '100';
    fillScreen.style.top             = '0px';
    fillScreen.style.left            = '0px';
    fillScreen.style.height          = height + 'px';
    fillScreen.style.width           = windowSize[0] + 'px';
    fillScreen.style.backgroundColor = '#000000';
    fillScreen.style.opacity         = (opacity / 100);
    fillScreen.style.MozOpacity      = (opacity / 100);
    fillScreen.style.KhtmlOpacity    = (opacity / 100);
    fillScreen.style.filter          = "alpha(opacity=" + opacity + ")";
    document.body.appendChild(fillScreen);
    document.body.style.overflow  = 'hidden';

    var div = document.createElement('div');
    div.setAttribute('id', 'popupContainer');
    div.style.zIndex = '105';
    div.innerHTML = '<div id="popupLoading"></div>';
    document.body.insertBefore(div, table);

    document.body.style.cursor = 'wait';

    var url               = 'image_popup.php';
    var params            = 'uuid=' + uuid + '&buildingType=' + buildingType + '&number=' + imageNum;

    var responseFunction  = 'retrieveImagePopupResponse';
    remoteRequest(url, params, responseFunction, 'POST');
  }
}

function retrieveImagePopupResponse()
{
  if (http_request && http_request.readyState == 4)
  {
    document.body.style.cursor = 'default';
    if((http_request.status == 200 && http_request.responseText!='') && (div = document.getElementById('popupContainer')))
    {
      div.innerHTML = http_request.responseText;
      setTimeout(initImagePopupSlider, 800);
    }
  }
}

function initImagePopupSlider()
{
  getNavigationItemsWidth();
}

function removeImagePopup()
{
  if(popup = document.getElementById('popupContainer'))
  {
    document.body.removeChild(popup);
  }

  if(fillScreen = document.getElementById('popupFillScreen'))
  {
    document.body.removeChild(fillScreen);
    document.body.style.overflow  = 'auto';
  }
}

function updateNumImagePopup(num)
{
  if(elem = document.getElementById('curImgNum'))
  {
    elem.innerHTML = num;
  }
}

/**
* Function that returns the current image number
*
* @param void
* @return int
*/
function getCurrentImageNumber()
{
  var elem = null;

  if (elem = document.getElementById('currentImage'))
  {
    imageNumber = elem.innerHTML;

    if (imageNumber > 0)
    {
      imageNumber = parseInt(imageNumber);
      return imageNumber;
    }
  }

}

/**
* Function that sets the current image number
*
* @param int
* @return void
*/
function setCurrentImageNumber(imageNumber)
{
  if (!imageNumber || imageNumber < 1)
    return;

  var elem = null;

  if (elem = document.getElementById('currentImage'))
    elem.innerHTML = imageNumber;

}

/**
* Function that changes the next / previous buttons
*
* @param void
* @return void
*/
function changePreviousNextNavigation()
{
  imageNumber   = getCurrentImageNumber();
  numImages     = images.length;

  elemNext      = null;
  elemPrevious  = null;

  if (elemNext = document.getElementById('nextImageButton'))
    elemNext.style.visibility = (imageNumber < numImages) ? 'visible' : 'hidden';

  if (elemPrevious = document.getElementById('previousImageButton'))
    elemPrevious.style.visibility = (imageNumber > 1) ? 'visible' : 'hidden';

}

/**
* Function that moves to the previous image if available
* Depends on an array named "images" to be set
*
* @param void
* @return void
*/
function movePreviousImage()
{
  imageNumber = getCurrentImageNumber();
  imageNumber--;

  if (!imageNumber || imageNumber < 1)
    return;

  imageIndex = imageNumber - 1;

  if (images && images[imageIndex])
  {
    setCurrentImageNumber(imageNumber);
    setPopupImage('scroll', 'popupMainImage', images[imageIndex], images.length);
    changePreviousNextNavigation();
  }
}

/**
* Function that moves to the next image if available
* Depends on an array named "images" to be set
*
* @param void
* @return void
*/
function moveNextImage()
{
  imageNumber = getCurrentImageNumber();
  imageNumber++;

  if (!imageNumber)
    return;

  imageIndex = imageNumber - 1;

  if (images && images[imageIndex] && imageIndex <= images.length)
  {
    setCurrentImageNumber(imageNumber);
    setPopupImage('scroll', 'popupMainImage', images[imageIndex], images.length);
    changePreviousNextNavigation();
  }

}