blob: 3fee651dc73a65ed5299bdd75754420a9f755ca7 [file] [log] [blame]
// 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
*/