function CC_noErrors() {return true;}window.onerror = CC_noErrors;
/** Bismillaahirrohmaanirrohiim
* @package doiMenu v.1.4 author Donna Iwan Setiawan
* @email
pagi@donnaiwan.com homepage http://www.donnaiwan.com*/
var _params = new TParameter()
var _browser = new TBrowser()
//browser constructor
function TBrowser()
{
this._name =''
this._version = ''
this._os =''
}
//start:function browser checking
var detect = navigator.userAgent.toLowerCase();
var total,thestring;
if (checkIt('konqueror'))
{
_browser._name = "Konqueror";
_browser._os = "Linux";
}
else if (checkIt('safari')) _browser._name = "Safari"
else if (checkIt('omniweb')) _browser._name = "OmniWeb"
else if (checkIt('opera')) _browser._name = "Opera"
else if (checkIt('webtv')) _browser._name = "WebTV";
else if (checkIt('icab')) _browser._name = "iCab"
else if (checkIt('msie')) _browser._name = "IE"
else if (!checkIt('compatible'))
{
_browser._name = "Netscape"
_browser._version = detect.charAt(8);
}
else _browser._name = "none";
if (_browser._version == '') _browser._version = detect.charAt(place + thestring.length);
if (_browser._os == '')
{
if (checkIt('linux')) _browser._os = "Linux";
else if (checkIt('x11')) _browser._os = "Unix";
else if (checkIt('mac')) _browser._os = "Mac"
else if (checkIt('win')) _browser._os = "Windows"
else _browser._os = "none";
}
function checkIt(string)
{
place = detect.indexOf(string) + 1;
thestring = string;
return place;
}
//end:function browser checking
//Main Menu Constructor
function TMainMenu(id,direction)
{
this._id = id
this._parent = '' //di set pada saat Add() method -->belum kepake
this._width ='auto'
this._direction = direction //direction = 'horizontal' atau 'vertical'
this._position= 'absolute'
this._top = 0
this._left = 0
this._cellSpacing =5
this._itemHeight = 'auto' //dengan satuan bisa 'auto' atau ''
this._itemWidth = 'auto' //dengan satuan bisa 'auto' atau ''
this._textAlign = 'center'
this._backColor = 'buttonface'
this._outerBorder = new TBorder()
this._innerBorder = new TBorder() //bug: harus diisi jangan none atau 0px
this._noShadow = true
this._itemIndex = -1
this._items = new Array()
this.Add = AddItem
this.Draw = DrawMenu
this.Init = InitMenu
this.Build = BuildMenu
}
//Pop Menu Constructor
function TPopMenu(id,label,icon,clickType,clickParam,status)
{
//status belum kepake
//rencana buat status di statusbar
this._id = id
this._parent = '' //di set pada saat Add() method -->belum kepake
this._label = label
this._top = 0
this._left = 0
this._status = status
if(icon == "")
this._icon = '[td class="TIcon"][img]none.gif[/img][/td]'
else if(icon == '9x')
this._icon = ''
else
this._icon = '[td class="TIcon"][img]'+icon+'[/img][/td]'
this._itemIndex = -1
this._items = new Array()
switch(clickType)
{
case 'function':
this._eClick = ' onclick="'+clickParam+'"'
break;
default:
this._eClick = ''
}
this.Add = AddItem
this.Draw = DrawPopMenu
}
//Parameter buat Menu
function TParameter()
{
this._width = 200 //lebar popup menu in px
this._separator = new TSeparator()
this._expandIcon = new TExpandIcon()
this._font = new TFont()
this._font._family = 'tahoma,verdana,sans-serif,arial'
this._font._size = '8pt'
//untuk pop menu
this._hlItemBorderColor = 'green'
this._hlItemTextColor = 'green'
this._hlItemBackColor = '#cccccc'
this._itemBorderColor = 'none'
this._itemTextColor = '#000066'
this._itemBackColor = 'transparent'
//untuk main menu
this._mmPosition = 'absolute' //dioverwrite dengan TMainMenu._position pada saat TMainMenu.Build()
this._mmItemTextColor = '#000066'
this._mmItemBackColor = '#bcbc7a'
this._mmHLItemTextColor = 'white'
this._mmHLItemBackColor = '#9ca972'
this._mmItemBorder = new TBorder() //dioverwrite dengan TMainMenu._innerBorder pada saat TMainMenu.Build()
this._mmHLItemBorder = new TBorder()
this._mmHLItemBorder._top ='1px navy solid'
this._mmHLItemBorder._right ='1px navy solid'
this._mmHLItemBorder._bottom ='1px navy solid'
this._mmHLItemBorder._left ='1px navy solid'
this._mmItemTextColorClick = 'white'
this._mmItemBackColorClick = '#9ca972'
this._mmItemBorderClick = new TBorder()
this._mmItemBorderClick._top ='1px navy solid'
this._mmItemBorderClick._right ='1px navy solid'
this._mmItemBorderClick._bottom ='1px navy solid'
this._mmItemBorderClick._left ='1px navy solid'
this._popBack = new TBackground()
this._popBack._color = 'whitesmoke'
this._popBack._image = 'url("xp.gif")'
this._popBack._repeat = 'repeat-y'
this._popBorder = new TBorder()
this._popBorder._top = '1px black solid'
this._popBorder._right = '1px black solid'
this._popBorder._bottom = '1px black solid'
this._popBorder._left = '1px black solid'
this._createShadow = true
this._shadowColor = '#c0c0c0'
this._shadowDistance = 10 //in pixel
this._timeOut = 2000 //in milliseconds
}
function TSeparator()
{
this._align = 'center' //available value: 'left','center','right'
this._width = 200 //in pixel
this._margin = "0px 0px 0px 0px"; //top right bottom left margin --> dioverwrite
this._border = new TBorder() //_left and _right --> tidak kepake
this._border._top = '1px black solid'
this._border._bottom = '1px white solid'
}
function TFont()
{
this._family = 'arial,times,sans-serif'
this._size = '8pt'
}
function TBackground()
{
this._image = 'none'
this._repeat = 'no-repeat'
this._color = 'transparent'
this._position = 'top left'
}
function TExpandIcon()
{
this._symbol = '►'
this._font = new TFont()
this._font._size = '6pt'
}
//Border yapıcı
function TBorder()
{
this._top='1px black solid'
this._right ='1px black solid'
this._bottom ='1px black solid'
this._left='1px black solid'
}
function BuildMenu()
{
var result =""
var level = -1
_params._mmPosition = this._position
_params._mmItemBorder._top = this._innerBorder._top
_params._mmItemBorder._right = this._innerBorder._right
_params._mmItemBorder._bottom = this._innerBorder._bottom
_params._mmItemBorder._left = this._innerBorder._left
result += BuildStyle()
result += this.Draw(level++)
level++
for(var i=0;i -1)
{
for(var i=0;i -1)
{
//Gölge
if(_params._createShadow)
{
result += '
'
}
result += '<div class="TPopUp" id="'+this._id+'">'
for(var i=0;i -1)
{
result += ''
result += '<table class="TPopUpItem" cellspacing="0" cellpadding="2"'
result += ' onmouseover="onPopItemMOver(event,this,\''+this._items[i]._id+'\','+level+')"'
result += ' onmouseout="onPopItemMOut(event,this,\''+this._items[i]._id+'\')"'
result +=' id="pr_'+this._items[i]._id+'"><tr>'+this._items[i]._icon+'[td]'+this._items[i]._label+'[/td][td class="TExpand"]'+_params._expandIcon._symbol+'[/td]'
}
else
{
result += ''
result += '[table class="TPopUpItem" cellspacing="0" cellpadding="2"'
result += ' onmouseover="onPopItemMOver(event,this,\'\','+level+')"'
result += ' onmouseout="onPopItemMOut(event,this,\'\')"'
result += this._items[i]._eClick
result +='][tr]'+this._items[i]._icon+'[td]'+this._items[i]._label+'[/td]'
}
result += '[/tr][/table]'
result += '
'
}
else
{
if(_browser._name == 'IE')
result +='
'
else
result +='
'
}
}
result +='
'
}
return result
}
//global
function AddItem(popMenu)
{
this._itemIndex++
this._items[this._itemIndex] = popMenu
this._items[this._itemIndex]._parent = popMenu._id
}
//global
function InitPopMenu(popMenu,zIndex)
{
if(popMenu._itemIndex > -1)
{
for(var i=0;i -1)
{
var pr_el = document.getElementById('pr_'+popMenu._items[i]._id)
var el = document.getElementById(popMenu._items[i]._id)
popMenu._items[i]._top = popMenu._top + pr_el.offsetTop
popMenu._items[i]._left = popMenu._left + _params._width - 3
el.style.top = popMenu._items[i]._top +'px'
el.style.left = popMenu._items[i]._left + 'px'
el.style.width =_params._width
zIndex++
el.style.zIndex = zIndex
//Gölge
if(_params._createShadow)
{
var sh_el = document.getElementById('sh_'+popMenu._items[i]._id)
sh_el.style.top= popMenu._items[i]._top + _params._shadowDistance + 'px'
sh_el.style.left= popMenu._items[i]._left + _params._shadowDistance + 'px'
sh_el.style.width= el.offsetWidth
sh_el.style.height= el.offsetHeight
sh_el.style.backgroundColor = _params._shadowColor
}
InitPopMenu(popMenu._items[i],zIndex)
}
}
}
}
//global
function BuildPopUpMenu(popMenu,level)
{
var result = ""
level++
for(var i=0;i=index;i--)
{
var ID = RegisterTriggerPopID[i]
var el = document.getElementById(ID)
if(el.className == "TMenuItem")
{
el.style.backgroundColor=_params._mmItemBackColor
el.style.color = _params._mmItemTextColor
el.style.borderTop= _params._mmItemBorder._top
el.style.borderRight= _params._mmItemBorder._right
el.style.borderBottom= _params._mmItemBorder._bottom
el.style.borderLeft= _params._mmItemBorder._left
}
else
{
var IDLen = ID.length
var tableID = 'pr_'+ ID.substr(3,IDLen)
var elTable = document.getElementById(tableID)
el.className = "TPopUpItem"
elTable.style.color =_params._itemTextColor
}
RegisterTriggerPopID[i] = null
}
RegisterTriggerPopIndex = index - 1
}
}
function removeTriggerPopIDByIndex(index)
{
if(RegisterTriggerPopIndex > -1 && index > -1)
{
for(var i=RegisterTriggerPopIndex;i>=index;i--)
{
var ID = RegisterTriggerPopID[i]
var el = document.getElementById(ID)
if(el.className == "TMenuItem")
{
el.style.backgroundColor=_params._mmItemBackColor
el.style.color = _params._mmItemTextColor
el.style.borderTop= _params._mmItemBorder._top
el.style.borderRight= _params._mmItemBorder._right
el.style.borderBottom= _params._mmItemBorder._bottom
el.style.borderLeft= _params._mmItemBorder._left
}
else
{
var IDLen = ID.length
var tableID = 'pr_'+ ID.substr(3,IDLen)
var elTable = document.getElementById(tableID)
el.className = "TPopUpItem"
elTable.style.color =_params._itemTextColor
}
RegisterTriggerPopID[i] = null
}
RegisterTriggerPopIndex = index - 1
}
}
function removeAllTriggerPopID()
{
if(RegisterTriggerPopIndex > -1)
{
for(var i=RegisterTriggerPopIndex;i>=0;i--)
{
var ID = RegisterTriggerPopID[i]
var el = document.getElementById(ID)
if(el.className == "TMenuItem")
{
if(MainMenuClick)
{
el.style.backgroundColor=_params._mmItemBackColor
el.style.color = _params._mmItemTextColor
el.style.borderTop= _params._mmItemBorder._top
el.style.borderRight= _params._mmItemBorder._right
el.style.borderBottom= _params._mmItemBorder._bottom
el.style.borderLeft= _params._mmItemBorder._left
}
}
else
{
var IDLen = ID.length
var tableID = 'pr_'+ ID.substr(3,IDLen)
var elTable = document.getElementById(tableID)
el.className = "TPopUpItem"
elTable.style.color =_params._itemTextColor
}
RegisterTriggerPopID[i] = null
}
RegisterTriggerPopIndex = - 1
}
}
function findRegisteredPopUpMenuID(elmID)
{
var result=-1
for(var i=0;i-1)
{
for(var i=RegisterPopUpMenuIndex;i>=index;i--)
{
var ID = RegisterPopUpMenuID[i]
document.getElementById(ID).style.visibility="hidden"
if(_params._createShadow)
document.getElementById('sh_'+ID).style.visibility="hidden"
}
RegisterPopUpMenuIndex = index - 1
}
}
function hidePopUpMenuByIndex(index)
{
if(RegisterPopUpMenuIndex >= index)
{
for(var i=RegisterPopUpMenuIndex;i>=index;i--)
{
var ID = RegisterPopUpMenuID[i]
document.getElementById(ID).style.visibility="hidden"
if(_params._createShadow)
document.getElementById('sh_'+ID).style.visibility="hidden"
}
RegisterPopUpMenuIndex = index-1
}
}
function hideAllPopUpMenu()
{
var index = RegisterPopUpMenuIndex
if(index > -1)
{
for(i=index;i>=0;i--)
{
var ID = RegisterPopUpMenuID[i]
document.getElementById(ID).style.visibility="hidden"
if(_params._createShadow)
document.getElementById('sh_'+ID).style.visibility="hidden"
}
}
RegisterPopUpMenuIndex = -1
}
//end: basit fonksiyonlar
var triggerMenu
function triggerHideAll()
{
triggerMenu = window.setTimeout('hideAll()',_params._timeOut)
}
function clearTriggerHideAll()
{
window.clearTimeout(triggerMenu)
}
function hideAll()
{
hideAllPopUpMenu()
removeAllTriggerPopID()
MainMenuClick = false
}