
function ExpandMenu()
{
  this.clickeds = [];
  this.elements = globalelements;
  this.data = [];
}

ExpandMenu.prototype.addClicked = function(obj)
{
  id = -1;
  for(i = 0; i < this.clickeds.length; i++)
  {
    if(this.clickeds[i] == obj)
      id = i;
  }
  if(id == -1)
  {
    this.clickeds.push(obj)
    id = this.clickeds.length - 1;
    this.data[id] = {};
  }
  return id; 
}

ExpandMenu.prototype.hasClicked = function(id)
{
  clicked = this.data[id]['clicked'];
  return clicked != undefined ? clicked : false;
}

ExpandMenu.prototype.getElementsBySession = function(session)
{
  elements = this.elements[session];
  return elements != undefined ? elements : false;
}

ExpandMenu.prototype.setElementsById = function (id,elements)
{
  this.data[id]['elements'] = elements;
}

ExpandMenu.prototype.getElementsById = function(id)
{
  return this.data[id]['elements'];
}

ExpandMenu.prototype.setUnClicked = function(id)
{
  this.data[id]['clicked'] = false;
}

ExpandMenu.prototype.setClicked = function(id)
{
  this.data[id]['clicked'] = true;
}

ExpandMenu.prototype.createListLink = function(obj, text, href)
{
  var aElement = document.createElement("A");
  var liElement = document.createElement("LI");
  var newText = document.createTextNode(text);
  liElement.className = "sub";
  liElement.appendChild(aElement);
  aElement.appendChild(newText);
  aElement.setAttribute("href",href);
  obj.parentNode.parentNode.insertBefore(liElement,obj.parentNode.nextSibling);
  return liElement;
}

ExpandMenu.prototype.addLinks = function(obj,links)
{
  elements = [];
  for(i in links)
    elements[i] = menu.createListLink(obj,links[i].text,links[i].href);
  return elements;
}

ExpandMenu.prototype.delLinks = function(obj, elements)
{
  for(i in elements)
    obj.parentNode.parentNode.removeChild(elements[i]);
}

/*
//TODO: Organizar e fazer com que essa função funcione
ExpandMenu.prototype.swapOthersLinks = function(obj)
{
  for(i = 0; i < this.clickeds.length; i++)
  {
    if(this.clickeds[i] != obj)
    {
      clicked = menu.hasClicked(i);
      if(clicked)
      {
        elements = menu.getElementsById(i);
        menu.delLinks(this.clickeds[i],elements);
        menu.setUnClicked(i);
        alert(i);
      }
    }
  }
}
*/

var menu = new ExpandMenu();
function swapLinks(obj,session)
{
  window.onerror=null;
  id = menu.addClicked(obj);
  clicked = menu.hasClicked(id);
  if(clicked)
  {
    elements = menu.getElementsById(id);
    menu.delLinks(obj,elements);
    menu.setUnClicked(id);
  }
  else
  {
    links = menu.getElementsBySession(session);
    elements = menu.addLinks(obj,links);
    menu.setElementsById(id,elements);
    menu.setClicked(id);
    //TODO: criar função que esconde todos os itens a não ser o clicado
    //menu.swapOthersLinks(obj);
  }
  return false;
}

function AbrirContato(page)
{
  window.open(page,'contato','width=300,height=300,scrollbars=1');
}

function AbrirSobreDesigner(page)
{
  window.open(page,'sobre','width=450,height=400,scrollbars=1');
}

function AbrirPortfolio(page)
{
  window.open(page,'sobre','width=450,height=450,scrollbars=1');
}
