'
obj.hItemHoverColor=(hItemHoverColor || '')
obj.hItemHeadHTML=(hItemHeadHTML || '')
obj.hItemTailHTML=(hItemTailHTML || '')
obj.hItemLinkClass=(hItemLinkClass || '')
obj.hItemLinkAttrs=(hItemLinkAttrs || '')
obj.itemHoverColor=(itemHoverColor || '')
obj.itemHeadHTML=(itemHeadHTML || '')
obj.itemTailHTML=(itemTailHTML || '')
obj.itemLinkClass=(itemLinkClass || '')
obj.itemLinkAttrs=(itemLinkAttrs || '')
obj.rollover=rollover
obj.items=items
// ------------------------------------\
obj.init=function() {
if (DHTML && !SCREEN.size) {
D.write(NN4 ?
"" :
"")
SCREEN.size=Layer('pageSize');
}
var t=this
var items=t.items
// ------------|
for (var i in items) {
var item=items[i]
item.init(t,t,i)
if (item.subMenu) item.subMenu.create(t,item)
}
}
// ------------------------------------/
// ------------------------------------\
obj.create=function() {
var t=this
var items=t.items
// ------------|
D.write(t.headHTML)
// ------------|
var n=0
for (var i in items) {
if (n) D.write(t.hItemDelimHTML)
items[i].create()
n=1
}
// ------------|
D.write(t.tailHTML)
// ------------|
if (DHTML)
for (var i in items) {
var item=items[i]
item.layer=Layer((NN4 ? 'layerBody' : item.name),'D.layers.'+item.name+'.document')
}
}
// ------------------------------------/
// ------------------------------------\
obj.Switch=function(allNum,pos,fromSubMenu) {
var t=this
var inc=pos ? +1 : -1
var item=this.allItems[allNum]
// ------------|
var sM=item.subMenu
if (sM) sM.layer.color((fromSubMenu && pos) ? sM.hoverColor : sM.bgColor)
// ------------|
do item.position+=inc
while (item=item.parent.parent)
// ------------|
setTimeout('W.MENU["'+t.name+'"].allItems['+allNum+'].Switch()',15)//40)
}
// ------------------------------------/
W.MENU[name]=obj
obj.init()
return obj
}
// ----------------------------------------------------------------------------/
// -----------------\
// Create menu item
// ----------------------------------------------------------------------------\
function Item(text,href,target,
bgColor,hoverColor,headHTML,tailHTML,linkClass,linkAttrs,beforeHTML,afterHTML,
subMenu) {
var obj=this.window ? {} : this
obj.menu=obj.parent=0
obj.allNum=0
obj.isHead=0
obj.num=0
obj.name=''
obj.layer=0
obj.position=0
//---------------|
obj.text=text
obj.href=href
obj.target=target
obj.bgColor=(typeof(bgColor)==tStr) ? bgColor : 0
obj.hoverColor=(typeof(hoverColor)==tStr) ? hoverColor : 0
obj.headHTML=(typeof(headHTML)==tStr) ? headHTML : 0
obj.tailHTML=(typeof(tailHTML)==tStr) ? tailHTML : 0
obj.linkClass=(typeof(linkClass)==tStr) ? linkClass : 0
obj.linkAttrs=(typeof(linkAttrs)==tStr) ? linkAttrs : 0
obj.beforeHTML=(beforeHTML || '')
obj.afterHTML=(afterHTML || '')
obj.subMenu=subMenu
// ------------------------------------\
obj.init=function(menu,parent,num) {
var t=this
var m=t.menu=menu
var p=t.parent=parent
t.num=num
var isHead=t.isHead=(menu==parent) ? 1 : 0
t.allNum=m.allItems.length
// ------------|
m.allItems[t.allNum]=t
t.name=m.name+'_'+t.allNum
// ------------|
if (typeof(t.bgColor)!=tStr) t.bgColor=isHead ? m.bgColor : ''
if (typeof(t.hoverColor)!=tStr)
if (isHead) t.hoverColor=m.hItemHoverColor
else t.hoverColor=(typeof(p.itemHoverColor)==tStr) ? p.itemHoverColor : m.itemHoverColor
if (!t.hoverColor) t.hoverColor=t.bgColor
// ------------|
if (typeof(t.linkClass)!=tStr)
if (isHead) t.linkClass=m.hItemLinkClass
else t.linkClass=(typeof(p.itemLinkClass)==tStr) ? p.itemLinkClass : m.itemLinkClass
if (typeof(t.linkAttrs)!=tStr)
if (isHead) t.linkAttrs=m.hItemLinkAttrs
else t.linkAttrs=(typeof(p.itemLinkAttrs)==tStr) ? p.itemLinkAttrs : m.itemLinkAttrs
}
// ------------------------------------/
// ------------------------------------\
obj.create=function() {
var t=this
var m=t.menu
var p=t.parent
var isHead=t.isHead
// ------------|
D.write(t.beforeHTML)
D.write(NN4 ?
'')
// =============\
// VERY SPECIAL |
// ====================================\
if (NN4) D.write('')
// ====================================/
// ------------|
if (typeof(t.headHTML)==tStr) D.write(t.headHTML)
else if (isHead) D.write(m.hItemHeadHTML)
else D.write((typeof(p.itemHeadHTML)==tStr) ? p.itemHeadHTML :m.itemHeadHTML)
// ------------|
if (t.href && t.href.length)
D.write('',t.text,'')
else
D.write(t.text)
// ------------|
if (typeof(t.tailHTML)==tStr) D.write(t.tailHTML)
else if (isHead) D.write(m.hItemTailHTML)
else D.write((typeof(p.itemTailHTML)==tStr) ? p.itemTailHTML : m.itemTailHTML)
// ------------|
D.write(NN4 ? '' : '')
D.write(t.afterHTML)
}
// ------------------------------------/
// ------------------------------------\
obj.Switch=function(immediate) {
var t=this
var m=t.menu
var p=t.parent
var pos=t.position
var del=m.delayOff
// ------------|
var b=0
for (var i in m.allItems) if (m.allItems[i].position) b=1
// ------------|
if (del && t.subMenu && !(pos || immediate || b))
setTimeout('W.MENU["'+m.name+'"].allItems['+t.allNum+'].Switch(1)',del)
else {
var r=p.rollover
if (r) r.Switch(t.num,pos,t.layer.nn_document)
t.layer.color(pos ? t.hoverColor : t.bgColor)
if (t.subMenu) t.subMenu.Switch()
var pI=t
while (pI=pI.parent.parent) pI.Switch(immediate)
}
}
// ------------------------------------/
return obj
}
// ----------------------------------------------------------------------------/
// ---------------\
// Create submenu
// ----------------------------------------------------------------------------\
function SubMenu(left,top,width,bgColor,hoverColor,headHTML,tailHTML,itemDelimHTML,
itemHoverColor,itemHeadHTML,itemTailHTML,itemLinkClass,itemLinkAttrs,
rollover,items) {
var obj=this.window ? {} : this
obj.menu=obj.parent=0
obj.name=''
obj.direction=obj.dirOff=0
obj.alignment=obj.alignOff=0
obj.z=0
obj.layer=0
obj.layerW=obj.layerH=0
// --------------|
obj.left=left
obj.top=top
obj.width=width
obj.bgColor=(typeof(bgColor)==tStr) ? bgColor : 0
obj.hoverColor=(typeof(hoverColor)==tStr) ? hoverColor : 0
obj.headHTML=(typeof(headHTML)==tStr) ? headHTML : 0
obj.tailHTML=(typeof(tailHTML)==tStr) ? tailHTML : 0
obj.itemDelimHTML=(typeof(itemDelimHTML)==tStr) ? itemDelimHTML : 0
obj.itemHoverColor=(typeof(itemHoverColor)==tStr) ? itemHoverColor : 0
obj.itemHeadHTML=(typeof(itemHeadHTML)==tStr) ? itemHeadHTML : 0
obj.itemTailHTML=(typeof(itemTailHTML)==tStr) ? itemTailHTML : 0
obj.itemLinkClass=(typeof(itemLinkClass)==tStr) ? itemLinkClass : 0
obj.itemLinkAttrs=(typeof(itemLinkAttrs)==tStr) ? itemLinkAttrs : 0
obj.rollover=rollover
obj.items=items
// ------------------------------------\
obj.create=function(menu,parent) {
if (!DHTML) return
// --------------|
function parsePos(str) {
if (typeof(str)!=tStr) return null
var off=0
var i=str.indexOf('+')
if (i<0) i=str.indexOf('-')
if (i>=0) {
off=str.substr(i)
str=str.substr(0,i)
}
str=(str.charAt(0) || 0)
off=(parseInt(off) || 0)
return [str,off]
}
// --------------|
var t=this
var m=t.menu=menu
var p=t.parent=parent
var name=this.name=p.name+'_body'
this.z=parent.parent.z+1
var items=this.items
// ------------|
if (t.left==null) t.left=p.isHead ? m.hSubLeft : m.subLeft
if (t.top==null) t.top=p.isHead ? m.hSubTop : m.subTop
if (t.width==null) t.width=m.subWidth
if (typeof(t.bgColor)!=tStr) t.bgColor=m.subBgColor
if (typeof(t.hoverColor)!=tStr) t.hoverColor=(m.subHoverColor || t.bgColor)
// ------------|
var d=parsePos(t.left)
var a=parsePos(t.top)
if (d) {
t.direction=(d[0] || (p.isHead ? 'v' : 'h'))
t.dirOff=d[1]
t.alignment=(a[0] || (a[1] ? 'b' : 'a'))
if (a[0]!='a') t.alignOff=(a[1] || 0)
t.left=t.top=0
}
// ------------|
if (NN4)
D.write('')
if (!NN4)
D.write('| ')
// ------------|
D.write((typeof(t.headHTML)==tStr) ? t.headHTML : m.subHeadHTML)
// ------------|
var delim=(typeof(t.itemDelimHTML)==tStr) ? t.itemDelimHTML : m.itemDelimHTML
var n=0
for (var i in items) {
if (n) D.write(delim)
items[i].init(menu,t,i)
items[i].create()
n=1
}
// ------------|
D.write((typeof(t.tailHTML)==tStr) ? t.tailHTML : m.subTailHTML)
// ------------|
if (!NN4) D.write(' | ')
D.write(NN4 ? '' : '')
// ------------|
t.layer=Layer(t.name)
for (var i in items) {
var item=items[i]
item.layer=Layer((NN4 ? 'layerBody' : item.name),'D.layers.'+t.name+'.document.layers.'+item.name+'.document')
if (item.subMenu) item.subMenu.create(menu,item)
}
}
// ------------------------------------/
// ------------------------------------\
obj.Switch=function() {
if (!DHTML) return
var t=this
var m=t.menu
var p=t.parent
var l=t.layer
var pos=p.position
// ------------|
if (pos) {
var tmp
tmp=SCREEN.params()
var scrW=tmp.width
var scrH=tmp.height
var scrL=tmp.left
var scrT=tmp.top
var scrR=scrL+scrW-1
var scrB=scrT+scrH-1
// ----------|
tmp=p.layer.params()
var elW=tmp.width
var elH=tmp.height
var elL=tmp.pageLeft
var elT=tmp.pageTop
var elR=elL+elW-1
var elB=elT+elH-1
// ----------|
var w=t.layerW
var h=t.layerH
if (!w) { // MOZILLA & OPERA BUG CORRECTION
var tmp=l.params()
w=t.layerW=tmp.width
h=t.layerH=tmp.height
}
if (!NN4) l.params(null,null,null,null,null,null,w,h)
// ----------|
var d=t.direction
var dO=t.dirOff
var a=t.alignment
var aO=t.alignOff
// ----------|
var x=t.left
var y=t.top
var l1,l2
// ----------|
if (d) {
if (d=='h') {
l1=(elL-dO)-scrL
l2=scrR-(elR+dO)
d=(l2l2) ? 'l' : 'r'
if (d=='l') dO=-dO
}
if (d=='v') {
l1=(elT-dO)-scrT
l2=scrB-(elB+dO)
d=(l2l2) ? 't' : 'b'
if (d=='t') dO=-dO
}
// --------|
if (d=='l') {
x=elL+dO-w
d='h'
}
else if (d=='r') {
x=elR+dO+1
d='h'
}
else if (d=='t') {
y=elT+dO-h
d='v'
}
else { // (d=='b')
y=elB+dO+1
d='v'
}
// --------|
if (d=='v') {
if (a=='a') {
l1=(elR+aO)-scrL+1
l2=scrR-(elL+aO)+1
a=(l2l2) ? 'e' : 'b'
}
if (a=='c') x=elL-Math.floor((w-elW)/2)+aO
else if (a=='e') x=elR+aO-w+1
else x=elL+aO // (a=='b')
}
else { // (d=='h')
if (a=='a') {
l1=(elB+aO)-scrT+1
l2=scrB-(elT+aO)+1
a=(l2l2) ? 'e' : 'b'
}
if (a=='c') y=elT-Math.floor((h-elH)/2)+aO
else if (a=='e') y=elB+aO-h+1
else y=elT+aO // (a=='b')
}
// --------|
}
else if (m.centeredWidth) {
var offsetX=Math.floor((scrW-m.centeredWidth)/2)
x=t.left+((offsetX>0) ? offsetX : 0)
y=t.top
}
// ----------|
l.params(x,y)
}
// ------------|
l.visibility(pos)
}
// ------------------------------------/
return obj
}
// ----------------------------------------------------------------------------/
// ============================================================================/
// ============================================================================/
/*
// ============================================================================\
Functions:
autoRefresh()
setUserOnline()
changePortion(sel)
checkFilled(field,alertMessage)
// ============================================================================/
*/
// ------------------------------------\
// 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
}
// ------------------------------------/
// ----------------------\
// Check if field is filled
// ------------------------------------\
function checkFilled(field,alertMessage) {
if (! field.value.length) {
alert((alertMessage!=null) ? alertMessage : "Empty value is no allowed!")
field.focus()
return false
}
return true
}
// ------------------------------------/
/*
// ============================================================================\
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",code,"")
}
// ----------------------------------------------------------------------------/
// --------------------\
// Check url_name value
// ------------------------------------\
function checkUrlName(str,undAllowed,slashAllowed,psetAllowed) {
if (checkInt(str)!==null || toLower(str)=='index') return null
var l=str.length
if (l>0 && (str.charAt(0)=='/' || str.charAt(l-1)=='/')) return null;
for (var i=0; i'9') && (ch<'A' || ch>'Z') &&
(ch<'a' || ch>'z') && (ch!='-') && (ch!='.') &&
!(ch=='/' && slashAllowed) && !(ch=='_' && undAllowed) &&
!(ch=='.' && psetAllowed)) return null;
}
return 1
}
// ------------------------------------/
// ------------------------------\
// Convert number to %.2f string
// ------------------------------------\
function num2str(num) {
var str=""+Math.round(num*100)
var l=str.length-2
return str.substr(0,l)+"."+str.substr(l,2)
}
// ------------------------------------/
|