/////////////////////////////////////////////////////////////////////////////// // // Beschrijving: Het Browser object bevat enige browser-afhankelijke // functionaliteiten zoals het opzoeken van objecten, het tonen // van lagen etc. // /////////////////////////////////////////////////////////////////////////////// //----------------------------------------------------------------------------- // // Beschrijving: Constructor voor het Browser object. // // Parameters: Geen. // // Resultaat: Geen. // //----------------------------------------------------------------------------- function Browser() { this.isIE = false this.appVersion = parseInt(navigator.appVersion) if (this.appVersion >= 4) this.isIE = navigator.appName != "Netscape" // Defaults instellen this.siteWidth = -1 this.siteHeight = -1 // Pointers naar Browser methods leggen. this.IsNav = Browser_IsNav this.IsIE = Browser_IsIE this.ObjectGet = Browser_ObjectGet this.MMGet = Browser_MMGet this.LayerShow = Browser_LayerShow this.LayerHide = Browser_LayerHide this.DateCheck = Browser_DateCheck this.PopupWindow = Browser_PopupWindow this.DisplayWidth = Browser_DisplayWidth this.DisplayHeight = Browser_DisplayHeight // Constanten voor de PopupWindow functie. this.PW_TOOLBAR_NO = false this.PW_TOOLBAR_YES = true this.PW_MENUBAR_NO = false this.PW_MENUBAR_YES = true this.PW_STATUSBAR_NO = false this.PW_STATUSBAR_YES = true this.PW_LOCATION_NO = false this.PW_LOCATION_YES = true this.PW_RESIZABLE_NO = false this.PW_RESIZABLE_YES = true this.PW_SCROLLBARS_NO = false this.PW_SCROLLBARS_YES = true } // Browser constructor // Deze functie retourneert true indien browser geen IE is. function Browser_IsNav() {return !this.isIE;} // Deze functie retourneert true indien browser IE is. De browser wordt // als IE gekenmerkt indien de versie minimaal 4 is en er geen sprake is // van Netscape (zie de constructor). function Browser_IsIE() {return this.isIE;} // objName = Naam van te vinden image. Indien het object in een laag // staat, geef dan op "laag:objectnaam". //----------------------------------------------------------------------------- // // Beschrijving: Functie om browser-onafhankelijk een object in de document // hierarchie te vinden. // // Parameters: in objNaam = Naam van te vinden object. Indien het object in // een laag staat, geef dan op "laag:objectnaam". // Dit laatste is vooral voor Netscape van belang. // // Resultaat: Het gezochte object of "undefined". // //----------------------------------------------------------------------------- function Browser_ObjectGet(objName) { var theImage // Het functieresultaat. var divName // Naam van (optionele) laag. var imgName // Naam van het gezochte object. var colonPos // Positie van : teken in de objName parameter. divName = '' colonPos = objName.indexOf(':') if (colonPos == -1) imgName = objName // Er is geen : dus ook geen laag gegeven. else { // Laag is gegeven: we splitsen objName in divName en imgName. divName = objName.substring(0, colonPos) imgName = objName.substring(colonPos + 1, objName.length) } if (this.isIE) theImage = eval("document.all." + imgName) else theImage = eval("document." + divName + imgName) return theImage } // Browser_ObjectGet //----------------------------------------------------------------------------- // // Beschrijving: Deze functie is een verbeterde versie van ObjectGet en moet // dan ook het liefst worden gebruikt in nieuwe projecten. Deze // functie is 'slim' genoeg om zelf alle lagen in de document // hierarchie af te lopen op zoek naar een object. Het is dus // niet nodig de laagnaam op te geven. // // Parameters: in objnam = De naam van het gezochte object. // in doc = Optionele parameter waarmee het te doorzoeken // document kan worden aangegeven. Indien de para- // meter niet wordt gegeven, wordt het huidige // document aangenomen. // // Resultaat: Het gezochte element of "undefined". // //----------------------------------------------------------------------------- function Browser_MMGet(objnam, doc) { var ptr,index,ref if (!doc) doc = document if ((ptr = objnam.indexOf("?")) > 0 && parent.frames.length) { doc = parent.frames[objnam.substring(ptr+1)].document objnam = objnam.substring(0, ptr) } if (!(ref = doc[objnam]) && doc.all) ref = doc.all[objnam] for (index = 0; !ref && index < doc.forms.length; index++) ref = doc.forms[index][objnam] for (index=0; !ref && doc.layers && index < doc.layers.length; index++) ref = Browser_MMGet(objnam, doc.layers[index].document) if (!ref && document.getElementById) ref = document.getElementById(objnam) return ref } // Browser_MMGet //----------------------------------------------------------------------------- // // Beschrijving: Deze functie toont een
tag door de visibility // instelling van de style in te stellen op visible. // // Parameters: layerName = Naam van de te verbergen
. // // Resultaat: Geen. // //----------------------------------------------------------------------------- function Browser_LayerShow(layerName) { if (this.isIE) eval('document.all.' + layerName + '.style.visibility = "visible"') else eval('document.' + layerName + '.visibility = "visible"') } // Browser_LayerShow //----------------------------------------------------------------------------- // // Beschrijving: Deze functie verbergt een
tag door de visibility // instelling van de style in te stellen op hidden. // // Parameters: layerName = Naam van de te verbergen
. // // Resultaat: Geen. // //----------------------------------------------------------------------------- function Browser_LayerHide(layerName) { if (this.isIE) eval('document.all.' + layerName + '.style.visibility = "hidden"') else eval('document.' + layerName + '.visibility = "hidden"') } // Browser_LayerHide //----------------------------------------------------------------------------- // // Beschrijving: Deze functie controleert een gegeven datum op correctheid // en op liggen in een bepaalde range. // Kijk ook naar het Datum object voor een nog betere controle // van een datum. Ook FormCheck controleert data beter dan deze // eenvoudige controlefunctie. // // Parameters: in datestr = de te controleren string. // in minyear = min toegestaan jaartal. // in maxyear = max toegestaan jaartal. // // Resultaat: true = datum ok, anders false. // //----------------------------------------------------------------------------- function Browser_DateCheck(datestr, minyear, maxyear) { var ok = false // functieresultaat var posSep1, posSep2 // locatie van separator ('-' of '/') in de datum var day, month, year // de drie datum componenten var daymax = new Array(31,28,31,30,31,30,31,31,30,31,30,31) if (datestr.length >= 8 || datestr.length <= 10) { posSep1 = datestr.indexOf('-') if (posSep1 == -1) posSep1 = datestr.indexOf('/') posSep2 = datestr.lastIndexOf('-') if (posSep2 == -1) posSep2 = datestr.lastIndexOf('/') if (posSep1 != -1 && posSep2 != -1) { day = datestr.substring(0, posSep1) month = datestr.substring(posSep1 + 1, posSep2) year = datestr.substring(posSep2 + 1, datestr.length) if (year < 100) year += 2000 if (year % 4 == 0) // schrikkeljaar? { if (year % 100 == 0) // eeuw? { if (year % 400 == 0) //schrikkeleeuw? daymax[1] = 29 } else daymax[1] = 29 // normaal schrikkeljaar } // if ok = (month >= 1 && month <= 12) && (day >= 1 && day <= daymax[month - 1]) && (year >= minyear && year <= maxyear) } // if } // if return ok } // Browser_DateCheck //----------------------------------------------------------------------------- // // Beschrijving: Toont een popup-window op een browser onafhankelijke manier. // Diverse attributen (features) van het nieuw te maken window // kunnen worden gespecificeerd. // // Parameters: in url = URL van te tonen webpagina. // in windowname = Naam van het aan te maken windowobject. // in winwidth = Breedte van window in pixels. // in winheight = Hoogte van window in pixels. // in toolbar = PW_TOOLBAR_YES indien toolbar moet getoond. // PW_TOOLBAR_NO indien toolbar verborgen moet. // in menubar = PW_MENUBAR_YES of PW_MENUBAR_NO // in statusbar = PW_STATUSBAR_YES of PW_STATUSBAR_NO // in location = PW_LOCATION_YES of PW_LOCATION_NO // in resizable = PW_RESIZABLE_YES of PW_RESIZABLE_NO // Of het window resizable moet zijn. // in scrollbars = PW_TOOLBARS_YES of PW_TOOLBARS_NO // // Resultaat: Het geopende window-object. // //----------------------------------------------------------------------------- function Browser_PopupWindow(url, windowname, winwidth, winheight, toolbar, menubar, statusbar, location, resizable, scrollbars) { var features // feature specificatie voor nieuwe venster. var screenwidth // Volledige breedte van het scherm. var screenheight // Volledige hoogte van het scherm. var left, top // left en top van het nieuwe scherm. features = "height=" + winheight features = features + ",width=" + winwidth if (toolbar) features = features + ",toolbar" if (statusbar) features = features + ",status" if (menubar) features = features + ",menubar" if (location) features = features + ",location" if (resizable) features = features + ",resizable" if (scrollbars) features = features + ",scrollbars" if (this.appVersion >= 4) { screenwidth = screen.availWidth screenheight = screen.availHeight left = (screenwidth - winwidth) / 2 top = (screenheight - winheight) / 2 if (this.IsIE()) features = features + ",left=" + left + ",top=" + top else features = features + ",screenX=" + left + ",screenY=" + top } return window.open(url, windowname, features) } // Browser_PopupWindow //----------------------------------------------------------------------------- // // Beschrijving: Retourneert de displaybreedte in pixels. Indien de versie // van de browser kleiner is dan 4, wordt 640 pixels aangegeven. // // Parameters: Geen. // // Resultaat: Breedte van de display in pixels. // //----------------------------------------------------------------------------- function Browser_DisplayWidth() { if (this.appVersion < 4) return 640 else return screen.width } // Browser_DisplayWidth //----------------------------------------------------------------------------- // // Beschrijving: Retourneert de displayhoogte in pixels. Indien de versie // van de browser kleiner is dan 4, wordt 400 pixels aangegeven. // // Parameters: Geen. // // Resultaat: Hoogte van de display in pixels. // //----------------------------------------------------------------------------- function Browser_DisplayHeight() { if (this.appVersion < 4) return 400 else return screen.height } // Browser_DisplayHeight