
var server = "front-end/main.asp";
var idBrand = null;

function init()
{
  ajaxGetText(server + "?verb=main", "", "",
    function() {
      document.body.innerHTML = ajaxResponseText;
      bodyResized();
      loadHome();
    }
  );
}

function done(){}

function loadHome()
{
  var e = document.getElementById("submenu");
  if (e)
  {
    e.style.visibility = "hidden";
    e = document.getElementById("menu");
    e.style.visibility = "hidden";
    e.style.left = 8 - e.offsetWidth + "px";
  }
  document.getElementById("buttons").style.visibility = "hidden";
  ajaxGetText(server + "?verb=home", "dynPanel", "loadingSignal",
    function() {
    }
  );
}

// BRAND HANDLING ============================================================================================

var menuEntryDelay = 2000;

function brand(id)
{
  idBrand = id;
  ajaxLoadingSignalOn();
  ajaxGetText(server + "?verb=brandContainers", "dynPanel", null,
    function() {
      ajaxGetText(server + "?verb=leftPanelContent&idBrand=" + idBrand + "&idContent=1", "leftPanel", null,
        function() {
          currentLeftPanelContentId = 1;
          ajaxGetText(server + "?verb=menu&idBrand=" + idBrand, "menu", null,
            function() {
              document.getElementById("buttons").style.visibility = "visible";
              menuEntryDelay = 2000;
              showMenu(
                function() {
                  if (document.getElementById("menu_1")) document.getElementById("menu_1").onclick();
                  ajaxLoadingSignalOff();
                }
              );
            }
          );
        }
      );
    }
  );
}

// MENU ==========================================================================================================

var menuItemsHTML = null;

function showMenu(onFinished)
{
  delay(menuEntryDelay,
    function() {
      document.getElementById("menuHandleTop").style.visibility = "hidden";
      document.getElementById("menuHandleBottom").style.visibility = "hidden";
      document.getElementById("menu").style.visibility = "visible";
      if (!document.getElementById("menuItems").innerHTML)
        document.getElementById("menuItems").innerHTML = menuItemsHTML;
      startMenuSliding(onFinished);
    }
  );
}

function startMenuSliding(onFinished)
{
  slide("menu", true,
    function() {
      document.getElementById("submenu").style.left = 0;
      document.getElementById("submenu").style.visibility = "visible";
      menuEntryDelay = 300;
      if (onFinished) onFinished();
    }
  );
}

function hideMenu(onFinished)
{
  slide("menu", false,
    function() {
      document.getElementById("menuHandleTop").style.visibility = "visible";
      document.getElementById("menuHandleBottom").style.visibility = "visible";
      menuItemsHTML = document.getElementById("menuItems").innerHTML;
      document.getElementById("menuItems").innerHTML = "";
      if (onFinished) onFinished();
    }
  );
}

function menuItemSelected(menuId, leftPanelContentId, rightPanelContentId)
{
  ajaxLoadingSignalOn();
  loadLeftPanel(leftPanelContentId,
    function() {
      loadSubmenu(menuId,
        function() {
          var topSubmenuItem = document.getElementById("submenu_1");
          if (topSubmenuItem)
            hideMenu(
              function() {
                if (rightPanelContentId)
                  loadRightPanel(rightPanelContentId,
                    function() {
                      ajaxLoadingSignalOff();
                    }
                  );
                else
                  topSubmenuItem.onclick();
              }
            );
          else
            loadRightPanel(rightPanelContentId,
              function() {
                ajaxLoadingSignalOff();
              }
            );
        }
      );
    }
  );
}

function loadSubmenu(menuId, onFinished)
{
  ajaxGetText(server + "?verb=submenu&idBrand=" + idBrand + "&idMenu=" + menuId, "submenu", null,
    function() {
      if (onFinished) onFinished();
    }
  );
}

function submenuItemSelected(leftPanelContentId, rightPanelContentId)
{
  ajaxLoadingSignalOn();
  loadLeftPanel(leftPanelContentId,
    function() {
      loadRightPanel(rightPanelContentId,
        function() {
          ajaxLoadingSignalOff();
        }
      );
    }
  );
}

// CONTENT LOADING ==============================================================================================

var currentLeftPanelContentId = null;
var currentRightPanelContentId = null;

function loadLeftPanel(contentId, onFinished)
{
  if (!contentId || currentLeftPanelContentId == contentId)
  {
    if (onFinished)
      onFinished();
  }
  else
  {
    ajaxAbort();
    currentLeftPanelContentId = contentId;
    ajaxGetText(server + "?verb=leftPanelContent&idBrand=" + idBrand + "&idContent=" + contentId, "leftPanel", loadingSignalId,
      function() {
        if (onFinished)
          onFinished();
      }
    );
  }
}

function loadRightPanel(contentId, onFinished)
{
  if (currentRightPanelContentId == contentId)
  {
    if (onFinished)
      onFinished();
  }
  else
  {
    ajaxAbort();
    currentRightPanelContentId = contentId;
    ajaxGetText(server + "?verb=rightPanelContent&idBrand=" + idBrand + "&idContent=" + contentId, "rightPanel", loadingSignalId,
      function() {
        photoAutoClickNumber = 1;
        photoAutoClick();
        if (onFinished)
          onFinished();
      }
    );
  }
}

function loadRightContent(contentId)
{
  if (currentRightPanelContentId != contentId)
  {
    ajaxAbort();
    currentRightPanelContentId = contentId;
    ajaxGetText(server + "?verb=rightPanelContent&idBrand=" + idBrand + "&idContent=" + contentId, "rightPanel", loadingSignalId);
  }
}

var photoAutoClickNumber = -1;
var photoAutoClickHandle = null;
var photoAutoClicked = false;

function photoAutoClick() {
  if (document.getElementById("photo_" + photoAutoClickNumber))
  {
    document.getElementById("photo_" + photoAutoClickNumber).onclick();
    if (document.getElementById("photo_" + photoAutoClickNumber++))
      photoAutoClickHandle = setTimeout(function() { photoAutoClicked = true; photoAutoClick(); }, 5000);
  }
  else if (photoAutoClickNumber > 2)
  {
    photoAutoClickNumber = 1;
    photoAutoClickHandle = setTimeout(function() { photoAutoClicked = true; photoAutoClick(); }, 5000);
  }
  photoAutoClicked = false;
}

var photoBtnSelected = null;

function photoSelected(photoBtn, id)
{
  if (!photoAutoClicked)
  {
    clearTimeout(photoAutoClickHandle);
    photoAutoClickHandle = null;
  }
  else
    photoAutoClicked = false;
  currentLeftPanelContentId = null;
  if (photoBtnSelected)
    setElemState(photoBtnSelected, "Normal");
  photoBtnSelected = photoBtn;
  fade("photoOverlay", true,
    function() {
      ajaxGetText(server + "?verb=photo&idBrand=" + idBrand + "&idContent=" + currentRightPanelContentId + "&idPhoto=" + id, "leftPanel", "",
        function() {
        }
      );
    }
  );
}

function photoLoaded(img)
{
  img.style.visibility = "visible";
  fade("photoOverlay", false,
    function() {
      setElemState(photoBtnSelected, "Selected");
    }
  );
}

function zoom(img)
{
  document.getElementById("photoPanel").src = img.src;
}

function photoViewerLoaded()
{
  document.getElementById("photoViewer").style.visibility = "visible";
}

function photoViewerClose()
{
  document.getElementById("photoViewer").style.visibility = "hidden";
  document.getElementById("photoPanel").src = "";
}

// CONTACT ============================================================================================================

function sendContactMessage()
{
  if (document.contactForm.firstName.value && document.contactForm.lastName.value && document.contactForm.email.value &&
       document.contactForm.message.value)
    ajaxSubmit(document.contactForm, "rightPanelBox", loadingSignalId);
  else
    alert("Por favor, complete todos los datos del formulario.");
}

// MISCELANEOUS FUNCTIONS =============================================================================================

function deselectMenu()
{
  if (mainMenuSelectedLevel1ItemIdx)
  {
    document.getElementById("mainMenuLevel1Item" + mainMenuSelectedLevel1ItemIdx).className = "anchor mainMenuLevel1Item";
    if (mainMenuSelectedLevel2ItemIdx)
      setElemState(document.getElementById("mainMenuLevel2Item" + mainMenuSelectedLevel1ItemIdx + "_" + 
        mainMenuSelectedLevel2ItemIdx), "Normal");
  }
  mainMenuSelectedLevel1ItemIdx = 0;
  mainMenuSelectedLevel2ItemIdx = 0;
  selectedLevel1ContentMenuId = 0;
}

function bodyResized()
{
  var main = document.getElementById("main");
  if (main)
  {
    if (document.body.clientWidth > main.offsetWidth)
      main.style.left = Math.round((document.body.clientWidth - main.offsetWidth) / 2) + "px";
    else
      main.style.left = "0px";
    if (document.body.clientHeight > main.offsetHeight)
      main.style.top = Math.round((document.body.clientHeight - main.offsetHeight) / 2) + "px";
    else
      main.style.top = "0px";
    main.style.visibility = "visible";
  }
}

