Add missing Res folder contents.

This commit is contained in:
2020-12-14 19:41:59 +09:00
parent b62dce2eed
commit 787d37b965
37 changed files with 2086 additions and 0 deletions

View File

@@ -0,0 +1,183 @@
/*
BoxController
Note: Requires boxSettings.js also be included
Revisions
2003-09-13: Jeff edited. Added expand all of type.
2003-09-15: Jeff added cookie code.
Boxes are the bordered divs with a header and body, and a expand/collapse button.
Box types:
partialMap, subTopic, callouts, comments, taskInformation, legend.
If you collapse a subTopic box on one page, you collapse all subTopic boxes that and other pages. Same with expanding.
Note: There can be more than one box of each type on the page.
In HTML, the structure expected is:
div.{boxType}Area (useful for CSS selector of different types of boxes, e.g. div.{boxType}Area div.box)
div class="collapsiblebox" id="{boxType}{index}" (1+)
div.header onclick = "boxController.expandOrCollapse(this,'{boxType}')" (0-1)
span.title
span.commands ? (mike)
span.command ? (mike)
img.expandOrCollapseButton src="{buttonsPath}{collapseButtonUrl} or {expandButtonUrl}"
div.body
(varies)
Note: Visibility of div.body (i.e. style="display:block" or style="display:none") is overwritten by code.
Note: Button graphics as well.
*/
function init() {
boxController = new BoxController("Res/images/", "box_collapse_button.gif","box_expand_button.gif", true);
boxController.init();
}
// BoxController class
function BoxController (buttonsPath, collapseButtonFilename,expandButtonFilename, changeAllOfType) {
this.objectClass = "BoxController";
this.buttonsPath = buttonsPath;
this.collapseButtonUrl = buttonsPath + collapseButtonFilename;
this.expandButtonUrl = buttonsPath + expandButtonFilename;
this.changeAllOfType = changeAllOfType; // if true, all boxes of a type are expanded or collapsed together, not just clicked one
this.boxTypes = null;
}
BoxController.prototype.init = function() {
// initialize boxTypes
this.boxTypes = INITIAL_BOX_SETTINGS; // defaults loaded from boxSettings.js
// check if cookie has stored states
var cookieString = this.getCookieString();
if (cookieString!=null) {
// for each boxType, get stored value from cookie
for (var i=0; i < this.boxTypes.length; i++) {
var boxType = this.boxTypes[i];
var value = getValueFromCookieString ( cookieString, boxType.name );
if (value!=null) {
boxType.state = value=="true" ? true : false;
}
}
}
// for each boxType, change state of all boxes of that type
for (var i=0; i < this.boxTypes.length; i++) {
this.changeStateOfAllBoxesOfType( this.boxTypes[i].name, this.boxTypes[i].state );
}
}
BoxController.prototype.dumpBoxTypes = function() {
var s = "BoxTypes\n";
for (var i=0; i < this.boxTypes.length; i++) {
s += this.boxTypes[i].name + "," + this.boxTypes[i].state+ "\n";
}
return s;
}
BoxController.prototype.saveStateToCookie = function() {
// stores state of controller in cookie
var cookieString = "";
// for each box type...
for (var i=0; i < this.boxTypes.length; i++ ) {
var boxType = this.boxTypes[i];
if (cookieString!="") cookieString += "&";
cookieString += boxType.name + ":" + escape(boxType.state);
}
// Cookie properties (if needed)
// Currently assumes that all html pages are in the same directory together, otherwise cookie's path property would need to be set
// Currently that cookie should expire when user closes the browser (expires property)
// save cookie; will be only accessible to this html page
var cookieName = this.objectClass;
document.cookie = cookieName + "=" + cookieString;
}
BoxController.prototype.getCookieString = function() {
// checks saved state of controller from cookie; returns string of values or null if desired cookie does not exist
var cookieName = this.objectClass;
var allCookies = document.cookie;
if (allCookies=="") return null;
// extract the named cookie we want
var start = allCookies.indexOf(cookieName + "=");
if (start == -1) return null;
start += cookieName.length + 1; // skip over name and = sign
var end = allCookies.indexOf(";", start);
if (end==-1) end = allCookies.length;
var cookieString = allCookies.substring(start,end);
return cookieString;
}
BoxController.prototype.changeStateOfAllBoxesOfType = function( boxType, newState ) {
// changes all boxes on the page of boxType to newState ("expand" or "collapse")
// loop through all boxes of boxType
var boxIndex = 0;
while (document.getElementById (boxType + boxIndex) ) {
// change state
this.changeStateOfBoxOnPage ( document.getElementById (boxType + boxIndex), newState );
boxIndex++;
}
// store new state in array
for (var i=0; i < this.boxTypes.length; i++ ) {
var boxTypeItem = this.boxTypes[i];
if (boxTypeItem.name == boxType) {
boxTypeItem.state = newState;
break;
}
}
}
BoxController.prototype.expandOrCollapse = function( headerElement, boxType ) {
// Note: Having one routine for both expand and collapse let's the function that html calls be the same
// Uses img's src attribute to determine which command is being called
// First get the button element; may be the elementActivated or within the elementActivated (like an anchor element)
var buttonElement = getFirstDescendentOrSelfOfClass ( headerElement, "expandOrCollapseButton");
if (!buttonElement) return;
var currentImageUrl = buttonElement.src;
if (!currentImageUrl) return;
// if src value contains url of collapse button, this is, presumably a collapse command
var newState = false;
if (currentImageUrl.lastIndexOf(this.collapseButtonUrl)==-1) newState = true;
// change state of all boxes of this type ...
if (this.changeAllOfType) {
this.changeStateOfAllBoxesOfType (boxType,newState);
this.saveStateToCookie();
}
// or just this one box
else {
var boxElement = headerElement.parentNode;
if (boxElement) this.changeStateOfBoxOnPage(boxElement,newState);
}
}
BoxController.prototype.changeStateOfBoxOnPage = function( boxElement, makeOpen) {
// change UI of box on the html page
// get button element
var buttonElement = getFirstDescendentOrSelfOfClass( boxElement, "expandOrCollapseButton");
if (!buttonElement) return false; // if not found, give up
// get body element
var bodyElement = getFirstDescendentOrSelfOfClass( boxElement, "body");
if (!bodyElement) return false; // if not found, give up
// expand or collapse body element
showOrHideElement(bodyElement,makeOpen);
// update img to be an appropriate button
if (buttonElement.src) {
// if opening, make it the collapse button; if not opening, make it the expand button
buttonElement.src = makeOpen ? this.collapseButtonUrl : this.expandButtonUrl;
}
}

View File

@@ -0,0 +1,13 @@
// exported by program to supply initial settings for boxes
var INITIAL_BOX_SETTINGS = [
{name:"partialMap", state:true},
{name:"subTopics", state:true},
{name:"callouts", state:true},
{name:"comments", state:false},
{name:"relationships", state:true},
{name:"taskInformation", state:true},
{name:"textMarkers", state:true},
{name:"dataContainer", state:true},
{name:"legend", state:true}
];

View File

@@ -0,0 +1,247 @@
// MapController class
// Scrollable, switchable (in amount of detail) map
// Uses functions from shared.js
// Requires html page with two imgs for each level of detail; one of which is style="display:none" at start
// Requires mainFrame is scrollable (for Netscape/Mozilla to work
// MapController class
function MapController (frameObject, dragMultiplier) {
this.objectClass = "MapController"; // used as name for cookie
this.DRAG_THRESHOLD = 4; // minimum distance before a drag can not be treated as a click; in pixels
this.DRAG_MAX_FIRST_STEP = 10; // largest distance permitted within single mousemove; used to detect invalid drag on IE
this.frameObject = frameObject; // scrollable frame containing mapImages
this.mapImages = []; // array storing each mapImage (2 images)
this.activeMapImage = 1; // index of active/visible image; default to first map image
this.dragMultiplier = dragMultiplier ? dragMultiplier : 1; // 1 = default; 2 = 2x speed dragging; can be any number
//this.temp = 0;
//this.systemInfo = new SystemInfo();
}
MapController.prototype.init = function(initialMap) {
// setup dragScrolling
this.dragScrolling = false; // indicates that user is dragging image around
this.wasDraggedEnoughToNotBeAClick = false;
this.mouseJustPressed = false;
this.mouseDownX, this.mouseDownY = null;
this.oldScrollX, this.oldScrollY = null;
// Note: Changed following from document.onmousedown; fixes dragging on scroll bar triggering onmousedown in Mozilla/NS
var mapContentElement = this.frameObject.document.getElementById("mapContent");
if (!mapContentElement) mapContentElement = this.frameObject.document;
mapContentElement.onmousedown = this.onMouseDown;
//this.frameObject.document.onmousedown = this.onMouseDown;
this.frameObject.document.onmousemove = this.onMouseMove;
this.frameObject.document.onmouseup = this.onMouseUp;
this.frameObject.document.onclick = this.onClick;
this.frameObject.document.onscroll = this.onScroll;
//
var cookieValue = this.getCookieValue();
//window.status = cookieValue;
if (cookieValue==false) {
// there was no saved state, so the map is presumably loading for the first time
this.selectMapImage(initialMap); // select active map
}
else {
// the state is saved; use the cookieValue to figure out the state
this.initFromCookieValue(cookieValue);
}
//trace(this.systemInfo);
}
// Note: In following, e = event object passed in automatically
MapController.prototype.onMouseDown = function(e) {
// Note: Ends up running in context of the frame, so this = frameObject, not mapController
// Get a reference mapController object to be able to use it here.
var mc = parent.topFrame.mapController; // HACK: Must be more elegant way to get reference.
if (!e) var e = mc.frameObject.event;
if (wasLeftButton(e)) { // TODO: Double-check wasLeftButton code; now only works for IE?
mc.mouseDownX = /* e.x ? e.x : */ e.screenX;
mc.mouseDownY = /* e.y ? e.y : */ e.screenY;
// Note: In Mozilla/NS, the mainFrame must be scrollable for the .scrollLeft and .scrollTop properties to be accessible
if (navigator.appName == "Microsoft Internet Explorer")
{
mc.oldScrollX = mc.frameObject.document.body.scrollLeft;
mc.oldScrollY = mc.frameObject.document.body.scrollTop;
//window.status = "mc.frameObject.document.body.scrollTop:"+mc.frameObject.document.body.scrollLeft;
}
else
{
mc.oldScrollX = mc.frameObject.window.scrollX;
mc.oldScrollY = mc.frameObject.window.scrollY;
//parent.document.title = "mc.frameObject.document.body.scrollTop:"+mc.frameObject.document.body.scrollLeft;
}
mc.dragScrolling = true;
mc.mouseJustPressed = true;
mc.wasDraggedEnoughToNotBeAClick = false;
//window.status = "mouseDown: " + " | " + mc.mouseDownX + "," + mc.mouseDownY+ " | " + mc.oldScrollX + "," + mc.oldScrollY;
}
return false; // stops browser behavior of dragging image to copy it to the desktop (at least on Mac Safari)
}
MapController.prototype.onMouseMove = function(e) {
var mc = parent.topFrame.mapController; // HACK: Must be more elegant way to get reference.
if (!e) var e = mc.frameObject.event;
//window.status = "MouseMove:" + mapController.temp++;
if (mc.dragScrolling) {
if (!e) var e = mc.frameObject.event;
var newMouseX = /* e.x ? e.x :*/ e.screenX;
var newMouseY = /* e.y ? e.y : */ e.screenY;
var newOffsetX = newMouseX - mc.mouseDownX;
var newOffsetY = newMouseY - mc.mouseDownY;
// Test if move from old to new position is unreasonably large, as in the case when
// user drags scroll bar in IE -- then dragScrolling is true, but mouseUp is lost.
// So, this code stops dragScrolling in that case.
if (mc.mouseJustPressed) {
if (Math.abs(newOffsetX) > mc.DRAG_MAX_FIRST_STEP | Math.abs(newOffsetY) > mc.DRAG_MAX_FIRST_STEP) {
mc.dragScrolling = false;
return false;
}
mc.mouseJustPressed = false;
}
//window.status = '(' + newOffsetX +',' + newOffsetY+')'
if (Math.abs(newOffsetX) > mc.DRAG_THRESHOLD | Math.abs(newOffsetY) > mc.DRAG_THRESHOLD) mc.wasDraggedEnoughToNotBeAClick = true;
var newScrollX = mc.oldScrollX - mc.dragMultiplier * newOffsetX;
var newScrollY = mc.oldScrollY - mc.dragMultiplier * newOffsetY;
mc.frameObject.scrollTo(newScrollX,newScrollY);
//window.status = "dragging: " + " | " + newMouseX + "," + newMouseY+ " | " + newScrollX + "," + newScrollY + "old scroll: " + mc.oldScrollX + "," + mc.oldScrollY;
return false;
}
else {
//window.status = "not dragging "+ mapController.temp++ + navigator.appName;
}
}
MapController.prototype.onMouseUp = function(e) {
var mc = parent.topFrame.mapController; // HACK: Must be more elegant way to get reference.
mc.dragScrolling = false;
return false; // Doesn't seem to have any useful affect
}
MapController.prototype.onClick = function(e) {
var mc = parent.topFrame.mapController; // HACK: Must be more elegant way to get reference.
if (mc.wasDraggedEnoughToNotBeAClick) {
//window.status = "onclick return false";
return false; // cancels onClick event; if mouseUp was on hotshop, navigation can not happen
}
return true;
}
MapController.prototype.onScroll = function(e) {
//window.status = "scroll";
// Opera: Triggered when mapContent dragged
// Mozilla/NS: Triggered when scroll bar dragged (but not mapContent dragged)
// IE: Never triggered
// Mozilla/NS on Macintosh: Triggered when scrollbar dragged and mapContent dragged
var agt = navigator.userAgent.toLowerCase();
if (agt.indexOf("macintosh") == -1 && navigator.appName != "Microsoft Internet Explorer")
{
var mc = parent.topFrame.mapController; // HACK: Must be more elegant way to get reference.
mc.dragScrolling = false;
return false; // Doesn't seem to have any useful affect
}
}
MapController.prototype.addMapImage = function(imgId, centerX, centerY) {
this.mapImages.push( new MapImage ( this.frameObject, imgId, centerX, centerY) );
}
MapController.prototype.selectMapImage = function(newActiveMapImage) {
// make mapImageToSelect active and make others inactive
var lastImage = this.mapImages.length - 1;
for (var i=0; i <= lastImage; i++ ) {
this.mapImages[i].makeActive( i==newActiveMapImage );
}
this.activeMapImage = newActiveMapImage;
this.saveStateToCookie();
this.scrollToCenter();
}
MapController.prototype.scrollToCenter = function() {
// scrolls to the center of active map image
var activeMapImage = this.mapImages[this.activeMapImage];
var frameObject = this.frameObject;
//trace(activeMapImage);
this.frameObject.scrollTo( activeMapImage.centerX - (getWindowWidth(frameObject)/2), activeMapImage.centerY - (getWindowHeight(frameObject)/2));
}
MapController.prototype.saveStateToCookie = function() {
// stores state of controller in cookie
var cookieName = this.objectClass;
var cookieValue = "";
// save which map is selected/active
cookieValue += "active:" + this.activeMapImage;
// TODO: save scroll position
// save cookie; will be only accessible to this html page
document.cookie = cookieName + "=" + cookieValue;
}
/*
MapController.prototype.savedStateExists = function() {
// returns true is saved state (cookie) exists
}
*/
MapController.prototype.getCookieValue = function() {
// checks saved state of controller from cookie; returns string of values or false if desired cookie does not exist
var cookieName = this.objectClass;
var allCookies = document.cookie;
if (allCookies=="") return false;
// extract the named cookie we want
var start = allCookies.indexOf(cookieName + "=");
if (start == -1) return false;
start += cookieName.length + 1; // skip over name and = sign
var end = allCookies.indexOf(";", start);
if (end==-1) end = allCookies.length;
var cookieValue = allCookies.substring(start,end);
return cookieValue;
}
MapController.prototype.initFromCookieValue = function(cookieValue) {
// parses cookieValue; initializes object accorded to saved values
/*
var a = cookieValue.split("&"); // create array from name/value pairs delimited by ampersand
for (var i=0; i < a.length; i++) { // then break each pair into an array
a[i] = a[i].split(":");
}
*/
// TODO: Rewrite. Currently a hack.
if (cookieValue=="active:1") this.selectMapImage(1);
else this.selectMapImage(0);
// this.selectMapImage(initialMap);
}
/*
MapController.prototype.moveTo = function(x,y) {
// move image (i.e. scroll window)
window.scrollTo(x,y);
}
*/
// MapImage class - one for each img/view of the map
function MapImage ( frameObject, imgId, centerX, centerY ) {
this.objectClass = "MapImage";
this.centerX = centerX;
this.centerY = centerY;
// get image reference
this.imgElement = getElement(frameObject,imgId);
this.imgStyle = getElementsStyleObject(frameObject,imgId);
}
MapImage.prototype.makeActive = function (newIsActiveState) {
//this.trace();
var newDisplayStyle = newIsActiveState ? "block" : "none";
this.imgStyle.display = newDisplayStyle;
}

169
static/Res/code/shared.js Normal file
View File

@@ -0,0 +1,169 @@
// Shared routines
function openPopup(url,windowName,features) {
window.open(url,windowName,features);
}
function preloadImage(Url) {
var i = new Image();
i.src = Url;
}
function showOrHideElement(element,show) {
element.style.display = show ? "block" : "none";
}
/* unused
function getFirstAncestorOfClass (sourceElement, className) {
// recursively search for ancestor of sourceElement that matches className
var elementBeingTested = sourceElement.parentNode;
if (elementBeingTested.className == className) return elementBeingTested;
if (!elementBeingTested.className) return null; // if run out of elements (like at document) stop
return getFirstAncestorOfClass(elementBeingTested, className);
}
*/
function getFirstDescendentOrSelfOfClass (sourceElement, className) {
// recursively search for descendent of sourceElement that matches className
// test self
if (sourceElement.className == className) return sourceElement;
// test children
var child = sourceElement.firstChild;
if (child) {
while (child) {
var elementBeingTested = getFirstDescendentOrSelfOfClass (child, className);
if (elementBeingTested) return elementBeingTested;
child = child.nextSibling;
}
}
return null;
}
function getElement(frameObject,elementId) {
if (document.getElementById) return frameObject.document.getElementById(elementId);
if (document.all) return frameObject.document.all[elementId];
if (document.layers) return frameObject.document.layers[elementId];
return null;
}
function getElementsStyleObject(frameObject,elementId) {
if (document.getElementById) return frameObject.document.getElementById(elementId).style;
if (document.all) return frameObject.document.all[elementId].style;
if (document.layers) return frameObject.document.layers[elementId];
return null;
}
function getWindowHeight(frameObject) {
if (document.all) return frameObject.document.body.clientHeight; // IE on Mac and Windows
if (document.layers) return frameObject.document.clientHeight;
}
function getWindowWidth(frameObject) {
if (document.all) return frameObject.document.body.clientWidth; // IE on Mac and Windows
if (document.layers) return frameObject.document.clientWidth;
}
function trace (anObject) {
alert(listObject(anObject));
}
function listObject(theObject) {
var m = '';
for (prop in theObject) {
m+= prop + ":" + theObject[prop] + "\n";
//* if theObject[prop] ==
}
return(m);
}
function wasLeftButton(e) {
// takes event object (e) and decides if left button was pressed (as opposed to middle wheel button)
var buttonPressed = /* (navigator.appName=="Netscape") ? e.which : */ e.button;
if (buttonPressed == 1 | buttonPressed == 0 ) return true;
return false;
}
function appendToCookieString ( cookieString, property, value ) {
if (cookieString!="") cookieString += "&";
cookieString += property + ":" + escape(value);
}
function getValueFromCookieString ( cookieString, property) {
// extract value of given property from encoding like this: "property1:value1&property2:value2"
var pos = cookieString.indexOf(property); // at start of property label
if (pos==-1) return null;
pos += property.length + 1; // at start of value
var start = pos;
pos = cookieString.indexOf("&",pos+1);
// if "&" not found, must be last property:value pair -- end of value is end of cookieString
// else end of value is just before "&"
var end = (pos==-1) ? cookieString.length : pos;
var value = cookieString.substring(start,end);
return unescape(value);
}
// SystemInfo Class
// class to handle system check (browser, etc.)
// Thanks to http://www.xs4all.nl/~ppk/js/detect.html for this code
// TODO: Rewrite?
/*
function SystemInfo() {
this.detect = navigator.userAgent.toLowerCase();
this.OS = null;
this.browser = null;
this.version = null;
//this.subVersion = null;
this.total = null;
this.thestring = null;
this.place = null;
if (this.checkIt('konqueror')) {
this.browser = "Konqueror";
this.OS = "Linux";
}
else if (this.checkIt('safari')) {
this.browser = "Safari"
//this.subVersion = this.detect.substring(8,12);
}
else if (this.checkIt('omniweb')) this.browser = "OmniWeb"
else if (this.checkIt('opera')) this.browser = "Opera"
else if (this.checkIt('webtv')) this.browser = "WebTV";
else if (this.checkIt('icab')) this.browser = "iCab"
else if (this.checkIt('msie')) this.browser = "Internet Explorer"
else if (!this.checkIt('compatible')) {
this.browser = "Netscape Navigator"
this.version = this.detect.charAt(8);
}
else this.browser = "An unknown browser";
if (!this.version) this.version = this.detect.charAt(this.place + this.thestring.length);
if (!this.OS) {
if (this.checkIt('linux')) this.OS = "Linux";
else if (this.checkIt('x11')) this.OS = "Unix";
else if (this.checkIt('mac')) this.OS = "Mac"
else if (this.checkIt('win')) this.OS = "Windows"
else this.OS = "an unknown operating system";
}
}
SystemInfo.prototype.checkIt = function(string) {
this.place = this.detect.indexOf(string) + 1;
this.thestring = string;
return this.place; // HACK: Weird
}
*/
// Saving state using cookies
/*
expires
domain
document.cookie = "version=" + escape(document.lastModified) + "; expires=" +
// cookie values may not include semicolons, commas, or whitespace
*/

BIN
static/Res/images/arrow.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

BIN
static/Res/images/empty.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
static/Res/images/logo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 B

View File

@@ -0,0 +1,69 @@
/* Cascading Style Sheet for HTML export */
/* MODULE: DYNAMIC OUTLINE */
/* Dark Red style */
/* This stylesheet expects the following HTML structure
left column in page body
#pageBody .left
td.outlineColumn
div.dynamicOutline
div.tree
div.mout
div.mover
*/
/* visual highlight the sidebar navigation */
.outlineColumn {
vertical-align: top;
border: 1px solid Silver;
background-color: #FAFAFA;
margin: 0px;
padding-top: 10px;
padding-bottom: 20px;
}
.dynamicOutline {
}
/* tree is the same as dynamicOutline, just nested */
.tree {
}
.tree a:link {
color: Black;
text-decoration: none;
}
.tree a:active {
color: #FF3300;
text-decoration: none;
}
.tree a:visited {
color: Black;
text-decoration: none;
}
.tree a:hover {
color: #FF3300;
text-decoration: none;
}
.tree .mout {
text-decoration: none;
width: 100%;
padding: 0px;
font-size: 8pt;
}
.tree .mover {
text-decoration: none;
width: 100%;
padding: 0px;
color: #CC0000;
font-size: 8pt;
}

View File

@@ -0,0 +1,127 @@
/* Cascading Style Sheet for HTML export */
/* MODULE: STATIC OUTLINE */
/* Light Blue style */
/* This stylesheet expects the following HTML structure
left column in page body
#pageBody .left
td.outlineColumn
div.staticOutline
div.maintopic
span.select or splan.unselect
div.subtopic
span.select or splan.unselect
*/
/* visual highlight the sidebar navigation */
.outlineColumn {
vertical-align: top;
border-right: 1px dashed Silver; /* STYLE */
background-color: #FAFAFA; /* STYLE */
margin: 0px;
padding-bottom: 20px;
}
.staticOutline {
white-space: nowrap;
vertical-align: top;
}
.staticOutline a:link {
color: #2F4F4F; /* STYLE */
text-decoration: none;
}
.staticOutline a:active {
color: #FF3300; /* STYLE */
text-decoration: none;
}
.staticOutline a:visited {
color: #2F4F4F; /* STYLE */
text-decoration: none;
}
.staticOutline a:hover {
color: #CC0000; /* STYLE */
text-decoration: none;
}
.staticOutline .hometopic a:link {
color: #CC0000; /* STYLE */
}
.staticOutline .hometopic a:visited {
color: #CC0000; /* STYLE */
}
.staticOutline .hometopic a:hover {
color: #FF3300; /* STYLE */
text-decoration: none;
}
.staticOutline .hometopic img {
display: none; /* STYLE */ /* show/hide image */
}
.staticOutline .hometopic {
/*background : #0062BF; */ /* STYLE */
margin-left: 4px;
margin-right: 4px;
margin-top: 0em; /* STYLE */
margin-bottom: 1em; /* STYLE */
font-size: 8pt;
font-weight: bold; /* STYLE */
/*padding-top: 5px;*/ /* STYLE */
}
.staticOutline .maintopic a:link {
color: #CC0000; /* STYLE */
}
.staticOutline .maintopic a:visited {
color: #CC0000; /* STYLE */
}
.staticOutline .maintopic a:hover {
color: #FF3300; /* STYLE */
text-decoration: none;
}
.staticOutline .maintopic img {
display: none; /* STYLE */ /* show/hide image */
}
.staticOutline .maintopic {
margin-left: 4px;
margin-right: 4px;
margin-top: 0.8em; /* STYLE */
margin-bottom: 0.2em; /* STYLE */
font-size: 8pt;
font-weight: bold; /* STYLE */
border: 1px solid Silver;
}
.staticOutline .subtopic img {
display: none; /* STYLE */ /* show/hide image */
}
.staticOutline .subtopic {
text-indent: 0px;
margin-left: 4px; /* use same margin as in .maintopic*/ /* STYLE */
margin-right: 4px;
margin-bottom: 0.2em; /* STYLE */
font-size: 8pt;
}
.staticOutline .select {
background-color: #FFCC66;
}
.staticOutline .unselect {
}

1091
static/Res/styles/shared.css Normal file

File diff suppressed because it is too large Load Diff

BIN
static/Res/tree/base.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
static/Res/tree/empty.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

BIN
static/Res/tree/folder.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 998 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
static/Res/tree/join.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

BIN
static/Res/tree/leaf.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 B

BIN
static/Res/tree/line.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 B

BIN
static/Res/tree/minus.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

BIN
static/Res/tree/null.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 B

BIN
static/Res/tree/page.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 985 B

BIN
static/Res/tree/pagesel.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 984 B

BIN
static/Res/tree/plus.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 B

BIN
static/Res/tree/topic.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

9
static/Res/tree/tree.js Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,83 @@
var TREE_ITEMS = [
['Home','index.html',{'sb':' '},
['1. Omslag', 'Omslag.html',{'tt':'1. Omslag','sb':'Omslag.html'},
['1.1 Over', 'Over.html',{'tt':'1.1 Over','sb':'Over.html'},],
],
['2. Voorwoord', 'Voorwoord.html',{'tt':'2. Voorwoord','sb':'Voorwoord.html'},
['2.1 Introductie', 'Introductie.html',{'tt':'2.1 Introductie','sb':'Introductie.html'},],
['2.2 Bijsluiter', 'Bijsluiter.html',{'tt':'2.2 Bijsluiter','sb':'Bijsluiter.html'},],
['2.3 Geschiedenis van het Hart', 'GeschiedenisvanhetHart.html',{'tt':'2.3 Geschiedenis van het Hart','sb':'GeschiedenisvanhetHart.html'},],
['2.4 Het Hart: de Feiten', 'HetHart.deFeiten.html',{'tt':'2.4 Het Hart: de Feiten','sb':'HetHart.deFeiten.html'},],
],
['3. Over het brein', 'Overhetbrein.html',{'tt':'3. Over het brein','sb':'Overhetbrein.html'},
['3.1 Extern geschreven programm... ', 'Externgeschrevenprogramma\'s.html',{'tt':'3.1 Extern geschreven programma\'s','sb':'Externgeschrevenprogramma\'s.html'},],
['3.2 Natuur versus Opvoeding', 'NatuurversusOpvoeding.html',{'tt':'3.2 Natuur versus Opvoeding','sb':'NatuurversusOpvoeding.html'},],
],
['4. Zintuigen: een tipje van de... ', 'Zintuigen.eentipjevandesluier.html',{'tt':'4. Zintuigen: een tipje van de sluier','sb':'Zintuigen.eentipjevandesluier.html'},
['4.1 Ogen: Zien', 'Ogen.Zien.html',{'tt':'4.1 Ogen: Zien','sb':'Ogen.Zien.html'},],
['4.2 Oren: horen', 'Oren.horen.html',{'tt':'4.2 Oren: horen','sb':'Oren.horen.html'},],
['4.3 Tast: voelen', 'Tast.voelen.html',{'tt':'4.3 Tast: voelen','sb':'Tast.voelen.html'},],
['4.4 Ruiken en Proeven', 'RuikenenProeven.html',{'tt':'4.4 Ruiken en Proeven','sb':'RuikenenProeven.html'},],
['4.5 Het 6de Zintuig', 'Het6deZintuig.html',{'tt':'4.5 Het 6de Zintuig','sb':'Het6deZintuig.html'},],
['4.6 Relativering', 'Relativering.html',{'tt':'4.6 Relativering','sb':'Relativering.html'},],
],
['5. Mens: méér dan je denkt.', 'Mens.mrdanjedenkt..html',{'tt':'5. Mens: méér dan je denkt.','sb':'Mens.mrdanjedenkt..html'},
['5.1 Perceptueel en Conceptueel', 'PerceptueelenConceptueel.html',{'tt':'5.1 Perceptueel en Conceptueel','sb':'PerceptueelenConceptueel.html'},],
],
['6. Het Midden: Het Hart', 'HetMidden.HetHart.html',{'tt':'6. Het Midden: Het Hart','sb':'HetMidden.HetHart.html'},
['6.1 Metafysica / God', 'Metafysica.God.html',{'tt':'6.1 Metafysica / God','sb':'Metafysica.God.html'},],
['6.2 Het \'Hartbrein\'', 'Het\'Hartbrein\'.html',{'tt':'6.2 Het \'Hartbrein\'','sb':'Het\'Hartbrein\'.html'},],
['6.3 Integrale Psychologie', 'IntegralePsychologie.html',{'tt':'6.3 Integrale Psychologie','sb':'IntegralePsychologie.html'},],
],
['7. Vier Niveaus van Mens', 'VierNiveausvanMens.html',{'tt':'7. Vier Niveaus van Mens','sb':'VierNiveausvanMens.html'},
['7.1 Niveau 1 Fysiek', 'Niveau1Fysiek.html',{'tt':'7.1 Niveau 1 Fysiek','sb':'Niveau1Fysiek.html'},],
['7.2 Niveau 2 Emotioneel', 'Niveau2Emotioneel.html',{'tt':'7.2 Niveau 2 Emotioneel','sb':'Niveau2Emotioneel.html'},],
['7.3 Niveau 3 Rationeel', 'Niveau3Rationeel.html',{'tt':'7.3 Niveau 3 Rationeel','sb':'Niveau3Rationeel.html'},],
['7.4 Niveau 4 Spiritueel', 'Niveau4Spiritueel.html',{'tt':'7.4 Niveau 4 Spiritueel','sb':'Niveau4Spiritueel.html'},],
['7.5 Het Hele Plaatje', 'HetHelePlaatje.html',{'tt':'7.5 Het Hele Plaatje','sb':'HetHelePlaatje.html'},],
['7.6 Aandacht Push &amp; Pull', 'AandachtPush&Pull.html',{'tt':'7.6 Aandacht Push &amp; Pull','sb':'AandachtPush&Pull.html'},],
['7.7 Hart\, Hoofd\, Handen', 'Hart\,Hoofd\,Handen.html',{'tt':'7.7 Hart\, Hoofd\, Handen','sb':'Hart\,Hoofd\,Handen.html'},],
['7.8 Perspectieven', 'Perspectieven.html',{'tt':'7.8 Perspectieven','sb':'Perspectieven.html'},
['7.8.1 Maslow', 'Maslow.html',{'tt':'7.8.1 Maslow','sb':'Maslow.html'},],
['7.8.2 Neurolink', 'Neurolink.html',{'tt':'7.8.2 Neurolink','sb':'Neurolink.html'},],
['7.8.3 Ken Wilber', 'KenWilber.html',{'tt':'7.8.3 Ken Wilber','sb':'KenWilber.html'},],
['7.8.4 Architectuur', 'Architectuur.html',{'tt':'7.8.4 Architectuur','sb':'Architectuur.html'},],
['7.8.5 Cynefin', 'Cynefin.html',{'tt':'7.8.5 Cynefin','sb':'Cynefin.html'},],
['7.8.6 Overig en Overzicht', 'OverigenOverzicht.html',{'tt':'7.8.6 Overig en Overzicht','sb':'OverigenOverzicht.html'},],
],
['7.9 Gewoonte of Verslaving', 'GewoonteofVerslaving.html',{'tt':'7.9 Gewoonte of Verslaving','sb':'GewoonteofVerslaving.html'},],
],
['8. De Hart-Hoofd Keuzes', 'DeHart-HoofdKeuzes.html',{'tt':'8. De Hart-Hoofd Keuzes','sb':'DeHart-HoofdKeuzes.html'},
['8.1 Hartmensen', 'Hartmensen.html',{'tt':'8.1 Hartmensen','sb':'Hartmensen.html'},
['8.1.1 Liefde', 'Liefde.html',{'tt':'8.1.1 Liefde','sb':'Liefde.html'},],
['8.1.2 Mind - 正念', 'Mind-.html',{'tt':'8.1.2 Mind - 正念','sb':'Mind-.html'},],
['8.1.3 Religie', 'Religie.html',{'tt':'8.1.3 Religie','sb':'Religie.html'},],
],
['8.2 Hoofdmensen', 'Hoofdmensen.html',{'tt':'8.2 Hoofdmensen','sb':'Hoofdmensen.html'},
['8.2.1 Angst', 'Angst.html',{'tt':'8.2.1 Angst','sb':'Angst.html'},],
['8.2.2 STRESS', 'STRESS.html',{'tt':'8.2.2 STRESS','sb':'STRESS.html'},],
['8.2.3 Emoties', 'Emoties.html',{'tt':'8.2.3 Emoties','sb':'Emoties.html'},],
['8.2.4 Religie', 'Religie(2).html',{'tt':'8.2.4 Religie','sb':'Religie(2).html'},],
],
],
['9. Aandacht', 'Aandacht.html',{'tt':'9. Aandacht','sb':'Aandacht.html'},],
['10. Ziel', 'Ziel.html',{'tt':'10. Ziel','sb':'Ziel.html'},],
['11. Dementie', 'Dementie.html',{'tt':'11. Dementie','sb':'Dementie.html'},],
['12. Empathie', 'Empathie.html',{'tt':'12. Empathie','sb':'Empathie.html'},],
['13. Wetenschap 3.0', 'Wetenschap3.0.html',{'tt':'13. Wetenschap 3.0','sb':'Wetenschap3.0.html'},],
['14. Praktisch', 'Praktisch.html',{'tt':'14. Praktisch','sb':'Praktisch.html'},
['14.1 Mindfulness', 'Mindfulness.html',{'tt':'14.1 Mindfulness','sb':'Mindfulness.html'},],
['14.2 Harmonie\, Balans', 'Harmonie\,Balans.html',{'tt':'14.2 Harmonie\, Balans','sb':'Harmonie\,Balans.html'},],
['14.3 Hart Oefening', 'HartOefening.html',{'tt':'14.3 Hart Oefening','sb':'HartOefening.html'},
['14.3.1 Coherentie', 'Coherentie.html',{'tt':'14.3.1 Coherentie','sb':'Coherentie.html'},],
],
['14.4 EQ', 'EQ.html',{'tt':'14.4 EQ','sb':'EQ.html'},],
['14.5 Meditatie', 'Meditatie.html',{'tt':'14.5 Meditatie','sb':'Meditatie.html'},],
['14.6 Overgave', 'Overgave.html',{'tt':'14.6 Overgave','sb':'Overgave.html'},],
],
['15. Conclusies', 'Conclusies.html',{'tt':'15. Conclusies','sb':'Conclusies.html'},],
['16. Toevoeging', 'Toevoeging.html',{'tt':'16. Toevoeging','sb':'Toevoeging.html'},],
['17. Tot slot', 'Totslot.html',{'tt':'17. Tot slot','sb':'Totslot.html'},],
]
];

View File

@@ -0,0 +1,95 @@
/*
Feel free to use your custom icons for the tree. Make sure they are all of the same size.
If you don't use some keys you can just remove them from this config
*/
var TREE_TPL = {
// general
'target':'_self', // name of the frame links will be opened in
// other possible values are:
// _blank, _parent, _search, _self and _top
// icons - root
'icon_48':'Res/tree/base.gif', // root icon normal
'icon_52':'Res/tree/base.gif', // root icon selected
'icon_56':'Res/tree/base.gif', // root icon opened
'icon_60':'Res/tree/base.gif', // root icon selected opened
// icons - node
'icon_16':'Res/tree/folder.gif', // node icon normal
'icon_20':'Res/tree/folderopen.gif', // node icon selected
'icon_24':'Res/tree/folderopen.gif', // node icon opened
'icon_28':'Res/tree/folderopen.gif', // node icon selected opened
'icon_80':'Res/tree/folderopen.gif', // normaled node icon hover
// icons - leaf
'icon_0':'Res/tree/page.gif', // leaf icon normal
'icon_4':'Res/tree/page.gif', // leaf icon selected
'icon_64':'Res/tree/pagesel.gif', // leaf icon hover
// icons - junctions
'icon_2':'Res/tree/empty.gif', // junction for leaf
'icon_3':'Res/tree/empty.gif', // junction for last leaf
'icon_18':'Res/tree/plus.gif', // junction for closed node
'icon_19':'Res/tree/plus.gif', // junctioin for last closed node
'icon_26':'Res/tree/minus.gif', // junction for opened node
'icon_27':'Res/tree/minus.gif', // junctioin for last opended node
// icons - misc
'icon_e':'Res/tree/empty.gif', // empty image
'icon_l':'Res/tree/empty.gif', // vertical line
// styles - root
'style_48':'mout', // normal root caption style
'style_52':'mout', // selected root catption style
'style_56':'mout', // opened root catption style
'style_60':'mout', // selected opened root catption style
'style_112':'mover', // normaled normal root caption style
'style_116':'mover', // normaled selected root catption style
'style_120':'mover', // normaled opened root catption style
'style_124':'mover', // normaled selected opened root catption style
// styles - node
'style_16':'mout', // normal node caption style
'style_20':'mout', // selected node catption style
'style_24':'mout', // opened node catption style
'style_28':'mout', // selected opened node catption style
'style_80':'mover', // normaled normal node caption style
'style_84':'mover', // normaled selected node catption style
'style_88':'mover', // normaled opened node catption style
'style_92':'mover', // normaled selected opened node catption style
// styles - leaf
'style_0':'mout', // normal leaf caption style
'style_4':'mout', // selected leaf catption style
'style_64':'mover', // normaled normal leaf caption style
'style_68':'mover', // normaled selected leaf catption style
// styles - misc
'icon':'style_icons', // Class for tree icons images; JS added 2003-07-25
// event handlers - item
'onItemOpen':'open_handler',// on item open event handler
'onItemClose':'close_handler'// on item close event handler
// make sure there is no comma after the last key-value pair
};
function open_handler (o_item) {
onItemOpenHandler (o_item);
return true;
}
function close_handler (o_item) {
//alert("This is node close event handler.\nThe caption of the item being closed is: '"+o_item.a_config[0]+"'");
return true;
}
function onItemOpenHandler (o_item) {
// get current block
var a_curblock = o_item.o_parent.a_children;
// close all nodes except current
for (var i = 0; i < a_curblock.length; i++)
if (a_curblock[i].n_state & 48 && a_curblock[i] != o_item)
a_curblock[i].open(true);
return false;
}