function SMenuControl(id,manager){this.id = id; this.manager = manager;} //this.manager is a reference to the raceManager object that this control is bound to.
SMenuControl.prototype = new GControl();
// Called if no position is provided when added to the map using GMap2.addControl()
SMenuControl.prototype.getDefaultPosition = function(){
    return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(200, 0)); // GSize set to avoid MapControls(Approx 150px wide).
}
// Called when added to the map using GMap2.addControl(). Appends container to document and returns a reference to it.
SMenuControl.prototype.initialize = function(map){
    var container = document.createElement("div");
    container.id = this.id;
    map.getContainer().appendChild(container);
    container = null;
    this.buildControl();
    return document.getElementById(this.id);
}
// Appends the elements required to display the control to the previously mentioned container.
SMenuControl.prototype.buildControl = function(){
    // Main List *recurse*
    var list = document.createElement("div");
    document.getElementById(this.id).appendChild(list);
    //
        // Main List Items
        var listItem = document.createElement("p");
        listItem.className = "menuItem";
        list.appendChild(listItem);
        listItem.appendChild(document.createTextNode("Race Leaders"));
        GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Leaders"));
        GEvent.addDomListener(listItem, "mouseover", function(){this.className += " over subover"; });
        GEvent.addDomListener(listItem, "mouseout", function(){this.className=this.className.replace(" over subover", ""); });
                
        listItem = document.createElement("p");
        listItem.className = "menuItem";
        list.appendChild(listItem);
        listItem.appendChild(document.createTextNode(" > Choose a Race"));
        //
        
            // Main List Items ["Choose a Race"] --> Its list.
            var nestedList = document.createElement("ul");
            nestedList.id = "raceMenu";
            list.appendChild(nestedList);
            //
                //Main List Items ["Choose a Race"] --> Its list items.
                listItem = document.createElement("li");
                nestedList.appendChild(listItem);
                listItem.style.width = "18em";
                listItem.appendChild(document.createTextNode("Swiftsure Lightship Classic"));
                GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Swiftsure"));
                GEvent.addDomListener(listItem, "mouseover", function(){this.className = "over subover"; });
                GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });
                
                listItem = document.createElement("li");
                nestedList.appendChild(listItem);
                GEvent.addDomListener(listItem, "mouseover", function(){this.className = "over"; });
                GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });
                listItem.appendChild(document.createTextNode("Cape Flattery"));


                //
                    // Main List Items ["Choose a Race"] --> Its list items ["Cape Flattery"] -- Its list.
                    oldNestedList = nestedList;
                    nestedList = document.createElement("ul");
                    listItem.appendChild(nestedList);
                    //
                        //Main List Items ["Choose a Race"] --> Its list items ["Cape Flattery"] -- Its list items.
                        listItem = document.createElement("li");
                        nestedList.appendChild(listItem);
                        listItem.appendChild(document.createTextNode("Flattery"));
                        GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Flattery"));
                        GEvent.addDomListener(listItem, "mouseover", function(){this.className = "subover"; });
                        GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });
                        
                        listItem = document.createElement("li");
                        nestedList.appendChild(listItem);
                        listItem.appendChild(document.createTextNode("Unlimited Flattery"));
                        GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Unlimited Flattery"));
                        GEvent.addDomListener(listItem, "mouseover", function(){this.className = "subover"; });
                        GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });

                        listItem = document.createElement("li");
                        nestedList.appendChild(listItem);
                        listItem.appendChild(document.createTextNode("Flattery Multihulls"));
                        GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Flattery Multihulls"));
                        GEvent.addDomListener(listItem, "mouseover", function(){this.className = "subover"; });
                        GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });

                        //
                //
                listItem = document.createElement("li");
                listItem.className = "chooseFleet";
                oldNestedList.appendChild(listItem);
                listItem.appendChild(document.createTextNode("Juan de Fuca"));
                GEvent.addDomListener(listItem, "mouseover", function(){this.className = "over"; });
                GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });
                //
                    // Main List Items ["Choose a Race"] --> Its list items ["Juan de Fuca"] -- Its list.
                    nestedList = document.createElement("ul");
                    listItem.appendChild(nestedList);
                    //
                        //Main List Items ["Choose a Race"] --> Its list items ["Juan de Fuca"] -- Its list items.
                        listItem = document.createElement("li");
                        nestedList.appendChild(listItem);
                        listItem.appendChild(document.createTextNode("Juan de Fuca"));
                        GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Juan de Fuca"));
                        GEvent.addDomListener(listItem, "mouseover", function(){this.className = "subover"; });
                        GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });

                        listItem = document.createElement("li");
                        nestedList.appendChild(listItem);
                        listItem.appendChild(document.createTextNode("Unlimited Juan de Fuca"));
                        GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Unlimited Juan de Fuca"));
                        GEvent.addDomListener(listItem, "mouseover", function(){this.className = "subover"; });
                        GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });
                        /*
                        listItem = document.createElement("li");
                        nestedList.appendChild(listItem);
                        listItem.appendChild(document.createTextNode("Juan de Fuca Multihulls"));
                        GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Juan de Fuca Multihulls"));
                        GEvent.addDomListener(listItem, "mouseover", function(){this.className = "subover"; });
                        GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });
                        */
                        //
              /*
                listItem = document.createElement("li");
                listItem.className = "chooseFleet";
                oldNestedList.appendChild(listItem);
                listItem.appendChild(document.createTextNode("Inshore"));
                GEvent.addDomListener(listItem, "mouseover", function(){this.className = "over"; });
                GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });
                                //
                    // Main List Items ["Choose a Race"] --> Its list items ["Inshore"] -- Its list.
                    nestedList = document.createElement("ul");
                    listItem.appendChild(nestedList);
                    //
                        //Main List Items ["Choose a Race"] --> Its list items ["Inshore"] -- Its list items.
                        listItem = document.createElement("li");
                        nestedList.appendChild(listItem);
                        listItem.appendChild(document.createTextNode("Rosedale Rock"));
                        GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Rosedale Rock"));
                        GEvent.addDomListener(listItem, "mouseover", function(){this.className = "subover"; });
                        GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });

                        listItem = document.createElement("li");
                        nestedList.appendChild(listItem);
                        listItem.appendChild(document.createTextNode("Classics Race"));
                        GEvent.addDomListener(listItem, "click", this.manager.selectFleet("Classics Race"));
                        GEvent.addDomListener(listItem, "mouseover", function(){this.className = "subover"; });
                        GEvent.addDomListener(listItem, "mouseout", function(){this.className = ""; });
                        */

    listItem = null;
    nestedList = null;
    oldNestedList = null;
    list = null;
}