// ============================================================ // variables // ============================================================ var URLVars = new Array(); var slrTabIdx = -1; var slrFadeTid, slrFadeIdx; var slrFadeSteps = new Array( 5, 10, 18, 30, 50, 70, 82, 90, 95, 100); var slrBusySaving = 0; var slrEditing = 0; // indien 0, dan wordt pagina/tab momenteel niet bewerkt, indien 1 dan wel. zie ook slr_include.php > main_head_bottom() var slrHelp = 0; // indien 1, toon dan help-layer (dit gebeurt daadwerkelijk in iframe slr_frame_*.php, die checkt deze var dus middels parent.slrHelp) var slrShowMessage = ''; // bevat evt de guid van message die getoond moet worden var slrRedir = ''; // redirect? var slrShowingLogin = 0; // ============================================================ // vertaalt URL-hash (string achter #) naar array met key-value paren // vb: URLHashtoVars() waarbij URL = main.php#articleid=101;search=bouwfonds // output = Array("articleid" => "101", "search" => "bouwfonds") // vb: URLHashtoVars("#piet=gek;truus=mal") // ============================================================ function URLHashtoVars(h) { if (!h) var h = top.location.hash; if (!h || !h.length) { return new Array(); } else { h = h.substr(1); h = h.split(';'); //alert('h: ' + h + ' - ' + h.length); var t, hashVars = new Array(); for (var k in h) { //alert(h); t = h[k].split('='); //alert('t: ' + t[0]); hashVars[ t[0] ] = t[1]; } //alert('length: ' + hashVars.length); return hashVars; } } // ============================================================ // haal uit url-array bepaalde waarde, aangezien assoc. arrays niet aan te spreken zijn via array['keyname'] // ============================================================ function arrGetVar(strKey, arrVars) { if (!arrVars) var arrVars = URLVars; for (var k in arrVars) { if (k == strKey) return arrVars[k]; } return false; } // ============================================================ // maak van een keys-values-array een hash voor een URL // ============================================================ function arrToHash(arrVars) { if (!arrVars) var arrVars = URLVars; var h = ''; //'#'; for (var k in arrVars) { if (typeof(arrVars[k]) != 'undefined') h += k+'='+arrVars[k]+';'; } return h.substr(0,h.length-1); } // ============================================================ // plaats in url/addressbar de hash bijv. #pageid=1&articleid=2 // ============================================================ function setURLHash(arrVars) { if (!arrVars) var arrVars = URLVars; //location.href = arrToHash(arrVars); top.location.hash = arrToHash(arrVars); } // ============================================================ // addEvent and removeEvent // cross-browser event handling for IE5+, NS6 and Mozilla // By Scott Andrew // // voeg functie toe aan event (zoals onload) // vb: addEvent(window, 'load', alert(0)); // ============================================================ function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener){ elm.addEventListener(evType, fn, useCapture); return true; } else if (elm.attachEvent){ var r = elm.attachEvent("on"+evType, fn); return r; } else { alert("Handler could not be removed"); } } // ======================================================================== // initialiseer pagina // ======================================================================== //var FUKFUK = 0; function slrInitPage() { //FUKFUK++; //alert('init '+FUKFUK); //alert(location.href); URLVars = URLHashtoVars(); //alert(URLVars['slrTab']); //alert('Hash-vars: ' + arrToHash()); //alert(arrGetVar('slrTab')); // herschaal iframe zodat deze even groot is als parent-div //var ifr = getElement('slrMainFrame'); //ifr.style.width = getElement('slrMainDivL2').offsetWidth + 'px'; //ifr.style.height = getElement('slrMainDivL2').offsetHeight + 'px'; //ifr.src = 'http://www.nu.nl'; var slrCurTab = arrGetVar('slrTab'); slrSetTab(slrCurTab ? slrCurTab : "home"); } // initialiseer woontje.nl addEvent(window, 'load', slrInitPage); // ======================================================================== // schakel tab / user klikt op tab // ======================================================================== // filebase, filecolor, bgcolor function slrSetTab(tabName) { // reset de save-status slrSetSaveStatus(0); var objSrc = getElement('slrTab'+tabName); // tab bestaat niet? spring dan naar home-tab if (objSrc == null) { tabName = 'home'; objSrc = getElement('slrTab'+tabName); } //alert(URLVars['slrTab'] + ' / ' + arrGetVar('slrTab')); // update # hash achter URL met aangeklikte tab URLVars['slrTab'] = tabName; setURLHash(); if (slrTabIdx>-1) getElement('slrTabImg'+slrTabKeys[slrTabIdx]).src = slrTabButStd[slrTabIdx]; // achterhaal index van huidige tab, bijv 0=home, 1=photo slrTabIdx = arrval2idx(slrTabKeys, tabName, 0); getElement('slrTabImg'+tabName).src = slrTabButAct[slrTabIdx]; // plaats kleurcode in filename var filebase = slrCanvasFile.replace(/COL/, slrTabColors[slrTabIdx]); // minimaliseer iframe opdat deze straks na inladen nieuwe content weer herschaalt naar volledige hoogte //getElement('slrMainFrame').style.height = '0px'; // vervang 4 cornerpoints getElement('slrCanTL').src = filebase.replace(/POS/, 'tl'); getElement('slrCanTR').src = filebase.replace(/POS/, slrCanvasCornerTopRight); //'tr'); getElement('slrCanBL').src = filebase.replace(/POS/, 'bl'); getElement('slrCanBR').src = filebase.replace(/POS/, 'br'); // vervang top, bottom, left, right bg images getElement('slrCanT').style.backgroundImage = 'url('+filebase.replace(/POS/, 't')+')'; getElement('slrCanB').style.backgroundImage = 'url('+filebase.replace(/POS/, 'b')+')'; getElement('slrMainDivL0').style.backgroundImage = 'url('+filebase.replace(/POS/, 'l')+')'; getElement('slrMainDivL1').style.backgroundImage = 'url('+filebase.replace(/POS/, 'r')+')'; // positioneer image die actieve tab visueel doet doorlopen var tabBottom = slrTabIdx==0 ? 't2' : 't3'; getElement('slrTabBottom').src = filebase.replace(/POS/, tabBottom); getElement('slrTabBottom').style.left = (objSrc.offsetLeft+0) + 'px'; // maak achtergrondkleur passend getElement('slrMainDivL0').style.backgroundColor = slrTabBgColors[slrTabIdx]; //slrShowTab(); //getElement('slrMainFrame').src = 'modules/slr_frame_location.php'; //alert(objSrc.id); // toon 'loading' message slrLoadingMsg(1); // laadt iframe //slrShowFrame(0); //alert(slrTabLinks[slrTabIdx]); if (slrRedir.length > 0) { var myRedir = slrRedir; slrRedir = ''; //alert(myRedir); slrLoadingMsg(0); slrShowFrame(1); getElement('slrMainFrame').src = myRedir; } else { getElement('slrMainFrame').src = slrTabLinks[slrTabIdx] + '?ct='+ctime(); } } // ======================================================================== // toon iframe // ======================================================================== function slrShowFrame(mode) { var ifr = getElement('slrMainFrame'); if (mode==1) { // herschaal iframe zodat deze even groot is als parent-div ifr.style.width = getElement('slrMainDivL2').offsetWidth + 'px'; ifr.style.height = getElement('slrMainDivL2').offsetHeight + 'px'; } else { ifr.style.width = '0px'; ifr.style.height = '0px'; } } // ======================================================================== // toon 'loading' message // ======================================================================== function slrLoadingMsg(mode) { if (mode==1) { // positioneer 'loading' div clearInterval(slrFadeTid); setOpacity(getElement('slrLoading'), 100); getElement('slrLoading').style.left = Math.round((getElement('slrDivCanvas').offsetWidth - getElement('slrLoading').offsetWidth)/2) + 'px'; getElement('slrLoading').style.top = Math.round((getElement('slrDivCanvas').offsetHeight - getElement('slrLoading').offsetHeight)/2) + 'px'; getElement('slrLoading').style.visibility = 'visible'; getElement('slrLoadingDots').innerHTML = ''; //slrFadeIdx = 0; //slrFadeTid = setInterval('slrLoadingMsg(3)', 100); } else if (mode==0) { //getElement('slrLoading').style.visibility = 'hidden'; clearInterval(slrFadeTid); slrFadeIdx = 0; slrFadeTid = setInterval('slrLoadingMsg(2)', 50); } else if (mode==2) { setOpacity(getElement('slrLoading'), 100-slrFadeSteps[slrFadeIdx]); slrFadeIdx++; if (slrFadeIdx>=slrFadeSteps.length) { clearInterval(slrFadeTid); getElement('slrLoading').style.visibility = 'hidden'; } } else if (mode==3) { getElement('slrLoadingDots').innerHTML = "..........".substr(0,slrFadeIdx+1); slrFadeIdx++; if (slrFadeIdx>5) { clearInterval(slrFadeTid); } } } // ======================================================================== // schakel tussen busy-saving en niet-busy-saving // ======================================================================== function slrSetSaveStatus(s) { slrBusySaving = s; if (s) { getElement('slrSaveStatus').style.visibility = 'visible'; } else { getElement('slrSaveStatus').style.visibility = 'hidden'; } } // ======================================================================== // toon login-form // ======================================================================== function slrShowLogin(mode) { if (is_initpage != 1) { setTimeout('slrShowLogin('+mode+')', 500); return; } var objLogin = getElement('slrLoginBox'); slrShowingLogin = mode; if (slrShowingLogin > 0) { if (mode == 1) getElement('slrLoginMsg').innerHTML = 'Vul hieronder je e-mail adres en wachtwoord in om in te loggen.'; var pw = objLogin.parentNode.offsetWidth; var ph = objLogin.parentNode.offsetHeight; //alert(pw); objLogin.style.left = (obj_curleft(objLogin.parentNode) + Math.round((pw - objLogin.offsetWidth) / 2)) + 'px'; objLogin.style.top = Math.round((ph - objLogin.offsetHeight) / 2) + 'px'; objLogin.style.visibility = 'visible'; if (document.slrLogin.usr.value.length > 0) document.slrLogin.usr.focus(); } else { objLogin.style.visibility = 'hidden'; } }