/*
Copyright (c) 1997-2000,KeeBoo Corporation. All rights reserved.
Copyright application on progress at the Copyright Office.
This source code is the property of KeeBoo Corporation,
it cannot be reused,modified or published without prior 
written consent from KeeBoo Corporation.
KeeBoo and the KeeBoo logo are trademarks or registered
trademarks of KeeBoo Corporation.
*/

var _appName=navigator.appName.toLowerCase(),_appVer=navigator.appVersion.toLowerCase()
var _ns=(_appName.indexOf('netscape')>=0)||(_appName.indexOf('mozilla')>=0),_ie=!_ns
var _mac=(_appVer.indexOf('macintosh')>=0)||(_appVer.indexOf('macos')>=0),_win=_appVer.indexOf('win')>=0
var _macIE=_ie&&_mac,_macNS=_ns&&_mac,_NULL
var _ie4=_ie&&(_appVer.indexOf("msie 4")>0),_moz=_ns&&parseInt(_appVer)>=5,_ns4=_ns&&!_moz
var _show=(_ie||_moz)?'visible':'show',_hide=(_ie||_moz)?'hidden':'hide',_alt=(_macIE||_moz)?"title":"alt",_hand=_ie?"hand":"pointer"

function setCrs(c,id)
{
	if (_ie||_moz)
	{
		var css=layerCSS(id);if (css) css.cursor=c
	}
}

function eventGetX(e)
{
	return _ns?e.pageX:document.body.scrollLeft+event.clientX
}

function eventScreenX(ev)
{
	return _ns?ev.screenX:event.screenX
}

function eventGetY(e)
{
	return _ns?e.pageY:document.body.scrollTop+event.clientY
}

function eventScreenY(ev)
{
	return _ns?ev.screenY:event.screenY
}

function winHeight()
{
	return _ns?window.innerHeight+(_ns4&&_win?4:0):document.body.offsetHeight
}

function winWidth()
{
	return _ns?window.innerWidth+(_ns4&&_win?4:0):document.body.offsetWidth
}

function attr(name,val)
{
	return val?" "+name+"='"+val +"'":""
}

function sty(name,val)
{
	return (val?name+":"+val +";":"")
}

function getFrame(name,par)
{
	if (par!=_NULL) return (_ie)?par.frames(name):par.frames[name]
	else
	{
		var theWin=(window==top)?window.parent:self;return (_ie)?theWin.frames(name):theWin.frames[name]
	}
}

function changeFrameURL(f,url)
{
	f.location.replace(url)
}

function lyr(x,y,inner,att,show,id)
{
	var vis=(show==_NULL?_NULL:(show?_show:_hide));att=att?att:""
	if (_ns4) return "<LAYER "+att+attr("id",id)+attr("left",x)+attr("top",y)+attr("visibility",vis)+">"+inner+"</LAYER>"
	else return "<SPAN "+att+attr("id",id)+" style='position:absolute;"+sty("left",x)+sty("top",y)+sty("visibility",vis)+"'>"+inner+"</SPAN>"
}

function getImg(src,w,h,align,att)
{
	att=att?att:""
	return "<IMG src='"+src+"' border=0 vspace=0 hspace=0 "+attr("width",w)+attr("height",h)+attr("align",align)+att+">"
}

function imgLyr(src,x,y,attrib,show,id,alt)
{
	attrib=(attrib==_NULL)?'':attrib;id=attr("id",id)	
	if (show!=_NULL) show=(show?_show:_hide)
	if (_ns&&!_moz) return '<layer '+attr('visibility',show)+id+' left='+x+' top='+y+'><img src="'+src+'"'+attrib+attr(_alt,alt)+'></layer>'
	else return '<img '+id+attr(_alt,alt)+' style="position:absolute;left:'+x +';top:'+y+';'+sty('visibility',show)+'" src="'+src+'"'+attrib +'>'
}

function box(w,h,att)
{
	return getImg(_neu+"menu_pixel.gif",w,h,_NULL,att)
}

function table(cls,att)
{
	if (att==_NULL) att=""
	return "<TABLE"+attr("class",cls)+att+" cellspacing=0 cellpadding=0 border=0>"
}

function layerCSS(id,f)
{
	var e=layerElem(id,f);return e?((_ie||_moz)?e.style:e):_NULL
}

var nestRefArray = new Array()
var refArray = new Array()
function layerElem(id,f)
{
	f=f?f:self;
	if (id==_NULL) return null
	if (_ns4)
	{
		if ( nestRefArray[f.location.href] == null )
			nestRefArray[ f.location.href] = new Array()
		
		var divname = nestRefArray[f.location.href][id]
		if ( divname == null )
		{
			nestRefArray[f.location.href] = new Array()
			refArray = new Array()
			refArray.i = 0
			layerElemInit(null,f)
		}	
		divname = nestRefArray[ f.location.href][id]
		if (divname && divname!='')
		{
			if ( divname.lastIndexOf('.') != -1 )
			{
				divname = divname.slice(divname.lastIndexOf('.')+1)
			}
			f = layerElem(divname)
		}
	}
	return (_moz?f.document.getElementById(id):(_ns?f.document.layers[id]:f.document.all[id]))
}

function layerElemInit(nestref,f) 
{
	var ref
	if ( _ns ) 
	{
		if ( f == null ) f = self
		if ( nestref ) 
			ref = eval('f.document.'+nestref+'.document')
		else 
		{
			nestref = ''; ref = f.document;
		}
		for (var i=0; i<ref.layers.length; i++) 
		{
			var divname = ref.layers[i].name
			if ( divname )
			{
				nestRefArray[f.location.href][divname] = nestref
				if (ref.layers[i].document.layers.length > 0) 
				{
					refArray[refArray.length] = (nestref=='')? ref.layers[i].name : nestref+'.document.'+ref.layers[i].name
				}
			}
		}
		if (refArray.i < refArray.length) 
		{
			layerElemInit(refArray[refArray.i++],f)
		}
	}
	return true
}

function clipLayer(x1,y1,x2,y2,id,f)
{
	var css = layerCSS(id,f)
	if ( css == null ) return
	if (_ns4) {	var c=css.clip;c.top=y1;c.left=x1;c.bottom=y2;c.right=x2}
	else
		css.clip = "rect("+y1+"px "+x2+"px "+y2+"px "+x1+"px)"
}

function sizeLayer(w,h,id,f)
{
	var css = layerCSS(id,f)
	if ( css == null ) return
	if ( _ie4 )
	{
		css.pixelWidth = w
		css.pixelHeight = h
	}
}

function updateLayer(str,layer,f)
{
	var e=layerElem(layer,f)
	
	if (!e) 
		return false
	if (_macIE)
	{
		e.innerHTML = '<span style="position:absolute;">'+str+'</span>'
		return true
	}
	if (_ie||_moz) 
	{
		 e.innerHTML=str
		 return true
	}
	if (_ns4)
	{
		var d=e.document
		if (d)
		{
			d.write(str);d.close()
		}
	}
	return true
}

function updateLayerColor(color,id,f)
{
	var css = layerCSS(id,f)
	if (_ie||_moz)
		css.backgroundColor = color
	if (_ns)
		css.bgColor = color
	return true
}

function showLayer(show,id,f)
{
	var c=layerCSS(id,f);if (c) c.visibility=show?_show:_hide
}

function zindexLayer(zindex,id,f)
{
	var c=layerCSS(id,f);if (c) c.zIndex=zindex
}

function moveLayer(x,y,id,f)
{
	var c=layerCSS(id,f)
	if (c!=_NULL)
	{
		if (x!=_NULL)
		{
			if (_moz) c.left=""+x+"px"
			else if (_ns) c.left=x
			else c.pixelLeft=x
		}
		if (y!=_NULL)
		{
			if (_moz) c.top=""+y+"px"
			else if (_ns) c.top=y
			else c.pixelTop=y
		}
	}
	else
		alert( "No CSS: " + id )
}

function layerImg(imgid,id,frm)
{
	var elm = layerElem(id,frm)
	if (frm==_NULL) frm=self
	if ( elm )
		return (_moz?frm.document.images[imgid]:(_ns?elm.document.images[imgid]:frm.document.all[imgid]))
	else
		return null	
}

function layerForm(formid,id,frm)
{
	var elm = layerElem(id,frm)
	if (frm==_NULL) frm=self
	if ( elm )
		return (_moz?frm.document.forms[formid]:(_ns?elm.document.forms[formid]:frm.document.all[formid]))
	else
		return null	
}

function layerPosX( id, frm )
{
	var el=layerElem(id,frm)
	if (el==_NULL) 
		return false;
	if (_ie4)
	{
		var l = el.style.pixelLeft
		var p = el.parentElement
		if ( p )
		{
			do {
				l += p.style.pixelLeft
				p = p.parentElement
			}
			while(p) 
		}
		return l
	}
	if (_ie)
	{
		var l = el.offsetLeft
		var p = el.parentElement
		if ( p )
		{
			do {
				l += p.offsetLeft
				p = p.parentElement
			}
			while(p) 
		}
		return l
	}
	if(_moz)
		return el.offsetLeft
	if (_ns) 
		return el.pageX
	return 0
}

function layerPosY( id, frm )
{
	var el=layerElem(id,frm)
	if (el==_NULL) 
		return false;
	
	if (_ie4)
	{
		var t = el.style.pixelTop
		var p = el.parentElement
		if ( p )
		{
			do {
				t += p.style.pixelTop
				p = p.parentElement
			}
			while(p) 
		}
		return t
	}
	if (_ie)
	{
		var t = el.offsetTop
		var p = el.parentElement
		if ( p )
		{
			do {
				t += p.offsetTop
				p = p.parentElement
			}
			while(p) 
		}
		return t
	}
	if(_moz)
		return el.offsetTop
	if (_ns) 
		return el.pageY
	return 0
}

function layerWidth( id, frm )
{
	var el=layerElem(id,frm)
	if (el==_NULL) 
		return false;
			
	if (_ie||_moz) return el.offsetWidth
	if (_ns) return el.clip.width
	return 0
}

function layerHeight( id, frm )
{
	var el=layerElem(id,frm)
	if (el==_NULL) 
		return false;
	
	if (_ie||_moz) return el.offsetHeight
	if (_ns) return el.clip.height
	return 0
}

function formatString()
{
	if (formatString.arguments.length==0) return null
	var s=formatString.arguments[0]
	for(i=1;i<formatString.arguments.length;i++) s=s.replace(new RegExp("%"+i,"g"),formatString.arguments[i])
	return s.replace(new RegExp("%%","g"),"%")
}
