

var AUTO_REFRESH_TIME=0;
var AUTO_ONLINE_TIME=0;
var CONTROL_USER_ACTIVITY=0;

var DATE_FORMAT=0;


/*
// ============================================================================\

Functions:
	makeSure()
	errorNotAllLoaded()
	handleError()
	handleErrorAlert()
	disableJSError(w,alert)
	handleContext(e)
	stopContext(w)
	makePullDown(source,name,width,height)
	AccArray()

// ============================================================================/
*/


var W=window
var T=top
var D=document

var allLoaded=0

var TMP


// ---------------------\
// Make sure (ask confirmation)
// ------------------------------------\
function makeSure() {
  return confirm('Bent u zeker dat u dit item wilt verwijderen?')
  }
// ------------------------------------/

// -------------------------\
// Error handling functions
// ------------------------------------\
function errorNotAllLoaded() {
  alert("Deze pagina werd niet volledig geladen. Bewerking voltooid.\nGelieve deze pagina te verversen alvorens verder te werken.")
  return false
  }

function handleError() {
  return true
  }
function handleErrorAlert() {
  alert("Er heeft zich een fout in het Java script voorgedaan. Bewerking voltooid.")
  return true
  }
function disableJSError(w,alert) {
  if (! w) w=window
  w.onerror=alert ? handleErrorAlert : handleError
  }
// ------------------------------------/


// ---------------------\
// Disable context menu
// ------------------------------------\
/*function handleContext(e) {
  if (e && e.which) return e.which==1
  else return false
  }
function stopContext(w) {
  if (! w) w=window
  var d=w.document
  if (d.captureEvents) d.captureEvents(Event.MOUSEDOWN)
  d.oncontextmenu=d.onmousedown=handleContext
  }
*/// ------------------------------------/


// ----------------------\
// Make Pull-Down Window
// ------------------------------------\
function makePullDown(source,name,width,height) {
  var win_prop="location=no,toolbar=no,directories=no,menubar=yes,status=yes,"+
	"scrollbars=yes,resizable=yes,dependent=no,width="+width+",height="+height
  if (window.screen) {
    var x=Math.floor((screen.width-width)/2)
    var y=Math.floor((screen.height-height)/2)
    win_prop+=",screenX="+x+",screenY="+y+",left="+x+",top="+y
    }
  var win=open(source,name,win_prop)
  win.focus()
  return win
  }
// ------------------------------------/


// -------------------------\
// Create associative array
// ------------------------------------\
function AccArray() {
  var obj=this.window ? new Object : this
  var argv=AccArray.arguments
  var l=argv.length
  for (var i=0; i<l; i+=2) obj[argv[i]]=argv[i+1]
  return obj
  }
// ------------------------------------/

/*
// ============================================================================\

Date format:
	format=0 - dd.mm.yyyy
	format=1 - mm.dd.yyyy

Functions:
	toUpper(str)
	toLower(str)
	checkInt(str)
	checkFloat(str)
	checkZip(str)
	checkEmail(str)
	getDate(str,format)
	getTime(str)
	cmpDate(str1,str2,format)
	cmpTime(str1,str2)
	getDateStr(date,format)
	getTimeStr(date)

// ============================================================================/
*/


// -----------\
// Converting 
// ------------------------------------\
// (KOI8-R)
//var lowMaskStr="qwertyuiopasdfghjklzxcvbnm_ÊÃÕËÅÎÇÛÝÚÈÆÙ×ÁÐÒÏÌÄÖÜÑÞÓÍÉÔØÂÀß"
//var uppMaskStr="QWERTYUIOPASDFGHJKLZXCVBNM_êãõëåîçûýúèæù÷áðòïìäöüñþóíéôøâàÿ"
// (CP-1251)
 var lowMaskStr="qwertyuiopasdfghjklzxcvbnm_êãõëåîçûýúèæù÷áðòïìäöüñþóíéôøâàÿ"
 var uppMaskStr="QWERTYUIOPASDFGHJKLZXCVBNM_ÊÃÕËÅÎÇÛÝÚÈÆÙ×ÁÐÒÏÌÄÖÜÑÞÓÍÉÔØÂÀß"
// ------------------------------------/

// ----------------------\
// Convert to upper case
// ------------------------------------\
function toUpper(str) {
  var str1=""
  var l=str.length
  for (var i=0; i<l; i++) {
    var ch=str.charAt(i)
    var ind=lowMaskStr.indexOf(ch)
    str1+=(ind==-1) ? ch : uppMaskStr.charAt(ind)
    }
  return str1
  }
// ------------------------------------/

// ------------------------\
// Convert to lower case
// ------------------------------------\
function toLower(str) {
  var str1=""
  var l=str.length
  for (var i=0; i<l; i++) {
    var ch=str.charAt(i)
    var ind=uppMaskStr.indexOf(ch)
    str1+=(ind==-1) ? ch : lowMaskStr.charAt(ind)
    }
  return str
  }
// ------------------------------------/


// --------------------\
// Check integer value
// ------------------------------------\
function checkInt(str) {
  var l=str.length
  if (!l) return null
  for (var i=0; i<l; i++) {
    var ch=str.charAt(i)
    if (ch<'0' || ch>'9') return null
    }
  return eval(str)
  }
// ------------------------------------/


// ------------------\
// Check float value
// ------------------------------------\
function checkFloat(str) {
  var l=str.length
  if (!l) return null
  var point=0
  for (var i=0; i<l; i++) {
    var ch=str.charAt(i)
    if (ch=='.')
      if (point) return null
      else point=1
    else 
      if (ch<'0' || ch>'9') return null
    }
  return eval(str)
  }
// ------------------------------------/


// ----------------\
// Check ZIP value
// ------------------------------------\
function checkZip(str) {
  return (str.length==5 && checkInt(str))
  }
// ------------------------------------/


// -------------------\
// Check E-mail value
// ------------------------------------\
function checkEmail(str) {
  var l=str.length
  if (!l) return false
  var ata=0
  var point=0
  var cch=''
  for (var i=0; i<l; i++) {
    var ch=str.charAt(i)
    if (ch=='@')
      if (ata==1 || i==0 || cch=='.') return false
      else ata=1
    else if (ch=='.')
      if (cch=='.' || cch=='@' || i==l-1 || i==0) return false
      else point=ata
    else if ((ch<'A' || ch>'Z') && (ch<'a' || ch>'z') &&
		(ch<'0' || ch>'9') && (ch!='_') && (ch!='-')) return false
    cch=ch
    }
  return (ata && point)
  }
// ------------------------------------/
 

// -----------------------------\
// Check date and get its parts
// ------------------------------------\
function getDate(str,format) {
  if (format==null) format=W.DATE_FORMAT
  var mlen=Array(31,28,31,30,31,30,31,31,30,31,30,31)
  var l=str.length
  var dd=str.substr(0,2)
  var mm=str.substr(3,2)
  var yy=str.substr(6,4)
  if (format) { var tmp=dd; dd=mm; mm=tmp }
  var d=checkInt(dd)
  var m=checkInt(mm)
  var y=checkInt(yy)
  var ml=mlen[m-1]+1+
	((m==2 && (y%400==0 || (y%4==0 && y%100!=0))) ? 1 : 0)
  var res=
    (l==10 && str.charAt(2)=="." && str.charAt(5)=="." && d && d<ml && m && m<13 && y) ? 
	Array(yy,mm,dd) : false
  return res
  }
// ------------------------------------/


// -------------------------------------\
// Check time (hh:mm) and get its parts
// ------------------------------------\
function getTime(str) {
  var l=str.length
  var hh=str.substr(0,2)
  var mm=str.substr(3,2)
  var h=checkInt(hh)
  var m=checkInt(mm)
  var res=
    (l==5 && str.charAt(2)==":" && h!=null && h<24 && m!=null && m<60) ?
	Array(hh,mm) : false
  return res
  }
// ------------------------------------/


// --------------\
// Compare dates
// ------------------------------------\
function cmpDate(str1,str2,format) {
  var date1=getDate(str1,format)
  var date2=getDate(str2,format)
  if (! date1) return -1
  if (! date2) return -2
  date1=eval(date1.join(''))
  date2=eval(date2.join(''))
  if (date1>date2) return 1
  else if (date2>date1) return 2
  else return 0
  }
// ------------------------------------/


// --------------\
// Compare times
// ------------------------------------\
function cmpTime(str1,str2) {
  var time1=getTime(str1)
  var time2=getTime(str2)
  if (! time1) return -1
  if (! time2) return -2
  time1=eval(time1.join(''))
  time2=eval(time2.join(''))
  if (time1>time2) return 1
  else if (time2>time1) return 2
  else return 0
  }
// ------------------------------------/


// ---------------------------------\
// Get dd.mm.yyyy/mm.dd.yyyy string
// ------------------------------------\
function getDateStr(date,format) {
  if (! date) date=new Date
  if (format==null) format=W.DATE_FORMAT
  var dd=date.getDate()
  var mm=date.getMonth()+1
  var yy=date.getYear()
  if (dd<10) dd="0"+dd
  if (mm<10) mm="0"+mm
  if (format) { var tmp=dd; dd=mm; mm=tmp }
  return (""+dd+"."+mm+"."+yy)
  }
// ------------------------------------/


// ----------------------\
// Get hh:mm string
// ------------------------------------\
function getTimeStr(date) {
  if (! date) date=new Date
  var hh=date.getHours()
  var mm=date.getMinutes()
  if (hh<10) hh="0"+hh
  if (mm<10) mm="0"+mm
  return (""+hh+":"+mm)
  }
// ------------------------------------/

/*
// ============================================================================\

Functions:
	getLayer(name)
	getLayerProp(name)
	setVisibility(name,pos)

	Rollover(name,dir,current,disable_roll_current,
		img_off,img_on,img_off_curr,img_on_transp,do_preload)

	Item(href,text,target,events,
		linkClass,headHTML,tailHTML,subMenu)

	SubMenu(left,top,width,bgColor,
		linkClass,headHTML,tailHTML,itemHeadHTML,itemTailHTML,items)
	DropDownMenu(name,rollover_name,centeredWidth,
		linkClass,headHTML,tailHTML,itemHeadHTML,itemTailHTML,subMenus)


//	MenuSection(href,text,target,events,
//		headHTML1,tailHTML1,headHTML2,tailHTML2,itemHeadHTML,itemTailHTML,items)
//	VerticalMenu(name,width,autoClose,linkClass1,linkClass2,
//		headHTML1,tailHTML1,headHTML2,tailHTML2,itemHeadHTML,itemTailHTML,menuSections)

// ============================================================================/
*/


// ========================\
// Special DHTML functions
// ============================================================================\

var IE4=D.all ? 1 : 0
var NN4=D.layers ? 1 : 0
var DHTML=IE4||NN4

var LPrefix="D.all."
var LSuffix=".style"
if (NN4) {
  LPrefix="D.layers."
  LSuffix=""
  }


var ROLL=new Object
var MENU=new Object


// ============================================================================\

function getLayer(name) {
  return DHTML ? eval(LPrefix+name) : null
  }

function getLayerProp(name) {
  if (! DHTML) return
  var prop=eval(LPrefix+name) ? eval(LPrefix+name+LSuffix) : ""
  return prop ? prop : ""
  }

function setVisibility(name,pos) {
  getLayerProp(name).visibility= pos ? 'visible' : 'hidden'
  }

// ============================================================================/




// ===============================\
// Create special rollover object
// ============================================================================\

function Rollover(name,dir,current,disable_roll_current,
		img_off,img_on,img_off_curr,img_on_transp,do_preload) {
  var obj=this.window ? new Object : this
  obj.name=name
  obj.rollover=D.images && img_off
  obj.dir=dir
  if (IE4 && img_on_transp) img_on=img_on_transp
  obj.img=new Array
  for (var i in img_off) obj.img[i]=Array(img_off[i],img_on[i])
  if (current>=0) {
    var curr=obj.img[current]
    if (img_off_curr) curr[0]=img_off_curr[current]
    if (disable_roll_current) curr[1]=curr[0]
    }
// ------------------------------------\
  obj.preload=function() {
    if (this.rollover) {
      var tmp=this.TMP=new Array
      var dir=this.dir
      var img=this.img
      for (var i in img) (tmp[i]=new Image).src=dir+"/"+img[i][1]
      }
    }
// ------------------------------------/
// ------------------------------------\
  obj.Switch=function(num,pos,nn_docum) {
    var docum=(NN4 && nn_docum) ? eval(nn_docum) : D
    if (this.rollover) {
      var img=docum.images[this.name+num]
      if (img) img.src=this.dir+"/"+this.img[num][pos ? 1 : 0]
      }
    }
// ------------------------------------/
  if (do_preload!=0) obj.preload()
  W.ROLL[name]=obj
  return obj
  }

// ============================================================================/




// ====================\
// Common menu objects
// ============================================================================\

// -----------------\
// Create menu item
// ----------------------------------------------------------------------------\
function Item(href,text,target,events,
	linkClass,headHTML,tailHTML,subMenu) {
  var obj=this.window ? new Object : this
  obj.href=href
  obj.text=text
  obj.target=target
  obj.events=(events==null) ? "" : events
  obj.linkClass=linkClass
  obj.headHTML=(headHTML==null) ? "" : headHTML
  obj.tailHTML=(tailHTML==null) ? "" : tailHTML
  obj.subMenu=subMenu
  obj.menu=obj.parent=0
// ------------------------------------\
  obj.create=function(parent) {
    var menu=this.menu=parent.menu
    this.parent=parent
    var linkClass=this.linkClass ? this.linkClass :
			(parent.linkClass ? parent.linkClass : menu.linkClass)
    D.write(menu.itemHeadHTML,parent.itemHeadHTML,this.headHTML)
    if (this.href.length && this.text.length)
      D.write("<a href='",this.href,"' ",this.events,
		linkClass ? " class='"+linkClass+"'" : "",
		this.target ? " target='"+this.target+"'" : "")
    if (this.subMenu) {
      var num=this.subMenu.num
      D.write(" onmouseover='W.MENU.",menu.name,".Switch(",num,",1,event)'",
		" onmouseout='W.MENU.",menu.name,".Switch(",num,",0,event)'")
      }
    D.write(">",this.text,"</a>")
    D.write(this.tailHTML,parent.itemTailHTML,menu.itemTailHTML,'<br>')
    }
// ------------------------------------/
  return obj
  }
// ----------------------------------------------------------------------------/

// ============================================================================/


// ==============================\
// Create drop-down menu
// ============================================================================\

// ---------------\
// Create submenu
// ----------------------------------------------------------------------------\
function SubMenu(left,top,width,bgColor,
	linkClass,headHTML,tailHTML,itemHeadHTML,itemTailHTML,items) {
  var obj=this.window ? new Object : this
  obj.num=0
  obj.name=""
  obj.left=left
  obj.top=top
  obj.width=width
  obj.bgColor=bgColor
  obj.linkClass=linkClass
  obj.headHTML=(headHTML==null) ? "" : headHTML
  obj.tailHTML=(tailHTML==null) ? "" : tailHTML
  obj.itemHeadHTML=(itemHeadHTML==null) ? "" : itemHeadHTML
  obj.itemTailHTML=(itemTailHTML==null) ? "" : itemTailHTML
  obj.items=items
  obj.position=0
  obj.menu=obj.parent=0
  obj.z=10
// ------------------------------------\
  obj.create=function(menu,num,parent) {
    this.num=num
    var name=this.name=menu.name+num+"_body"
    this.menu=menu
    this.parent=parent
    if (parent) this.z=parent.z+1
    var items=this.items
    if (! items) return
    var subMenus=menu.subMenus
    for (i in items) {
      var subMenu=items[i].subMenu
      if (subMenu) {
	var n=subMenus.length
	subMenus[n]=subMenu
	subMenu.create(menu,n,this)
	}
      }
    if (NN4)
      D.write("<layer name='",this.name,"' left=",this.left," top=",this.top,
	" width=",this.width," visibility=hide bgcolor='",this.bgColor,"' z-index=",this.z)
    else
      D.write("<div id='",this.name,"' style='position:absolute;left:",this.left,
	";top:",this.top,";width:",this.width,";background-color:",this.bgColor,
	";visibility:hidden;z-index:",this.z,";'")
    D.write(" onmouseover='W.MENU.",menu.name,".Switch(",num,",1)'",
	" onmouseout='W.MENU.",menu.name,".Switch(",num,")'>",
	menu.headHTML,this.headHTML)
    for (i in items) items[i].create(this)
    D.write(this.tailHTML,menu.tailHTML,
	NN4 ? "</layer>" : "</div>")
    }
// ------------------------------------/
// ------------------------------------\
//  obj.Switch=function(x,y) {
  obj.Switch=function() {
    var name=this.name
    var centeredWidth=this.menu.centeredWidth
    if (centeredWidth) {
      var pageWidth=NN4 ? D.pageWidth.document.width : D.all.pageWidth.offsetWidth
      var offsetX=Math.floor((pageWidth-centeredWidth)/2)
      if (offsetX<0) offsetX=0
      getLayerProp(name).left=this.left+offsetX
      }
// if (NN4 && this.parent && !this.position) {
//   if (x) getLayerProp(name).left=x
//   if (y) getLayerProp(name).top=y
//   }
    var pos=this.position
    var rn=this.menu.rollover_name
    if (rn) W.ROLL[rn].Switch(this.num,pos)
    setVisibility(name,pos)
    var par=this    
    while (par=par.parent) par.Switch()
    }
// ------------------------------------/
  return obj
  }
// ----------------------------------------------------------------------------/


// -------------------\
// Create menu object
// ----------------------------------------------------------------------------\
function DropDownMenu(name,rollover_name,centeredWidth,
		linkClass,headHTML,tailHTML,itemHeadHTML,itemTailHTML,subMenus) {
  var obj=this.window ? new Object : this
  obj.name=name
  obj.centeredWidth=centeredWidth
  obj.rollover_name=rollover_name
  obj.linkClass=linkClass
  obj.headHTML=headHTML
  obj.tailHTML=tailHTML
  obj.itemHeadHTML=itemHeadHTML
  obj.itemTailHTML=itemTailHTML
  obj.subMenus=subMenus
// ------------------------------------\
  obj.create=function() {
    if (! DHTML) return
    if (! DropDownMenu.called) {
      if (NN4)
	D.write("<layer name='pageWidth' left=0 top=100 height=0 visibility=hide><hr width=100%></layer>")
      else
	D.write("<div id='pageWidth' style='position:absolute;left:0;top:0;width:100%;height:0;visibility:hidden;'></div>")
      DropDownMenu.called=1
      }
    var subMenus=this.subMenus
    var argv=arguments
    var argc=argv.length
    var x=0
    var l=subMenus.length
    for (var i=0; i<l; i++) {
      var subMenu=subMenus[i]
      var y=x+1
      if (x<argc) subMenu.left=argv[x]
      if (y<argc) subMenu.top=argv[y]
      x+=2
      subMenu.create(this,i)
      }
    }
// ------------------------------------/
// ------------------------------------\
  obj.Switch=function(num,pos,event) {
    if (! DHTML) return
    var inc=pos ? 1 : -1
    var subMenu=this.subMenus[num]
    do subMenu.position+=inc
    while (subMenu=subMenu.parent)
// var x=(event && NN4) ? event.pageX
// var y=(event && NN4) ? event.pageY
// setTimeout("W['"+this.name+"'].subMenus["+num+"].Switch("+x+","+y+")",100)
    setTimeout("W['"+this.name+"'].subMenus["+num+"].Switch()",100)
    }
// ------------------------------------/
  W.MENU[name]=obj
  return obj
  }
// ----------------------------------------------------------------------------/

// ============================================================================/


/*
// =====================\
// Create vertical menu
// ============================================================================\

// ----------------------\
// Create head & submenu
// ----------------------------------------------------------------------------\
function MenuSection(href,text,target,events,
	headHTML1,tailHTML1,headHTML2,tailHTML2,itemHeadHTML,itemTailHTML,items) {
  var obj=this.window ? new Object : this
  obj.name1=""
  obj.name2=""
  obj.href=href
  obj.text=text
  obj.target=target
  obj.events=(events==null) ? "" : events
  obj.headHTML1=(headHTML1==null) ? "" : headHTML1
  obj.tailHTML1=(tailHTML1==null) ? "" : tailHTML1
  obj.headHTML2=(headHTML2==null) ? "" : headHTML2
  obj.tailHTML2=(tailHTML2==null) ? "" : tailHTML2
  obj.itemHeadHTML=itemHeadHTML
  obj.itemTailHTML=itemTailHTML
  obj.items=items
  obj.position=0
  obj.menu=0
// ------------------------------------\
  obj.create=function(menu,num) {
    this.menu=menu
    this.name1=menu.name+num
    this.name2=this.name1+"_body"
    var items=this.items
    var w=menu.width
    var width=w ? (NN4 ? "width="+w+" " : "width:"+w+";") : ""
    D.write(NN4 ?
	"<ilayer name='"+this.name1+"'><layer>" :
	"<div id='"+this.name1+"' style='position:relative;top:0'>",
	menu.headHTML1,this.headHTML1,
	"<a href='",this.href,"' ",this.events,
	menu.linkClass1 ? " class='"+menu.linkClass1+"'" : "",
	this.target ? " target='"+this.target+"'" : "",
	" onClick='return W.MENU.",menu.name,".Switch("+num+")'>",this.text,"</a>",
	this.tailHTML1,menu.tailHTML1,
	NN4 ?
	"</layer></ilayer><br><layer name='"+this.name2+"' "+width+"visibility=hide>" :
	"</div><div id='"+this.name2+"' style='position:absolute;"+width+"visibility:hidden'>",
	menu.headHTML2,this.headHTML2)
    for (i in items) items[i].create(this)
    D.write(this.tailHTML2,menu.tailHTML2,
	NN4 ? "</layer>" : "</div>")
  }
// ------------------------------------/
  return obj
  }
// ----------------------------------------------------------------------------/


// -------------------\
// Create menu object
// ----------------------------------------------------------------------------\
function VerticalMenu(name,width,autoClose,linkClass1,linkClass2,
	headHTML1,tailHTML1,headHTML2,tailHTML2,itemHeadHTML,itemTailHTML,menuSections) {
  var obj=this.window ? new Object : this
  obj.name=name
  obj.width=width
  obj.autoClose=autoClose
  obj.linkClass1=linkClass1
  obj.linkClass=linkClass2
  obj.headHTML1=headHTML1
  obj.tailHTML1=tailHTML1
  obj.headHTML2=headHTML2
  obj.tailHTML2=tailHTML2
  obj.itemHeadHTML=itemHeadHTML
  obj.itemTailHTML=itemTailHTML
  obj.menuSections=menuSections
  obj.lastNum=menuSections.length
// ------------------------------------/
  obj.create=function() {
    var menuSections=this.menuSections
    for (var i in menuSections) menuSections[i].create(this,i)
    }
// ------------------------------------/
// ------------------------------------\
  obj.Switch=function(num) {
    var menuSections=this.menuSections
    if (!(DHTML && menuSections[num].items)) return true
    var lastNum=this.lastNum
    if (this.autoClose) this.lastNum=num
    var isLast=(num==lastNum)
    var l=menuSections.length
    var start=Math.min(num,lastNum)
    var shift=0
    for (var i=start; i<l; i++) {
      var menuSection=menuSections[i]
      var name1=menuSection.name1
      var name2=menuSection.name2
      var layer1=getLayer(name1)
      var layer2=getLayer(name2)
      if (NN4) {
	layer1.top+=shift
	layer2.left=layer1.pageX
	layer2.top=layer1.pageY+layer1.document.layers[0].document.height
	}
      else {
	layer1.style.top=parseInt(layer1.style.top)+shift
	layer2.style.top=layer2.offsetTop+shift
	}
      if (i==num || i==lastNum) {
        var h=NN4 ? layer2.document.height : layer2.offsetHeight
	var pos=0
        if (isLast || i==num) pos=menuSection.position=1-menuSection.position
	else if (menuSection.position) menuSection.position=0
	else h=0
        setVisibility(name2,pos)
        shift+= pos ? h : -h
        }
      }
    return false
    }
// ------------------------------------/
  W.MENU[name]=obj
  return obj
  }
// ----------------------------------------------------------------------------/

// ============================================================================/
*/

/*
// ============================================================================\

Functions:
	autoRefresh()
	setUserOnline()
	changePortion(sel)

// ============================================================================/
*/


// ------------------------------------\
// Special online monitoring functions
// ------------------------------------\
var SET_USER_ONLINE_IMG
var userActive=new Array(0,1)

function setUserActive(e) {
  if (!W.CONTROL_USER_ACTIVITY) return
  userActive[0]=userActive[1]=1
  if (D.releaseEvents) D.releaseEvents(Event.MOUSEMOVE)
  W.onfocus=D.onmousemove=D.onkeydown=null
  }

function setUserPassive(n) {
  userActive[n]=1
  if (!W.CONTROL_USER_ACTIVITY) return
  userActive[n]=0
  if (D.captureEvents) D.captureEvents(Event.MOUSEMOVE)
  setTimeout("W.onfocus=D.onmousemove=D.onkeydown=setUserActive",100)
  }

function autoRefresh() {
  if (userActive[0]) location.reload()
  setUserPassive(0)
  if (W.AUTO_REFRESH_TIME) setTimeout("autoRefresh()",AUTO_REFRESH_TIME)
  }

function setUserOnline() {
  if (userActive[1]) {
    var IMG=new Image
    IMG.src=SET_USER_ONLINE_IMG
    }
  setUserPassive(1)
  if (W.AUTO_ONLINE_TIME) setTimeout("setUserOnline()",AUTO_ONLINE_TIME)
  }
// ------------------------------------/


// ---------------------------------\
// See special.php, make_page_bar()
// ------------------------------------\
function changePortion(sel) {
  var f=sel.form
  var pageURL=f.pageURL.value
  var oldInd=eval(f.oldIndex.value)
  var ind=sel.selectedIndex;
  if (ind!=oldInd) location.href=pageURL+sel.options[ind].value
  }
// ------------------------------------/

/*
// ============================================================================\

Special data structure and functions

// ============================================================================/
*/


// ------------------------------------\
// Must be defined as property of form
// ------------------------------------\
function CheckStruct(errBadValue,errNotChange,errNotChoose,askConfirm,checkValue,
		errNotEmpty,errAddDenied,allObjList,childForm) {
  var obj=this.window ? new Object : this

  obj.errBadValue=errBadValue
  obj.errNotChange=errNotChange
  obj.errNotChoose=errNotChoose
  obj.askConfirm=askConfirm

  obj.checkValue=checkValue	// Function for value checking

  obj.errNotEmpty=errNotEmpty
  obj.errAddDenied=errAddDenied

  obj.allObjList=allObjList
  obj.childForm=childForm

  obj.oldVal=""
  obj.forDelete=0
  obj.currObj=0

  return obj
  }
// ------------------------------------/


// ------------------------------------\
function changeObj(sel) {
    if (! self.allLoaded) return errorNotAllLoaded()
  if (! (sel && sel.form)) sel=this
  var f=sel.form
  var ind=sel.selectedIndex
  var CS=f.checkStruct
  CS.oldVal=f.name.value=ind ? sel.options[ind].text : ""
  }
// ------------------------------------/


// ------------------------------------\
function changeID(f) {
    if (! self.allLoaded) return errorNotAllLoaded()
  var CS=f.checkStruct
  if (CS.forDelete) return true
  var sel=f.ID
  if (f.oldID.value==sel.options[sel.selectedIndex].value) {
    location.href="#edit"
    return false
    }
  }
// ------------------------------------/


// ------------------------------------\
function checkValue(f) {
    if (! self.allLoaded) return errorNotAllLoaded()
  var CS=f.checkStruct
  var val=f.name.value
  if (!val.length || (CS.checkValue && !CS.checkValue(val))) return false
  var ID=f.ID
  var ind=ID.selectedIndex
  var opt=ID.options
  var l=opt.length
  for (var i=1; i<l; i++)
    if (i!=ind && val==opt[i].text) return false
  return true
  }
// ------------------------------------/


// ------------------------------------\
function checkChange(f) {
    if (! self.allLoaded) return errorNotAllLoaded()
  var CS=f.checkStruct
  if (CS.forDelete) return true
  if (f.ID.selectedIndex && f.name.value==CS.oldVal) {
    alert(CS.errNotChange)
    return false
    }
  if (!checkValue(f)) {
    alert(CS.errBadValue)
    f.name.focus()
    f.name.select()
    return false
    }
  }
// ------------------------------------/


// ------------------------------------\
function checkDelete(f) {
    if (! self.allLoaded) return errorNotAllLoaded()
  var CS=f.checkStruct
  if (f.ID.selectedIndex) {
    if (confirm(CS.askConfirm)) {
      CS.forDelete=1
      return true
      }
    }
  else alert(CS.errNotChoose)
  return false
  }
// ------------------------------------/

