
g_isIE = (document.all) ? true : false;
g_isPC = (navigator.platform.toString().toLowerCase().indexOf("win") != -1) ? true : false;
if(!g_isPC) { prompt("This site utilizes ActiveX controls and requires the use of a Windows platform PC and the Internet Explorer browser.\nIf possible, please return to the site on a Windows machine using the Internet Explorer browser.\n\nThank you."); };
if(!g_isIE) { prompt("This site utilizes ActiveX controls and requires the use of the Internet Explorer browser.\nPlease open Internet Explorer and then Cut & Paste the link below into the location bar.",document.location.href); };

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


// QUICK & DIRTY BROWSER DETECT
var browserVersion = parseInt(navigator.appVersion);
var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
var is_safari = ((agt.match(/safari/)) ? true : false);
var is_ns4 = (document.layers) ? true : false;
// CORE PROPERTY/ATTRIBUTE VALUE "HOMOGENIZATION"
var hidden = (document.layers) ? "hide" : "hidden";
var visible = (document.layers) ? "show" : "visible";
var toggle = "toggle";
var px = (document.layers) ? "" : "px";
var style = (document.layers) ? "" : ".style";

// global Array object method
// getIndexByValue([value]);
// e.g., 	var mostlyDogs = ["Rover","Lassie","Mr. Buttons","Benji","Clifford","Rascal","Rags"];
//			isClifford = (mostlyDogs.getIndexByValue("Clifford") > -1) ? true : false;
// 			returns [isClifford=]true;
//			isScooby = (mostlyDogs.getIndexByValue("Scooby Doo") > -1) ? true : false;
// 			returns [isScooby=]false;
Array.prototype.getIndexByValue = function(value,ignoreCase,is_matchAsString)
{
    tstVal = false;
    tstVal = (value) ? value.toString() : "FAILED_tstVal_CHECK";
    ignoreCase = (typeof ignoreCase != "undefined" && ((ignoreCase > 0) && (ignoreCase != false) && (ignoreCase != "false"))) ? ignoreCase : false;
    is_matchAsString = (typeof is_matchAsString != "undefined" && ((is_matchAsString > 0) && (is_matchAsString != false) && (is_matchAsString != "false"))) ? is_matchAsString : false;
    if(tstVal != "FAILED_tstVal_CHECK")
    {
        indexArray = new Array();
        eval("baseArray = this");
        baseLen = baseArray.length;
        cB = (is_matchAsString) ? ((ignoreCase) ? (value + "").toLowerCase() : (value + "").toString()) : ((ignoreCase && (typeof value) == "string") ? (value).toLowerCase() : value);
        for(oP=0;oP<baseLen;oP++)
        {
            cA = (is_matchAsString) ? ((ignoreCase) ? (baseArray[oP] + "").toLowerCase() : (baseArray[oP] + "").toString()) : ((ignoreCase && (typeof baseArray[oP]) == "string") ? (baseArray[oP]).toLowerCase() : baseArray[oP]);
            if((cA == cB) || (is_matchAsString && cA.match(cB))) {
                indexArray[indexArray.length] = oP;
            }
        }
        if((indexArray.length > 0) && (indexArray != ""))
        {
            return indexArray;
        }
        else
        {
            return -1;
        }
    }
    return -1;
}
Array.prototype.pop = function pop()
{
    var lastElement = this[this.length-1];
    this.length--;
    return lastElement;
}
// _____________________________________________________
// "push" (add) and element to the array (returns the new length of the array : redefines original)
Array.prototype.push = function push(newElement)
{
    this[this.length] = newElement;
    return this.length;
}
// copy an array (returns the copy : leaves original intact)
Array.prototype.copy = function copy()
{
    var l;
    var baseArray = new Array();
    for(l = 0; l < this.length; l++)
    {
        baseArray[l] = this[l];
    }
    return baseArray;
}
// clip an item (by index) from an array (returns the copy : leaves original intact)
Array.prototype.clip = function clip(ndx)
{
    var l;
    var baseArray = new Array();
    for(l = 0; l < this.length; l++)
    {
        if(l < this.length - 1)
        {
            baseArray[l] = (l < ndx) ? this[l] : this[l-1];
        }
    }
    return baseArray;
}
/* START ** Random Number */
function rNm(nM)
{
	nM = ((nM && !isNaN(parseInt(nM))) ? parseInt(nM) : 9);
	rnV = (Math.round(Math.floor((Math.random() * nM))));
	return rnV;
}
/* END ** Random Number */
// "shuffle" an array's elements (returns the randomized resulting array : leaves original intact)
// NOTE: ALTERNATE METHODS DECLARED BELOW
Array.prototype.shuffle = function()
{
    randomArray = new Array();
    trimArray = new Array();
    eval("baseArray = this");
    trimArray = baseArray;
    i = 0;
    while(baseArray.length > 0)
    {
        var newPos = rNm(baseArray.length);
        randomArray[i] = baseArray[newPos]
        baseLen = baseArray.length;
        for(oP=0;oP<baseLen;oP++)
        {
            newIndex = (oP < newPos) ? oP : (oP - 1);
            if(oP != newPos) trimArray[newIndex] = baseArray[oP];
        }
        baseArray.length --;
        i++;
    }
    return randomArray;
}
// NOTE: ALTERNATE FUNCTION NAMES FOR THE SHUFFLE METHOD DECLARED BELOW
Array.prototype.permute = Array.prototype.shuffle;
Array.prototype.randomize = Array.prototype.shuffle;

// "[tag name]":["[peer tag name(s)]"...]
tagPeers = {
    "tr":["tr"],
    "td":["td","th"],
    "th":["th","td"],
    "table":["table"],
    "thead":["thead","tbody"],
    "tbody":["tbody","thead"],
    "ol":["ol","ul"],
    "ul":["ul","ol"],
    "li":["li"],
    "body":["body","head"],
    "head":["head","body"]
};
// "[tag name]":["[parent tag name(s)]"...]
tagChildren = {
    "tbody":["table"],
    "thead":["table"],
    "tr":["tbody","table"],
    "td":["tr"],
    "th":["tr"],
    "li":["ol","ul"],
    "body":["html","xhtml","xml"],
    "head":["html","xhtml","xml"],
    "title":["head"]
};
// "[tag name]":["[peer tag name(s)]"...]
tagSingular = {
    "html":["html","xhtml","xml"],
    "xhtml":["xhtml","xml","html"],
    "xml":["xml","html","xhtml"],
    "head":["head"],
    "title":["title"]
};

// Array for validInputByRegExp
presetRE =
{
    phone: /[0-9\-\.\(\)extmb\#]/i,
    notphone: /[^0-9\-\.\(\)extmb\#]+/gi,
    phonealpha: /[0-9\-\. \(\)a-z\#]/i,
    notphonealpha: /[^0-9\-\. \(\)a-z\#]+/gi,
    zip: /[0-9\-]/,
    notzip: /[^0-9\-]+/g,
    address: /[^<>%\!\?\~\^\\\{\}\[\]]/,
    notaddress: /[<>%\!\?\~\^\\\{\}\[\]]+/g,
    alphanumeric:  /[^<>\?\~\^\\\{\}\[\]]/,
    notalphanumeric: /[<>\?\~\^\\\{\}\[\]]+/g,
    name: /[^<>%\#\!\@\?\~\^\\\{\}\[\]]/,
    notname: /[<>%\#\!\@\?\~\^\\\{\}\[\]]+/g,
    emailaddress: /[^ <>\\%]/,
    notemailaddress: /[ <>\\%]+/g,
    notes: /[^<>\^\{\}]/,
    notnotes: /[<>\^\{\}]+/g
}

function initKeyPress()
{
    if(document.layers)
    {
        document.captureEvents(Event.KEYPRESS);
        document.onkeypress = getKeyPress;
    }
}
function getKeyPress(e)
{
    e = (e && e != "") ? e : (window.event) ? window.event : null;
    retKeyVal = (!e) ? null : (!document.all) ? String.fromCharCode(e.which) : String.fromCharCode(e.keyCode);
    if(document.layers && typeof e.target != "undefined" && typeof e.target.onkeypress != "undefined" && e.target.onkeypress != getKeyPress)
    {
        fS = e.target.onkeypress.toString().replace(/this[ ]*\,[ ]*event/,"e.target,e");
        fS = fS.substring((fS.indexOf("{") + 1),(fS.lastIndexOf("}") - 1));
        if(fS.indexOf("return") != -1) { fS = fS.replace(/return/,""); }
        eval(fS);
    }
    return retKeyVal;
}
function getKeyCode(e)
{
    e = (e && e != "") ? e : (window.event) ? window.event : null;
    retKeyCode = (!document.all) ? e.which : e.keyCode;
    return retKeyCode;
}
function validInputByRegExp(obj, e, rE)
{
    var key;
    var keychar;
    e = (e) ? e : null;
    rE = (typeof rE == "string") ? ((rE != "" && typeof presetRE[rE] != "undefined") ? presetRE[rE] : "") : rE;
    if(!rE)
        return;
    key = getKeyCode(e);
    keychar = (document.layers) ? String.fromCharCode(key) : getKeyPress(e);
    // allow use of  control keys
    /*
    0 = null;
    8 = backspace;
    9 = horizontal tab/down arrow
    13 = carriage return/enter
    27 = esc
    */
    if((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) || (key==189) || (key==191) || (key==190) || (key==187))
    {
        return true;
    }
    if((keychar + "").match(rE))
    {
        return true;
    }
    return false;
}

// ** BEGIN (c) Copyright 2002 Adobe// ** BEGIN (c) Copyright 2002 Adobe
function findObj(n, ly)
{
	if(is_major < 4) return document[n];
	var curDoc = ly ? ly.document : document;
	var elem = curDoc[n];
	if(!elem)
	{
		for(var i=0;i<curDoc.layers.length;i++)
		{
			elem = findObj(n,curDoc.layers[i]);
			if(elem) return elem;
		}
	}
	return elem;
}
// ** END Copyright 2002 Adobe
/* END -------------------------------------------- ADOBE IMAGEREADY OBJECT REFERENCE SCRIPT -------------------------------------------- */
/* START -------------------------------------------- INTUITION STUDIO OBJECT/OBJECT STYLE REFERENCING SCRIPT -------------------------------------------- */
function getObjRef(objId)
{
	objRef = false;
	objRef = (document.layers) ? findObj(objId) : (document.getElementById) ? eval("document.getElementById(\"" + objId + "\")") : (document.all) ? eval("document." + objId) : false;
	if(document.layers && !objRef) { objRef = (typeof document[objId] != "undefined") ? document[objId] : false; };
	if(!objRef)
		objRef = findObj(objId);
	return objRef;
}
function getStyRef(objId)
{
	styRef = false;
	styRef = (document.layers) ? findObj(objId) : (document.getElementById) ? eval("document.getElementById(\"" + objId + "\").style") : (document.all) ? eval("document." + objId + ".style") : false;
	if(document.layers && !styRef) { styRef = (typeof document[objId] != "undefined") ? document[objId] : false; };
	return styRef;
}
function getWinDims()
{
	winDim["w"] = (document.all) ? document.body.clientWidth : (document.documentElement) ? document.documentElement.offsetWidth : (!document.all && !document.layers) ? window.innerWidth : (document.layers) ? innerWidth : false;
	winDim["h"] = (document.all) ? document.body.clientHeight : (document.documentElement) ? document.documentElement.offsetHeight : (!document.all && !document.layers) ? window.innerHeight : (document.layers) ? innerHeight : false;
	return winDim;
}
function centerObj(obj,offT,offL) // to be added later ,offB,offR
{
    if(!obj)
        return;
    offT = (offT && !isNaN(parseInt(offT))) ? offT : 0;
    offL = (offL && !isNaN(parseInt(offL))) ? offL : 0;
    /* to be added later
    offB = (offB && !isNaN(parseInt(offB))) ? offB : 0;
    offR = (offR && !isNaN(parseInt(offR))) ? offR : 0;
    */
    bH = parseInt(getWinHeight());
    bW = parseInt(getWinWidth());
    oW = (document.layers) ? parseInt(obj.clip.width) : parseInt(obj.offsetWidth);
    oH = (document.layers) ? parseInt(obj.clip.height) : parseInt(obj.offsetHeight);
    nwT = ((Math.round(parseInt(bH)/2) - Math.round(oH/2)) > 0) ? (Math.round(bH/2) - Math.round(oH/2)) : 0;
    nwT = (nwT + offT);
    nwL = ((Math.round(parseInt(bW)/2) - Math.round(oW/2)) > 0) ? (Math.round(bW/2) - Math.round(oW/2)) : 0;
    nwL = (nwL + offL);
    if(document.layers)
    {
        obj.top = nwT;
        obj.left = nwL;
    }
    else if(!document.layers)
    {
        obj.style.top = nwT + px;
        obj.style.left = nwL + px;
    }
    return;
}
/******************************* */
function getWinWidth()
{
    winWidth = (document.all && !document.documentElement) ? document.body.clientWidth : (document.documentElement && !(document.compatMode == "BackCompat")) ? document.documentElement.clientWidth : (document.documentElement && (document.compatMode == "BackCompat")) ? document.getElementsByTagName("body").item(0).offsetWidth : (document.documentElement) ? window.innerWidth : (document.layers) ? innerWidth : false;
    return winWidth;
}
function getWinHeight()
{
    winHeight = (document.all && !document.documentElement) ? document.body.clientHeight : (document.documentElement && !(document.compatMode == "BackCompat")) ? document.documentElement.clientHeight : (document.documentElement && (document.compatMode == "BackCompat")) ? document.getElementsByTagName("body").item(0).offsetHeight : (document.documentElement) ? window.innerHeight : (document.layers) ? innerHeight : false;
    return winHeight;
}
function getWinScrollLeft()
{
    var scrOffLeft = (document.all && !document.documentElement) ? document.body.scrollLeft : (document.all && document.documentElement && !(document.compatMode == "BackCompat")) ? document.documentElement.scrollLeft : (document.all && document.documentElement && (document.compatMode == "BackCompat")) ? document.body.scrollLeft : pageXOrigOffset;
    return scrOffLeft;
}
function getWinScrollTop()
{
    var scrOffTop = (document.all && !document.documentElement) ? document.body.scrollTop : (document.all && document.documentElement && !(document.compatMode == "BackCompat")) ? document.documentElement.scrollTop : (document.all && document.documentElement && (document.compatMode == "BackCompat")) ? document.body.scrollTop : pageYOrigOffset;
    return scrOffTop;
}
function setWinScrollLeft(xPos)
{
    xPos = (xPos) ? xPos : false;
    if(xPos)
    {
        if(document.all && !document.documentElement) document.body.scrollLeft = xPos;
        if(document.all && document.documentElement) document.documentElement.scrollLeft = xPos;
        else pageXOffset = xPos;
        return getWinScrollLeft();
    }
}
function setWinScrollTop(yPos)
{
    yPos = (yPos) ? yPos : false;
    if(yPos)
    {
        if(document.all && !document.documentElement) document.body.scrollTop = yPos;
        if(document.all && document.documentElement) document.documentElement.scrollTop = yPos;
        else pageYOffset = yPos;
        return getWinScrollTop();
    }
}
function keepItemInWindow(obj,xMode,yMode,xOff,yOff)
{
    if(!obj)
        return false;
    //if(typeof obj.scrollIntoView != "undefined") { obj.scrollIntoView(); };
    xMode = (xMode && typeof xMode == "boolean") ? xMode : false;
    yMode = (yMode && typeof yMode == "boolean") ? yMode : false;
    xOff = (xOff && typeof parseInt(xOff) == "number") ? parseInt(xOff) : 0;
    yOff = (yOff && typeof parseInt(yOff) == "number") ? parseInt(yOff) : 0;
    if(typeof obj.style != "undefined" && typeof obj.style.position != "undefined" && (obj.style.position == "relative" || obj.style.position == "absolute"))
    {
        if(xMode)
        {
            if(typeof obj.originalLeft == "undefined" && typeof obj.style.pixelLeft != "undefined" && typeof parseInt(obj.style.pixelLeft) == "number") obj.originalLeft = parseInt(obj.style.pixelLeft);
            xOff = (xOff == 0) ? obj.originalLeft : xOff;
            obj.style.visibility = hidden;
            obj.style.pixelLeft = (parseInt(getWinScrollLeft()) + parseInt(xOff));
            obj.style.visibility = visible;
        }
        if(yMode)
        {
            if(typeof obj.originalTop == "undefined" && typeof obj.style.pixelTop != "undefined" && typeof parseInt(obj.style.pixelTop) == "number") obj.originalTop = parseInt(obj.style.pixelTop);
            yOff = (yOff == 0) ? obj.originalTop : yOff;
            obj.style.visibility = hidden;
            obj.style.pixelTop = (parseInt(getWinScrollTop()) + parseInt(yOff));
            obj.style.visibility = visible;
        }
    }
    return;
}
// Screen Dimension Script
/**************** Returns the variables: scrDim.w = screen width & scrDim.h = screen height *************** */
function getScrDims()
{
    var scrDim = new Array(2);
    scrDim["w"] = (window.screen) ? window.screen.availWidth : 640;
    scrDim["h"] = (window.screen) ? window.screen.availHeight : 480;
return scrDim;
}
function getId(obj)
{
    nwRnd = rNm(1000);
    dtStr = new Date();
    dtStr = dtStr.getTime() + nwRnd;
    obj.id = (obj.id != "") ? obj.id : ("id_" + dtStr);
    return obj.id;
}
function getWidth(obj)
{
    tmpO = getObjRef(getId(obj));
    widthVal = (document.layers) ? ((tmpO == '[object Image]') ? parseInt(tmpO.width) : (tmpO.obj) ? tmpO.obj.style.clip.width : (typeof tmpO.clip != "undefined" && typeof tmpO.clip.width != "undefined") ? tmpO.clip.width : tmpO.width) : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("width")) : (typeof tmpO.offsetWidth != "undefined") ? parseInt(tmpO.offsetWidth) : "";
    return widthVal;
}
function getHeight(obj)
{
    tmpO = getObjRef(getId(obj));
    heightVal = (document.layers) ? ((tmpO == '[object Image]') ? parseInt(tmpO.height) : (tmpO.obj) ? tmpO.obj.style.clip.height : (typeof tmpO.clip != "undefined" && typeof tmpO.clip.height != "undefined") ? tmpO.clip.height : tmpO.height) : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("height")) : (typeof tmpO.offsetHeight != "undefined") ? parseInt(tmpO.offsetHeight) : "";
    return heightVal;
}
function getTop(obj)
{
    tmpO = getObjRef(getId(obj));
    topVal = (document.layers) ? (tmpO == '[object Image]') ? "" : tmpO.top : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("top")) : (typeof tmpO.offsetTop != "undefined") ? parseInt(tmpO.offsetTop) : "";//+ parseInt(tmpO.parentElement.offsetTop) : "";
    return topVal;
}
function getLeft(obj)
{
    tmpO = getObjRef(getId(obj));
    leftVal = (document.layers) ? (tmpO == '[object Image]') ? "" : tmpO.left : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("left")) : (typeof tmpO.offsetLeft != "undefined") ? parseInt(tmpO.offsetLeft) : ""; //+ parseInt(tmpO.parentElement.offsetLeft) : "";
    return leftVal;
}
function getZIndex(obj)
{
    tmpO = getObjRef(getId(obj));
    zIndexVal = (document.layers) ? ((tmpO == '[object Image]') ? "" : (tmpO.obj) ? tmpO.obj.zIndex : tmpO.zIndex) : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("z-index") : (typeof tmpO.style.zIndex != "undefined") ? tmpO.style.zIndex : ""; //+ tmpO.parentElement.style.zIndex : "";
    return zIndexVal;
}
function getRealDims(id)
{
    // unused but useful Netscape 4 fix snippet
    /*
        current_width = document.layers[layertoCheck].document.width;
        current_height = document.layers[layertoCheck].document.height;
    */
    eval("realDim." + id + " = new Array();");
    tmpO = getObjRef(id);
    realDim[id].w = getWidth(tmpO);//(document.layers) ? ((tmpO == '[object Image]') ? parseInt(tmpO.width) : (tmpO.obj) ? tmpO.obj.style.clip.width : (typeof tmpO.clip != "undefined" && typeof tmpO.clip.width != "undefined") ? tmpO.clip.width : tmpO.width) : (!document.all && document.getElementById) ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("width")) : (document.all) ? parseInt(tmpO.offsetWidth) : "";
    realDim[id].h = getHeight(tmpO);//(document.layers) ? ((tmpO == '[object Image]') ? parseInt(tmpO.height) : (tmpO.obj) ? tmpO.obj.style.clip.height : (typeof tmpO.clip != "undefined" && typeof tmpO.clip.height != "undefined") ? tmpO.clip.height : tmpO.height) : (!document.all && document.getElementById) ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("height")) : (document.all) ? parseInt(tmpO.offsetHeight) : "";
    realDim[id].t = getTop(tmpO);//(document.layers) ? (tmpO == '[object Image]') ? "" : tmpO.top : (!document.all && document.getElementById) ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("top")) : (document.all) ? parseInt(tmpO.offsetTop) + parseInt(tmpO.parentElement.offsetTop) : "";
    realDim[id].l = getLeft(tmpO);//(document.layers) ? (tmpO == '[object Image]') ? "" : tmpO.left : (!document.all && document.getElementById) ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("left")) : (document.all) ? parseInt(tmpO.offsetLeft) + parseInt(tmpO.parentElement.offsetLeft) : "";
    realDim[id].z = getZIndex(tmpO);//(document.layers) ? ((tmpO == '[object Image]') ? "" : (tmpO.obj) ? tmpO.obj.zIndex : tmpO.zIndex) : (!document.all && document.getElementById) ? document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("z-index") : (document.all) ? tmpO.style.zIndex + tmpO.parentElement.style.zIndex : "";
    return realDim,realDim[id];
}
function setContent(layerRef,content,is_unicode)
{
    if(!layerRef || typeof layerRef != "object")
        return false;
    content = (content) ? content : null;
    if(content)
    {
        is_unicode = (is_unicode) ? is_unicode : false;
        if(is_unicode)
        {
            if(document.layers)
            {
                with(layerRef.document)
                {
                    open();
                    write(unescape(content));
                    close();
                }
            }
            else if(typeof layerRef.innerHTML != "undefined")
            {
                layerRef.innerHTML = unescape(content);
            }
        }
        else if(!is_unicode)
        {
            if(document.layers || (layerRef.innerHTML == "undefined"))
            {
                with(layerRef.document)
                {
                    open();
                    write(content);
                    close();
                }
                return layerRef;
            }
            else if(typeof layerRef.innerHTML != "undefined")
            {
                layerRef.innerHTML = content;
                return layerRef;
            }
        }
    }
    return;
}
function swapImg(imgName,fullPath)
{
	if(!imgName)
		return false;
	imgObj = findObj(imgName);
	if(!imgObj)
		imgObj = getObjRef(imgName);
	if(!imgObj)
		return false;
	fullPath = (fullPath) ? fullPath : "";
	imSrc = imgObj.src.toString();
	imgObj.src = (fullPath != "") ? fullPath : imSrc;
	return imgObj.src;
}
/* 
	EXAMPLE: 
		<a href="http://www.rcninteraction.com/intro/index.jsp" 
			id="tn_home_a" 
			onmouseover="rollOver(this,'','_on');" 
			onmouseout="rollOut();"
		>
				<img src="images/tn_home.gif" width="50" height="27" border="0" alt="Home" 
					name="tn_home"
				></a>
	OR:
		<a href="http://www.rcninteraction.com/intro/index.jsp" 
			id="tn_home_a" 
			onmouseover="rollOver(this,'_off','_on');" 
			onmouseout="rollOver(this,'_on','_off');"
		>
				<img src="images/tn_home_off.gif" width="50" height="27" border="0" alt="Home" 
					id="tn_home"
				></a>
*/
function rollOver(obj,oldSuffix,suffix)
{
	if(!obj)
		return;
	suffix = (typeof suffix != "undefined") ? suffix : null;
	oldSuffix = (typeof oldSuffix != "undefined") ? oldSuffix : null;
	obj.rollId = obj.id.toString().replace(/_a/,'');
	obj.oldSrc = getObjRef(obj.rollId).src;
	obj.rollRe = new RegExp(obj.rollId + ((oldSuffix != null) ? oldSuffix : "") + '(\\.[a-z0-9]{3,4})','i');
	swapImg(obj.rollId,getObjRef(obj.rollId).src.toString().replace(obj.rollRe,(obj.rollId + suffix + '$1')));
}

function rollOut(obj)
{
	if(!obj)
		return;
	imgObj = getObjRef(obj.id.toString().replace(/_a/,''));
	imgName = (typeof imgObj.name != "undefined" && imgObj.name != "") ? imgObj.name : ((typeof imgObj.id != "undefined" && imgObj.id != "") ? imgObj.id : null);
	if(!imgName)
		imgObj.name, imgName = obj.id.toString().replace(/_a/,'');
	swapImg(imgName,obj.oldSrc);
}
/* START ** Function Test */
function isFun()
{
    return typeof (isFun.arguments[0]).toLowerCase() == "function";
}
/* START ** Fade (up or down) Any Obj */
fadeObjTmrs = {};
fadeObjOpacities = {};
function fadeObjById(objId,sop,op,st,sp)
{
	obj = (objId) ? getObjRef(objId) : null;
    if(!obj)
        return;
    fade_direction = (sop < op) ? "up" : ((sop == 0) ? "none" : "down"); 
	op = ((op >= 0) || (op <= 100)) ? op : ((op < 0) ? 0 : (op > 100) ? 100 : op);
	sop = ((sop >= 0) || (sop <= 100)) ? sop : ((sop < 0) ? 0 : (sop > 100) ? 100 : sop);
    sop = ((typeof window.fadeObjOpacities[objId] != "undefined") ? window.fadeObjOpacities[objId] : sop);
    if(op == sop)
        return;
	if(obj != null)
	{
		if(typeof window.fadeObjTmrs[objId] != "undefined")
		{
			clearTimeout(window.fadeObjTmrs[objId]);
		}
		oOp = (typeof window.fadeObjOpacities[objId] != "undefined") ? window.fadeObjOpacities[objId] : 100;
		if((sop != op) && (op != oOp))
		{
			sop = (sop > op) ? (sop - st) : (sop + st);
			sop = (sop <= 0) ? 0 : ((sop > 100) ? 100 : sop);
			if(!document.all && typeof obj.style != "undefined" && typeof obj.style.MozOpacity != "undefined")
			{
				obj.style.MozOpacity = ((sop == 0) ? 0 : (sop/100));
			}
            else if(typeof obj.style != "undefined" && typeof obj.style.opacity != "undefined")
            {
                obj.style.opacity = ((sop == 0) ? 0 : (sop/100));
            }
			else if(document.all && typeof obj.style != "undefined" && typeof obj.style.filter != "undefined")
			{
				obj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + sop + ")";
			}
			oOp = sop;
			window.fadeObjTmrs[objId] = setTimeout("fadeObjById('" + objId + "'," + sop + "," + op + "," + st + "," + sp + ")",sp);
			window.fadeObjOpacities[objId] = oOp;
		}
		return oOp;
	}
	return -1;
}
/* END ** Fade (up or down) Any Obj */

/* START ** Return First Nested Image Element Alt Text */
function showImgAlt(obj,e)
{
	eT = (e && (!document.all && typeof e.target != "undefined")) ? e.target : null;
	if(!eT && document.all && typeof e.srcElement != "undefined")
	{
		eT = e.srcElement;
	}
	rV = (eT && eT.getElementsByTagName('img').item(0)) ? eT.getElementsByTagName('img').item(0).alt : (eT && typeof eT.alt != "undefined") ? eT.alt : "";
	return rV;
}
/* END ** Return First Nested Image Element Alt Text */
/* START ** Return Comment Content (First Child Tag) */
function showCommentContent(obj,e)
{
	eT = (e && (!document.all && typeof e.target != "undefined")) ? e.target : null;
	if(!eT && document.all && typeof e.srcElement != "undefined")
	{
		eT = e.srcElement;
	}
	rV = (eT && eT.childNodes && eT.childNodes.item(0) && eT.childNodes.item(0).nodeName.toLowerCase() != "img") ? eT.childNodes.item(0).nodeValue : ((eT.childNodes.item(0).nodeName.toLowerCase() == "img") ? eT.childNodes.item(0).alt : "");
	return rV;
}
/* END ** Return Comment Content (First Child Tag) */
/* START ** Get Title (hover text) from First Child Tag Content */
function sweepForTitle(obj,e)
{
	obj.title = showCommentContent(obj,e);
	return obj.title;
}
/* END ** Get Title (hover text) from First Child Tag Content */
/* START ** Get Leading Zeros */
function getLeadingZeds(val,zC)
{
	val = ((val && !isNaN(parseInt(val))) ? parseInt(val) : 1);
	zC = ((zC && !isNaN(parseInt(zC))) ? parseInt(zC) : 4);
	vSt = "";
	vSt += val;
	for(vI=0; (vSt.length) <= (zC); vI++)
	{
		vSt = "0" + vSt;
	}
	return vSt;
}
/* END ** Get Leading Zeros */
/* START ** Class Swap */
function classSwap(obj,oSuff,rSuff)
{
	obj = (obj) ? obj : null;
	if(!obj)
		return;
	oSuff = (oSuff) ? oSuff : '_off';
	rSuff = (rSuff) ? rSuff : '_on';
	if(typeof obj.className != "undefined")
	{
		if(obj.className.toString().match(oSuff))
		{
			obj.className = obj.className.toString().replace(oSuff,rSuff);
		}
	}
	return;
}
/* END ** Class Swap */
/* START ** Class Swap By Id */
function classSwapById(objId,oSuff,rSuff)
{
	objId = (objId) ? objId : null;
	obj = getObjRef(objId);
	if(!objId)
		return;
	oSuff = (oSuff) ? oSuff : '_off';
	rSuff = (rSuff) ? rSuff : '_on';
	if(typeof obj.className != "undefined")
	{
		if(obj.className.toString().match(oSuff))
		{
			obj.className = obj.className.toString().replace(oSuff,rSuff);
		}
	}
	return;
}
/* END ** Class Swap By Id */
/* START ** Toggle Class "On" or "Off" */
function toggleClassOnOff(objId)
{
	objId = (objId) ? objId : null;
	if(!objId)
		return;
	obj = getObjRef(objId);
	oS = (obj.className.toString().match(/_off/)) ? "_off" : "_on";
	rS = (obj.className.toString().match(/_off/)) ? "_on" : "_off";
	classSwap(obj,oS,rS);
	return;
}
/* END ** Toggle Class "On" or "Off" */
/* START ** Toggle Obj Class "On" or "Off" */
function toggleObjClassOnOff(obj,setOnOff)
{
	obj = (obj) ? obj : null;
	if(!obj)
		return;
	setOnOff = (setOnOff && (setOnOff <= -1)) ? "_off" : "_on";
	setOnOffSwap = (setOnOff == "_off") ? "_on" : "_off";
	oS = (obj.className.toString().match(/_off/)) ? "_off" : "_on";
	rS = (obj.className.toString().match(/_off/)) ? "_on" : "_off";
	classSwap(obj,oS,rS);
	return;
}
/* END ** Toggle Obj Class "On" or "Off" */
/* START ** Image Swap */
function imgSwap(obj,oSuff,rSuff)
{
	obj = (obj) ? obj : null;
	if(!obj)
		return;
	oSuff = (oSuff) ? oSuff : '_off';
	rSuff = (rSuff) ? rSuff : '_on';
	if(typeof obj.src != "undefined")
	{
		if(obj.src.toString().match(oSuff))
		{
			obj.src = obj.src.toString().replace(oSuff,rSuff);
		}
	}
	return;
}
/* END ** Image Swap */
/* START ** Toggle Details Content (with indicator arrow image) */
function toggleDetails(srcObj,objId)
{
	srcObj = (srcObj) ? srcObj : null;
	objId = (objId) ? objId : null;
	if(!objId)
		return;
	if(srcObj)
	{
		oS = (srcObj.className.toString().match(/_off/)) ? "_off" : "_on";
		rS = (srcObj.className.toString().match(/_off/)) ? "_on" : "_off";
		classSwap(srcObj,oS,rS);
	}
	toggleClassOnOff(objId);
	return;
}
/* END ** Toggle Details Content (with indicator arrow image) */


/* START ** Check All Child Checkboxes By Id */
function checkAllChildBoxes(objId)
{
	objId = (objId) ? objId : null;
	if(!objId)
	{
		return false;
	}
	obj = getObjRef(objId);
	if(obj)
	{
		allChildInputs = obj.getElementsByTagName("input");
		for(aCI=0;aCI<allChildInputs.length;aCI++)
		{
			if((typeof allChildInputs[aCI].type != "undefined") && (allChildInputs[aCI].type.toLowerCase() == "checkbox"))
			{
				if(typeof allChildInputs[aCI].value != "undefined" && allChildInputs[aCI].value.toString().toLowerCase().match(/checkno/) <= 0)
				{
					allChildInputs[aCI].checked = true;
				}
			}
		}
	}
	return;
}
/* END ** Check All Child Checkboxes By Id */

/* START ** Check No(ne) Child Checkboxes By Id */
function checkNoChildBoxes(objId)
{
	objId = (objId) ? objId : null;
	if(!objId)
	{
		return false;
	}
	obj = getObjRef(objId);
	if(obj)
	{
		if(document.getElementsByTagName) { allChildInputs = obj.getElementsByTagName("input"); };
		for(aCI=0;aCI<allChildInputs.length;aCI++)
		{
			if((typeof allChildInputs[aCI].type != "undefined") && (allChildInputs[aCI].type.toLowerCase() == "checkbox"))
			{
				if(typeof allChildInputs[aCI].value != "undefined" && allChildInputs[aCI].value.toString().toLowerCase().match(/checkall/) <= 0)
				{
					allChildInputs[aCI].checked = false;
				}
			}
		}
	}
	return;
}
/* END ** Check No(ne) Child Checkboxes By Id */

/* START ** Check None/All By Prefix */
function checkByPrefix(form, prefix, state)
{
    /* 
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    IMPORTANT NOTE:  CONFIGURED TO SKIP/IGNORE ELEMENTS WITH: style="display: none;" IN THEIR < INPUT > TAG ATTRIBUTES
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    
        state: all|none|inverse|values|indices
    ________________________________________________________________________________________________________________________________________
        all = checks all checkboxes or radio buttons, ignores any input with name/id = [prefix]_all
        none = checks no checkboxes or radio buttons, ignores any input with name/id = [prefix]_all
        inverse = checks any checkboxes or radio buttons that weren't checked and unchecks any that were, ignores any inputs with name/id = [prefix]_all
        values = returns a two dimensional associative array object containing all input values and checked state, ignores any inputs with name/id = [prefix]_all
                    e.g. -- { tl_1:["Super Down":0], tl_2:["Funkentelechy":1], tl_3:["Nobody Knows":1], tl_4:["Cal-L.A.-fra-ga-lis-tic":1], tl_5:["When I Hear You Call":0] };
                    indices = returns an array object containing all checked input indices, the first array item is the total number of matching inputs found, ignores un-checked items and any input with name/id = [prefix]_all
                    e.g. -- [5,2,3,4];
        clear = un-checks an input with name/id [prefix]_all if found
     -----------------------------------------------------------------------------------------------------------------------------------------
    
     usage: <form>
                <input type="checkbox" name="tl_all"  onchange="checkByPrefix(this.form, 'tl_', ((this.checked) ? 'all' : 'none'));" />
                <input type="checkbox" name="tl_1" />
                <input type="checkbox" name="tl_apples" />
                <input type="checkbox" name="tl_clifford_THE_BIGREDdog" />
            </form>
    */
    prefix = (prefix && prefix != "") ? prefix : null;
    state = (state && state.toString().toLowerCase().match(/all|none|inverse|values|indices/) != null) ? state.toString().toLowerCase() : "clear";
    if(!form || !prefix)
        return;
    retArr = (state == "values") ? {} : ((state == "indices") ? [] : "");
    if(state == "clear" && form.elements[prefix + "all"])
    {
        form.elements[prefix + "all"].checked = false;
    }
    else
    {
            allE = (document.getElementsByTagName) ? form.getElementsByTagName('input') : ((form.elements && form.elements.length > 0) ? form.elements : null);
        for(eI=0;eI<allE.length;eI++)
        {
            eN = (typeof allE[eI].name != "undefined" && allE[eI].name.toString() != "") ? allE[eI].name.toString() : ((typeof allE[eI].id != "undefined" && allE[eI].id.toString() != "") ? allE[eI].id : "");
            if(eN.substring(0,(prefix.length)) == prefix && eN.substring((eN.length - 3),(eN.length)) != "all")
            {
                
                if(state == "indices")
                {
                    if(allE[eI].checked)
                    {
                        eval("retArr[" + ((retArr.length != 0) ? retArr.length : 1) + "] = " + (eI) + ";");
                    }
                    retArr[0] = ((!isNaN(parseInt(retArr[0]))) ? (parseInt(retArr[0]) + 1) : 1);
                }
                else if((typeof allE[eI].checked != "undefined") && ((typeof allE[eI].style != "undefined" && allE[eI].style.display.toString().toLowerCase() != "none") || (!(typeof allE[eI].style != "undefined"))))
                {
                    if(state == "values")
                    {
                        eval("retArr[\"" + prefix + "" + eI + "\"] = [\"" + (((allE[eI].value != "" && typeof allE[eI].value.toString() != "undefined" && allE[eI].value.toString() != "")) ? allE[eI].value.toString() : "") + "\",\"" + allE[eI].checked + "\"];");
                    }
                    else
                    {
                        allE[eI].checked = (state == "all" || (state == "inverse" && !allE[eI].checked)) ? true : false;
                    }
                }
            }
        }
        return retArr;
    }
}
/* END ** Check None/All By Prefix */

/* START ** Back and Forward Navigation Scripts */
// General "History" (Previous & Next) Navigation Function -- go([+/- integer])
// HTML Snippet Demo (HTML Demo requires this file; go.js):
/*
    <div>
        <a href="javascript: go(-1);">Previous/Back</a>
        &nbsp;|&nbsp;
        <a href="javascript: go(1);">Next/Forward</a>
        &nbsp;|&nbsp;
        <a href="javascript: go(-4);">Previous/Back 4 pages (if possible)</a>
        &nbsp;|&nbsp;
        <a href="javascript: go(3);">Next/Forward 3 pages (if possible)</a>
        &nbsp;|&nbsp;
        <a href="javascript: go('reload');">Reload</a>
        &nbsp;|&nbsp;
        <a href="javascript: go('refresh');">Refresh</a>
        &nbsp;|&nbsp;
        <a href="javascript: go(0);">Reload without Query string</a>
        &nbsp;|&nbsp;
        <a href="javascript: go('replace','http://www.amazon.com');">Replace current page with supplied url ('http://www.amazon.com' in this case)</a>
    </div>
*/
function go(depth,uri)
{
    depth = ( typeof depth != "undefined" && !isNaN(parseInt(depth)) ) ? parseInt(depth) : ((typeof depth == "string") ? depth : -1);
    if(typeof depth == "string")
    {
        if(depth == "refresh")
        {
            window.top.location.reload(true);
        }
        else if(depth == "reload")
        {
            window.top.location.reload(false);
        }
        else if(depth == "replace")
        {
			uri = (typeof uri != "undefined" && uri != "") ? uri : document.location.href;
            window.top.location.replace(uri);
        }
        else
        {
            document.location.href = depth;
        }
    }
    if(depth > 0)
    {
        eval("history." + ((!document.layers) ? "go" : "forward") + "(" + depth + ")");
    }
    else if(depth < 0)
    {
        eval("history." + ((!document.layers) ? "go" : "back") + "(" + depth + ")");
    }
    else if(depth == 0)
    {
        window.location.replace( ((document.location.search != "") ? (document.location.href + "").replace(document.location.search,"") : (document.location.href + "")) );
    }
}
/* END ** Back and Forward Navigation Scripts */

/* START ** Safe Onload Script */
overflowCount = 0;
function safeOnload(onL)
{
    onL = (onL) ? onL : false;
    pageOtherOnLoad = (window.onload != null && overflowCount < 77) ? window.onload : null;
    otherOnloadStr = (pageOtherOnLoad && typeof pageOtherOnLoad == "function") ? "pageOtherOnLoad();" : "";
    eval("newOnLoad = function() { " + onL + "; " + otherOnloadStr + " };");
    overflowCount ++;
    if(overflowCount >= 77) return false;
    window.onload = newOnLoad;
    return;
}