﻿/* --------------------------------------------------------------------------------
	file:		CrossBrowserFunctions.js
	purpose:	cross browser DOM access and modify functions, used mostly for UI stuff.
	created by:	Brandon Kelly / FauxTel, Inc.
	date:		August 24, 2004
   -------------------------------------------------------------------------------- */

var isW3C = (document.getElementById != null);
var isNN4 = (document.layers != null);
var isIE4 = (document.all != null);
var debugSink = null;

function toggleLayer(name) {
	if (isW3C) {
		if (document.getElementById(name).style.visibility == 'hidden')
			document.getElementById(name).style.visibility = 'visible';
		else
			document.getElementById(name).style.visibility = 'hidden';
	} else if (isNN4) {
		// alert('NN4 toggle '+name+'('+document.layers[name].visibility +')');
		if (document.layers[name].visibility == 'hide')
			document.layers[name].visibility = 'visible';
		else
			document.layers[name].visibility = 'hidden';
	} else if (isIE4) {
		if (document.all.name.style.visibility == 'hidden')
			document.all.name.style.visibility = 'visible';
		else
			document.all.name.style.visibility = 'hidden';
	}
}

function getHandlerName(functionText){
    var nameStartToEnd=functionText.replace("function","");
    functionName=nameStartToEnd.substring(1,nameStartToEnd.indexOf("("));
    /*
    var nameEndChar=nameStartToEnd.indexOf("(");
    var functionName=nameStartToEnd.substring(1,nameEndChar);
    */
    return(functionName);
}

function showLayer(name) {
	if (isW3C) {
		document.getElementById(name).style.display = 'block';
	} else if (isNN4) {
		document.layers[name].visibility = 'visible';
	} else if (isIE4) {
		document.all.name.style.visibility = 'visible';
	}
}
	
function hideLayer(name) {
	if (isW3C) {
		document.getElementById(name).style.display = 'none';
	} else if (isNN4) {
		document.layers[name].visibility = 'hidden';
	} else if (isIE4) {
		document.all.name.style.visibility = 'hidden';
	}
}
	
function getObj(id) {
	if (isW3C) return (eval('document.getElementById(id)'));
	if (isIE4) return (eval('document.all[id]'));
	if (isNN4) return (eval('document.layers[id]'));
}

function getStyle(id) {
	if (isW3C) {
		return document.getElementById(id).style;
	} else if (isIE4) {
		return document.all[id].style;
	} else if (isNN4) {
		return document.layers[id];
	}
}

function selectOption(element, value) {
	var i;
	for (i=0;i<element.options.length;i++) {
		//alert("Previous Selected Index: " + element.selectedIndex.toString() + " Iteration Option:" + element.options[i].value.toLowerCase() + " New Index:" + element.selectedIndex.toString());
		if ((element.selectedIndex != i) && (element.options[i].value.toLowerCase() == value.toLowerCase())) {
			element.selectedIndex = i;
		}
	}
}

function selectedValue(element) {
	return element.options[element.selectedIndex].value
}

function showNonModalMessage(msg) {
    if (typeof debug == 'function') {
        debugMessage(msg);
    }
}

function registerDebugSink(debugSinkElement)
{
    if (typeof debugSinkElement == 'string')
        debugSink = document.getElementById(debugSinkElement);
    else
        debugSink = debugSinkElement
}

function getCurrentDebugSink() {
    return debugSink;
}

function debugMessage(msg) {
    var mySink = getCurrentDebugSink();
    if (mySink == null)
        return;
    var t = new Date();
    mySink.value = t.getHours() + ':' + t.getMinutes() + ':' + t.getSeconds() + ' - ' + msg + '\n' + mySink.value.substring(0, 250000);
    //sink.scrollTop = sink.scrollHeight;
}

function toggleDebugSink() {
    var sink = getCurrentDebugSink();
    if (sink == null)
        return;
    if (sink.style.display == 'block')
        sink.style.display = 'none';
    else
        sink.style.display = 'block';
}