﻿var gHighlightedSubMenuID = undefined;
var gHighlightedMenuID = undefined;
var gHilightToutID = undefined;
var gSelectedSubMenuID = undefined;
var gSelectedMenuID = undefined;
var gSelectedOptID = undefined;
var gSelectedItemColor = "white";
var gHighlightedItemColor = "#3299FF";
var gIdleItemColor = "silver";
var gMenuButtonActiveStr = "images/botao_aceso.png";
var gMenuButtonInactiveStr = "";
var gHttpReq = undefined;
var gLoadingMenuID = undefined;
var gLoadingSubmenuID = undefined;
var gLoadingOptID = undefined;
var gLoadingDivID = undefined;
var gAnchor = null;
var gUrl = null;
var pageTracker = null;
var gIsIE6 = false;
var gItemExpanded = null;

function IsIE6()
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat(RegExp.$1);
  }
  return rv >= 5 && rv <= 6;
}

function IsIE() 
{
  if (navigator.appName == 'Microsoft Internet Explorer')
    return true;
  else
    return false;
}

function setBackground(element, imageStr)
{
  if (IsIE6())
    //object.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imageStr;
    element.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imageStr + "', sizingMethod='crop')";
  else
    element.style.backgroundImage = "url('" + imageStr + "')";
}

function showMenu(menuID, submenuID) 
{
  if (gHighlightedMenuID != undefined)
  {
    if (menuID == gHighlightedMenuID)
    {
      //menu já está sendo mostrado. Apenas cancela timer, se for o caso
      if (gHilightToutID != undefined)
        clearTimeout(gHilightToutID);
      return;
    }
    else
    {
      //um outro menu está sendo mostrado, o desabilita
      var prevHighlightedMenu = document.getElementById(gHighlightedMenuID);
      setBackground(prevHighlightedMenu, gMenuButtonInactiveStr);
      prevHighlightedMenu.style.color = "white";
      var prevHighlightedSubMenu = document.getElementById(gHighlightedSubMenuID);
      prevHighlightedSubMenu.style.visibility = "hidden";
      //se tem timeout marcado, desabilita
      if (gHilightToutID != undefined)
        clearTimeout(gHilightToutID);
    }
  }
  if (gSelectedMenuID != undefined)
  {
    //menu selecionado temporariamente fica desabilitado
    var selectedMenu = document.getElementById(gSelectedMenuID);
    setBackground(selectedMenu, gMenuButtonInactiveStr);
    selectedMenu.style.color = "white";
    var selectedSubMenu = document.getElementById(gSelectedSubMenuID);
    selectedSubMenu.style.visibility = "hidden";
    var selectedOpt = document.getElementById(gSelectedOptID);
    selectedOpt.style.color = "silver";    
  }
  //finalmente habilita o hilight deste elemento
  var newHighlightedMenu = document.getElementById(menuID);
  setBackground(newHighlightedMenu, gMenuButtonActiveStr);
  newHighlightedMenu.style.color = gHighlightedItemColor;
  var newHighlightedSubMenu = document.getElementById(submenuID);
  newHighlightedSubMenu.style.visibility = "visible";
  gHighlightedMenuID = menuID;
  gHighlightedSubMenuID = submenuID;
}

function hideMenu(menuID, submenuID) 
{
  var aux = "hideMenuDg('" + menuID + "', '" + submenuID + "')";
  gHilightToutID = setTimeout(aux, 1000);
}

function hideMenuDg(menuID, submenuID) 
{
  var tempMenu = document.getElementById(menuID);
  setBackground(tempMenu, gMenuButtonInactiveStr);
  tempMenu.style.color = "white";
  var tempSubMenu = document.getElementById(submenuID);
  tempSubMenu.style.visibility = "hidden";
  gHighlightedMenuID = undefined;
  gHighlightedSubMenuID = undefined;
  if (gSelectedSubMenuID != undefined)
  {
    var curSelectedSubMenu = document.getElementById(gSelectedSubMenuID);
    curSelectedSubMenu.style.visibility = "visible";
    var selectedMenu = document.getElementById(gSelectedMenuID);
    selectedMenu.style.color = gSelectedItemColor;
    setBackground(selectedMenu, gMenuButtonActiveStr);
    var selectedOpt = document.getElementById(gSelectedOptID);
    selectedOpt.style.color = gSelectedItemColor;    
  }  
}

function navigate(menuID, submenuID, optID, url, targetDivID) 
{
  document.location.hash = menuID + '&' + submenuID + '&' + optID + '&' + targetDivID + '&' + url;
  window.scrollTo(0, 0);
}

$().ready(function()
{
  setInterval("checkAnchor()", 200);
});

function checkAnchor() 
{
  if (gAnchor == document.location.hash)
    return;
  gAnchor = document.location.hash;
  
  var url;
  if (!gAnchor)
  {
    gAnchor = "#home_menu&home_submenu&home_opt&changeable_div&html/home.html";
    document.location.hash = gAnchor;
  }
  var parts = gAnchor.substring(1).split('&');

  gLoadingMenuID = parts[0];
  gLoadingSubmenuID = parts[1];
  gLoadingOptID = parts[2];
  gLoadingDivID = parts[3];
  gUrl = parts[4];
  
  gHttpReq = undefined;
  if (window.XMLHttpRequest) //Firefox, Opera, IE7, etc
    gHttpReq = new XMLHttpRequest();
  else if (window.ActiveXObject) // IE6, IE5
    gHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  gHttpReq.open("GET", gUrl, true);
  gHttpReq.onreadystatechange = navigateResult;
  gHttpReq.send(null);
}

function runScripts(e)
{
  if (e.nodeType != 1) 
    return; //if it's not an element node, return

  if (e.tagName.toLowerCase() == 'script')
  {
    eval(e.text); //run the script
  }
  else
  {
    var n = e.firstChild;
    while (n)
    {
      if (n.nodeType == 1) runScripts(n); //if it's an element node, recurse
        n = n.nextSibling;
    }
  }
}

function navigateResult() 
{
  if (gHttpReq.readyState != 4)
    return;

  if (gSelectedOptID != undefined)
  {
    var prevOpt = document.getElementById(gSelectedOptID);
    prevOpt.style.color = "silver";
  }
  var newOpt = document.getElementById(gLoadingOptID);
  newOpt.style.color = gSelectedItemColor;
  var newMenu = document.getElementById(gLoadingMenuID);
  newMenu.style.color = gSelectedItemColor;
  setBackground(newMenu, gMenuButtonActiveStr);
  var newSubMenu = document.getElementById(gLoadingSubmenuID);
  newSubMenu.style.visibility = "visible";
  newSubMenu.style.color = gSelectedItemColor;

  gLoadingDivID = "changeable_div";
  var content_div = document.getElementById(gLoadingDivID);
  content_div.innerHTML = gHttpReq.responseText + '<div style="clear: both; height:2em;"></div>';
  runScripts(content_div);

  if (gSelectedMenuID != undefined && gSelectedMenuID != gLoadingMenuID)
  {
    var prevMenu = document.getElementById(gSelectedMenuID);
    prevMenu.style.color = "white";
    setBackground(prevMenu, gMenuButtonInactiveStr);
  }
  if (gSelectedSubMenuID != undefined && gSelectedSubMenuID != gLoadingSubmenuID)
  {
    var prevSubMenu = document.getElementById(gSelectedSubMenuID);
    prevSubMenu.style.visibility = "hidden";  
  }
  gSelectedSubMenuID = gLoadingSubmenuID;
  gSelectedMenuID = gLoadingMenuID;
  gSelectedOptID = gLoadingOptID;
}

function highlight(opt) 
{
  opt.style.color = gHighlightedItemColor;
}

function unhighlight(opt) 
{
  if (opt.id != gSelectedOptID)
    opt.style.color = gIdleItemColor;
  else
    opt.style.color = gSelectedItemColor;
}

function checkBrowser() 
{
  if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) 
  { 
    var ieversion = new Number(RegExp.$1)
    if (ieversion <= 6)
      alert("Esta versão do Internet Explorer está desatualizada.\n" +
            "Pedimos que atualize para uma versão mais recente deste navegador a fim de que tenha uma navegação mais agradável.");
  }

}

function collapseOrExpand(id, question_div) 
{
  var obj = document.getElementById(id);
  if (obj == undefined)
    return;
    
  //consideremos as atualizações do item expandido  
  if (gItemExpanded) //se existia um expandido, terá que deixar de ser
    gItemExpanded.style.backgroundImage = "url(\"images/mini_expander_down.png\")";
  if (question_div)
  {
    //se tem um novo item expandido
    if (question_div != gItemExpanded) 
    {
      //se é diferente do que estava expandido anteriormente, é novo e portanto deve ser expandindo
      question_div.style.backgroundImage = "url(\"images/mini_expander_up.png\")";
      gItemExpanded = question_div;
    }
    else  //é igual ao que estava expandido antes, então apenas atualiza item expandido para nenhum
      gItemExpanded = null;
  }
  else //não tem novo item expandido, então atualiza o item expandido atual prá nenhum
    gItemExpanded = null;
  
  //versão com animação (comente a linha abaixo e descomente o código a seguir se não quiser animação)
  animatedcollapse.toggle(id);
  /*if (obj.style.display == "" || obj.style.display == "none")
    obj.style.display = "block";
  else
    obj.style.display = "none";*/
}

function solutionTitleEffect(id, mouseOver) 
{
  var obj = document.getElementById(id);
  if (obj == undefined)
    return;
  if (mouseOver)
    obj.style.textDecoration = "underline";
  else
    obj.style.textDecoration = "none";
}

function pureTextHomeEffect(id, mouseOver) {
  var obj = document.getElementById(id);
  if (obj == undefined)
    return;
  if (mouseOver)
    obj.style.color = "Red";
  else
    obj.style.color = "Black";
}

function buildFormStr(obj) 
{
  var getstr = "";
  for (i = 0; i < obj.getElementsByTagName("input").length; i++) 
  {
    if (obj.getElementsByTagName("input")[i].type == "text") 
    {
      getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   escape(obj.getElementsByTagName("input")[i].value) + "&";
    }
    else if (obj.getElementsByTagName("input")[i].type == "checkbox") 
    {
      if (obj.getElementsByTagName("input")[i].checked) 
      {
        getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   escape(obj.getElementsByTagName("input")[i].value) + "&";
      }
      else 
        getstr += obj.getElementsByTagName("input")[i].name + "=&";
    }
    else if (obj.getElementsByTagName("input")[i].type == "radio") 
    {
      if (obj.getElementsByTagName("input")[i].checked) 
      {
        getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   escape(obj.getElementsByTagName("input")[i].value) + "&";
      }
    }
  }
  for (i = 0; i < obj.getElementsByTagName("select").length; i++) 
  {
    getstr += obj.getElementsByTagName("select")[i].name + "=" +
                   escape(obj.getElementsByTagName("select")[i].value) + "&";
  }
  for (i = 0; i < obj.getElementsByTagName("textarea").length; i++) 
  {
    getstr += obj.getElementsByTagName("textarea")[i].name + "=" +
                   escape(obj.getElementsByTagName("textarea")[i].value) + "&";
  }
  if (getstr.length && getstr.charAt(getstr.length - 1) == '&')
    getstr = getstr.substring(0, getstr.length - 1);
  return getstr;
}

var httpReq;
function submitContactForm(form_name) 
{
  //primeiro valida o formulário
  var txtCliName = document.getElementById("contact_form_cliname");
  if (txtCliName.value.length <= 0) 
  {
    alert("Precisamos de seu nome para poder receber sua solicitação");
    txtCliName.focus();
    return;
  }
  var txtCliEmail = document.getElementById("contact_form_email");
  if (txtCliEmail.value.length <= 0) 
  {
    alert("Precisamos de seu e-mail para poder receber sua solicitação");
    txtCliEmail.focus();
    return;
  }
  var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
  if (emailPattern.test(txtCliEmail.value) != true)
  {
    alert("Existe um erro de digitação na especificação de seu endereço de e-mail");
    txtCliEmail.focus();
    return;
  }
  var txtContactDesc = document.getElementById("contact_form_desc");
  if (txtContactDesc.value.length <= 0) {
    alert("Precisamos de uma descrição do motivo de seu contato");
    txtContactDesc.focus();
    return;
  }
  
  //envia dados  
  if (window.XMLHttpRequest) //Firefox, Opera, IE7, etc
    httpReq = new XMLHttpRequest();
  else if (window.ActiveXObject) // IE6, IE5
    httpReq = new ActiveXObject("Microsoft.XMLHTTP");
  var formObj = document.getElementById(form_name);
  form_str = buildFormStr(formObj);
  httpReq.open("POST", "html/contact.php", true);
  httpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  httpReq.setRequestHeader("Content-Length", form_str.length);
  httpReq.onreadystatechange = onLicReqFormResponse;
  httpReq.send(form_str);
}

function onLicReqFormResponse() 
{
  if (httpReq.readyState != 4)
    return;
  var content_div = document.getElementById("changeable_div");
  content_div.innerHTML = httpReq.responseText + '<div style="clear: both; height:2em;"></div>';
  //linha abaixo está comentada porque trocar o link permite que a cada reload uma nova requisição seja efetuada, possibilitando portanto um ataque de flood de requisições
  //document.location.hash = gSelectedMenuID + '&' + gSelectedSubMenuID + '&' + gSelectedOptID + '&changeable_div&html/licreq_submit.php';
}

function switchMiniExpander(obj) 
{
  if (!obj)
    return;
  if (obj.src.search("mini_expander_down.png") == -1)
    obj.src = "images/mini_expander_down.png";
  else
    obj.src = "images/mini_expander_up.png";
}

