Files
Mozilla/mozilla/cmd/dialup/tools/cg/docs/ias/tabsuprt.js
dmose%mozilla.org 68d3ee8a2a updating license to xPL 1.1
git-svn-id: svn://10.0.0.236/trunk@52535 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 07:16:31 +00:00

180 lines
4.2 KiB
JavaScript

/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
//tabs.js
// a set of functions for making a set of tabs in one frame that control the content of another frame
//tab images have to have names like:
//tabnamea.gif (active)
//tabnamei.gif (inactive)
//swaps the lowsrc and src images of an image reference
function swapSrcLowsrc(imageRef)
{
//FIXME FIXME: THIS FUCNTION HAS A TEMPORARY FIX FOR A BUG IN DOGBERT.
//FIXME WHEN IT'S RESOLVED BUG # 69298
if ((imageRef) && (imageRef != null))
{
if (imageRef.lowsrc && imageRef.src);
{
var lsrc = imageRef.lowsrc;
var src = imageRef.src;
imageRef.lowsrc = src;
imageRef.src = lsrc;
}
}
}
//given a link object, tells you which link it is in the document.
function findLinkIndex(linkRef)
{
var curIdx = -1;
if ((linkRef) && (linkRef != null))
{
for (curIdx = 0; curIdx < document.links.length; curIdx++)
{
if (document.links[curIdx] == linkRef)
return curIdx;
}
}
return -1;
}
//THIS IS A FUCKED UP HACK.
// there was no good way to tell which image was last on, without making some sort of persistent data
//storage, so this is the hack.
// We already assume that there is a 1-to-1 correspondence between the links array and the
//image array in the document.
//SO, we go to the links array, check the target's location, and see
// if that is equivalent to the link location. IF SO, we assume it IS ON.
// else it is off.
function imageIsOn(imageRef)
{
var out = false;
var dot = imageRef.src.lastIndexOf(".");
var indicator = imageRef.src.substring(dot-1, dot);
//alert("dot: " + dot + " indicator: " + indicator + " src: " + imageRef.src);
if (indicator == "a")
out = true;
return out;
}
//checks the name property of the passed in image object, if it is "ON", swaps the images.
// if it is anything else, does nothing
function swapImageIfOn(imageIndex, imageRef)
{
if ((imageRef) && (imageRef != null))
{
if ((imageRef.name))
{
if (imageIsOn(imageRef))
{
swapSrcLowsrc(imageRef);
//alert("Image " + imageIndex + " was on.");
return true;
}
}
}
return false;
}
function tabClicked(linkRef)
{
var theIndex = findLinkIndex(linkRef);
var onImage = document.images[theIndex];
//first see if the tab that was clicked is the currently active tab, if so, abort
//FIXME FIXME: THIS FUCNTION HAS A TEMPORARY FIX FOR A BUG IN DOGBERT.
//FIXME WHEN IT'S RESOLVED BUG # 69298
if (imageIsOn(onImage))
return false;
//second do a checkdata, if such a function exists in the tabbody
if (parent.tabbody && parent.tabbody.document && parent.tabbody.checkData)
{
var checkResult = parent.tabbody.checkData();
if (checkResult != true)
return checkResult;
}
//alert("tabsuprt: checkresult was true");
var wason = false;
var target = null;
if ((theIndex >= 0) && (onImage) && (onImage != null))
{
//found our image,
//turn all images off
for (var curImageIndex = 0; curImageIndex < document.images.length; curImageIndex++)
{
wason = swapImageIfOn(curImageIndex, document.images[curImageIndex]);
//this is the funny thing we do to save the data if a savedata event handler is there
if (wason == true)
{
target = eval("parent." + document.links[curImageIndex].target);
if ((target) && (target != null) && (target.saveData))
{
//alert("tabsuprt: savedata");
target.saveData();
//alert("tabsuprt: savedata finished");
}
}
}
//turn this image visually on
swapSrcLowsrc(onImage);
}
return true;
}