var scenario;
var googleLoaded                  = false;
var currentImageSliderContainerId = null;
var currentObjectUuid;
var currentObjectType;
var floorplanWidth      = 400;
var floorplanHeight     = 400;
var imageWidth          = 400;
var imageHeight         = 400;

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

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 toggleDisplayBlockById($id, $mode, $displayText, $location)
{
   if ($id != '')
   {
      $element = document.getElementById($id);

      if ($element != null)
      {
        switch ($mode)
        {
          case "on":

            if ($displayText != null)
            {
              if ($displayText.length > 0)
                $element.innerHTML = $displayText;

            }

            if ($location != null)
            {
              if ($location.length > 0)
                $element.href = $location;

            }

            $element.style.display = 'block';

          break;

          case "off":

            $element.style.display = 'off';

          break;

          case "auto":

            if ($element.style.display == 'block')
            {
              $element.style.display = 'none';
            }
            else
            {
              if ($displayText != null)
              {
                if ($displayText.length > 0)
                  $element.innerHTML = $displayText;

              }

              if ($location != null)
              {
                if ($location.length > 0)
                  $element.href = $location;

              }

              $element.style.display = 'block';
            }

          break;

          default:

            alert('There has not been provided a valid mode, valid modes are on / off / auto.');

          break;

        }
      }
   }
}

function activateObjectTab(selectedTab, tabLinksContainerId)
{
  if (typeof(selectedTab) == 'string')
    selectedTab = document.getElementById(selectedTab);

  if (!typeof(selectedTab) == 'object')
    return;

  if (!tabLinksContainerId) {
    tabLinksContainerId = 'tablinksholder';
    activateObjectTabLink('', 'tabsublinksholder');
  }

  sourceId = selectedTab.id;

  selectedTab = 'tab_' + selectedTab.id;
  tabControl = document.getElementById('tabscontent');
  tabControlChilds = tabControl.childNodes;

  for (i = 0; i < tabControlChilds.length; i++)
  {
    node = tabControlChilds[i];

    // Checks if it is a tab
    if (node.nodeName == "DIV")
    {
      if (node.id  == selectedTab)
      {
        node.style.display = 'block';
        node.style.visibility = 'visible';

        node.className = 'tabSelected';
      }
      else
      {
        node.style.display = 'none';
        node.style.visibility = 'hidden';
        node.className = 'tabDisabled';
      }
    }
  }

  activateObjectTabLink(sourceId, tabLinksContainerId);
  return false;
}

function activateObjectSubTab(selectedTab)
{
  activateObjectTabLink('', 'tablinksholder');

  activateObjectTab(selectedTab, 'tabsublinksholder');

  return false;
}

function activateObjectTabLink(selectedTab, tabLinksContainerId)
{
  tabs = null;

  if (tabs = document.getElementById(tabLinksContainerId))
  {
    tabs = tabs.childNodes;

    for (i = 0; i < tabs.length; i++) {
      if (tabs[i].nodeName == 'A')
      {
        tabs[i].className = 'normal';

        if (tabs[i].id == selectedTab)
          tabs[i].className = 'active';

      }
    }
  }
}

function setCurrentObject(uuid, type)
{
  currentObjectUuid = uuid;
  currentObjectType = type;
}

function addThumbnails(container, src, width, height)
{
  if (elem = document.getElementById(container))
  {
    if (!elem.loaded || elem.loaded != 'true')
    {
      currentImageSliderContainerId = container;
      var url                       = 'scripts/resize_image.php';
      var params                    = 'images=' + src + '&width=' + width + '&height=' + height;
      var onreadystate              = 'placeThumbnails';

      remoteRequest(url, params, onreadystate);
    }
  }
}

function placeThumbnails()
{
  if (http_request && http_request.readyState == 4 && http_request.status == 200 && http_request.responseText!='')
  {
    if (container = document.getElementById(currentImageSliderContainerId))
    {
      container.loaded = 'true';

      if (http_request.responseText.indexOf('|')!==-1)
        var images = http_request.responseText.split('|');
      else
        var images = new Array(http_request.responseText);

      for (var i=0; i<images.length; i++)
      {
        image = images[i].split('<>');
        var orgFileName = image[1].substr(0, 36) + '.jpg';
        var img = document.createElement("img");
        container.appendChild(img);

        img.src         = 'img/cache/' + image[1];
        img.className   = 'thumbnail';
        img.objectUuid  = currentObjectUuid;
        img.objectType  = currentObjectType;
        img.imgNumber   = image[0];
        img.orgFilename = orgFileName;
        if (currentImageSliderContainerId == 'slider-container-photos' || currentImageSliderContainerId == 'slider-container-floorplans')
          img.onclick = function() {changePhoto(this.orgFilename);};
        else
          img.onclick = function() {openImages(this.objectUuid, this.objectType, this.imgNumber);};
      }
    }
  }
}

function changePhoto(src)
{
  if (currentImageSliderContainerId == 'slider-container-floorplans')
  {
    var width   = floorplanWidth;
    var height  = floorplanHeight;
  }
  else
  {
    var width   = imageWidth;
    var height  = imageHeight;
  }
      
  var url           = 'scripts/resize_image.php';
  var params        = 'image=' + src + '&width=' + width + '&height=' + height;
  var onreadystate  = 'changePhotoCallback';
  
  remoteRequest(url, params, onreadystate);
}

function changePhotoCallback()
{
  if (http_request && http_request.readyState == 4 && http_request.status == 200 && http_request.responseText!='')
  {
    if (currentImageSliderContainerId == 'slider-container-floorplans')
      var id = 'imgslidermainfloorplan';
    else
      var id = 'imgslidermainphoto';
      
    if (img = document.getElementById(id))
    {
      var image = http_request.responseText.split('<>');
      img.src = 'img/cache/' + image[1];
    }
  }
}

function activateGoogleMaps()
{
  if (googleLoaded != true)
  {
    if (checkPageLoaded("activateGoogleMaps()") == true)
    {
      loadGoogleMaps();
      googleLoaded = true;
    }
  }
}

