//on page load (as soon as its ready) call pageStart
$(document).ready(pageStart);
function pageStart(){
  $(".clsPartLeft").click(mDown);
  $(".clsPartHead").click(mDown);
  $(".clsPartRight").click(mDown);
  $(".clsPartRightHidden").click(mDown);
  var MenuItems = new Array();
  var Cook = "";
  var nv;
  var MenuState = "";
  Cook = document.cookie;
  var Cookies = Cook.split("; ");
  var i=0;
  while (i < Cookies.length) {
    nv = Cookies[i];
    if (nv.indexOf("MenuState=") != -1){
      MenuState = nv;
      i = Cookies.length;
    }
    i++;
  }

  var el = document.getElementById("LeftColumnMenu");
  var parts = GetElementParts(el);
 
  for( var i = 0; i < parts.length; i++ ){
    if (MenuState.indexOf(parts[i].id) == -1){
      MenuStateChange( parts[i] ,false );
    } else {
      MenuStateChange( parts[i] ,true );
    }
  }
  
}

function eventTrigger (e){
if (! e) e = event;
return e.target || e.srcElement;
}

function mDown(e){
  var SourceElement = eventTrigger(e);
  var IsClosed
  var Parent  = SourceElement.parentNode.parentNode.parentNode;
  var SecondRow  = SourceElement.parentNode.parentNode.parentNode.rows[1];
  var IsClosed = ( (SecondRow.style.display == "none") ? true : false);
  MenuStateChange(Parent,IsClosed);          
}

function GetElementParts(el){
  var ElementParts = el.getElementsByTagName( "TABLE" );
  var ReturnValue = new Array();
  for( var i = 0; i < ElementParts.length; i++ ){
    if( ElementParts[i].className == "clsPart" ){
      ReturnValue[ReturnValue.length] = ElementParts[i];
    }
  }
  return ReturnValue;
}

function MenuStateChange(SourceElement,IsClosed){
  var Cook = "";
  var nv;
  var MenuState = "MenuState=[*]";
  Cook = document.cookie;
  var Cookies = Cook.split("; ");
  var i=0;
  while (i < Cookies.length) {
    nv = Cookies[i];
    if (nv.indexOf("MenuState=") != -1){
      MenuState = nv;
      i = Cookies.length;
    }
    i++;
  }

  var ElementPart = SourceElement;
  var oTopBar = ElementPart.rows[0];
  var Content = ElementPart.rows[1];
  var Cell3 = oTopBar.cells[2];

  if ( IsClosed ){
    Content.style.display = "";
    Cell3.className = "clsPartRight";
    //write state info to cookie
    //element.parts = GetElementParts();
    //var id = element.parts[0].id;
    var id = SourceElement.id;
    if (MenuState.indexOf("["+id+"]") == -1) {
      MenuState = MenuState + "[" +id+"]";
    }    
  } else {
    Content.style.display = "none";
    Cell3.className = "clsPartRightHidden";
                        
    // write state info to cookie
    //element.parts = GetElementParts();
    //var id = "["+element.parts[0].id +"]";
    var id = "["+SourceElement.id +"]";
    var before;
    var after;
    if (MenuState.indexOf(id) != -1){
      before = MenuState.substring(0,MenuState.indexOf(id));
      after = MenuState.substring(MenuState.indexOf(id)+id.length, MenuState.length);
      MenuState = before + after;
    }
  }
  MenuState = MenuState + "; path=/;";
  document.cookie = MenuState;
 }