home *** CD-ROM | disk | FTP | other *** search
- function checkParent(src,dest)
- {
- //Search for a specific parent of the current element.
- while(src !=null)
- {
- if(src.tagName == dest)
- {
- return src;
- }
- src = src.parentElement;
- }
- return null;
- }
-
- //Generic Display code
- function outline2()
- {
- //Expand or collapse if a list item is clicked.
- var open = event.srcElement;
-
- //Verify that the tag which was clicked was either the
- //trigger tag or nested within a trigger tag.
- var el = checkParent(open,"A");
- if(null != el)
- {
- var incr=0;
- var elmPos = 0;
- var parentSpan;
- var fBreak
-
- //Get the position of the element which was clicked
- elemPos = window.event.srcElement.sourceIndex;
-
- //Search for a SPAN tag
- for (parentSpan = window.event.srcElement.parentElement;
- parentSpan!=null;
- parentSpan = parentSpan.parentElement)
- {
- //test if already at a span tag
- if (parentSpan.tagName=="SPAN")
- {
- incr=1;
- break;
- }
-
- //Test if the tag clicked was in a body tag or in any of the possible kinds of lists
- //we perform this test because nested lists require special handling
- if (parentSpan.tagName=="BODY" || parentSpan.tagName=="UL" || parentSpan.tagName=="OL")
- {
- //Determine where the span to be expanded is.
- for (incr=1; (elemPos+incr) < document.all.length; incr++)
- {
- //verify we are at an expandable Div tag
- if(document.all(elemPos+incr).tagName=="SPAN" &&
- (document.all(elemPos+incr).className=="expanded" ||
- document.all(elemPos+incr).className=="collapsed"))
- {
- fBreak=1;
- break;
- }
- //If the next tag following the list item (li) is another
- //list item(li) return in order to prevent accidentally opening
- //the next span in the list
- else if(document.all(elemPos+incr).tagName=="LI")
- {
- return;
- }
- }
- }
- //determine if we need to break out of the while loop (kind of a kludge since theres no goto in javascript)
- if(fBreak==1)
- {
- break;
- }
- }
-
- }
- else
- {
- return;
- }
-
- //Now that we've identified the span, expand or collapse it
- if(document.all(elemPos+incr).className=="collapsed")
- {
- document.all(elemPos+incr).className="expanded";
- }
- else if(document.all(elemPos+incr).className=="expanded")
- {
- document.all(elemPos+incr).className="collapsed";
- }
- else
- {
- return;
- }
- event.cancelBubble = true;
- }
-