var sCurrentTopic;

function lib_bwcheck(){ 
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=new lib_bwcheck()

function lib_doc_size(){ 
	this.x=0;this.x2=bw.ie && document.body.offsetWidth-5||innerWidth||0;
	this.y=0;this.y2=bw.ie && document.body.offsetHeight-5||innerHeight||0;
	this.y2=(bw.ie)?this.y2+1:this.y2
	this.x50=this.x2/2;this.y50=this.y2/2;
	return this;
}

function makeObj(obj){								
   	this.evnt=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?document.layers[obj]:0;
	if(!this.evnt) return false
	this.css=bw.dom||bw.ie4?this.evnt.style:bw.ns4?this.evnt:0;	
   	this.wref=bw.dom||bw.ie4?this.evnt:bw.ns4?this.css.document:0;		
	this.writeIt=b_writeIt;																
	return this
}
makeObj.prototype.moveIt = function(x,y){this.x=x;this.y=y; this.css.left=x;this.css.top=y}

function b_writeIt(text){
	if (bw.ns4){this.wref.write(text);this.wref.close()}
	else this.wref.innerHTML = text
}

var px = bw.ns4||window.opera?"":"px";

sPrevDelta=0;

function ScrollContent(e) {
   var skeyCode = 0;
        
   skeyCode = bw.ie?event.keyCode:e.keyCode;
          
   try {
        switch (skeyCode){
		 case 38 : //Up Arrow
			//Scroll Up
			scroll(active, 3);
			if (!bw.ie) {return false;}
			break;
		 case 40 : //Down Arrow
			//Scroll Down
			scroll(active, -3);
			if (!bw.ie) {return false;}
			break;
		 case 33 : //Page Up
			//Jump Up
			scroll(active, 100);
			noScroll();
			if (!bw.ie) {return false;}
			break;
		case 34 : //Page Down
			//Jump Down
			scroll(active, -100);
			noScroll();
			if (!bw.ie) {return false;}
			break;
		}
   }
   catch (eRR) {
   // Dont display any error
   }
}

function ScrollWithWheel(e) {
   var sDelta = 0;
        
   sDelta = event.wheelDelta;
   try {
     if (sDelta>=120){ //Scroll Down
	  scroll(active, 10);
	  noScroll();
     }
     if (sDelta<=-120){ //Scroll Down
	  scroll(active, -10);
	  noScroll();
     }
   }
   catch (eRR) {
   // Dont display any error
   }
   sPrevDelta = sDelta;
}

function StopScroll(e) {
   var skeyCode = 0;
        
   skeyCode = bw.ie?event.keyCode:e.keyCode;
          
   try {
        switch (skeyCode){
		 case 38 : //Up Arrow
			//Scroll Up
			noScroll();
			if (!bw.ie) {return false;}
			break;
		 case 40 : //Down Arrow
			//Scroll Down
			noScroll();
			if (!bw.ie) {return false;}
			break;
		}
   }
   catch (eRR) {
   // Dont display any error
   }
}

//Debug function ******************
function lib_message(txt){alert(txt); return false} 

//Lib objects  ********************
function lib_obj(obj,nest,o){ 
	if(!bw.bw) return lib_message('Old browser')
	nest=(!nest) ? '':'document.'+nest+'.'										
   	if(o&&bw.ns4) this.evnt=o; 
	else this.evnt=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;	
	if(!this.evnt) return lib_message('The layer does not exist ('+obj+') - \nIf your using Netscape please check the nesting of your tags!')
	this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt; this.ref=bw.dom||bw.ie4?document:this.css.document;
	this.x=this.css.left||this.css.pixelLeft||this.evnt.offsetLeft||0; this.y=this.css.top||this.css.pixelTop||this.evnt.offsetTop||0
	this.w=this.evnt.offsetWidth||this.css.clip.width||this.ref.width||this.css.pixelWidth||0; this.h=this.evnt.offsetHeight||this.css.clip.height||this.ref.height||this.css.pixelHeight||0
	this.c=0 //Clip values
	if((bw.dom || bw.ie4) && this.css.clip) {
		this.c=this.css.clip; this.c=this.c.slice(5,this.c.length-1); 
		this.c=this.c.split(' '); for(var i=0;i<4;i++){this.c[i]=parseInt(this.c[i])}
	}
	this.ct=this.css.clip.top||this.c[0]||0; this.cr=this.css.clip.right||this.c[1]||this.w||0
	this.cb=this.css.clip.bottom||this.c[2]||this.h||0; this.cl=this.css.clip.left||this.c[3]||0
	this.obj = obj + "Object"; 	eval(this.obj + "=this")
	return this
}
//Moving object to **************
lib_obj.prototype.moveIt = function(x,y){this.x=x;this.y=y; this.css.left=x;this.css.top=y} 

//Sizing object to **************
lib_obj.prototype.sizeIt = function(w,h){this.css.width=w;this.css.height=h} 

//Setting width to **************
lib_obj.prototype.setWidth = function(w){this.css.width=w} 

function DivExists(divName, nest) {
	nest=(!nest) ? '':'document.'+nest+'.'
	bExists = bw.dom? document.getElementById(divName):bw.ie4?document.all[divName]:bw.ns4?eval(nest+"document.layers." +divName):0
	return bExists;
}

function divs_resized(){
	page2=new lib_doc_size()
	if(page2.x2!=page.x2 || page2.y2!=page.y2){
		if(bw.ns4) location.reload()
		else pageInit()
	}
}

function setScrollDiv(indx) {
	active=indx;
}

function doScrollUp() {
	scroll(active, 3);
}

function doScrollDown() {
	scroll(active, -3);
}

function stopScroll() {
	noScroll();
}

function doJumpUp() {
	scroll(active, 100);
	noScroll();
}

function doJumpDown() {
	scroll(active, -100);
	noScroll();
}

function doScrollToTop() {
	oScroll[active].css.top = '0' + px;
}

function doScrollToBottom() {
	scroll(active, (0-parseInt(oScroll[active].height)));
	noScroll();
}

var bwScroll=new lib_bwcheck()
var scrollTim = 1;
var active = -1;
var timSpeed = 50
var oScroll = new Array()
var ActiveSet = false
var ActiveIndex = -1

function makeScrollObj(obj,nest,OffSetpx){
	this.containercss=bwScroll.dom?document.getElementById(nest).style:bwScroll.ie4?document.all[nest].style:bwScroll.ns4?eval(nest):0;
	nest=(!nest) ? "":'document.'+nest+'.'		
	this.el=bwScroll.dom?document.getElementById(obj):bwScroll.ie4?document.all[obj]:bwScroll.ns4?eval(nest+'document.'+obj):0;
  	this.css=bwScroll.dom?document.getElementById(obj).style:bwScroll.ie4?document.all[obj].style:bwScroll.ns4?eval(nest+'document.'+obj):0;		
	this.height=bwScroll.ns4?this.css.document.height:this.el.offsetHeight
	this.top=b_gettop
	this.OffSetPixels=OffSetpx
	return this
}

function b_gettop(){
	var gleft=(bwScroll.ns4 || bwScroll.ns6)?parseInt(this.css.top):eval(this.css.pixelTop);
	return gleft;
}

function scroll(index, speed){
	clearTimeout(scrollTim)
	if (speed<0) {
		if (speed < (0-parseInt(oScroll[index].height)+parseInt(oScroll[active].containercss.height))) {
			speed = 0-parseInt(oScroll[index].height+10)+parseInt(oScroll[active].containercss.height);
		}
	}
	way = speed>0?1:0
	incr = speed>0?0:0
	offs = oScroll[index].top()+speed
	if (offs>oScroll[index].OffSetPixels) {offs=oScroll[index].OffSetPixels}
	if ((!way && oScroll[index].top()>(-oScroll[index].height + parseInt(oScroll[index].containercss.height))) || (oScroll[index].top()-oScroll[index].OffSetPixels<0 && way)){
		oScroll[index].css.top = (offs) + px
		if (oScroll[index].OffSetPixels!="0") {oScroll[index].css.height = (parseInt(oScroll[index].css.height) - speed) + px}
		scrollTim = setTimeout("scroll("+String(index)+","+String(speed+incr)+")",timSpeed)
	}
}

function noScroll(){
	clearTimeout(scrollTim)
}

function changeActive(num){
    if (!ActiveSet) {
	oScroll[active].css.visibility = "hidden"
	  
	active = num
	
	if (oScroll[active].css.height == "") { oScroll[active].css.height = (parseInt(oScroll[active].containercss.height) - (2 * oScroll[active].OffSetPixels)) + px }
	
	oScroll[active].css.top = oScroll[active].OffSetPixels+px
	oScroll[active].css.visibility = "visible"
	if (oScroll[active].containercss.visibility != "visible") {oScroll[active].containercss.visibility = "visible"}
	}
}

function changeActiveSet(num){
    if (ActiveIndex!=num) {
      ActiveSet=false
	  changeActive(num)
	  ActiveSet=true
	  ActiveIndex=num
    } else {
	  ActiveSet=false
	  ActiveIndex=-1
    }
}

function scrollInit(TextDivName, ContDivName, OffSetPx){
	active=(active==null) ? 0:(active + 1)
	OffSetPx=(!OffSetPx) ? "0":OffSetPx

	oScroll[active] = new makeScrollObj(TextDivName, ContDivName, OffSetPx)
	oScroll[active].css.left = oScroll[active].OffSetPixels + px
	oScroll[active].css.top = oScroll[active].OffSetPixels + px
	
	document.onkeydown = ScrollContent;
	document.onkeyup = StopScroll;
	try {
		document.onmousewheel = ScrollWithWheel
		}
	catch(eRR123){}
}

function setScrollIndex(index) {
	active=index;
}

function closepopup(){
	oScroll[active].css.visibility = "hidden"
	oScroll[active].containercss.visibility = "hidden"
	ActiveSet=false
}

// BROWSER NAME VARIABLE
function browser_name ()
{
    return (navigator.appName);
}

// APPLICATION VERSION VARIABLE
function application_version ()
{
    return (navigator.appVersion);
}

// USER AGENT VARIABLE
function user_agent ()
{
    return (navigator.userAgent);
}

// BROWSER VERSION MAJOR
function version_major ()
{
    var radix = 10;
    var version_major = parseInt (navigator.appVersion,radix);
    return (version_major);
}

// BROWSER VERSION MINOR
function version_minor ()
{
    var app_ver = navigator.appVersion;
    var version_major = parseInt (app_ver,10);
    var pos, version_minor = 0;
    if ((pos = app_ver.indexOf ("MSIE")) != -1)
        version_minor = parseFloat (app_ver.substring (pos+5,app_ver.length));
    else if (navigator.appName == "Netscape" && (version_major==3 || version_major==4))
        version_minor = parseFloat (app_ver);

    return (version_minor);
}

// SCREEN WIDTH
function screen_width ()
{
    if (window.screen)    // v4 browsers
        return (screen.width);
    else if (navigator.javaEnabled ())    // Presume N2 N3 N4 E3
        {
        var toolkit = java.awt.Toolkit.getDefaultToolkit ();
        var screen_size = toolkit.getScreenSize ();
        return (screen_size.width);
        }
    return (0);
}

// SCREEN HEIGHT
function screen_height ()
{
    if (window.screen)    // v4 browsers
        return (screen.height);
    else if (navigator.javaEnabled ())    // Presume N2 N3 N4 E3
        {
        var toolkit = java.awt.Toolkit.getDefaultToolkit ();
        var screen_size = toolkit.getScreenSize ();
        return (screen_size.height);
        }
    return (0);
}

// WINDOW INNER WIDTH
function inner_width ()
{
    if (document.all)
        return (document.body.clientWidth);
    else if (document.layers)
        return (window.innerWidth)
    else
        return (0);
}

// WINDOW INNER HEIGHT
function inner_height ()
{
    if (document.all)
        return (document.body.clientHeight);
    else if (document.layers)
        return (window.innerHeight)
    else
        return (0);
}

// WINDOW LEFT POSITION
function window_left ()
{
    if (document.all)
        return (document.body.scrollLeft);
    else if (document.layers)
        return (pageXOffset)
    else
        return (0);
}

// WINDOW TOP POSITION
function window_top ()
{
    if (document.all)
        return (document.body.scrollTop);
    else if (document.layers)
        return (pageYOffset)
    else
        return (0);
}

// USER LANGUAGE
function language ()
{
    if ( typeof ( navigator.userLanguage ) == "string" )
        return ( navigator.userLanguage );
    else if ( typeof ( navigator.language ) == "string" )
        return ( navigator.language );
    return ("");
}

// USER PLATFORM
function platform ()
{
    if ( typeof ( navigator.platform ) == "string" )
        return ( navigator.platform );
    return ("");
}

// TIME-ZONE OFFSET (FROM GMT)
function time_zone ()
{
    var today = new Date ();
    var timeZoneOffset = today.getTimezoneOffset () / 60;
    return ( timeZoneOffset );
}

// GET OPERATING SYSTEM
function operating_system ()
{
    var operating_system;
    if ( navigator.userAgent.indexOf ("IRIX") != -1)
        operating_system = "Irix";
    else if (navigator.userAgent.indexOf ("NT") != -1)
        operating_system = "Windows NT";
    else if (navigator.userAgent.indexOf ("95") != -1)
        operating_system = "Windows 95";
    else if (navigator.userAgent.indexOf ("16") != -1)
        operating_system = "Windows v3.1x";
    else if (navigator.userAgent.indexOf ("Win") != -1)
        operating_system = "Windows v3.1 or NT";
    else if (navigator.userAgent.indexOf ("PPC") != -1)
        operating_system = "Macintosh Power PC";
    else if (navigator.userAgent.indexOf ("Mac") != -1)
        operating_system = "Macintosh";
    else
        operating_system = "Not Detected";

    return ( operating_system );
}

//PRE-LOAD IMAGES
function PreLoadImages() {
	this.length = PreLoadImages.arguments.length;
	for (var i = 0; i < this.length; i++) {
		this[i] = PreLoadImages.arguments[i];
	}
}

// this is for opening pop-up windows
function openWindow (url,name,widgets) 
{
	if (widgets=='') {widgets='scrollbars,resizable=yes,status=yes,width=600,height=400'}
	
	popupWin = window.open (url,name,widgets);
	
	var agt=navigator.userAgent.toLowerCase();
	var is_major = parseInt(navigator.appVersion);
    var is_ie    = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    var is_ie3   = (is_ie && (is_major < 4));
    var is_ie4   = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);
    var is_comp  = (agt.indexOf("compuserve") != -1);
    var is_compie = (is_comp && is_ie);

    if(!is_aol6 && !is_aol3 && !is_aol4 && !is_aol5 && !is_compie) { popupWin.opener.top.name = "opener"; }
     
	popupWin.focus();
}

function DisableSelect(OverrideText) {
	var bwSel=new lib_bwcheck()
    var bTextFieldFound = false;
    
	if (bwSel.ie) {
	  if (!OverrideText) {
	  if (document.forms.length > 0)  {
		for (var iDocForms = 0; iDocForms < document.forms.length; iDocForms++) {
			for (var iDocEls = 0; iDocEls < document.forms[iDocForms].elements.length; iDocEls++) {
				if (document.forms[iDocForms].elements[iDocEls].type=='text') {bTextFieldFound = true}
			}
		}
	  }
	  }
	  
	  if (!bTextFieldFound) {
		document.body.onselectstart = function() { return false }
	  }
	}
}

function EnableSelect() {
	var bwSel=new lib_bwcheck()

	if (bwSel.ie) document.body.onselectstart = null
}

function SetMap() {
	if (top.sCurrentTopic != sCurrentTopic) {
		top.GoToTopic(sCurrentTopic);
	}
}