/** * @version $Id: menu.js 475 2008-06-27 10:50:16Z piotrj $ * @package frontend * @author piotrj */ /**-------------------------------------------------------------------- * ponizej kod dla menu rozwijanego *---------------------------------------------------------------------*/ var menusToHide = ""; var lastMenu = ""; var lastOff = ""; var currentMenu = ""; var timeOutMenu = 0; var timeOutSelect = 0; /** * Opis: funkcja pokazuje menu rozwijane */ function showMenu( a_id, a_zind ) { if( ( a_id == lastMenu ) || ( a_id == currentMenu ) ) { clearTimeout( timeOutMenu ); } else { currentMenu = a_id; hideMenu( lastMenu, 0 ); } minLeft = 0; maxLeft = 720; sTab = a_id.split( "_" ); num = sTab.length-1; i = 0; sId = "" + sTab[i] + ""; firstMenu = $( "" + sTab[0] + "" ); przesuniecie = firstMenu.offsetLeft; if( ( przesuniecie + 292 ) > maxLeft ) { nextEl = 140; } else { nextEl = 0; } back = 0; while( i <= num ) { k = 0; subM = "" + sId + "_m" + k + ""; while( oMenu = $( subM ) ) { oMenu.style.display = "block"; k++; subM = "" + sId + "_m" + k + ""; } mMenu = $( "" + sId + "" ); posLeft = mMenu.offsetLeft; if( sId.indexOf( "_" ) != -1 ) { addTopOffset = 12; } else { addTopOffset = 20; } if( hMenu = $( ""+sId+"h" ) ) { // //hMenu.style.display = "block"; // hMenu.style.top = "" + ( mMenu.offsetTop + addTopOffset ) + "px"; przesun = przesuniecie; if( i == 1 ) { nextElem = nextEl; } else { nextElem = 0; } if( ( przesuniecie + nextElem + 152 ) > maxLeft ) { if( i == 0 ) { //back = maxLeft - przesuniecie; back = przesuniecie + 150 - maxLeft; przesuniecie -= back; } else { przesuniecie -= 140; } } else// if( i > 0 ) { przesuniecie += 140; } if( i > 0 ) { if( ( przesun + nextElem + 152 ) > maxLeft ) { hMenu.style.left = "" + ( posLeft - 140 ) + "px"; } else { hMenu.style.left = "" + ( posLeft + 140 ) + "px"; } } else { if( ( przesun + 152 ) > maxLeft ) { hMenu.style.left = "" + ( posLeft - back ) + "px"; } else { hMenu.style.left = "" + ( posLeft + 0 ) + "px"; } } } i++; if( i <= num ) { sId += "_" + sTab[i] + ""; } } if( a_id != currentMenu ) { lastMenu = currentMenu; } colorMenu( a_id, "#c0d8e9" ); currentMenu = a_id; manageSelects(); } /** * Opis: funkcja ukrywa menu rozwijane */ function setHideMenu( a_id, a_zind ) { if( a_id == currentMenu ) { clearTimeout( timeOutMenu ); timeOutMenu = setTimeout( "hideMenu( '" + a_id + "', 0 )", 300 ); } lastOff = a_id; lastMenu = currentMenu; colorMenu( a_id, "#ffffff" ); currentMenu = ""; } /** * Opis: funkcja ukrywa menu rozwijane */ function hideMenu( a_id, a_num ) { menusToHide = ""; //hideAllElements(); if( currentMenu == "" ) { sTabC = a_id.split( "_" ); cLength = sTabC.length-1; num = 0; sId = sTabC[num]; while( num <= cLength ) { hideElements( sId ); num++; if( num <= cLength ) { sId += "_" + sTabC[num]; } } } else { sTabC = a_id.split( "_" ); sTabL = currentMenu.split( "_" ); cLength = sTabC.length-1; lLength = sTabL.length-1; sId = ""; if( cLength >= lLength ) { num = cLength; } else { num = lLength; } for( i = 0; i <= num; i++ ) { if( cLength >= lLength ) { if( i == 0 ) { sId = "" + sTabC[i]; } else { sId += "_" + sTabC[i]; } if( i <= lLength ) { if( sTabL[i] != sTabC[i] ) { hideElements( sId ); } } else { hideElements( sId ); } } else { if( i <= cLength ) { if( i == 0 ) { sId = "" + sTabC[i]; } else { sId += "_" + sTabC[i]; } if( sTabL[i] != sTabC[i] ) { hideElements( sId ); } } else { i = num + 1; } } } } lastMenu = ""; //timeOutSelect = setTimeout( "manageSelects()", 100 ); manageSelects(); //alert( " m0h: "+$("m0h").style.display+";\n m0_m3h: "+$("m0_m3h").style.display+";\n m0_m3_m0h: "+$("m0_m3_m0h").style.display+";\n" ); } /** * Opis: funkcja ukrywa menu rozwijane */ function hideElements( a_id ) { k = 0; subM = "" + a_id + "_m" + k + ""; while( oMenu = $( subM ) ) { oMenu.style.display = "none"; k++; subM = "" + a_id + "_m" + k + ""; } /*if( oMenu = $( a_id+"h" ) ) { oMenu.style.display = "none"; }*/ } /** * Opis: funkcja ukrywa menu rozwijane */ function hideAllElements() { if( oChildren = $$( '.dropChild' ) ) { for( var i = 0; i < oChildren.length; i++ ) { if( id = oChildren[i].id ) { oChildren[i].style.display = 'none'; } } } } /** * Opis: funkcja ukrywa menu rozwijane */ function colorMenu( a_id, a_color ) { sTab = a_id.split( "_" ); num = sTab.length-1; i = 0; sId = "" + sTab[i] + ""; while( i <= num ) { mMenu = $( "" + sId + "" ); if( i > 0 ) { mMenu.style.backgroundColor = a_color; } i++; if( i <= num ) { sId += "_" + sTab[i] + ""; } } //clearTimeout( timeOutSelect ); manageSelects(); } /** * Opis: funkcja ukrywa/odkrywa listy rozwijane */ function manageSelects() { clearTimeout( timeOutSelect ); if( currentMenu == "" ) { var vis = "visible"; } else { var vis = "hidden"; } if( oSel = document.getElementsByTagName("SELECT") ) { for( i = 0; i < oSel.length; i++ ) { if( ( oSel[i].id != 'tbSelMonth' ) && ( oSel[i].id != 'tbSelYear' ) ) { oSel[i].style.visibility = vis; } } } } /** * Opis: funkcja powoduje, ze menu staje sie przezroczyste */ function setMenuOpaque() { if( oDiv = document.getElementsByTagName("DIV") ) { for( i = 0; i < oDiv.length; i++ ) { if( oDiv[i].className == "dropdown" ) { oDiv[i].style.filter = "alpha(opacity=90)"; //oDiv[i].style.-moz-opacity = "0.5"; oDiv[i].style.opacity = "0.9"; } } } } /**-------------------------------------------------------------------*/