/***(C) - SelectCascade - Scripterlative.com *** !!! READ THIS FIRST !!! This code is supplied on condition that all website owners/developers using it anywhere, recognise the effort that went into producing it, by making a PayPal gratuity OF THEIR CHOICE to the authors within 14 days. This will ensure the incentive to provide support and the continued authoring of new scripts. Gratuities cannot be accepted via any source other than PayPal. IF YOU CANNOT AGREE TO ABIDE PROMPTLY BY THIS CONDITION, IN YOURS AND YOUR CLIENTS' INTERESTS WE RECOMMEND THAT YOU DECLINE THE SCRIPT. We'll understand. Please use the [Donate] button at www.scripterlative.com, stating the URL that uses the code. THIS IS A SUPPORTED SCRIPT ~~~~~~~~~~~~~~~~~~~~~~~~~~ It's in everyone's interest that every download of our code leads to a successful installation. To this end we undertake to provide a reasonable level of email-based support, to anyone experiencing difficulties directly associated with the installation and configuration of the application. Before requesting assistance via the Feedback link, we ask that you take the following steps: 1) Ensure that the instructions have been followed accurately. 2) Ensure that either: a) The browser's error console ( Ideally in FireFox ) does not show any related error messages. b) You notify us of any error messages that you cannot interpret. 3) Validate your document's markup at: http://validator.w3.org or any equivalent site. 4) Provide a URL to a test document that demonstrates the problem. N.B. Throughout this document, the word 'menu' is used to mean an HTML elements. Working in conjunction with a pre-existing, fully populated top-level elements when the top level menu selects a particular active or trigger option. Each child menu can control its own child menu tree, and all menus can have more than one active option. The script can control multiple independent menu systems within the same document. For this type of application to work, it must be given information that identifies the triggering options, and the option data that will be populated in the pertinent submenu when each triggering option is selected. When the triggering menu is itself a submenu, the script also needs to know the identity of its parent menu, and the parent menu's triggering option. The above must be repeated for each /active/ menu option in all menus, and this script simplifies the process by removing the need to add data directly into arrays. For each menu system to be controlled, there must be in place a fully populated top level pairs, all having either a NAME and/or an ID attribute. Fallback for non-scripting browsers can be provided by populating submenus initially. Configuration consists of creating 'associations' for each active option, in other words specifying which options trigger the display of a submenu, and what options are to be loaded into the submenu. Each association is created by a call to the function SelectCascade.init(). For those with server-side programming and database knowledge, the built-in AJAX retrieval code allows simple dynamic loading of option data. Installation ~~~~~~~~~~~~ Save this text/file as 'selectcascade.js' and place it in a suitable folder. In the section of your HTML document, add the following: Setup ~~~~~ 1) Create your HTML