Extensible-E System

  function NavigateTo(url, newWindow) { var myObject = new Object; myObject.url = url; myObject.newWindow = newWindow; theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('symcBFNavigateTo', false, false, myObject); document.dispatchEvent(theEvent); } function ChangeToolbarIcon(inText, inImage) { var myObject = new Object; myObject.text = inText; myObject.image = inImage; theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('changeToolbarIconEventHandler', false, false, myObject); document.dispatchEvent(theEvent); } function DimPage { dimElement = document.createElement('div'); dimElement.id = 'coShastaDimDiv'; dimElement.style.cssText = 'z-index:10;width:100%;height:100%;background-color:black;opacity:0.60;position:absolute;top:0;left:0;'; var theBody = document.getElementsByTagName('body')[0]; theBody.appendChild(dimElement); } function NPNNew { theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('symcBFActivate', false, false, 0); document.dispatchEvent(theEvent); } function UpdatePageStatus(inURL) { var myObject = new Object; myObject.blockURL = inURL; theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('updatePageStatusEventHandler', false, false, myObject); document.dispatchEvent(theEvent);}function UpdateToolbarMenu(inSafeSearch) { var myObject = new Object; myObject.SafeSearch = inSafeSearch; theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('updateToolbarMenuEventHandler', false, false, myObject); document.dispatchEvent(theEvent);}function SetBarVisibility(barstatus) { var myObject = new Object; myObject.barstatus = barstatus; theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('setBarVisibilityEventHandler', false, false, myObject); document.dispatchEvent(theEvent);}function SetCachedStrings(inText, inImage, inTextNA, inImageNA) { var myObject = new Object; myObject.text = inText; myObject.image = inImage; myObject.textNA = inTextNA; myObject.imageNA = inImageNA; theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('setCachedStringsEventHandler', false, false, myObject); document.dispatchEvent(theEvent); } function SetResourceFolder(inFolder) { var myObject = new Object; myObject.resFolder = inFolder; theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('setResourceFolderEventHandler', false, false, myObject); document.dispatchEvent(theEvent); } function SetSafeSearchValues(isSSEinPrefs, isSSEinSafeMgr,isBuzz, showMyAccount) { var myObject = new Object; myObject.showMyAccount = showMyAccount; myObject.isSSEinPrefs = isSSEinPrefs; myObject.isBuzz=isBuzz; myObject.isSSEinSafeMgr=isSSEinSafeMgr; theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('setSafeSearchValuesEventHandler', false, false, myObject); document.dispatchEvent(theEvent); } function ShowSafeSearchOffering {theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('symcShowSafeSearchOffering', false, false, 0); document.dispatchEvent(theEvent); } function SafeSearchOfferResponded {theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('symcSafeSearchOfferResponded', false, false, 0); document.dispatchEvent(theEvent); } function SetSearchString(inQuery) { var myObject = new Object; myObject.query = inQuery; theEvent = document.createEvent('CustomEvent'); theEvent.initCustomEvent('symcSetSearchString', false, false, myObject); document.dispatchEvent(theEvent); }   Extensible-E_System  The Extensible-E System (ExE) is a work-in-progress array notation by Sbiis Saibian. It is a blanket term for Hyper-E Notation, Extended Hyper-E Notation, Cascading-E Notation, Extended Cascading-E Notation, Hyper Extended Cascading-E Notation, and any future extensions to come.

ExE could also be called "SAN" (Saibian's array notation), similar to BAN (Bird's array notation) or HAN (Hyperfactorial array notation or Hollom's array notation).

All notations in Extensible-E have a number of standardized traits. All notations can be expressed generically in the form:

Ea&a&a& ... &a&a

where the a's are all positive integer arguments, and the &'s are delimiters chosen from the delimiter set defined for the particular notation. Each notation also defines fundamental sequences for all decomposition delimiters.

Hyper-E only allows use of the single hyperion ( # ) as a delimiter.

Extended Hyper-E uses delimiters below #^#.

Cascading-E Notation uses delimiters below #^^#.
 * Its extension, Limit Extension Cascading-E Notation uses delimiters below #^^#>#.

Extended Cascading-E Notation uses delimiters below #{#}#.
 * Its extension, Hyper Extended Cascading-E Notation uses delimiters below {#,#,1,2}.

Fundamental laws
All ExE type notations follow 5 fundamental laws. These laws have priority, where the earlier the law, the higher priority it has. The priority of any given law only fails if it's conditions are not met, in which case one proceeds to the next law. The first law whose conditions are met is the one that is executed. Such a law is guaranteed to exist because the last law has no requirements other than the failure of all the previous laws. The 5 law are:

1. Base Case. If there is only a single argument: En = 10^n

2. Decomposition Case. If the last delimiter is decomposable: @m&n = @m&[n]m

3. Terminating Case. If the last argument = 1: @&1 = @

4. Expansion Case. If the last delimiter is not the proto-hyperion: @m&*#n = @m&m&*#(n-1)

5. Recursive Case. Otherwise: @m#n = @(@m#(n-1))

The laws are set up so many necessary conditions are implicit. For example, the decomposition case wouldn't apply unless there is more than one argument. This doesn't need to be explicitly stated because the decomposition case can only apply if the base case has already failed, which can only happen if there is more than one argument. Consequently although the last law has no conditions, in fact it can only apply if there is at least two arguments, the last argument is greater than one, and the last delimiter is the proto-hyperion.

For the lowest level notations, some of the rules may never apply. For example in xE#, there are no decomposable delimiters, so Rule 2 never applies. In E#, there is only the hyperion as a delimiter, so neither Rule 2 or Rule 4 ever applies.