	function stopError() {
		return true;
	}
	window.onerror = stopError;
/*In the event the user changes the dimensions of their browser window
call the 'findWindowDim' function*/

window.onresize = findWindowDim;

function findWindowDim(){

/*Constructing the function to work with Netscape 6 (innerHeight)
and Netscape 7+, Mozilla 1.0.1+ and IE6+ (clientHeight).*/

//Determining browser type by functionality.
//Start IE5+, NS7 and Mozilla based on build 1.0.1

var leftHeight = document.getElementById('leftcolumn').offsetHeight;
var rightHeight = document.getElementById('rightcolumn').offsetHeight;
var mastheadHeight = document.getElementById('masthead').offsetHeight;
var centerHeight = document.getElementById('centercolumn').offsetHeight;
var containerHeight = document.getElementById('container').offsetHeight;

var objFooter = document.getElementById('footer')
var objLeft = document.getElementById('leftcolumn')
var objRight = document.getElementById('rightcolumn')
var objCenter = document.getElementById('centercolumn')
var objContainer = document.getElementById('container')

if ((centerHeight > leftHeight) && (centerHeight > rightHeight)) {
footerTop = mastheadHeight + centerHeight;
footerTopPx = footerTop+"px";
objFooter.style.top = footerTopPx;

colHeight = centerHeight;
Height = colHeight+"px";
objRight.style.height = Height;

CentercolHeight = centerHeight;
CenterCol = CentercolHeight+"px"
objCenter.style.height = CenterCol;
objLeft.style.height = Height;
objRight.style.height = Height;
objContainer.style.height = footerTopPx;
} else if ((rightHeight > leftHeight) && (rightHeight > centerHeight)) {
// If the right column is longer than the centre and left columns
footerTop = mastheadHeight + rightHeight;
footerTopPx = footerTop+"px";
objFooter.style.top = footerTopPx;

colHeight = rightHeight;
rHeight = colHeight+"px";
objLeft.style.height = rHeight;

CentercolHeight = rightHeight;
CenterCol = CentercolHeight+"px"
objCenter.style.height = CenterCol;
objContainer.style.height = footerTopPx;
} else if ((leftHeight > centerHeight) && (leftHeight > rightHeight)) {
// If the left column is longer than the centre and right columns
footerTop = mastheadHeight + leftHeight;
footerTopPx = footerTop+"px";
objFooter.style.top = footerTopPx;

colHeight = leftHeight;
lHeight = colHeight+"px";
objRight.style.height = lHeight;

CentercolHeight = leftHeight;
CenterCol = CentercolHeight+"px";
objCenter.style.height = CenterCol;
objContainer.style.height = footerTopPx;
} else {
// If left and right columns are shorter than the centre column
footerTop = mastheadHeight + centerHeight;
footerTopPx = footerTop+"px";
objFooter.style.top = footerTopPx;

CenterCol = centerHeight+"px";
objLeft.style.height = CenterCol;
objRight.style.height = CenterCol;
objContainer.style.height = footerTopPx;
	}
}

//special effects

function swapBGrow(el, BGR1, BGR2) {
if(document.getElementById||(document.all && !(document.getElementById))){
el.style.backgroundColor = (el.style.background == BGR1) ? BGR2 : BGR1;
	}
}

function swapBGcell(el, BGC1) {
if(document.getElementById||(document.all && !(document.getElementById))){
temp=el.style.backgroundColor;
el.style.backgroundColor=BGC1;
	}
}

function swapBGcellBack(el) {
if(document.getElementById||(document.all && !(document.getElementById))){
el.style.backgroundColor=temp;
	}
}	

function preload(imgObj,imgSrc) {
	eval(imgObj+' = new Image()')
    eval(imgObj+'.src = "'+imgSrc+'"')
    }
		
	preload('img1off','pics/nav.home.out.gif')
	preload('img2off','pics/nav.aboutus.out.gif')
	preload('img3off','pics/nav.webapps.out.gif')
	preload('img4off','pics/nav.devtools.out.gif')
	preload('img1on','pics/nav.home.over.gif')
	preload('img2on','pics/nav.aboutus.over.gif')
	preload('img3on','pics/nav.webapps.over.gif')
	preload('img4on','pics/nav.devtools.over.gif')

   
	function swapPic(imgName,imgObj) {
		document.getElementById(imgName).src = eval(imgObj+".src")
	}
	
/*****************************************************
 * ypSlideOutMenu
 * 3/04/2001
 * 
 * a nice little script to create exclusive, slide-out
 * menus for ns4, ns6, mozilla, opera, ie4, ie5 on 
 * mac and win32. I've got no linux or unix to test on but 
 * it should(?) work... 
 *
 * --youngpup--
 *****************************************************/

ypSlideOutMenu.Registry = []
ypSlideOutMenu.aniLen = 250
ypSlideOutMenu.hideDelay = 250
ypSlideOutMenu.minCPUResolution = 10

// constructor
function ypSlideOutMenu(id, dir, left, top, width, height)
{
	this.ie  = document.all ? 1 : 0
	this.ns4 = document.layers ? 1 : 0
	this.dom = document.getElementById ? 1 : 0

	if (this.ie || this.ns4 || this.dom) {
		this.id			 = id
		this.dir		 = dir
		this.orientation = dir == "left" || dir == "right" ? "h" : "v"
		this.dirType	 = dir == "right" || dir == "down" ? "-" : "+"
		this.dim		 = this.orientation == "h" ? width : height
		this.hideTimer	 = false
		this.aniTimer	 = false
		this.open		 = false
		this.over		 = false
		this.startTime	 = 0

		// global reference to this object
		this.gRef = "ypSlideOutMenu_"+id
		eval(this.gRef+"=this")

		// add this menu object to an internal list of all menus
		ypSlideOutMenu.Registry[id] = this

		var d = document
		d.write('<style type="text/css">')
		d.write('#' + this.id + 'Container { visibility:hidden; ')
		d.write('left:' + left + 'px; ')
		d.write('top:' + top + 'px; ')		
		d.write('z-index:100;')
		d.write('overflow:hidden; }')
		d.write('#' + this.id + 'Container, #' + this.id + 'Content { position:absolute; ')
		d.write('width:' + width + 'px; ')
		d.write('height:' + height + 'px; ')
		d.write('clip:rect(0 ' + width + ' ' + height + ' 0); ')
		d.write('}')
		d.write('</style>')

		this.load()
	}
}

ypSlideOutMenu.prototype.load = function() {
	var d = document
	var lyrId1 = this.id + "Container"
	var lyrId2 = this.id + "Content"
	var obj1 = this.dom ? d.getElementById(lyrId1) : this.ie ? d.all[lyrId1] : d.layers[lyrId1]
	if (obj1) var obj2 = this.ns4 ? obj1.layers[lyrId2] : this.ie ? d.all[lyrId2] : d.getElementById(lyrId2)
	var temp

	if (!obj1 || !obj2) window.setTimeout(this.gRef + ".load()", 100)
	else {
		this.container	= obj1
		this.menu		= obj2
		this.style		= this.ns4 ? this.menu : this.menu.style
		this.homePos	= eval("0" + this.dirType + this.dim)
		this.outPos		= 0
		this.accelConst	= (this.outPos - this.homePos) / ypSlideOutMenu.aniLen / ypSlideOutMenu.aniLen 

		// set event handlers.
		if (this.ns4) this.menu.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);
//		this.menu.onmouseover = new Function("ypSlideOutMenu.showMenu('" + this.id + "')")
//		this.menu.onmouseout = new Function("ypSlideOutMenu.hideMenu('" + this.id + "')")

		//set initial state
		this.endSlide()
	}
}
	
ypSlideOutMenu.showMenu = function(id)
{
	var reg = ypSlideOutMenu.Registry
	var obj = ypSlideOutMenu.Registry[id]
	
	if (obj.container) {
		obj.over = true

		// if this menu is scheduled to close, cancel it.
		if (obj.hideTimer) { reg[id].hideTimer = window.clearTimeout(reg[id].hideTimer) }

		// if this menu is closed, open it.
		if (!obj.open && !obj.aniTimer) reg[id].startSlide(true)
	}
}

ypSlideOutMenu.hideMenu = function(id)
{
	// schedules the menu to close after <hideDelay> ms, which
	// gives the user time to cancel the action if they accidentally moused out
	var obj = ypSlideOutMenu.Registry[id]
	   if (obj.container) {
		   if (obj.hideTimer) window.clearTimeout(obj.hideTimer)
		   obj.hideTimer = window.setTimeout("ypSlideOutMenu.hide('" + id + "')", ypSlideOutMenu.hideDelay);
	   }
}

ypSlideOutMenu.hide = function(id)
{
	var obj = ypSlideOutMenu.Registry[id]
	obj.over = false

	if (obj.hideTimer) window.clearTimeout(obj.hideTimer)
	
	// flag that this scheduled event has occured.
	obj.hideTimer = 0

	// if this menu is open, close it.
	if (obj.open && !obj.aniTimer) obj.startSlide(false)
}

ypSlideOutMenu.prototype.startSlide = function(open) {
	this[open ? "onactivate" : "ondeactivate"]()
	this.open = open
	if (open) this.setVisibility(true)
	this.startTime = (new Date()).getTime()	
	this.aniTimer = window.setInterval(this.gRef + ".slide()", ypSlideOutMenu.minCPUResolution)
}

ypSlideOutMenu.prototype.slide = function() {
	var elapsed = (new Date()).getTime() - this.startTime
	if (elapsed > ypSlideOutMenu.aniLen) this.endSlide()
	else {
		var d = Math.round(Math.pow(ypSlideOutMenu.aniLen-elapsed, 2) * this.accelConst)
		if (this.open && this.dirType == "-")		d = -d
		else if (this.open && this.dirType == "+")	d = -d
		else if (!this.open && this.dirType == "-")	d = -this.dim + d
		else										d = this.dim + d

		this.moveTo(d)
	}
}

ypSlideOutMenu.prototype.endSlide = function() {
	this.aniTimer = window.clearTimeout(this.aniTimer)
	this.moveTo(this.open ? this.outPos : this.homePos)
	if (!this.open) this.setVisibility(false)
	if ((this.open && !this.over) || (!this.open && this.over)) {
		this.startSlide(this.over)
	}
}

ypSlideOutMenu.prototype.setVisibility = function(bShow) { 
	var s = this.ns4 ? this.container : this.container.style
	s.visibility = bShow ? "visible" : "hidden"
}
ypSlideOutMenu.prototype.moveTo = function(p) { 
	this.style[this.orientation == "h" ? "left" : "top"] = this.ns4 ? p : (p) + "px"
}
ypSlideOutMenu.prototype.getPos = function(c) {
	return parseInt(this.style[c])
}

// events
ypSlideOutMenu.prototype.onactivate		= function() { }
ypSlideOutMenu.prototype.ondeactivate	= function() { }

 //new ypSlideOutMenu("number menu", "slide position", left, top, width, height)
new ypSlideOutMenu("menu0", "down", 206, 157, 115, 50)
new ypSlideOutMenu("menu1", "down", 302, 157, 250, 100)
new ypSlideOutMenu("menu2", "down", 442, 157, 165, 150)

if (document.getElementById){ //DynamicDrive.com change
document.write('<style type="text/css">\n')
document.write('.submenu{display: none;}\n')
document.write('</style>\n')
}

function SwitchMenu(obj, menu){
	if(document.getElementById){
	var el = document.getElementById(obj);
	var ar = document.getElementById(menu).getElementsByTagName("dd"); //DynamicDrive.com change
		if(el.style.display != "block"){ //DynamicDrive.com change
			for (var i=0; i<ar.length; i++){
				if (ar[i].className=="submenu") //DynamicDrive.com change
				ar[i].style.display = "none";
			}
			el.style.display = "block";
		}else{
			el.style.display = "none";
		}
	}
}	

var cur_lyr;	// holds id of currently visible layer
function swapLayers(id) {
  if (cur_lyr) hideLayer(cur_lyr);
  showLayer(id);
  cur_lyr = id;
}

function showLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "visible";
}

function hideLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "hidden";
}

function getElemRefs(id) {
	var el = (document.getElementById)? document.getElementById(id): (document.all)? document.all[id]: (document.layers)? document.layers[id]: null;
	if (el) el.css = (el.style)? el.style: el;
	return el;
}

function getLocation(place) {
location.href = place;
}

function escramble(){
 var a,b,c,d,e,f,g,h,i
 a='<a href=\"mai'
 b='ken'
 c='\"  class=\"darklink\">'
 a+='lto:'
 b+='@'
 e='</a>'
 f=''
 b+='eyecreate.ca'
 g='<img src=\"'
 h=''
 i='\" alt="Email us." border="0">'

 if (f) d=f
 else if (h) d=g+h+i
 else d=b

 document.write(a+b+c+d+e)
}

function escramblep(){
 var a,b,c,d,e,f,g,h,i
 a='<a href=\"mai'
 b='pat'
 c='\"  class=\"darklink\">'
 a+='lto:'
 b+='@'
 e='</a>'
 f=''
 b+='nationwidebarter.ca'
 g='<img src=\"'
 h=''
 i='\" alt="Email us." border="0">'

 if (f) d=f
 else if (h) d=g+h+i
 else d=b

 document.write(a+b+c+d+e)
}

function escramblelight(){
 var a,b,c,d,e,f,g,h,i
 a='<a href=\"mai'
 b='ken'
 c='\"  class=\"darklink\">'
 a+='lto:'
 b+='@'
 e='</a>'
 f=''
 b+='eyecreate.ca'
 g='<img src=\"'
 h=''
 i='\" alt="Email us." border="0">'

 if (f) d=f
 else if (h) d=g+h+i
 else d=b

 document.write(a+b+c+d+e)
}

function escrambledemo(){
 var a,b,c,d,e,f,g,h,i
 a='<a href=\"mai'
 b='bizdemo'
 c='\"  class=\"darklink\">'
 a+='lto:'
 b+='@'
 e='</a>'
 f='bizdemo'
 f+='@'
 f+='eyecreate.ca'
 b+='eyecreate.ca?subject=MyBizContax Demo Access'
 g='<img src=\"'
 h=''
 i='\" alt="Email us." border="0">'

 if (f) d=f
 else if (h) d=g+h+i
 else d=b

 document.write(a+b+c+d+e)
}

function escramblenews(){
 var a,b,c,d,e,f,g,h,i
 a='<a href=\"mai'
 b='newsdemo'
 c='\"  class=\"darklink\">'
 a+='lto:'
 b+='@'
 e='</a>'
 f='newsdemo'
 f+='@'
 f+='eyecreate.ca'
 b+='eyecreate.ca?subject=MyNewzLetter Demo Access'
 g='<img src=\"'
 h=''
 i='\" alt="Email us." border="0">'

 if (f) d=f
 else if (h) d=g+h+i
 else d=b

 document.write(a+b+c+d+e)
}

function downloadfile(file,linktext) {
var bName = navigator.appName;
var bVer = parseInt(navigator.appVersion);
var Os = navigator.platform;
var flashinstalled = 0;
var flashversion = 0;
MSDetect = "false";

if (navigator.plugins && navigator.plugins.length) {
	x = navigator.plugins["Shockwave Flash"];
	if (x) {
		flashinstalled = 2;
		if (x.description) {
			y = x.description;
			flashversion = y.charAt(y.indexOf('.')-1);
		}
	}
	else
		flashinstalled = 1;
	if (navigator.plugins["Shockwave Flash 2.0"]) {
		flashinstalled = 2;
		flashversion = 2;
	}
}
else if (navigator.mimeTypes && navigator.mimeTypes.length) {
	x = navigator.mimeTypes['application/x-shockwave-flash'];
	if (x && x.enabledPlugin)
		flashinstalled = 2;
	else
		flashinstalled = 1;
}
else
	MSDetect = "true";


if (document.layers) {
var sWidth = window.innerWidth;
var sHeight = window.innerheight;
}
if (document.all || document.getElementById) {
var sWidth = document.body.clientWidth;
var sHeight = document.body.clientHeight;
}
var cDepth = window.screen.colorDepth;
var aWidth = window.screen.availWidth;
var aHeight = window.screen.availHeight;

 document.write("<a href='"+ file + "&browserres=" + sWidth + "x" + sHeight + "&screenres=" + aWidth + "x" + aHeight + "&colour=" + cDepth + "&browser=" + bName + "&browserversion=" + bVer + "&flash=" + flashversion+ "'  class=\"darklink\">" + linktext + "</a>");
}

 var popUp = null;
	var chasm = screen.availWidth;
	var mount = screen.availHeight;
	var w = 0;
	var h = 0;
	function openWindow(url,w,h) {
	
	popUp = window.open(url,'','status,width=' + w + ',height=' + h + ',left=' + ((chasm - w - 10) * .5) + ',top=' + ((mount - h - 30) * .5));
	}

    var popUp = null;
	var chasm = screen.availWidth;
	var mount = screen.availHeight;
	var w = 0;
	var h = 0;
	function openToolWindow(url,w,h) {
	
	popUp = window.open(url,'perlout','scrollbars,width=' + w + ',height=' + h + ',left=' + ((chasm - w - 10) * .5) + ',top=' + ((mount - h - 30) * .5));
	}

function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
   var arVersion = navigator.appVersion.split("MSIE")
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (document.body.filters)) 
   {
      for(var i=0; i<document.images.length; i++)
      {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
         {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }    
}
window.attachEvent("onload", correctPNG);