/* Huidige transparantie lezen */ function _nbtranslezen(id){ if (document.getElementById(id)){ var obj = document.getElementById(id); if (typeof(obj.style.opacity) != 'undefined'){ if (obj.style.opacity == ''){ return ''; } return (obj.style.opacity * 100); } else if (typeof(obj.style.filter) != 'undefined'){ if (obj.style.filter.indexOf('opacity=') != -1){ return new Number(obj.style.filter.substring((obj.style.filter.indexOf('opacity=') + 8), obj.style.filter.indexOf('\)'))); } return 0; } else if (obj.style.MozOpacity){ return (obj.style.MozOpacity * 100); } else if (obj.style.KhtmlOpacity){ return (obj.style.KhtmlOpacity * 100); } } } /* Transparant maken of andersom */ function _nbtransproces (id, percentage, interval, limiet){ if (document.getElementById(id)){ if (typeof(interval) == 'undefined'){ var interval = 1; } if (typeof(limiet) == 'undefined'){ var limiet = 100; } var gradatie = _nbtranslezen(id); var obj = document.getElementById(id); if (gradatie == 0 && percentage < 0){ _nbtransparantie(id, limiet); } else if (gradatie == limiet && percentage > 0){ _nbtransparantie(id, 0); } var ngradatie = gradatie + percentage; var einde = false; if (gradatie < limiet && ngradatie > limiet){ ngradatie = limiet; } if (gradatie > 0 && ngradatie < 0){ ngradatie = 0; } if (ngradatie <= 0 || ngradatie == limiet){ einde = true; } _nbtransparantie(id, ngradatie); if (!einde){ setTimeout('_nbtransproces(\'' + id + '\', ' + percentage + ', ' + interval + ', ' + limiet + ')', (interval * 1000)); //setInterval(); } } } /* Transparant maken van een gebied */ function _nbtransparantie (id, gradatie){ if (document.getElementById(id)){ var obj = document.getElementById(id); if (typeof(obj.style.opacity) != 'undefined'){ obj.style.opacity = gradatie/100; //alert('ff - ' + id + ' - ' + gradatie); } if (typeof(obj.style.filter) != 'undefined'){ obj.style.filter = 'alpha(opacity=' + gradatie + ')'; //alert('ie - ' + id + ' - ' + gradatie); } if (typeof(obj.style.MozOpacity) != 'undefined'){ obj.style.MozOpacity = gradatie/100; } if (typeof(obj.style.KhtmlOpacity) != 'undefined'){ obj.style.KhtmlOpacity = gradatie/100; } } }; function crel(element, naam, stijl){ var e = document.createElement(element); if (typeof(naam) == 'string'){ e.id = naam; e.name = naam; } if (typeof(stijl) == 'string'){ sreeks = stijl.split(';'); var swaarden = ''; var setstijl = true; for (var i=0; i < sreeks.length; i++){ swaarden = sreeks[i].split(':'); try{ e.style[swaarden[0]] = swaarden[1]; } catch(err){ setstijl = false; } } if (!setstijl){ e.style.setAttribute('cssText', stijl); } } return e; } function b(){ if (typeof(window.innerWidth) == 'number'){ var t = window.innerWidth; } else{ var t = document.documentElement.clientWidth; } return new Number(t); } function h(){ if (typeof(window.innerHeight) == 'number'){ var t = window.innerHeight; } else{ var t = document.documentElement.clientHeight; } return new Number(t); } /* Div lagen schakelen */ function laag(laag, modus, x, y){ var modi = new Array('none' ,'block', 'switch'); var div = document.getElementById(laag).style; if (arguments.length > 1){ var weergave = modi[modus]; switch (weergave){ case 'block': if (arguments.length > 2 && typeof(x) == 'number'){ div.left = x + 'px'; } if (arguments.length > 3 && typeof(y) == 'number'){ div.top = y + 'px'; } break; case 'switch': weergave = (div.display=='block'||div.display=='')?'none':'block'; break; } div.display = weergave; } } var globaleConfiguratie = { domein: '', pad: '', cookietijd: 31, startx: 0, starty: 0, container: '', // _nb_site_init hoogte: h(), breedte: b(), applicatie: { titel: '', naam: '' }, sjabloon: { naam: '' }, mod: {}, ajax: {}, callback: {}, venster: {} // Popup/i-popup venster }; /* iPopup object maken */ globaleConfiguratie.venster.ipopup = {}; globaleConfiguratie.venster.ipopup.niveau = 0; globaleConfiguratie.venster.ipopup.venster = null; globaleConfiguratie.venster.ipopup.frame = '
' + '
' + '' + '
<\/td><\/td><\/td>' + '<\/tr>
<\/td><\/td>' + '<\/td><\/tr>' + '
<\/td>' + '<\/td>' + '<\/td><\/tr><\/table><\/div>' + '
' + '' + '
<\/td>' + '<\/td>' + '<\/td><\/tr>
' + '<\/td>' + '<\/td>' + '<\/td>' + '<\/tr>
<\/td>' + '<\/td>' + '<\/td><\/tr><\/table>' + '
<\/div>' + '<\/div><\/div>'; /* Interne popup 1.00 */ function _nb_ipopup_init(kleur){ if (typeof(kleur) == 'undefined'){ kleur = '#000'; } // Zwarte laag laag var achtergrondLaagHoogte = document.documentElement.clientHeight; if(achtergrondLaagHoogte < document.documentElement.scrollHeight) { achtergrondLaagHoogte = document.documentElement.scrollHeight; } var obj = crel('div', 'nb_glob_ipopup', 'display:block;position:absolute;left:0px;top:0px;width:100%;height:'+(achtergrondLaagHoogte)+'px;scroll:none;zIndex:1'); obj.style.backgroundColor = kleur; //alert(document.documentElement.scrollHeight); //obj.style.width = document['body'].style.width; //obj.style.height = document['body'].style.height; document['body'].appendChild(obj); } /* Positie 1.01 */ function _nb_ipopup_positie(){ var bodytop = 0; if(document.documentElement && document.documentElement.scrollTop){ bodytop = document.documentElement.scrollTop; } else if(document.body){ bodytop = document.body.scrollTop; } return bodytop; } /* Basis object maken 1.01 */ function _nb_ipopup_basisobject(breedte, hoogte, bodytop, positie, klasse){ pHoogte = hoogte; if (typeof(hoogte) == 'string'){ var hReeks = hoogte.split('|'); hoogte = hReeks[0]; pHoogte = hReeks[1]; } var obj = crel('div', 'nb_glob_ipopup_venster', 'display:block;position:fixed;zIndex:10000'); obj.style.width = breedte + 'px'; obj.style.height = hoogte + 'px'; _nb_ipopup_positioneren(obj, breedte, pHoogte, bodytop, positie, klasse); return obj; } /* Breedte downscalen 1.00 */ function _nb_ipopup_downscalen(breedte){ if (typeof(breedte) == 'string'){ if (breedte.indexOf(':') != -1){ var bReeks = breedte.split(':'); breedte = bReeks[0]; // Als de gevraagde breedte breder is dan het scherm en er is een interval // om te downscalen if (breedte > (globaleConfiguratie.breedte - 50) && typeof(bReeks[1]) != 'undefined'){ for (var i=breedte; i > (globaleConfiguratie.breedte - 50); i = i - bReeks[1]){ breedte = (i - bReeks[1]); } } } } return breedte; } /* Hoogte percentueel van viewport 1.00 */ function _nb_ipopup_hoogte(hoogte){ if (typeof(hoogte) == 'string'){ if (hoogte.indexOf('%') != -1){ return Math.ceil(globaleConfiguratie.hoogte - 50) / 100 * (hoogte.substring(0, (hoogte.length - 1))); } } return hoogte; } /* Positioneren 1.01 */ function _nb_ipopup_positioneren(obj, breedte, hoogte, bodytop, positie, klasse){ var p = positie.split('-'); if (p[0] == 'l'){ obj.style.left = '0px'; } if (p[0] == 'r'){ obj.style.left = (globaleConfiguratie.breedte - breedte) + 'px'; } if (p[0] == 'c'){ var wBreedte = globaleConfiguratie.breedte; // Verticale scrollbars? Dan bijstellen if (screen.height > document.body.offsetHeight){ wBreedte = wBreedte - 32; } obj.style.left = (((wBreedte - breedte) / 2) / wBreedte * 100) + '%'; } if (p[1] == 't'){ obj.style.top = (0 + bodytop) + 'px'; } if (p[1] == 'b'){ obj.style.top = ((globaleConfiguratie.hoogte - hoogte) + bodytop) + 'px'; } if (p[1] == 'm'){ obj.style.top = ((((globaleConfiguratie.hoogte - hoogte) / 2) - 30) + bodytop) + 'px'; } if (typeof(klasse) != 'undefined'){ obj.className = klasse; } } /** * Interne popup maken en weergeven 3.00 * * @param int|mixed breedte De breedte die gewenst is, :xx is interval in kleiner maken als de breedte de schermbreedte overschreid * @param int|mixed hoogte De hoogte als int is in px, % kan met xx% - V is oprekken * @param string titel De titel van de popup * @param string positie De positie op het scherm, c (center), l (links), r (rechts), t (boven), m (midden), b (onder), combi 'c-m' * @param int scrollen Het scrollgedrag, 0 nee, 1 ja, 2 omvatten van inhoud * @param int sluiten Sluitmogelijkheden, 0 nee, 1 ja, 2 nee met OK button, 3 ja met OK button * @param string klasse De hoofdklasse die de popup krijgt * @param string html De body HTML die bij openen direct getoond wordt * @param string func Callback mogelijkheid die gestart wordt na succesvol opbouwen popup */ function _nb_ipopup(breedte, hoogte, titel, positie, scrollen, sluiten, klasse, html, func){ var ok = false; var oprekken = false; // Mag sluiten dan ook met ESC if (sluiten != 0 && sluiten != 2){ _nb_ipopup_sluiten_via_esc(1); } if (sluiten == 2 || sluiten == 3){ //_nb_ipopup_sluiten_via_ok(1); ok = true; } var bodytop = _nb_ipopup_positie(); if (!document.getElementById('nb_glob_ipopup')){ _nb_ipopup_init('#000'); } // Popup niveau if (globaleConfiguratie.venster.ipopup.niveau > 0){ globaleConfiguratie.venster.ipopup.venster = document.getElementById('nb_glob_ipopup_venster'); } else{ // Zichtbare achtergrond en trans instellen document.getElementById('nb_glob_ipopup').style.zIndex = 10000; _nbtransparantie('nb_glob_ipopup', 35); } globaleConfiguratie.venster.ipopup.niveau++; //alert('Niveau ingesteld op: ' + globaleConfiguratie.venster.ipopup.niveau); if (typeof(titel) == 'undefined'){ var titel = 'Geen titel'; } if (typeof(scrollen) == 'undefined'){ var scrollen = 0; } if (typeof(positie) == 'undefined'){ var positie = 'c-m'; } if (typeof(html) == 'undefined'){ var html = 'Laden...'; } if (document.getElementById('nb_glob_ipopup_venster')){ //alert('Verwijderen venster'); document['body'].removeChild(document.getElementById('nb_glob_ipopup_venster')); } // Bemating bijstellen if (typeof(hoogte) == 'string'){ if (hoogte.indexOf('V') != -1){ oprekken = true; hoogte = hoogte.substring(0, (hoogte.length - 1)); //alert(hoogte); } hoogte = _nb_ipopup_hoogte(hoogte); } if (ok){ hoogte = (hoogte + 60); } if (typeof(breedte) == 'string'){ breedte = _nb_ipopup_downscalen(breedte); } var obj = _nb_ipopup_basisobject(breedte, (oprekken ? '75|' + hoogte : hoogte), bodytop, positie, klasse); if (typeof(sluiten) == 'undefined'){ sluiten = 0; } var t = crel('table'); t.style.width = breedte + 'px'; t.style.margin = '0px'; t.style.padding = '0px'; t.style.border = '0px'; t.cellPadding = 0; t.cellSpacing = 0; var tb = crel('tbody'); var tr = crel('tr'); tr.className = 'koprij'; var ltd = crel('td'); ltd.className = 'kopcel'; ltd.innerHTML = titel; tr.appendChild(ltd); var rtd = crel('td'); rtd.align = 'right'; if (sluiten == 1 || sluiten == 3){ rtd.innerHTML = '<' + 'a href="java' + 'scr' + 'ipt:_nb_ipopup_sluit();void(0);">sluiten<\/a>'; } rtd.innerHTML += '&' + 'nbsp;'; rtd.className = 'kopcel'; tr.appendChild(rtd); tb.appendChild(tr); var tr2 = crel('tr'); var td = crel('td'); td.colSpan = 2; td.style.height = (hoogte - 32) + 'px'; var d = crel('div', 'nb_glob_ipopup_venster_html', 'display:none'); d.className = 'nb_glob_ipopup_venster_html'; d.style.height = (hoogte - 4 - (ok ? 71 : 33)) + 'px'; //alert(d.style.height); if (scrollen == 1){ d.style.overflow = 'auto'; } else if(scrollen == 0){ d.style.overflow = 'hidden'; } else if(scrollen == -1){ d.style.overflow = 'visible'; } if (scrollen == 2){ d.innerHTML = '<' + 'div id="nb_glob_ipopup_venster_hoogtemeter">' + html + '<\/div>'; } else{ d.innerHTML = html; } td.appendChild(d); if (ok){ td.appendChild(_nb_ipopup_okknop('OK')); } tr2.appendChild(td); tb.appendChild(tr2); t.appendChild(tb); obj.appendChild(t); document['body'].appendChild(obj); // Als er een OK knop is die focus geven if (ok){ document.getElementById('nb_glob_ipopup_venster_ok_button').focus(); } // Omvatten van inhoud if (scrollen == 2){ var popupHoogte = _nb_ipopup_omvatten(ok); _nb_ipopup_positioneren(document.getElementById('nb_glob_ipopup_venster'), breedte, popupHoogte, bodytop, positie, klasse); } //_nbtransproces('nb_glob_ipopup_venster', 20, 0.1); if (oprekken){ setTimeout('_nb_ipopup_oprekken("' + hoogte + '","' + func + '")', 500); } else{ if (typeof(func) != 'undefined'){ eval(func); } laag('nb_glob_ipopup_venster_html', 1); } } /* Oprekken tot einde */ function _nb_ipopup_oprekken(hoogte, func){ func += ';document.getElementById(\\\"nb_glob_ipopup_venster_html\\\").laag(1)'; _nbelvergroten('nb_glob_ipopup_venster', 'height', hoogte, 80, func); } /* Data in ipopup weergeven met nodig hacks */ // modus, -: insert, 1: append function _nb_ipopup_weergave(html, modus){ html=html.replace(/\\/g,'\\\\'); html=html.replace(/\'/g,'\\\''); html=html.replace(/\"/g,'\\"'); html=html.replace(/\0/g,'\\0'); if (typeof(modus) == 'undefined'){ modus = 0; } if (typeof(html) != 'undefined' && html != ''){ switch (modus){ case 0: document.getElementById('nb_glob_ipopup_venster_html').innerHTML = html; break; case 1: document.getElementById('nb_glob_ipopup_venster_html').innerHTML += html; break; default: } } var h = parseInt(document.getElementById('nb_glob_ipopup_venster_html').style.height); document.getElementById('nb_glob_ipopup_venster_html').style.height = (h - 1) + 'px'; setTimeout('document.getElementById(\'nb_glob_ipopup_venster_html\').style.height=\'' + h + 'px\'', 50); } /* Interne popup sluiten */ function _nb_ipopup_sluit(){ //setTimeout('_nbtransproces(\'nb_glob_ipopup\', -20, 0.5);', 50); if (globaleConfiguratie.venster.ipopup.niveau > 1){ document['body'].removeChild(document.getElementById('nb_glob_ipopup_venster')); document['body'].appendChild(globaleConfiguratie.venster.ipopup.venster); globaleConfiguratie.venster.ipopup.venster = null; } else{ if (document.getElementById('nb_glob_ipopup')){ //setTimeout('document.getElementById(\'nb_glob_ipopup\').style.zIndex=1;_nbtransparantie(\'nb_glob_ipopup\',0);', 50); setTimeout('document[\'body\'].removeChild(document.getElementById(\'nb_glob_ipopup\'));', 50); } // ESC functionaliteit _nb_ipopup_sluiten_via_esc(0); if (document.getElementById('nb_glob_ipopup_venster')){ document['body'].removeChild(document.getElementById('nb_glob_ipopup_venster')); } globaleConfiguratie.venster.ipopup.venster = null; } globaleConfiguratie.venster.ipopup.niveau--; //_nbtransproces('nb_glob_ipopup_venster', -20, 0.05); //_nbschaalproces('nb_glob_ipopup', 10, [0,0], [0,0], [100,0], [100,100], '%'); } /* Hoogte verkrappen 1.03 */ function _nb_ipopup_omvatten(ok){ // Bij openen pop-up is de hoogtemeter er, later niet meer var bHoogte = (document.getElementById('nb_glob_ipopup_venster_hoogtemeter') ? document.getElementById('nb_glob_ipopup_venster_hoogtemeter') : document.getElementById('nb_glob_ipopup_venster_html').firstChild); var inhoudHoogte = parseInt(bHoogte.offsetHeight) + 8; // Marge van 8px if (!isNaN(inhoudHoogte)){ inhoudHoogte = (inhoudHoogte < 80 ? 80 : inhoudHoogte); if ((inhoudHoogte + 39) > globaleConfiguratie.hoogte){ inhoudHoogte = globaleConfiguratie.hoogte - 100; } // Verkleinen of vergroten document.getElementById('nb_glob_ipopup_venster_html').style.height = (inhoudHoogte + 0) + 'px'; document.getElementById('nb_glob_ipopup_venster').style.height = (inhoudHoogte + (ok ? 75 : 36)) + 'px'; } // Niet bij opening dan meteen repos if (!document.getElementById('nb_glob_ipopup_venster_hoogtemeter')){ _nb_ipopup_positioneren(document.getElementById('nb_glob_ipopup_venster'), '', (inhoudHoogte + (ok ? 75 : 36)), 30, 'x-m'); } return (inhoudHoogte + (ok ? 75 : 36)); } /* OK knop maken 1.03 */ function _nb_ipopup_okknop(tekst){ var ok = crel('div', 'nb_glob_ipopup_venster_ok'); ok.className = 'nb_glob_ipopup_venster_ok'; ok.align = 'center'; ok.innerHTML = '<' + 'button id="nb_glob_ipopup_venster_ok_button" ' + 'onclick="_nb_ipopup_sluit();">' + tekst + '<\/button>'; return ok; } /* Sluiten met ESC toets 1.02 */ function _nb_ipopup_sluit_esc(ev){ ev || (ev = window.event); ev = ev.charCode || ev.keyCode; if (ev == 27) { _nb_ipopup_sluit(); } } /* Sluiten met OK (CR) toets 1.03 */ function _nb_ipopup_sluit_ok(ev){ ev || (ev = window.event); ev = ev.charCode || ev.keyCode; //alert(ev); if (ev == 13){ document.getElementById('nb_glob_ipopup_venster_ok_button').focus(); _nb_ipopup_sluit(); } } /* Event luisteraar voor OK knop 1.03 */ function _nb_ipopup_sluiten_via_ok(modus){ if (modus == 1){ if (document.addEventListener){ document.addEventListener('keypress', _nb_ipopup_sluit_ok, false); } else if (document.attachEvent){ document.attachEvent('onkeypress', _nb_ipopup_sluit_ok); } } else{ if (document.removeEventListener){ document.removeEventListener('keypress', _nb_ipopup_sluit_ok, false); } else if (document.detachEvent){ document.detachEvent('onkeypress', _nb_ipopup_sluit_ok); } } } /* Event luisteraar voor ESC knop 1.02 */ function _nb_ipopup_sluiten_via_esc(modus){ if (modus == 1){ if (document.addEventListener){ document.addEventListener('keypress', _nb_ipopup_sluit_esc, false); } else if (document.attachEvent){ document.attachEvent('onkeypress', _nb_ipopup_sluit_esc); } } else{ if (document.removeEventListener){ document.removeEventListener('keypress', _nb_ipopup_sluit_esc, false); } else if (document.detachEvent){ document.detachEvent('onkeypress', _nb_ipopup_sluit_esc); } } }