[vhffs-dev] [428] Forgot to add js file for vhffs-ng theme

[ Thread Index | Date Index | More vhffs.org/vhffs-dev Archives ]


Revision: 428
Author:   beuss
Date:     2007-02-01 11:24:28 +0000 (Thu, 01 Feb 2007)

Log Message:
-----------
Forgot to add js file for vhffs-ng theme

Added Paths:
-----------
    branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng/js/
    branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng/js/browserdetect.js
    branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng/js/menu.js


Added: branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng/js/browserdetect.js
===================================================================
--- branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng/js/browserdetect.js	2007-02-01 09:31:36 UTC (rev 427)
+++ branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng/js/browserdetect.js	2007-02-01 11:24:28 UTC (rev 428)
@@ -0,0 +1,98 @@
+// Browser Detect Lite  v2.1.4
+// http://www.dithered.com/javascript/browser_detect/index.html
+// modified by Chris Nott (chris@xxxxxxxxxxxxxxxxxx - remove NOSPAM)
+
+
+function BrowserDetectLite() {
+   var ua = navigator.userAgent.toLowerCase(); 
+
+   // browser name
+   this.isGecko     = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
+   this.isMozilla   = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
+   this.isNS        = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
+   this.isIE        = ( (ua.indexOf('msie') != -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) ); 
+   this.isSafari    = (ua.indexOf('safari') != - 1);
+   this.isOpera     = (ua.indexOf('opera') != -1); 
+   this.isKonqueror = (ua.indexOf('konqueror') != -1 && !this.isSafari); 
+   this.isIcab      = (ua.indexOf('icab') != -1); 
+   this.isAol       = (ua.indexOf('aol') != -1); 
+   
+   // spoofing and compatible browsers
+   this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
+   this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
+   
+   // browser version
+   this.versionMinor = parseFloat(navigator.appVersion); 
+   
+   // correct version number
+   if (this.isNS && this.isGecko) {
+      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
+   }
+   else if (this.isIE && this.versionMinor >= 4) {
+      this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
+   }
+   else if (this.isMozilla) {
+      this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
+   }
+   else if (this.isSafari) {
+      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
+   }
+   else if (this.isOpera) {
+      if (ua.indexOf('opera/') != -1) {
+         this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera/') + 6 ) );
+      }
+      else {
+         this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera ') + 6 ) );
+      }
+   }
+   else if (this.isKonqueror) {
+      this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
+   }
+   else if (this.isIcab) {
+      if (ua.indexOf('icab/') != -1) {
+         this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab/') + 6 ) );
+      }
+      else {
+         this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab ') + 6 ) );
+      }
+   }
+   
+   this.versionMajor = parseInt(this.versionMinor); 
+   this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
+   
+   // dom support
+   this.isDOM1 = (document.getElementById);
+   this.isDOM2Event = (document.addEventListener && document.removeEventListener);
+   
+   // css compatibility mode
+   this.mode = document.compatMode ? document.compatMode : 'BackCompat';
+
+   // platform
+   this.isWin   = (ua.indexOf('win') != -1);
+   this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
+   this.isMac   = (ua.indexOf('mac') != -1);
+   this.isUnix  = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
+   this.isLinux = (ua.indexOf('linux') != -1);
+   
+   // specific browser shortcuts
+   this.isNS4x = (this.isNS && this.versionMajor == 4);
+   this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
+   this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
+   this.isNS4up = (this.isNS && this.versionMinor >= 4);
+   this.isNS6x = (this.isNS && this.versionMajor == 6);
+   this.isNS6up = (this.isNS && this.versionMajor >= 6);
+   this.isNS7x = (this.isNS && this.versionMajor == 7);
+   this.isNS7up = (this.isNS && this.versionMajor >= 7);
+   
+   this.isIE4x = (this.isIE && this.versionMajor == 4);
+   this.isIE4up = (this.isIE && this.versionMajor >= 4);
+   this.isIE5x = (this.isIE && this.versionMajor == 5);
+   this.isIE55 = (this.isIE && this.versionMinor == 5.5);
+   this.isIE5up = (this.isIE && this.versionMajor >= 5);
+   this.isIE6x = (this.isIE && this.versionMajor == 6);
+   this.isIE6up = (this.isIE && this.versionMajor >= 6);
+   
+   this.isIE4xMac = (this.isIE4x && this.isMac);
+}
+var browser = new BrowserDetectLite();
+

Added: branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng/js/menu.js
===================================================================
--- branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng/js/menu.js	2007-02-01 09:31:36 UTC (rev 427)
+++ branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng/js/menu.js	2007-02-01 11:24:28 UTC (rev 428)
@@ -0,0 +1,307 @@
+/*
+Author   : bieler batiste
+Company  : doSimple : http://www.dosimple.ch
+send me a mail for more informations : faden@xxxxxxxxxxxxxxxxxxxxxxx - remove ( PASDEPOURRIEL )
+
+Short javascript function to create and handle a CSS navigation menu
+
+Copyright (C) 2004  Bieler Batiste
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+// the timeout for the menu
+var timeout = 1000;
+
+// not very clean but simple
+// the function can be run in the HTML for faster display
+window.onload=initMenu;
+
+// creat timeout variables for list item
+// it's for avoid some warning with IE
+for( var i = 0; i < 100; i++ )
+{
+    eval("var timeoutli" + i + " = false;");
+}
+
+// this fonction apply the CSS style and the event
+function initMenu()
+{
+    // a test to avoid some browser like IE4, Opera 6, and IE Mac
+    if ( browser.isDOM1 
+    && !( browser.isMac && browser.isIE ) 
+    && !( browser.isOpera && browser.versionMajor < 7 )
+    && !( browser.isIE && browser.versionMajor < 5 ) )
+    {
+        // get some element
+        var menu = document.getElementById('menu'); // the root element
+        var lis = menu.getElementsByTagName('li'); // all the li
+        
+        // change the class name of the menu, 
+        // it's usefull for compatibility with old browser
+        menu.className='menu';
+        
+        // i am searching for ul element in li element
+        for ( var i=0; i<lis.length; i++ )
+        {
+            // is there a ul element ?
+            if ( lis.item(i).getElementsByTagName('ul').length > 0 )
+            {        
+                // improve IE key navigation
+                if ( browser.isIE )
+                {
+                    addAnEvent(lis.item(i),'keyup',show);
+                }
+                // link events to list item
+                addAnEvent(lis.item(i),'mouseover',show);
+                addAnEvent(lis.item(i),'mouseout',timeoutHide);
+                addAnEvent(lis.item(i),'blur',timeoutHide);
+                addAnEvent(lis.item(i),'focus',show);
+                
+                // add an id to list item
+                lis.item(i).setAttribute( 'id', "li"+i );
+            }
+        }
+    }
+}
+
+function addAnEvent( target, eventName, functionName )
+{
+    // apply the method to IE
+    if ( browser.isIE )
+    {
+        //attachEvent dont work properly with this
+        eval('target.on'+eventName+'=functionName');
+    }
+    // apply the method to DOM compliant browsers
+    else
+    {
+        target.addEventListener( eventName , functionName , true ); // true is important for Opera7
+    }
+}
+    
+// hide the first ul element of the current element
+function timeoutHide()
+{
+    // start the timeout
+    eval( "timeout" + this.id + " = window.setTimeout('hideUlUnder( \"" + this.id + "\" )', " + timeout + " );");
+}
+
+// hide the ul elements under the element identified by id
+function hideUlUnder( id )
+{   
+    document.getElementById(id).getElementsByTagName('ul')[0].style['visibility'] = 'hidden';
+}
+
+// show the first ul element found under this element
+function show()
+{
+    // show the sub menu
+    this.getElementsByTagName('ul')[0].style['visibility'] = 'visible';
+    var currentNode=this;
+    while(currentNode)
+    {
+            if( currentNode.nodeName=='LI')
+            {
+                currentNode.getElementsByTagName('a')[0].className = 'linkOver';
+            }
+            currentNode=currentNode.parentNode;
+    }
+    // clear the timeout
+    eval ( "clearTimeout( timeout"+ this.id +");" );
+    hideAllOthersUls( this );
+}
+
+// hide all ul on the same level of  this list item
+function hideAllOthersUls( currentLi )
+{
+    var lis = currentLi.parentNode;
+    for ( var i=0; i<lis.childNodes.length; i++ )
+    {
+        if ( lis.childNodes[i].nodeName=='LI' && lis.childNodes[i].id != currentLi.id )
+        {
+            hideUlUnderLi( lis.childNodes[i] );
+        }
+    }
+}
+
+// hide all the ul wich are in the li element
+function hideUlUnderLi( li )
+{
+    var as = li.getElementsByTagName('a');
+    for ( var i=0; i<as.length; i++ )
+    {
+        as.item(i).className="";
+    }
+    var uls = li.getElementsByTagName('ul');
+    for ( var i=0; i<uls.length; i++ )
+    {
+        uls.item(i).style['visibility'] = 'hidden';
+    }
+} 
+/*
+Author   : bieler batiste
+Company  : doSimple : http://www.dosimple.ch
+send me a mail for more informations : faden@xxxxxxxxxxxxxxxxxxxxxxx - remove ( PASDEPOURRIEL )
+
+Short javascript function to create and handle a CSS navigation menu
+
+Copyright (C) 2004  Bieler Batiste
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+// the timeout for the menu
+var timeout = 1000;
+
+// not very clean but simple
+// the function can be run in the HTML for faster display
+// window.onload=initMenu;
+
+// creat timeout variables for list item
+// it's for avoid some warning with IE
+for( var i = 0; i < 100; i++ )
+{
+    eval("var timeoutli" + i + " = false;");
+}
+
+// this fonction apply the CSS style and the event
+function initMenu()
+{
+    // a test to avoid some browser like IE4, Opera 6, and IE Mac
+    if ( browser.isDOM1 
+    && !( browser.isMac && browser.isIE ) 
+    && !( browser.isOpera && browser.versionMajor < 7 )
+    && !( browser.isIE && browser.versionMajor < 5 ) )
+    {
+        // get some element
+        var menu = document.getElementById('menu'); // the root element
+        var lis = menu.getElementsByTagName('li'); // all the li
+        
+        // change the class name of the menu, 
+        // it's usefull for compatibility with old browser
+        menu.className='menu';
+        
+        // i am searching for ul element in li element
+        for ( var i=0; i<lis.length; i++ )
+        {
+            // is there a ul element ?
+            if ( lis.item(i).getElementsByTagName('ul').length > 0 )
+            {        
+                // improve IE key navigation
+                if ( browser.isIE )
+                {
+                    addAnEvent(lis.item(i),'keyup',show);
+                }
+                // link events to list item
+                addAnEvent(lis.item(i),'mouseover',show);
+                addAnEvent(lis.item(i),'mouseout',timeoutHide);
+                addAnEvent(lis.item(i),'blur',timeoutHide);
+                addAnEvent(lis.item(i),'focus',show);
+                
+                // add an id to list item
+                lis.item(i).setAttribute( 'id', "li"+i );
+            }
+        }
+    }
+}
+
+function addAnEvent( target, eventName, functionName )
+{
+    // apply the method to IE
+    if ( browser.isIE )
+    {
+        //attachEvent dont work properly with this
+        eval('target.on'+eventName+'=functionName');
+    }
+    // apply the method to DOM compliant browsers
+    else
+    {
+        target.addEventListener( eventName , functionName , true ); // true is important for Opera7
+    }
+}
+    
+// hide the first ul element of the current element
+function timeoutHide()
+{
+    // start the timeout
+    eval( "timeout" + this.id + " = window.setTimeout('hideUlUnder( \"" + this.id + "\" )', " + timeout + " );");
+}
+
+// hide the ul elements under the element identified by id
+function hideUlUnder( id )
+{   
+    document.getElementById(id).getElementsByTagName('ul')[0].style['visibility'] = 'hidden';
+}
+
+// show the first ul element found under this element
+function show()
+{
+    // show the sub menu
+    this.getElementsByTagName('ul')[0].style['visibility'] = 'visible';
+    var currentNode=this;
+    while(currentNode)
+    {
+            if( currentNode.nodeName=='LI')
+            {
+                currentNode.getElementsByTagName('a')[0].className = 'linkOver';
+            }
+            currentNode=currentNode.parentNode;
+    }
+    // clear the timeout
+    eval ( "clearTimeout( timeout"+ this.id +");" );
+    hideAllOthersUls( this );
+}
+
+// hide all ul on the same level of  this list item
+function hideAllOthersUls( currentLi )
+{
+    var lis = currentLi.parentNode;
+    for ( var i=0; i<lis.childNodes.length; i++ )
+    {
+        if ( lis.childNodes[i].nodeName=='LI' && lis.childNodes[i].id != currentLi.id )
+        {
+            hideUlUnderLi( lis.childNodes[i] );
+        }
+    }
+}
+
+// hide all the ul wich are in the li element
+function hideUlUnderLi( li )
+{
+    var as = li.getElementsByTagName('a');
+    for ( var i=0; i<as.length; i++ )
+    {
+        as.item(i).className="";
+    }
+    var uls = li.getElementsByTagName('ul');
+    for ( var i=0; i<uls.length; i++ )
+    {
+        uls.item(i).style['visibility'] = 'hidden';
+    }
+} 
+


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/