var menuIndex;
var filterType;
var overTransition = "";
var outTransition  = "";
var staticFilter   = "";

var vMenuLeft      = 10;
var vMainTop       = 104;
var vIntroLeft     = 150;
var vIntroWidth    = 610;
var vCourtesyTop   = 30;
var vCourtesyLeft  = 10;
var vCourtesyWidth = 750;
var hMainLeft      = 10;
var hMainTop       = 70;
var hIntroLeft     = 10;
var hIntroWidth    = 750;
var hCourtesyTop   = 105;
var hCourtesyLeft  = 610;
var hCourtesyWidth = 150;

var baseSubImage   = "submenu_arrow_";

var mainVisState   = true;
var mainIsVertical = false;


function init()
{
  t1.value = "";
}

function setFilterType(i, ftype)
{
  menuIndex = i;
  filterType = ftype;
}

// Andy's code from the version 3 demo
function change_filter(frm)
{
  ftext=frm.name+"("
  for (fe=0;fe<frm.elements.length;fe++)
  {
    fel = frm.elements[fe]
    if(fel.type=="select-one" ||fel.type=="text")
    {
      if(fel.type=="text")fval=fel.value;
      if(fel.type=="select-one")fval=fel.options[fel.selectedIndex].text;
      if(fval=="")fval=0;
      if(fel.value)
      {
        ftext+=fel.name + "=" + fel.value + ", "
      }
      else
      {
        ftext+=fel.name + "=" + fval + ", "
      }
    }
  }

  ftext=ftext.substr(0,ftext.length-2)
  ftext+=")";

  setFilterText(ftext);

  return false
}


function setFilterText(ftext)
{
  var filterText = "";

  if (filterType == "over") {
    overTransition = ftext;
  }
  else if (filterType == "static") {
    if (staticFilter.length > 0) {
      staticFilter = staticFilter + ";" + ftext;
    }
    else {
      staticFilter = ftext;
    }
  }
  else if (filterType == "out") {
    outTransition = ftext;
  }

  chFilters();
  changeTBox();
}


function changeTBox()
{
  tbox = ""
  if (overTransition.length > 0) {
    tbox = "overfilter=\"" + overTransition;
    if (staticFilter.length > 0) {
      tbox += ";" + staticFilter + "\";";
    }
    else {
      tbox += "\";";
    }
  }
  else {
    if (staticFilter.length > 0) {
      tbox = "overfilter=\"" + staticFilter + "\";";
    }
  }

  if (outTransition.length > 0) {
    if (tbox.length > 0) {
      tbox += "\n";
    }
    tbox += "outfilter=\"" + outTransition + "\";";
  }

  t1.value=tbox;
}


function chFilters()
{
  var overFilt = "";
  var outFilt = "";

  mm_closeAll();
  mm_displayMenu("mainmenu", 0);
  mm_displayMenu("actionsmain", 0);

  if (overTransition.length > 0) {
    overFilt += overTransition;
    if (staticFilter.length > 0) overFilt += ";" + staticFilter;
  }
  else {
    overFilt += staticFilter;
  }

  if (outTransition.length > 0) outFilt += outTransition;

  for (i=0; i<_m.length; i++)
  {
    _m[i][15] = overFilt;
    _m[i][16] = outFilt;
  }
  mm_displayMenu("mainmenu", 1);
  mm_displayMenu("actionsmain", 1);
}


function resetFilter(filtNum, filtType)
{
  if (filtType == "all") {
    overTransition="";
    staticFilter="";
    outTransition="";
  }

  if (filtNum == 15) {
    if (filtType == "over") overTransition="";
    if (filtType == "static") {
      if (overTransition.length == 0) {
        staticFilter="alpha(style=0, opacity=100)";
        chFilters();
      }
      staticFilter="";
    }
  }
  else if (filtNum == 16) {
    outTransition="";
  }

  chFilters();
  changeTBox();
}


function mm_displayMenu(menuName, state)
{
  var menuNum = getMenuByName(menuName);
  if (arguments.length > 2) _m[menuNum][7] = arguments[2];
  menuDisplay(menuNum, state);
}


function mm_closeAll()
{
  for (i=0; i<_m.length; i++)
  {
    if (_m[i][1].indexOf("main") == -1) menuDisplay(i, 0);
//    if (_m[i][7] != 1) menuDisplay(i, 0);
  }
}



function openFormMenu()
{
  var itemText = _mi[_itemRef][1];
  var menuToOpen = itemText.substring(0, itemText.indexOf("..."));
  mm_closeAll();
  _m[getMenuByName(menuToOpen)][7] = 1;
  popup(menuToOpen);
}



function mm_setPositionSize(menuName, top, left, height, width)
{
  spos(gmobj("menu" + getMenuByName(menuName)),top,left,height,width);
}


function mm_changeMenuProperty(menuName, propertyNumber, newValue)
{
  var menuNum = getMenuByName(menuName);
  _m[menuNum][propertyNumber] = newValue;
//  BDMenu(menuNum);
}

function toggleMainVis()
{
  mainVisState = !mainVisState;
  mm_displayMenu("mainmenu", mainVisState);
}


function toggleMainOrientation()
{
  var menuNum = getMenuByName("mainmenu");

  mainIsVertical = !mainIsVertical;

  if (mainIsVertical) {
    mm_setPositionSize("mainmenu", vMainTop, vMenuLeft);
    mm_changeMenuProperty("mainmenu", 9, "vertical");
    document.getElementById("intro").style.left = vIntroLeft;
    document.getElementById("intro").style.width = vIntroWidth;
    document.getElementById("courtesy").style.top = vCourtesyTop;
    document.getElementById("courtesy").style.left = vCourtesyLeft;
    document.getElementById("courtesy").style.width = vCourtesyWidth;

    var itemNumStr = _m[menuNum][0].toString();
    itemNum = itemNumStr.split(",");
    for (i=0; i<itemNum.length; i++)
    {
      _mi[itemNum[i]][24] = baseSubImage + "right_white-off.gif";
      _mi[itemNum[i]][48] = baseSubImage + "right-on.gif";
    }
  }
  else {
    mm_setPositionSize("mainmenu", hMainTop, hMainLeft); //, 25, 750);
    mm_changeMenuProperty("mainmenu", 9, "horizontal");
    document.getElementById("intro").style.left = hIntroLeft;
    document.getElementById("intro").style.width = hIntroWidth;
    document.getElementById("courtesy").style.top = hCourtesyTop;
    document.getElementById("courtesy").style.left = hCourtesyLeft;
    document.getElementById("courtesy").style.width = hCourtesyWidth;

    var itemNumStr = _m[menuNum][0].toString();
    itemNum = itemNumStr.split(",");
    for (i=0; i<itemNum.length; i++)
    {
      _mi[itemNum[i]][24] = baseSubImage + "down-off.gif";
      _mi[itemNum[i]][48] = baseSubImage + "down-on.gif";
    }
  }

  BDMenu(menuNum);
}


function copyToClipboard()//(formField)
{
  t1.select();
  document.execCommand('Copy');
}


function clearTextBox(formField)
{
  t1.value = "";
}

function mm_addProperty(menuName, propertyName, propertyValue)
{
  menuObj = gmobj("menu" + getMenuByName(menuName));
  menuObj.eval(propertyName) = propertyValue;
}



