phpBMS

Changeset 308 for trunk/phpbms/common

Show
Ignore:
Timestamp:
09/17/07 12:30:10 (5 years ago)
Author:
brieb
Message:

Implements #180 - ical format for event list.
Fixes #181 - repeating notes/task/events completely rewritten. All repeatable items will need to be recreated.
Fixes #182 - Cross platform menu problems
Reformatted CSS to be compliant
Re formatted list screen columns and groupings. 0.9 Will completely reenter these. Any administrtive changes will need to be reimplemented.
Implemented mochikit like javascript. This will be an ongoing conversion to make the system more stable and standards compliant.
Fixed minor bugs in recurring invoices.
Recoded help screen.

Location:
trunk/phpbms/common
Files:
4 added
2 removed
15 modified

Legend:

Unmodified
Added
Removed
  • trunk/phpbms/common/javascript/common.js

    r285 r308  
    3636 +-------------------------------------------------------------------------+ 
    3737*/ 
    38  
    39 document.getElementsByClassName = function(clsName){ 
    40     var retVal = new Array(); 
    41     var elements = document.getElementsByTagName("*"); 
    42     for(var i = 0;i < elements.length;i++){ 
    43         if(elements[i].className.indexOf(" ") >= 0){ 
    44             var classes = elements[i].className.split(" "); 
    45             for(var j = 0;j < classes.length;j++){ 
    46                 if(classes[j] == clsName) 
    47                     retVal.push(elements[i]); 
     38if (typeof(phpBMS) == 'undefined') { 
     39    phpBMS = {}; 
     40} 
     41 
     42 
     43 
     44/* BASE OBJECT FUNCTION -------------------------------------------------------- */ 
     45/* ----------------------------------------------------------------------------- */ 
     46if (typeof(phpBMS.base) == 'undefined') { 
     47    phpBMS.base = {}; 
     48} 
     49 
     50phpBMS.base.update = function (self, obj/*, ... */) { 
     51    if (self === null) { 
     52        self = {}; 
     53    } 
     54    for (var i = 1; i < arguments.length; i++) { 
     55        var o = arguments[i]; 
     56        if (typeof(o) != 'undefined' && o !== null) { 
     57            for (var k in o) { 
     58                self[k] = o[k]; 
    4859            } 
    4960        } 
    50         else if(elements[i].className == clsName) 
    51             retVal.push(elements[i]); 
    5261    } 
    53     return retVal; 
    54 } 
     62    return self; 
     63}; 
     64 
     65phpBMS.base.update(phpBMS.base, { 
     66 
     67        loadXMLDoc: function(url,readyStateFunction,async) { 
     68         
     69                if(!readyStateFunction) 
     70                        readyStateFunction= null; 
     71         
     72                if(!async) 
     73                        async = false; 
     74                 
     75                // branch for native XMLHttpRequest object 
     76                if (window.XMLHttpRequest) { 
     77                        req = new XMLHttpRequest(); 
     78                        if(req.onreadystatechange && readyStateFunction) 
     79                                req.onreadystatechange = readyStateFunction; 
     80                        req.open("GET", url, async); 
     81                        req.send(null); 
     82                // branch for IE/Windows ActiveX version 
     83                } else if (window.ActiveXObject) { 
     84                        req = new ActiveXObject("Microsoft.XMLHTTP"); 
     85                        if (req) { 
     86                                if(readyStateFunction) req.onreadystatechange = readyStateFunction; 
     87                                req.open("GET", url, async); 
     88                                req.send(); 
     89                        } 
     90                } 
     91        },//end function loadXMLDoc 
     92         
     93    nameFunctions: function (namespace) { 
     94        var base = namespace.NAME; 
     95        if (typeof(base) == 'undefined') { 
     96            base = ''; 
     97        } else { 
     98            base = base + '.'; 
     99        } 
     100        for (var name in namespace) { 
     101            var o = namespace[name]; 
     102            if (typeof(o) == 'function' && typeof(o.NAME) == 'undefined') { 
     103                try { 
     104                    o.NAME = base + name; 
     105                } catch (e) { 
     106                    // pass 
     107                } 
     108            } 
     109        } 
     110    }//endfunction       
     111         
     112});//end update 
     113 
     114phpBMS.base.EXPORT = [ 
     115        "update", 
     116        "nameFunctions", 
     117        "loadXMLDoc" 
     118]; 
     119 
     120phpBMS.base._exportFunctions = function (globals, module) { 
     121 
     122        var all = module.EXPORT; 
     123         
     124    for (var i = 0; i < all.length; i++) { 
     125        globals[all[i]] = module[all[i]]; 
     126    } 
     127}; 
     128 
     129phpBMS.base.__new__ = function () { 
     130        var m = this; 
     131         
     132        m.nameFunctions(this); 
     133} 
     134 
     135phpBMS.base.__new__(); 
     136phpBMS.base._exportFunctions(this,phpBMS.base); 
     137 
     138/* DOM HANDLEING --------------------------------------------------------------- */ 
     139/* ----------------------------------------------------------------------------- */ 
     140if (typeof(phpBMS.dom) == 'undefined') { 
     141    phpBMS.dom = {}; 
     142} 
     143 
     144phpBMS.base.update(phpBMS.dom, { 
     145         
     146        getObjectFromID: function(id){ 
     147                var theObject; 
     148                 
     149                if(document.getElementById) 
     150                        theObject=document.getElementById(id); 
     151                else 
     152                        theObject=document.all[id]; 
     153                return theObject; 
     154        },//end method 
     155         
     156         
     157        getElementsByClassName: function(clsName){ 
     158                var retVal = new Array(); 
     159                var elements = document.getElementsByTagName("*"); 
     160                for(var i = 0;i < elements.length;i++){ 
     161                        if(elements[i].className.indexOf(" ") >= 0){ 
     162                                var classes = elements[i].className.split(" "); 
     163                                for(var j = 0;j < classes.length;j++){ 
     164                                        if(classes[j] == clsName) 
     165                                                retVal.push(elements[i]); 
     166                                } 
     167                        } 
     168                        else if(elements[i].className == clsName) 
     169                                retVal.push(elements[i]); 
     170                } 
     171                return retVal; 
     172        }//endMethod     
     173 
     174})//end update 
     175 
     176phpBMS.dom.EXPORT = [ 
     177        "getObjectFromID", 
     178        "getElementsByClassName" 
     179]; 
     180phpBMS.dom.__new__ = function (win) { 
     181        var m = phpBMS.base; 
     182    this._document = document; 
     183    this._window = win; 
     184         
     185        m.nameFunctions(this); 
     186} 
     187 
     188phpBMS.dom.__new__(this); 
     189phpBMS.base._exportFunctions(this,phpBMS.dom); 
     190 
     191 
     192/* EVENT SIGNALING ------------------------------------------------------------- */ 
     193/* ----------------------------------------------------------------------------- */ 
     194if (typeof(phpBMS.signal) == 'undefined') { 
     195    phpBMS.signal = {}; 
     196} 
     197 
     198phpBMS.signal._observers = []; 
     199 
     200phpBMS.signal.e = function (src, e) { 
     201    this._event = e || window.event; 
     202    this._src = src; 
     203}; 
     204 
     205phpBMS.base.update(phpBMS.signal.e.prototype,{ 
     206         
     207            src: function () { 
     208        return this._src; 
     209    }, 
     210 
     211    event: function () { 
     212        return this._event; 
     213    }, 
     214 
     215    type: function () { 
     216        return this._event.type || undefined; 
     217    }, 
     218 
     219    target: function () { 
     220        return this._event.target || this._event.srcElement; 
     221    }, 
     222 
     223    relatedTarget: function () { 
     224        if (this.type() == 'mouseover') { 
     225            return (this._event.relatedTarget || 
     226                this._event.fromElement); 
     227        } else if (this.type() == 'mouseout') { 
     228            return (this._event.relatedTarget || 
     229                this._event.toElement); 
     230        } 
     231        return undefined; 
     232    }, 
     233         
     234    stop: function () { 
     235        this.stopPropagation(); 
     236        this.preventDefault(); 
     237    }, 
     238 
     239    stopPropagation: function () { 
     240        if (this._event.stopPropagation) { 
     241            this._event.stopPropagation(); 
     242        } else { 
     243            this._event.cancelBubble = true; 
     244        } 
     245    }, 
     246 
     247    preventDefault: function () { 
     248        if (this._event.preventDefault) { 
     249            this._event.preventDefault(); 
     250        } else { 
     251            this._event.returnValue = false; 
     252        } 
     253    } 
     254         
     255})//end subclass 
     256 
     257phpBMS.base.update(phpBMS.signal, { 
     258                                    
     259        _unloadCache: function(){ 
     260 
     261                var self = phpBMS.signal; 
     262        var observers = self._observers; 
     263         
     264        for (var i = 0; i < observers.length; i++) { 
     265            self._disconnect(observers[i]); 
     266        } 
     267         
     268        delete self._observers; 
     269         
     270        try { 
     271            window.onload = undefined; 
     272        } catch(e) { 
     273            // pass 
     274        } 
     275 
     276        try { 
     277            window.onunload = undefined; 
     278        } catch(e) { 
     279            // pass 
     280        } 
     281                 
     282        },//end method 
     283 
     284 
     285        _listener: function(srcObj, func){ 
     286        var E = phpBMS.signal.e; 
     287                return function (nativeEvent) { 
     288                        func.apply(srcObj, [new E(srcObj, nativeEvent)]); 
     289                }; 
     290        },//end method 
     291 
     292 
     293        connect: function(srcObj, eventName, func){ 
     294        var self = phpBMS.signal; 
     295                 
     296                var listener = self._listener(srcObj, func); 
     297                 
     298                if (srcObj.addEventListener) { 
     299                        srcObj.addEventListener(eventName.substr(2), listener, false); 
     300                }else if (srcObj.attachEvent) { 
     301                        srcObj.attachEvent(eventName, listener); // useCapture unsupported 
     302                }//end if 
     303                 
     304        var ident = [srcObj, eventName, listener]; 
     305        self._observers.push(ident); 
     306                
     307        return ident; 
     308                 
     309        }, 
     310 
     311 
     312        _disconnect: function(ident){ 
     313 
     314                var src = ident[0]; 
     315        var sig = ident[1]; 
     316        var listener = ident[2]; 
     317 
     318                if (src.removeEventListener) { 
     319            src.removeEventListener(sig.substr(2), listener, false); 
     320        } else if (src.detachEvent) { 
     321            src.detachEvent(sig, listener); // useCapture unsupported 
     322        }        
     323        }, 
     324 
     325 
     326        disconnect: function(ident){ 
     327        var self = phpBMS.signal; 
     328        var observers = self._observers; 
     329 
     330                self._disconnect(ident); 
     331                observers.splice(ident, 1); 
     332                 
     333                return true; 
     334        } 
     335         
     336})//end class 
     337 
     338phpBMS.signal.EXPORT = [ 
     339        "connect", 
     340        "disconnect" 
     341] 
     342 
     343phpBMS.signal.__new__ = function (win) { 
     344        var m = phpBMS.base; 
     345    this._document = document; 
     346    this._window = win; 
     347 
     348    try { 
     349        this.connect(window, 'onunload', this._unloadCache); 
     350    } catch (e) { 
     351        // pass: might not be a browser 
     352    } 
     353 
     354 
     355        m.nameFunctions(this); 
     356} 
     357 
     358phpBMS.signal.__new__(this); 
     359 
     360 
     361 
     362phpBMS.base._exportFunctions(this,phpBMS.signal); 
     363 
     364 
     365 
     366 
     367 
     368 
     369 
     370 
    55371 
    56372// php equivilant to htmlEntitties 
     
    78394} 
    79395 
    80 //Returns an object given an id 
    81 function getObjectFromID(id){ 
    82         var theObject; 
    83         if(document.getElementById) 
    84                 theObject=document.getElementById(id); 
    85         else 
    86                 theObject=document.all[id]; 
    87         return theObject; 
    88 } 
    89  
    90396 
    91397// This Function returns the Top position of an object 
     
    115421} 
    116422 
    117 function loadXMLDoc(url,readyStateFunction,async) { 
    118          
    119         if(!readyStateFunction) 
    120                 readyStateFunction= null; 
    121  
    122         if(!async) 
    123                 async = false; 
    124          
    125         // branch for native XMLHttpRequest object 
    126         if (window.XMLHttpRequest) { 
    127                 req = new XMLHttpRequest(); 
    128                 if(req.onreadystatechange && readyStateFunction) 
    129                         req.onreadystatechange = readyStateFunction; 
    130                 req.open("GET", url, async); 
    131                 req.send(null); 
    132         // branch for IE/Windows ActiveX version 
    133         } else if (window.ActiveXObject) { 
    134                 req = new ActiveXObject("Microsoft.XMLHTTP"); 
    135                 if (req) { 
    136                         if(readyStateFunction) req.onreadystatechange = readyStateFunction; 
    137                         req.open("GET", url, async); 
    138                         req.send(); 
    139                 } 
    140         } 
    141 } 
    142  
    143 function addEvent(obj, evType, fn){ 
    144  if (obj.addEventListener){ 
    145     obj.addEventListener(evType, fn, true); 
    146     return true; 
    147  } else if (obj.attachEvent){ 
    148     var r = obj.attachEvent("on"+evType, fn); 
    149     return r; 
    150  } else { 
    151     return false; 
    152  } 
    153 } 
    154 function removeEvent(obj, evType, fn, useCapture){ 
    155   if (obj.removeEventListener){ 
    156     obj.removeEventListener(evType, fn, useCapture); 
    157     return true; 
    158   } else if (obj.detachEvent){ 
    159     var r = obj.detachEvent("on"+evType, fn); 
    160     return r; 
    161   } else { 
    162     window.status=("Handler could not be removed"); 
    163   } 
    164 } 
    165423 
    166424function getChildHeights(theObj){ 
     
    194452} 
    195453 
     454 
    196455function disableSave(){ 
    197456        var tempButton=getObjectFromID("saveButton1"); 
     
    203462} 
    204463 
     464 
    205465function setLoginRefresh(){      
    206         window.setInterval(loadXMLDoc,(LOGIN_REFRESH*60*1000),(APP_PATH+"include/session.php"),null,false) 
    207 } 
    208  
    209  
     466        window.setInterval(doRefresh,(LOGIN_REFRESH*60*1000)); 
     467} 
     468 
     469function doRefresh(){ 
     470        loadXMLDoc((APP_PATH+"include/session.php"),null,false) 
     471        if(req.responseText != "") 
     472                alert("The session has timed out due to inactivity.  You will need to reload the page, and log back in."); 
     473} 
     474 
     475 
     476function initialiseGetData(){ 
     477  window.location.get = new Object(); 
     478  if (window.location.search && window.location.search.length > 1){ 
     479    var getDataArray = 
     480        window.location.search.substr(1).replace('+', ' ').split(/[&;]/g); 
     481    for (var i = 0; i < getDataArray.length; i++){ 
     482      var keyValuePair = getDataArray[i].split('='); 
     483      window.location.get[unescape(keyValuePair[0])] 
     484           = keyValuePair.length == 1 
     485           ? '' 
     486           : unescape(keyValuePair[1]); 
     487    } 
     488  } 
     489} 
    210490 
    211491/* DATE AND TIME --------------------------------------------------------------- */ 
     
    466746        centerModal(); 
    467747         
    468         addEvent(window, "resize", centerModal); 
    469         window.onscroll=centerModal; 
     748        showModal.listeners =[ 
     749                connect(window,"onresize",centerModal), 
     750                connect(window,"onscroll",centerModal)             
     751        ] 
    470752} 
    471753 
     
    476758 
    477759function cleanupModal(){ 
    478         removeEvent(window,"resize",centerModal,true); 
    479         window.onscroll=null; 
    480  
     760 
     761        for(var i=0; i<showModal.listeners.length; i++) 
     762                disconnect(showModal.listeners[i]) 
     763                 
    481764        document.body.removeChild(showModal.mask); 
    482765        document.body.removeChild(showModal.box); 
     766 
    483767        displaySelectBoxes(); 
    484768 
    485         showModal.mask=null; 
    486         showModal.box=null; 
     769        delete showModal.mask; 
     770        delete showModal.box;    
    487771} 
    488772 
     
    513797} 
    514798 
    515 function hideSelectBoxes() { 
    516         var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10); 
    517         if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1) {                
     799function hideSelectBoxes() {     
     800        if (typeof document.body.style.maxHeight == "undefined") { 
    518801                for(var i = 0; i < document.all.length; i++) { 
    519802                        if(document.all[i].tagName) 
     
    521804                                        document.all[i].style.visibility="hidden"; 
    522805                } 
    523         } 
     806        }        
    524807} 
    525808function displaySelectBoxes() { 
    526         var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10); 
    527         if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1) {                
     809        if (typeof document.body.style.maxHeight == "undefined") { 
    528810        for(var i = 0; i < document.all.length; i++) { 
    529811                if(document.all[i].tagName) 
     
    541823} 
    542824window.alert = function(txt) {modalAlert(txt);} 
     825 
     826/* OnLoad Listener --------------------------------------- */ 
     827/* ------------------------------------------------------- */ 
     828connect(window,"onload",function() { 
     829 
     830        spinner = new Image; 
     831        spinner.src = APP_PATH+"common/image/spinner.gif";               
     832 
     833         
     834         
     835         
     836})//end listner 
  • trunk/phpbms/common/javascript/login.js

    r285 r308  
    1 window.onload=function(){ 
     1connect(window,"onload", function(){ 
    22 
    33        var username=getObjectFromID("username"); 
     
    1919                sqlLinks[sqlLinks.length]=sqlbttn; 
    2020         
    21                 var sqlAccordion = new fx.Accordion(sqlLinks, sqlDivs, {opacity: true, duration:250, onComplete:function(){switchSqlButtons()}}); 
     21                var sqlAccordion = new fx.Accordion(sqlLinks, sqlDivs, {opacity: true, duration:250}); 
    2222        } 
    2323 
    2424        username.focus();                
    25 } 
    26  
    27 function switchSqlButtons(){ 
    28         var sqlbutton=getObjectFromID("moreinfoButton"); 
    29         if (sqlbutton.className=="graphicButtons buttonUp") 
    30                 sqlbutton.className="graphicButtons buttonDown" 
    31         else 
    32                 sqlbutton.className="graphicButtons buttonUp"; 
    33 } 
     25}) 
  • trunk/phpbms/common/javascript/menu.js

    r215 r308  
    3737*/ 
    3838 
    39 function showHelp(){ 
    40         var theURL=APP_PATH+"help/index.php"; 
    41         loadXMLDoc(theURL,null,false); 
    42         showModal(req.responseText,"phpBMS Help Resources",550); 
     39menu = { 
     40         
     41        subMenuArray: Array(), 
     42         
     43        showHelp: function(){ 
     44                var theURL = APP_PATH + "help/index.php"; 
    4345 
    44         var helpToggles = document.getElementsByClassName("helpLinks"); 
    45         var helpStuff = document.getElementsByClassName("helpDivs"); 
     46                loadXMLDoc(theURL,null,false); 
     47                showModal(req.responseText,"phpBMS Help Resources",550); 
     48        },//endmethod 
    4649         
    47         var helpFX = new fx.Accordion(helpToggles, helpStuff, {height:true, opacity:false, duration:400}); 
    48                 helpFX.showThisHideOpen(helpStuff[0]); 
     50         
     51        checkExpand: function(e){ 
     52                srcObj = e.src(); 
     53                                 
     54                var i,tempDiv; 
     55                 
     56                var showid = srcObj.id.substring(4); 
     57                 
     58                var doswitch = false; 
     59                 
     60                for(i=0;i<menu.subMenuArray.length;i++){ 
     61                        tempdiv=getObjectFromID("submenu"+menu.subMenuArray[i]); 
     62                        if(tempdiv.style.display=="block" && menu.subMenuArray[i]!=showid) 
     63                                doswitch=true; 
     64                } 
     65                if(doswitch) 
     66                        menu.expandMenu(e); 
    4967 
    50 } 
     68        },//end method 
     69         
     70         
     71        expandMenu: function(e){ 
     72                srcObj = e.src(); 
     73                                 
     74                var i; 
     75                var tempdiv; 
     76                var tempMenu; 
     77                var showid = srcObj.id.substring(4); 
     78                 
     79                var specificdiv = getObjectFromID("submenu"+showid); 
    5180 
    52 function checkExpand(theitem){ 
    53         var i,tempDiv; 
    54         var showid=theitem.id.substring(4); 
    55         var doswitch=false; 
    56         for(i=0;i<subMenuArray.length;i++){ 
    57                 tempdiv=getObjectFromID("submenu"+subMenuArray[i]); 
    58                 if(tempdiv.style.display=="block" && subMenuArray[i]!=showid) 
    59                         doswitch=true; 
    60         } 
    61         if(doswitch) 
    62                 expandMenu(theitem); 
     81                if(specificdiv.style.display) 
     82                        if(specificdiv.style.display=="block"){ 
     83                                specificdiv.style.display="none"; 
     84                                srcObj.className = "topMenus"; 
     85                                displaySelectBoxes(); 
     86                                e.stop();                                
     87                                return false; 
     88                        }//endif 
    6389         
    64 } 
     90                for(i=0;i<menu.subMenuArray.length;i++){ 
     91                        if(menu.subMenuArray[i]!=showid){ 
     92                                tempdiv=getObjectFromID("submenu"+menu.subMenuArray[i]); 
     93                                tempdiv.style.display="none"; 
     94                                 
     95                                tempMenu = getObjectFromID("menu"+menu.subMenuArray[i]); 
     96                                tempMenu.className = "topMenus"; 
     97                        }//endif 
     98                }//endfor 
     99                 
     100                var theMenuUL = getObjectFromID("menuBar") 
     101                for(i=0;i<theMenuUL.childNodes.length;i++){ 
     102                        if(theMenuUL.childNodes[i].tagName) 
     103                                if(theMenuUL.childNodes[i].tagName == "LI"){ 
     104                                        if(theMenuUL.childNodes[i].childNodes.length) 
     105                                                if(theMenuUL.childNodes[i].childNodes[0].className == "hovered") 
     106                                                        theMenuUL.childNodes[i].childNodes[0].className = ""; 
     107                                } 
     108                                 
     109                } 
     110                srcObj.className = "topMenus hovered"; 
     111                 
     112                var thetop=getTop(srcObj); 
     113                var theleft=getLeft(srcObj); 
     114                specificdiv.style.top=(thetop+srcObj.offsetHeight)+"px"; 
     115                specificdiv.style.left=(theleft-6)+"px"; 
     116                specificdiv.style.display="block"; 
     117                hideSelectBoxes(); 
    65118 
    66 function expandMenu(theitem){ 
    67         var i; 
    68         var tempdiv; 
    69         var showid=theitem.id.substring(4); 
    70         var specificdiv=getObjectFromID("submenu"+showid); 
    71         if(specificdiv.style.display) 
    72                 if(specificdiv.style.display=="block"){ 
    73                         specificdiv.style.display="none"; 
    74                         displaySelectBoxes(); 
    75                         return false; 
    76                 } 
     119                e.stop(); 
     120        }//end method                    
     121         
     122}//end class 
    77123 
    78         for(i=0;i<subMenuArray.length;i++){ 
    79                 if(subMenuArray[i]!=showid){ 
    80                         tempdiv=getObjectFromID("submenu"+subMenuArray[i]); 
    81                         tempdiv.style.display="none"; 
    82                 } 
    83         } 
    84         var thetop=getTop(theitem); 
    85         var theleft=getLeft(theitem); 
    86         specificdiv.style.top=(thetop+theitem.offsetHeight)+"px"; 
    87         specificdiv.style.left=(theleft-6)+"px"; 
    88         specificdiv.style.display="block"; 
    89         hideSelectBoxes() 
    90 } 
     124 
     125 
     126/* OnLoad Listener --------------------------------------- */ 
     127/* ------------------------------------------------------- */ 
     128connect(window,"onload",function() { 
     129        var topMenus = getElementsByClassName('topMenus'); 
     130         
     131        var subMenus = getElementsByClassName('submenuitems'); 
     132        for(var i=0; i<subMenus.length; i++) 
     133                menu.subMenuArray[menu.subMenuArray.length] = subMenus[i].id.substr(7); 
     134         
     135        for(var i=0; i<topMenus.length; i++){ 
     136                 
     137                connect(topMenus[i],"onmouseover",menu.checkExpand); 
     138                connect(topMenus[i],"onclick",menu.expandMenu); 
     139                 
     140        }//endfor 
     141})//end listner 
  • trunk/phpbms/common/javascript/moo/prototype.lite.js

    r121 r308  
    111111}; 
    112112 
    113 document.getElementsByClassName = function(className) { 
     113getElementsByClassName = function(className) { 
    114114        var children = document.getElementsByTagName('*') || document.all; 
    115115        var elements = []; 
  • trunk/phpbms/common/javascript/queryfunctions.js

    r285 r308  
    279279        selIDs= new Array(); 
    280280         
    281         theTable=getObjectFromID("queryresults").firstChild; 
    282         for(var i=0;i<theTable.childNodes.length;i++){ 
    283                 if(theTable.childNodes[i].className){ 
    284                         if(theTable.childNodes[i].className != "queryGroup"){ 
    285                                 theTable.childNodes[i].className=newClass+theTable.childNodes[i].className.charAt(theTable.childNodes[i].className.length-1); 
     281        var tbody = getObjectFromID("resultTbody"); 
     282        for(var i=0;i<tbody.childNodes.length;i++){ 
     283                if(tbody.childNodes[i].className){ 
     284                        if(tbody.childNodes[i].className != "queryGroup"){ 
     285                                tbody.childNodes[i].className=newClass+tbody.childNodes[i].className.charAt(tbody.childNodes[i].className.length-1); 
    286286                                if(!allornone) 
    287                                         selIDs[selIDs.length] = theTable.childNodes[i].id.substring(2); 
     287                                        selIDs[selIDs.length] = tbody.childNodes[i].id.substring(2); 
    288288                        } 
    289289                } 
  • trunk/phpbms/common/stylesheet/mozilla/base.css

    r219 r308  
    1919        padding-right:6px; 
    2020        padding-top:0px; 
     21        margin:0 15px; 
    2122} 
    2223#footer p{padding:0px;margin:0px; font-size:9px;} 
  • trunk/phpbms/common/stylesheet/mozilla/basics.css

    r197 r308  
    22/* $LastChangedDate$ */ 
    33 
    4 BODY { background: white url("image/back.png");  
    5         margin:0 15px; 
     4BODY {  
     5        background: white url("image/back.png");  
     6        margin:0; 
    67} 
     8 
    79BODY, P, TABLE, TD, FORM, INPUT, SELECT, TEXTAREA, OL, UL, LI, BUTTON {  
    810        font-size : 12px; 
    911        font-family : Arial,Helvitica,sans-serif; 
    10         color : black; } 
     12        color : black;  
     13} 
    1114         
    12 P,.fauxP{margin:0;padding:0 5px 10px;} 
     15P,.fauxP{ 
     16        margin:0; 
     17        padding:0 5px 10px; 
     18} 
     19 
    1320.alt{display:none;} 
    1421 
    15 UL,OL{margin:5px;padding-left:20px; margin-bottom:0px;} 
     22UL,OL{ 
     23        margin:5px; 
     24        padding-left:20px; 
     25        margin-bottom:0px; 
     26} 
     27 
    1628LI{margin-bottom:5px;} 
    1729 
    18 A {     color : #455372;  
     30A {      
     31        color : #455372;  
    1932        font-weight:bold;  
    2033        text-decoration:none; 
    2134} 
     35 
    2236A:Hover { text-decoration:underline;} 
  • trunk/phpbms/common/stylesheet/mozilla/boxes.css

    r288 r308  
    33 
    44fieldset,.bodyline,.box{  
    5         border: 1px #E4ECEC outset;  
    6         padding:0px; 
     5        border: 1px solid #ACB7C4;  
     6        padding:5px;             
    77        margin-bottom:5px; 
    88} 
    99.bodyline,#modalBox{ 
    1010        background:#E4ECEC url("image/bodyline.png") bottom left repeat-x; 
     11        margin-left:15px; 
     12        margin-right:15px; 
    1113} 
    1214 
     
    1416        clear:both; 
    1517        border-color:#CAD1D1; 
    16         border-style:solid; 
    17         padding:10px;margin-top:0px; 
     18        padding:10px; 
    1819} 
    1920 
    20 fieldset,.box{ 
    21         border-color:#ACB7C4; 
    22         border-width:1px; 
    23         border-style:solid; 
     21fieldset,.box{   
    2422        margin:3px 3px 7px 3px; 
    25         padding:5px;             
    2623} 
    27 fieldset{padding:8px;overflow:hidden;} 
     24 
     25fieldset{ 
     26        padding:8px; 
     27        overflow:hidden; 
     28} 
     29 
    2830.box{ 
    2931        background-color:#EFF9F9; 
    30         border:1px solid #CCCCCC;        
     32        border-color:#CCCCCC;    
    3133} 
  • trunk/phpbms/common/stylesheet/mozilla/forms.css

    r285 r308  
    6565.graphicButtons span{display:none} 
    6666 
     67.buttonInfo{background:url(image/button-info.png) 0 0 no-repeat;} 
     68.buttonIcal{background:url(image/button-ical.png) 0 0 no-repeat; width:27px;} 
    6769.buttonRew{background:url(image/button-rew.png) 0 0 no-repeat;} 
    6870.buttonCheck{background:url(image/button-check.png) 0 0 no-repeat;} 
  • trunk/phpbms/common/stylesheet/mozilla/menu.css

    r285 r308  
    22/* $LastChangedDate$ */ 
    33 
    4         #menu{ 
    5                 clear:both; 
    6                 padding:0px; 
    7                 margin:0 -15px 20px; 
    8                 background:url(image/menu.png); 
    9                 color:white; 
    10                 height:75px; 
    11         } 
    12         #menu a, #topMenu a:hover{color:white;} 
    13         #menu a{text-decoration:none;} 
    14         #menu a:hover{text-decoration:underline;} 
     4#menu{ 
     5        clear:both; 
     6        padding:0px; 
     7        background:url("image/menu.png") repeat-x; 
     8        color:white; 
     9        margin:0 0 20px; 
     10} 
    1511 
    16         #menu h1{ 
    17                 background:none; 
    18                 float:left; 
    19                 margin:0; 
    20                 padding:10px; 
    21                 padding-left:15px; 
    22                 font-weight:bold; 
    23                 font-size:20px; 
    24                 border:0; 
    25         } 
    26          
    27         #menuRighthand{ 
    28                 float:right; 
    29                 padding:14px 15px 0 0; 
    30         } 
     12#menu a, #topMenu a:hover{ 
     13        color:white; 
     14        text-decoration:none; 
     15} 
    3116 
    32         #menuBar { 
    33                 display:block; 
    34                 margin:0; 
    35                 clear:both; 
    36                 background:#697388 url("image/menubar.png") repeat-x; 
    37                 border-top:1px solid #8693ae; 
    38                 border-bottom:2px solid #444a58; 
    39                 text-transform:lowercase; 
    40                 padding:0 0 0 15px; 
    41                 height:27px; 
    42         } 
    43         #menuBar li{float:left;list-style-type:none;margin:0;padding:0;} 
    44         #menuBar a{ 
    45                 display:block; 
    46                 background-image: url("image/menulinks.png"); 
    47                 background-position:0px 0px; 
    48                 border-right:1px solid #5a6375; 
    49                 font-size:12px; 
    50                 color:white; 
    51                 padding:6px 15px; 
    52         } 
    53         #menuBar a:hover{  
    54                 background-position:0px 27px; 
    55                 text-decoration:none;  
    56                 background-color:#747F96; 
    57         } 
    58         #menuBar .submenuitems li{float:none;} 
    59         .submenusli{padding:0;margin:0;} 
    60         .submenuitems{ 
    61                 clear:left; 
    62                 display:none; 
    63                 margin-top:1px; 
    64                 padding:2px 2px 4px 2px; 
    65                 position:absolute; 
    66                 background-color:white; 
    67                 border:1px solid #999999; 
    68         } 
    69         #menuBar .submenuitems a{ 
    70                 border:0; 
    71                 background-image:none; 
    72                 margin:0px; 
    73                 display:block;  
    74                 padding:3px 25px 3px 10px; 
    75                 font-size:11px; 
    76                 color:#663366; 
    77                 white-space:nowrap; 
    78                 font-weight:normal; 
    79         } 
    80         #menuBar .submenuitems .menuSep {border-top:1px solid #CCCCCC; padding-top:3px;margin-top:3px;} 
    81          
    82         #menuBar .submenuitems a:hover{ 
    83                 text-decoration:none;  
    84                 background-color:#663366; 
    85                 color:white; 
    86         } 
    87          
    88         #statusmessage{ 
    89                 background:#0B63A2 url(image/statusm-right.png) bottom right no-repeat; 
    90                 margin:15px; 
    91                 margin-top:-20px; 
    92                 padding:0 5px 0 0; 
    93                 display:none; 
    94         } 
    95         #SMLeft{background:url(image/statusm-left.png) bottom left no-repeat;padding-bottom:5px;} 
    96         #SMText{ 
    97                 background:url("image/statusmessage.png") 7px 5px no-repeat; 
    98                 color:white;  
    99                 font-weight:bold;  
    100                 font-size:15px; 
    101                 padding: 5px 5px 0px 30px; 
    102         } 
     17#menu a:hover{ 
     18        text-decoration:underline; 
     19} 
    10320 
    104 /* ------ Help Page  ---- */     
    105 .helpLinks{ 
     21 
     22#menu h1{ 
     23        background:none; 
     24        float:left; 
    10625        margin:0; 
    107         cursor:pointer;font-size:13px;background:#EEEEEE url(image/button-moveupdn.png) 99% no-repeat; 
    108         padding:4px; 
    109         border-bottom:1px solid #BBBBBB;         
     26        padding:9px 10px 11px; 
     27        padding-left:15px; 
     28        font-weight:bold; 
     29        font-size:22px; 
     30        border:0; 
    11031} 
    111 .helpLinks:hover{background-color:#DDDDDD} 
    112 .helpDivs {background:white; margin:0 5px; border:1px solid #EEEEEE; border-top-width:0; border-bottom-width:0;} 
    113 .helpSectionDivs{height:280px; overflow:auto;padding:10px;} 
    11432 
     33#menuRighthand{ 
     34        float:right; 
     35        padding:14px 15px 0 0; 
     36} 
     37 
     38#menuBar { 
     39        background:#E4ECEC url("image/bodyline.png") bottom left repeat-x; 
     40        display:block; 
     41        clear:both; 
     42        text-transform:lowercase; 
     43        border-bottom:1px solid #ACB7C4; 
     44        margin:0; 
     45        padding:0 0 0 5px;       
     46        height:26px; 
     47} 
     48#menuBar li{ 
     49        display:block; 
     50        float:left; 
     51        list-style-type:none; 
     52        margin:0; 
     53        padding:0; 
     54} 
     55#menuBar a{ 
     56        display:block; 
     57        font-size:12px; 
     58        font-weight:normal; 
     59        color:black; 
     60        padding:6px 10px; 
     61        height:15px; 
     62        outline:none; 
     63} 
     64#menuBar a:hover, #menuBar .hovered{  
     65        text-decoration:none;  
     66        background-color:#663366; 
     67        color:white; 
     68} 
     69 
     70#menuBar .submenuitems li{float:none;} 
     71.submenusli{padding:0;margin:0;} 
     72.submenuitems{ 
     73        clear:left; 
     74        display:none; 
     75        padding:2px 2px 4px 2px; 
     76        margin-top:-1px; 
     77        position:absolute; 
     78        background-color:white; 
     79        border:1px solid #999999; 
     80} 
     81#menuBar .submenuitems a{ 
     82        border:0; 
     83        background-image:none; 
     84        margin:0px; 
     85        display:block;  
     86        padding:3px 25px 3px 15px; 
     87        font-size:11px; 
     88        color:black; 
     89        white-space:nowrap; 
     90        font-weight:normal; 
     91} 
     92#menuBar .submenuitems .menuSep {border-top:1px solid #AAAAAA; padding-top:3px;margin-top:3px;} 
     93 
     94#menuBar .submenuitems a:hover{ 
     95        text-decoration:none;  
     96        background-color:#663366; 
     97        color:white; 
     98} 
     99 
     100#statusmessage{ 
     101        background:#0B63A2 url(image/statusm-right.png) bottom right no-repeat; 
     102        margin:15px; 
     103        margin-top:-20px; 
     104        padding:0 5px 0 0; 
     105        display:none; 
     106} 
     107#SMLeft{background:url(image/statusm-left.png) bottom left no-repeat;padding-bottom:5px;} 
     108#SMText{ 
     109        background:url("image/statusmessage.png") 7px 5px no-repeat; 
     110        color:white;  
     111        font-weight:bold;  
     112        font-size:15px; 
     113        padding: 5px 5px 0px 30px; 
     114} 
     115 
     116/* ------ Help Page  ---- */ 
     117#helpBox{height:420px; overflow:auto; background:white} 
     118#helpBox h1{margin-top:20px;} 
     119#helpClose{width:70px} 
  • trunk/phpbms/common/stylesheet/mozilla/pages/notes.css

    r198 r308  
    2525#category{width:95%} 
    2626 
    27 #repeatoptions{display:inline} 
    28 .repeatWeekChecks{margin-right:10px;} 
    29 #rpmobdt{margin-bottom:5px;} 
    3027#content{width:99%} 
    3128 
     29#repeatDiv{clear:both;} 
     30.monthDays{width:30px;} 
     31.yearlyMonths{width:40px;} 
     32 
     33 
  • trunk/phpbms/common/stylesheet/mozilla/pages/snapshot.css

    r198 r308  
    22/* $LastChangedDate$ */ 
    33#systemMessageContainer{padding:10px;} 
    4 #systemMessageContainer h2{margin:0 0 5px 0;padding:0 0 0px 0;} 
    54.systemMessageLinks{font-size:12px; border-bottom:1px solid #DDDDDD; cursor:pointer; margin:5px 5px 0px; padding:3px;} 
    65.systemMessageLinks:hover{background-color:#DDDDDD} 
     
    87.systemMessages p{padding:8px;margin:0 5px 5px;background:white;} 
    98 
     9#tasksBox{vertical-align:top;padding:10px;} 
    1010 
     11h2{ 
     12        margin:3px 0 5px;  
     13        padding:0 0 4px;  
     14        border:0; 
     15        font-size:15px 
     16} 
     17 
     18#tasksBox h3, #invoiceBox h3, #clientBox h3{ 
     19        margin:0; 
     20        cursor:pointer;font-size:13px;background:#EEEEEE url("../image/section-down.png") 99% 3px no-repeat; 
     21        padding:4px; 
     22        border-bottom:1px solid #BBBBBB;         
     23} 
     24#invoiceBox h3, #clientBox h3{ 
     25        margin-bottom:10px; 
     26} 
     27 
     28#tasksBox h3:hover, #invoiceBox h3:hover, #clientBox h3:hover{background-color:#DDDDDD} 
     29 
     30.tasksDivs div{padding:5px 0 0;background:white;border-top:0;margin:0 5px;} 
     31.tasksDivs p{margin:0; padding:4px 4px 4px 8px; border-bottom:1px solid #EEEEEE; font-size:11px;} 
     32 
     33 
     34.tasksDivs a{font-weight:normal} 
     35 
     36.tasksDivs .private a{font-weight:bold} 
     37 
     38.tasksDivs .complete, .tasksDivs .complete a { 
     39        text-decoration:line-through; 
     40        color:#CCCCCC; 
     41} 
     42 
     43.tasksDivs .pastDue a{color:#FF0000;} 
     44 
     45#eventsBox #eventButtons{float:right; margin:0;padding:0;} 
    1146#eventsBox{vertical-align:top;padding:10px;} 
    12 #eventsBox h2{margin:0; padding:0} 
    13 #todaysDate{float:right;padding:2px 0 0 0;margin:0;} 
    14  
    15 #tasksBox{vertical-align:top;padding:10px;} 
    16 #tasksBox h2{margin:0 0 5px; padding:0} 
    17 #tasksBox h3{ 
    18         margin:0; 
    19         cursor:pointer;font-size:13px;background:#EEEEEE url(../image/button-moveupdn.png) 99% no-repeat; 
     47#eventsBox h2{margin:0; padding:4px 0 4px;} 
     48#eventsBox table{border-collapse:collapse;} 
     49#eventsBox td{padding:10px 5px; border-bottom:1px solid #DDDDDD; font-size:11px;} 
     50#eventsBox .eventDayName td{font-size:13px;background:#EEEEEE; 
     51        font-weight:bold; 
    2052        padding:4px; 
    21         border-bottom:1px solid #BBBBBB; 
    22          
    23 } 
    24 #tasksBox h3:hover{background-color:#DDDDDD} 
    25  
    26 .tasksDivs div{padding:5px 0;background:white;border-top:0;margin:0 5px;} 
    27 .tasksDivs p{margin:0; padding:4px 4px 4px 8px; border-bottom:1px dotted #EEEEEE;} 
    28  
    29 .task a,.taskCompleted a,.taskPastDue a,.taskPrivate a{ font-weight:normal;} 
    30 .taskPrivate a{ font-weight:bold;} 
    31  
    32 .taskCompleted { text-decoration:line-through; color:#CCCCCC;} 
    33 .taskCompleted a{color:#CCCCCC;} 
    34  
    35 .taskPastDue a{color:#FF0000;} 
    36  
    37 .eventDayName{font-weight:bold;font-size:13px; border-bottom:1px solid #BBBBBB; padding:3px;} 
    38 .event{padding:4px;padding-bottom:6px;} 
     53        border-bottom:1px solid #BBBBBB;} 
     54#eventsBox #today td{background:#DDDDDD} 
    3955 
    4056#bmsBox {padding:10px;} 
    41 #bmsBox button{display:block;float:right;margin:2px 2px 0 0;} 
     57#bmsBox .rightButtons{float:right;margin:2px 2px 0 0;} 
    4258#bmsBox h2{margin:0 0 4px;} 
  • trunk/phpbms/common/stylesheet/mozilla/queryresults.css

    r288 r308  
    55.row2{background-color:#D9DBE1;} 
    66 
    7 .dottedline { border-bottom: 2px #AAAAAA dotted;} 
    8  
    97.buttonSectionTitles,.buttonSection{border: 1px #666666 solid; border-bottom: 0;  
    108        font-size:11px; padding:1px; padding-bottom:0px;  
     
    1210.buttonSection{border-top:0;  padding-top:0; padding-bottom:1px;} 
    1311 
    14 .norecords {background-color:#DDDDDD; font-size:16px; padding:50px; font-weight:bold; border-bottom:1px solid #999999;} 
     12#queryTableContainer{ 
     13        margin:0 0 5px; 
     14        padding:0; 
     15        clear:both; 
     16        overflow:auto; 
     17} 
     18 
    1519 
    1620.querytable{  
    17         border-collapse:collapse; 
    18         margin:0 0 5px; 
    1921        clear:both; 
     22        border:1px solid #BBBBBB; 
     23        border-right-width:0; 
    2024} 
    2125 
    22 .querytable td, .queryrow1 td, .queryrow2 td{  
    23                                 border:1px solid #BBBBBB; 
    24                                 border-bottom-width:0; 
    25                                 border-top-width:0; 
    26                                 font-size: 11px; 
    27                                 padding:4px; 
    28                                 padding-bottom:2px; 
    29                         } 
     26.querytable td, .querytable th{  
     27        font-size: 11px; 
     28        padding:6px; 
     29        border-right:1px solid #BBBBBB; 
     30} 
     31.norecords td { 
     32        font-size:16px;  
     33        padding:20px;  
     34        font-weight:bold;  
     35        text-align:center; 
     36} 
     37 
    3038.querytable th{ 
     39        border-bottom:1px solid #BBBBBB; 
    3140        background:#7B8DA1; 
    32         border:1px solid #BBBBBB; 
    33         padding:3px 5px; 
     41        font-size:12px; 
    3442        color:white; 
    3543} 
    36  
    3744.querytable th A{color: white;} 
    3845.querytable th A:hover{color: white;} 
    3946 
    4047.queryGroup td{ 
    41         border:1px solid #BBBBBB; 
     48        background:#97A7BA; 
    4249        font-size: 14px;         
    4350        font-weight:bold; 
     51        border-bottom:1px solid #BBBBBB;         
    4452} 
    4553 
    46 .querytable td.queryfooter, .queryfooter{ 
     54.querytable .queryfooter td{ 
     55        border-top:1px solid #BBBBBB; 
    4756        white-space:nowrap; 
    4857        background:#DDDDDD; 
    49         border:1px solid #BBBBBB; 
    50         padding:5px; 
    5158} 
    5259 
    53 .qr1,.qr2{background-color:white; 
     60.qr1 td,.qr2 td{background-color:white; 
    5461                        cursor: pointer;  
    5562} 
    56 .qr2{background-color:#EAEDF1} 
     63.qr2 td{background-color:#F5F6F8} 
    5764 
    58 .qr1:hover, .qr2:Hover {background-color:#97A7BA} 
    59 .qr1:hover td, .qr2:Hover td {color:white} 
     65.qr1:hover td, .qr2:hover td{background-color:#EAEDF1;} 
    6066 
    61 .qh1, .qh2{background-color:black; cursor: pointer; } 
    62 .qh1 td, .qh2 td{color:white;} 
    63 .qh1, .qh2{background-color:black; cursor: pointer; } 
     67.qh1 td, .qh2 td{background-color:black; cursor: pointer; color:white;} 
    6468.qh1 a, .qh2 a{color:white;} 
     69 
     70 
    6571 
    6672#sqlstatement{display:none} 
  • trunk/phpbms/common/stylesheet/mozilla/sizes.css

    r198 r308  
    33 
    44/* ============================================================================== */ 
    5 /* Font size/standouts headers                                                    */ 
     5/* Font size/standouts/headers                                                    */ 
    66/* ============================================================================== */ 
    77 
     
    1212.mono {font-family:'Courier New', Courier, mono;} 
    1313 
    14 .standout{ background-color:#0B63A2; color:white; font-weight:bold; font-size:15px; padding:4px;} 
     14.standout{  
     15        background-color:#0B63A2;  
     16        color:white;  
     17        font-weight:bold;  
     18        font-size:15px; 
     19        padding:4px; 
     20} 
    1521 
    1622.notes {color:#DF0005} 
     
    2733        background: url("image/h1graphic.png") 4px 4px no-repeat;; 
    2834} 
     35 
    2936LEGEND,H2{       
    3037        font-weight:bold; 
    3138        font-size:15px;  
    3239        color:#455372; 
    33         text-transform:capitalize; 
    34         font-family: Arial, Helvitica, sans-serif; 
     40        text-transform:capitalize; 
     41        font-family: Arial, Helvitica, sans-serif; 
    3542} 
     43 
    3644LEGEND {margin-top:0px; font-size:14px;} 
     45 
    3746H2{ 
    3847        border-bottom: 1px solid #ccc; 
     
    4453        margin-bottom:5px; 
    4554} 
     55 
    4656H3{ 
    4757        font-size:14px; 
     
    5161    font-family: Arial, Helvitica, sans-serif; 
    5262} 
     63 
    5364H4{ 
    5465        font-size:12px; 
  • trunk/phpbms/common/stylesheet/mozilla/tabs.css

    r149 r308  
    22/* $LastChangedDate$ */ 
    33 
    4 .tabs{margin:0;padding:0 0 0 10px;height:20px;} 
    5 .tabs LI{display:block;float:left;list-style-type:none;margin:0 2px 0 0;padding:0 5px 0 0;  
    6                                 background:url("image/tab.gif") no-repeat; 
    7                                 background-position:100% -600px; 
    8                                 font-size:11px; 
    9                                 } 
    10 .tabs LI A, .tabs LI div{ display:block; padding:4px 4px 4px 9px; 
    11                                 background:url("image/tab.gif") no-repeat; 
    12                                 background-position:0% -600px; 
    13                                 color:white;font-weight:normal; 
     4.tabs{ 
     5        margin:0 15px; 
     6        padding:0 0 0 10px; 
     7        height:20px; 
    148} 
     9 
     10.bodyline .tabs{ 
     11        margin:0 
     12} 
     13 
     14.tabs LI{ 
     15        display:block; 
     16        float:left; 
     17        list-style-type:none; 
     18        margin:0 2px 0 0; 
     19        padding:0 5px 0 0;  
     20        background:url("image/tab.gif") no-repeat; 
     21        background-position:100% -600px; 
     22        font-size:11px; 
     23} 
     24 
     25.tabs LI A, .tabs LI div{  
     26        display:block;  
     27        padding:4px 4px 4px 9px; 
     28        background:url("image/tab.gif") no-repeat; 
     29        background-position:0% -600px; 
     30        color:white; 
     31        font-weight:normal; 
     32} 
     33 
    1534.tabs LI div{color:#BBBBBB} 
     35 
    1636.tabs LI:Hover{background-position:100% -400px;} 
     37 
    1738.tabs LI:Hover A, .tabs LI:Hover div{background-position:0% -400px;} 
    1839 
    1940.tabs .tabsSel{ background-position:100% -200px;} 
    20 .tabs .tabsSel A,.tabs .tabsSel div{color:#5F697E;background-position:0% -200px;} 
     41 
     42.tabs .tabsSel A,.tabs .tabsSel div{ 
     43        color:#5F697E; 
     44        background-position:0% -200px; 
     45} 
    2146 
    2247.tabs .tabsSel:Hover{ background-position:100% 0px;} 
    23 .tabs .tabsSel:Hover A, .tabs .tabsSel:Hover div{ color:#5F697E;background-position:0% 0px;} 
     48 
     49.tabs .tabsSel:Hover A, .tabs .tabsSel:Hover div{  
     50        color:#5F697E; 
     51        background-position:0% 0px; 
     52} 
    2453 
    2554.tabs LI div span,.tabs LI a span{ 
phpBMS vulnerability assesment provided by Orvant Inc. Copyright © 2010 Kreotek, LLC. All Rights reserved.