function befragung(name_der_befragung) { var zufallszahl = Math.random(); var anzahl_einblendungen = 0; var befragungsteilnehmer = ""; /*Feststellen, ob User schon als Teilnehmer oder Nicht-Teilnehmer gekennzeichnet ist*/ befragungsteilnehmer = cookie_lesen('befragungsteilnehmer_'+name_der_befragung); /*Wenn noch nicht gekennzeichnet, dann dies jetzt tun*/ if(befragungsteilnehmer == false) { if(zufallszahl <= (1/jeder_xte_besucher_befragen)) { /*User ist ab sofort Befragungsteilnehmer*/ befragungsteilnehmer = 'ja'; cookie_schreiben('befragungsteilnehmer_'+name_der_befragung, befragungsteilnehmer, enddatum_der_befragung); } else { /*User ist kein Befragungsteilnehmer*/ befragungsteilnehmer = 'nein'; cookie_schreiben('befragungsteilnehmer_'+name_der_befragung, befragungsteilnehmer, enddatum_der_befragung); } } /*Bei moeglichen Teilnehmern nachschauen, ob die max. Einblendezahl bereits erreicht ist*/ if(befragungsteilnehmer == 'ja') { /*Anzahl der bisherigen Einblendungen auslesen*/ if(document.cookie) { anzahl_einblendungen = (cookie_lesen('anzahl-einblendungen_'+name_der_befragung)); if(anzahl_einblendungen == false) anzahl_einblendungen = 0; } /*Wenn die Anzahl unter dem Grenzwert liegt: einblenden*/ if(anzahl_einblendungen < anzahl_max_einblendungen) { /*Layer einblenden*/ alert("einblenden_ja, da Anzahl: "+anzahl_einblendungen); element_blenden('layer'); /*Anzahl Einblendungen hochzaehlen*/ anzahl_einblendungen++; } /*Wenn die Anzahl ueber dem Grenzwert liegt: nicht einblenden*/ else alert("einblenden_nein, da Anzahl: "+anzahl_einblendungen); /*Anzahl der Einblendungen ins Cookie schreiben*/ var erfolgreich = cookie_schreiben('anzahl-einblendungen_'+name_der_befragung,anzahl_einblendungen,enddatum_der_befragung, enddatum_der_befragung); } } function element_blenden(name) { if(document.getElementById(name).style.display == "block") { document.getElementById(name).style.display = "none"; } else { document.getElementById(name).style.display = "block"; } } function cookie_lesen( cookieName ) { strValue = false; if( strCookie = document.cookie ) { if( arrCookie = strCookie.match( new RegExp( cookieName + '=([^;]*)', 'g'))) { strValue=RegExp.$1; } } return(strValue); } function cookie_schreiben(cookieName,cookieValue,intDays) { if(!is_cookie_enabled()) { return false; } objNow = new Date(); strExp = new Date( objNow.getTime() + ( intDays * 86400000) ); document.cookie = cookieName + '=' + cookieValue + ';expires=' + strExp.toGMTString() + ';'; return true; } function cookie_loeschen(cookieName) { if(document.cookie) { document.cookie = cookieName + '=' + get_cookie(cookieName) + ';expires=Thu, 01-Jan-1970 00:00:01 GMT;'; return true; } return false; } function is_cookie_enabled() { if(typeof navigator.cookieEnabled!='undefined') { return navigator.cookieEnabled; } set_cookie('testcookie','testwert',1); if(!document.cookie) { return false; } cookie_loeschen('testcookie'); return true; } // Eine Liste aller geöffneten Popups var PopupList = new Array(); // // Oeffnet ein Popup // function js_popup(str_url, str_name, str_window, int_width, int_height, int_x, int_y, str_features) { str_features = str_features + ',width=' + int_width + ',height=' + int_height; if (int_x=='false') str_features = str_features + ',left=' + ((screen.width - int_width) / 2) + ',top=' + ((screen.height - int_height) / 2); else str_features = str_features + ',left=' + int_x + ',top=' + int_y; if (PopupList[str_window] && PopupList[str_window].closed == false) PopupList[str_window].close(); obj_window = window.open(str_url, str_window, str_features); PopupList[str_window] = obj_window; obj_window.focus(); } /** *********************************** * Eine Art Popup für Bildanzeigen *********************************** * *Diese Bibliothek erzeugt ein Javascript-Objekt (js_popup), das sich im HTML-Code ein DIV- *Element erzeugt, dessen ID "js-popup" heißt und welches für die Anzeige einer Vollansicht zu *einem Thubnail-Bild verwendet wird. * *Die Benutzung des js_popup-Objektes ist sehr einfach. Da sich das Script basierend auf einer *hier einzustellenden CSS-Klasse die Link-Elemente dynamisch aus einem beliebigen Eltern- *Element holt und ihnen ein onClick-Event zuweist, braucht es im HTML- Quelltext lediglich *folgende Struktur ( steht stellvertretend für Elemente wie

,

, usw.): * * *Beschreibung * * *Die Vollansicht wird als Bildunterschrift den Wert aus dem ohnehin zwingend erforderlichen *alt-Attribut verwenden. * * *erstellt von Felix Riesterer (Felix.Riesterer@gmx.net) */ // js_popup-Objekt definieren var js_popup = { settings : { // Hier die CSS-Klasse eintragen, die Links in Kindelementen mit der Popup-Funktion versieht! triggerCssClass : "absatz", // CSS-ID für das Popup-Eltern-Element (DIV) parentDiv : { cssID : "js-popup" }, // CSS-ID für die Popup-Box (DIV) popupBox : { cssID : "js-popup-box" }, // Bilddatei für den Overlay-Hintergrund (teiltransparente PNG-Grafik) overlayBackground : { src_png : "/pics/js_popup/overlay.png", src_blank_gif : "/pics/js_popup/blank.gif" }, // CSS-ID für das Vollansichts-Bild fullViewImage : { cssID : "js-popup-image" }, // Bilddatei für die Lade-Animation waitAnimation : { src : "/pics/js_popup/sanduhr.gif", alt : "Sanduhr", cssID : "js-popup-wait" }, // Bilddatei für das Schließen-Icon closeIcon : { src : "/pics/js_popup/x-beenden.gif", alt : "schließen", cssID : "js-popup-close" }, // Bilddateien für das Icon zum Vergrößern/Verkleinern resizeIcon : { src_resize : "/pics/js_popup/resize.gif", alt_resize : "verkleinern", src_fullSize : "/pics/js_popup/resize_full.gif", alt_fullSize : "volle Größe", cssID : "js-popup-resize" }, // Meldung während des Ladens waitText : "Bild wird geladen...", // Alternative Bildunterschrift, falls das Thumbnail kein (oder ein leeres) alt-Attribut besitzt altCaption : "..." }, controls : { oversize : "resize", boxWidth : 90, boxHeight : 90, boxMaxWidth : 100, boxMaxHeight : 100, winInnerWidth : 100, winInnerHeight : 100 }, htmlElements : { }, functions : { // Fensterinhalt überblenden und Lademeldung anzeigen preload : function (linkObj) { // Resized-Darstellung und Popup-Abmessungen für die Ladeanzeige setzen js_popup.preloadImage = new Image(); js_popup.preloadImage.src = linkObj.href; var html_code = js_popup.settings.waitText + ' ' + js_popup.settings.waitAnimation.alt
							+ ''; js_popup.htmlElements.box.innerHTML = html_code; js_popup.controls.boxWidth = 200; js_popup.controls.boxHeight = 50; js_popup.functions.center(); // Bildunterschrift für die Vollansicht vorbereiten js_popup.preloadImage.caption = ''; var caption = linkObj.getElementsByTagName("img")[0].getAttribute("alt"); js_popup.preloadImage.caption = (caption && caption != "") ? caption : js_popup.settings.altCaption; js_popup.htmlElements.div.style.display = "block"; if(js_popup.preloadImage.width > 0) { // Bild schon im Cache geladen? -> Sofort anzeigen js_popup.functions.display(); } else { // Eventhandler setzen, damit nach dem Laden eine Anzeige kommt js_popup.functions.addEvent("load", js_popup.preloadImage, js_popup.functions.display); js_popup.functions.addEvent("error", js_popup.preloadImage, js_popup.functions.display); } return false; }, // Popup mit Vollansichtsbild anzeigen display : function () { // DIV unsichtbar schalten, um die Ladeanzeige zu deaktivieren js_popup.htmlElements.box.style.display = "none"; // Minimal-Größe für die Popup-Box js_popup.controls.boxWidth = 90; js_popup.controls.boxHeight = 90; // DIV-Box neu mit HTML-Code befüllen var html_code = '' + js_popup.settings.closeIcon.alt + ''; // Bild größer als Minimal-Größe? -> Box vergrößern if(js_popup.preloadImage.width > js_popup.controls.boxWidth || js_popup.preloadImage.height > js_popup.controls.boxHeight) { js_popup.controls.boxWidth = js_popup.preloadImage.width; js_popup.controls.boxHeight = js_popup.preloadImage.height; } // Bild größer als Maximal-Größe? if(js_popup.controls.boxWidth > js_popup.controls.boxMaxWidth || js_popup.controls.boxHeight > js_popup.controls.boxMaxHeight) { html_code += ''; // Bild soll verkleinert angezeigt werden? if(js_popup.controls.oversize == "resize") { // Bild proportional verkleinern var ratio = js_popup.preloadImage.width / js_popup.preloadImage.height; var scale = js_popup.preloadImage.width / js_popup.controls.boxMaxWidth; if(js_popup.preloadImage.height / scale > js_popup.controls.boxMaxHeight) scale = js_popup.preloadImage.height / js_popup.controls.boxMaxHeight; js_popup.controls.boxWidth = Math.ceil(js_popup.preloadImage.width / scale); js_popup.controls.boxHeight = Math.ceil(js_popup.preloadImage.height / scale); } } js_popup.functions.center(); html_code += '' + js_popup.preloadImage.caption + ''; if(js_popup.preloadImage.caption != "") html_code += '
' + js_popup.preloadImage.caption; js_popup.htmlElements.box.innerHTML = html_code; js_popup.htmlElements.fullViewImage = document.getElementById(js_popup.settings.fullViewImage.cssID); js_popup.htmlElements.fullViewImage.src = js_popup.preloadImage.src; js_popup.htmlElements.fullViewImage.width = js_popup.controls.boxWidth; js_popup.htmlElements.fullViewImage.height = js_popup.controls.boxHeight; js_popup.htmlElements.box.style.display = "block"; // Eventhandler für das Resize-Icon setzen js_popup.htmlElements.resizeIcon = document.getElementById(js_popup.settings.resizeIcon.cssID); if (js_popup.htmlElements.resizeIcon) { js_popup.functions.addEvent("click", js_popup.htmlElements.resizeIcon, js_popup.functions.toggleResize); js_popup.functions.addEvent("mouseover", js_popup.htmlElements.resizeIcon, function () { this.style.display = "inline"; } ); js_popup.htmlElements.resizeIcon.style.display = "none"; js_popup.functions.addEvent("mouseover", js_popup.htmlElements.fullViewImage, function () { document.getElementById(js_popup.settings.resizeIcon.cssID).style.display = "inline"; } ); js_popup.functions.addEvent("mouseout", js_popup.htmlElements.fullViewImage, function () { document.getElementById(js_popup.settings.resizeIcon.cssID).style.display = "none"; } ); } return false; }, // Popup auf dem Bildschirm zentrieren (es wird das DIV mit der id "js-popup-box" ausgerichtet, welches als Objekt "js_popup.box" verfügbar ist) center : function () { // Popup-Box in linke obere Ecke positionieren var x_pos = 0; var y_pos = 0; // zentrierte Position der Box errechnen if(window.innerWidth) { x_pos = Math.ceil((js_popup.controls.winInnerWidth - js_popup.controls.boxWidth)/2 + window.pageXOffset); y_pos = Math.ceil((js_popup.controls.winInnerHeight - js_popup.controls.boxHeight)/2 + window.pageYOffset); } else { x_pos = Math.ceil((js_popup.controls.winInnerWidth - js_popup.controls.boxWidth)/2 + js_popup.IE.scrollLeft); y_pos = Math.ceil((js_popup.controls.winInnerHeight - js_popup.controls.boxHeight)/2 + js_popup.IE.scrollTop); } // Padding berücksichtigen x_pos -= 15; y_pos -= 15; // übergroßes Bild? -> in Linke obere Ecke positionieren if(x_pos < 0) x_pos = 0; if(y_pos < 0) y_pos = 0; // Popup-Box positionieren js_popup.htmlElements.box.style.left = x_pos + "px"; js_popup.htmlElements.box.style.top = y_pos + "px"; return false; }, // Verkleinerung des Popup-Bildes ein-/ausschalten toggleResize : function (e) { if(!e) e = window.event; if(e.stopPropagation) e.stopPropagation(); e.cancelBubble = true; js_popup.controls.oversize = (js_popup.controls.oversize == "resize") ? "fullView" : "resize"; js_popup.functions.display(); return false; }, // Popup wieder ausschalten (verbergen) hide : function () { js_popup.htmlElements.div.style.display = "none"; return false; }, // Funktion zum Ermitteln der maximalen Fensterfläche getBrowserDimensions : function () { if(window.innerWidth) { js_popup.controls.winInnerWidth = window.innerWidth; js_popup.controls.winInnerHeight = window.innerHeight; } else { js_popup.controls.winInnerWidth = js_popup.IE.offsetWidth; js_popup.controls.winInnerHeight = js_popup.IE.offsetHeight; } // Maximal-Größe für die Popup-Box abzüglich eines Rahmens js_popup.controls.boxMaxWidth = js_popup.controls.winInnerWidth - 50; js_popup.controls.boxMaxHeight = js_popup.controls.winInnerHeight - 50; return false; }, // Funktion zum Setzen eines Eventhandlers addEvent : function (ev, obj, handle) { if(navigator.userAgent.toLowerCase().lastIndexOf("msie") < 0) { obj.addEventListener(ev, handle, false); obj.addEventListener(ev, handle, false); } else { obj.attachEvent("on" + ev, handle); obj.attachEvent("on" + ev, handle); } }, // Funktion zum Löschen eines Eventhandlers removeEvent : function (ev, obj, handle) { if(navigator.userAgent.toLowerCase().lastIndexOf("msie") < 0) { obj.removeEventListener(ev, handle, false); obj.removeEventListener(ev, handle, false); } else { obj.detachEvent("on" + ev, handle); obj.detachEvent("on" + ev, handle); } }, // Initialisierung des kompletten Popup-Objektes init : function () { // Quirksmode des IE berücksichtigen js_popup.IE = (document.compatMode && document.compatMode == "CSS1Compat") ? document.documentElement : document.body || null; // Fenstermaße ermitteln js_popup.functions.getBrowserDimensions(); // Falls noch kein DIV-Element mit der ID "js-popup" existiert, ein solches erzeugen und am Ende des body-Dokuments hinzufügen js_popup.htmlElements.div = document.getElementById(js_popup.settings.parentDiv.cssID); if(!js_popup.htmlElements.div) { js_popup.htmlElements.div = document.createElement("div"); js_popup.htmlElements.div.id = js_popup.settings.parentDiv.cssID; document.body.appendChild(js_popup.htmlElements.div); // Style-Angaben zum vorläufigen Verstecken des DIVs js_popup.htmlElements.div.style.display = "none"; js_popup.htmlElements.div.style.position = "absolute"; js_popup.htmlElements.div.style.backgroundImage = "url(" + js_popup.settings.overlayBackground.src_png + ")"; // Dieses DIV-Element ist die eigentliche Box mit der Vollansicht js_popup.htmlElements.box = document.createElement("div"); js_popup.htmlElements.box.id = js_popup.settings.popupBox.cssID; js_popup.htmlElements.box.style.position = "absolute"; // Die eigentliche Box mit der Vollansicht in das Popup-Eltern-DIV einhängen und click-Ereignis zuweisen js_popup.htmlElements.div.appendChild(js_popup.htmlElements.box); js_popup.functions.addEvent("click", js_popup.htmlElements.div, js_popup.functions.hide); js_popup.functions.addEvent("click", js_popup.htmlElements.box, js_popup.functions.hide); if(typeof(js_popup.htmlElements.div.style.filter) != "undefined") { // AlpgaImageLoader für echte Transparenz auf das Hintergrundbild des "js-popup"-DIVs anwenden js_popup.htmlElements.div.style.backgroundImage = "url(" + js_popup.settings.overlayBackground.src_blank_gif + ")"; js_popup.htmlElements.div.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + js_popup.settings.overlayBackground.src_png + '", sizingMethod="scale")'; } } // Style-Angaben für das "js-popup"-DIV, damit es das komplette Browserfenster ausfüllt if(window.innerWidth && typeof(window.scrollMaxY)) { js_popup.htmlElements.div.style.width = document.body.scrollWidth + "px"; js_popup.htmlElements.div.style.height = window.innerHeight + window.scrollMaxY + "px"; } if(js_popup.IE.scrollWidth) { js_popup.htmlElements.div.style.width = js_popup.IE.scrollWidth + "px"; js_popup.htmlElements.div.style.height = js_popup.IE.scrollHeight + "px"; } // alle HTML-Elternelemente mit der oben eingestellten CSS-Klasse ermitteln, um ihnen die Vollansichts-Funktionalität zu geben var allElements = document.getElementsByTagName("*"); var allGalleries = new Array(); for (var index_e = 0; index_e < allElements.length; index_e++) { if(allElements[index_e].className.indexOf(js_popup.settings.triggerCssClass) != -1) { // Das Class-Attribut eines HTML-Elementes kann mehrere Klassennamen enthalten, die alle durch Leerzeichen getrennt sind. // Diese Leerzeichen werden nun durch Kommata ersetzt, ebenso am Anfang und Ende je ein Komma hinzugefügt, sodass // der gesuchte Klassenname zwischen zwei Kommas stehen muss, wenn er denn für dieses Element existiert. var test = "," + allElements[index_e].className.split(" ").join(",") + ","; if(test.indexOf("," + js_popup.settings.triggerCssClass + ",") != -1) allGalleries.push(allElements[index_e]); } } for (var index_g = 0; index_g < allGalleries.length; index_g++) { // alle Bilder-Links eines gefundenen Elternelements mit der Popup-Funktion erweitern var allLinks = allGalleries[index_g].getElementsByTagName("a"); for (var index_a = 0; index_a < allLinks.length; index_a++) { // jedes Link-Element auf enthaltendes Bild überprüfen if(allLinks[index_a].getElementsByTagName("img")[0]) // falls Bild im Link, Popup-Funktion anbringen allLinks[index_a].onclick = function () { return js_popup.functions.preload(this); }; } } } } } // Die Popup-Funktionalität initialisieren js_popup.functions.oldOnLoad = window.onload; js_popup.functions.oldResize = window.onresize; window.onload = function () { if(js_popup.functions.oldOnLoad) js_popup.functions.oldOnLoad(); js_popup.functions.init(); } window.onresize = function () { if(js_popup.functions.oldResize) js_popup.functions.oldResize(); js_popup.functions.init(); }