// document.getElementById('wall').style.scrollBehavior = "smooth"; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if (holeCookie) {holeCookie("Style");} style=cookieWert; if (holeCookie) {holeCookie("rev");} // if (cookieWert == "1") {reverse = 'reverse';} else {reverse = 'normal';} if (style == 12 || cookieWert == "1" ) { reverse = 'reverse'; } else { reverse = 'normal'; } /* ///////// audio-sprite: ////////////// */ if (document.getElementById('audio-sprite')) { var audioSprite = document.getElementById('audio-sprite');} var spriteData = { stumm: { start: 0, length: 1.1 }, rein: { start: 1.4, length: 1.4 }, raus: { start: 3.6, length: 0.5 }, msg: { start: 13, length: 0.5 }, alarm: { start: 5.6, length: 5.9 } }; // current sprite being played var currentSprite = ""; // time update handler to ensure we stop when a sprite is complete var onTimeUpdate = function() { if (this.currentTime > currentSprite.start + currentSprite.length) { this.pause(); this.currentTime = 0; } }; if (document.getElementById('audio-sprite')) { audioSprite.addEventListener('timeupdate', onTimeUpdate , false); } // in mobile Safari, the first time this is called will load the audio. Ideally, we'd load the audio file completely before doing this. var playSprite = function(id) { if (spriteData[id] && spriteData[id].length) { currentSprite = spriteData[id]; setTimeout(audioSprite.currentTime = currentSprite.start,100); audioSprite.play(); } }; /* /////// end audio-sprite ///////////////// */ var flood_test ="4"; var konfig = 0; konfig = "disable"; away_msg = ''; function away() { away_msg = 'weg'; add(); // document.cookie="stop=stop"; // document.location.reload(false); alert('Du bist jetzt (vorübergehend) "away from keyboard", also "nicht an der Tastatur". \n Im Chatfenster wird für andere User eine entsprechende Meldung angezeigt. \n Wenn du zurück bist, und wieder aktiv am Chat teilnehmen willst, dann drücke in dieser Anzeige auf "OK”\, dann wird dein afk-Status beendet [wieder da].'); away_msg = 're'; add(); away_msg = ''; } function waermestube(){ away_msg = 'warm'; add(); away_msg = ''; } function popup(new_data) { if (holeCookie) {holeCookie("pop_up");} if (cookieWert == "aus" && konfig == "enable") { if (reverse == 'normal') { start = new_data.lastIndexOf("pointer")+9; post = new_data.substr(start); } else { start = new_data.indexOf("pointer")+9; end = new_data.indexOf("

"); length = end - start; post = new_data.substr(start,length)+'

'; } anex = ""; var w = window.open('', 'popup', 'width=300,height=150,left=0,top=0'); if (w) { w.document.write('

'+post+anex); new_data =""; w.document.close(); // needed for chrome and safari? } else { alert("Dein Browser verhindert leider die Anzeige eines Popups."); } } } // http://www.professorweb.de/javascript-ajax/iframe-hohe-an-dessen-inhalt-automatisch-anpassen.html /* var framefenster = document.getElementsByTagName("iFrame"); var auto_resize_timer = window.setInterval("autoresize_frames()", 400); function autoresize_frames() { for (var i = 0; i < framefenster.length; ++i) { if(framefenster[i].contentWindow.document.body){ var framefenster_size = framefenster[i].contentWindow.document.body.offsetHeight; if(document.all && !window.opera) { framefenster_size = framefenster[i].contentWindow.document.body.scrollHeight; } framefenster[i].style.height = framefenster_size + 'px'; } } } */ // Enter schickt die Eingabe ab anstelle einer Zeilenschaltung in textarea if (document.getElementById('line')) { document.f.line.onkeypress = function(e){ e = e || event; // if (e.keyCode === 13) { if (e.keyCode == 13 && !e.shiftKey) { add(); return false; } return true; } } // var Opera = (navigator.userAgent.match(/Opera|OPR\//) ? true : false); var iOS = !!navigator.platform.match(/iPhone|iPod|iPad/); if (iOS ===true) { if (document.getElementById("soundwahl")) { document.getElementById("soundwahl").style.display = "none"; } } var show_user; var sb = 0; if (location.href.indexOf("shoutbox") != -1) sb = 1; var check_n = 0; var old_data = "--"; var old_result = 1; var anz_opt = "Optionen "; var light; light = "no"; var nick; nick = ""; // http://www.validome.org/doc/HTML_ge/navigation/anzeige/rechte_maustaste.htm // duerfte inzwischen hinfaellig sein. Vor allem macht es den Rechtsklick in FF/Mac kaputt // function click (e) { // if (!e) // e = window.event; // if ((e.type && e.type == "contextmenu") || (e.button && e.button == 2) || (e.which && e.which == 3)) { // if (window.opera) // window.alert("Benutzer \u00e4lterer Opera-Versionen k\u00f6nnen die Rechtsklick-Funktion hier eventuell nicht nutzen.\n\nFalls die // // Einladung nicht im Textfeld erscheint,\nbitte die entsprechenden Tastaturbefehle benutzen siehe Hilfe.\n\n"); // return false; // } // } //if (document.layers) //document.captureEvents(Event.MOUSEDOWN); //document.onmousedown = click; // function getInternetExplorerVersion() // // Returns the version of Internet Explorer or a -1 // // (indicating the use of another browser). // { // var rv = false; // Return value assumes failure. // if (navigator.appName == 'Microsoft Internet Explorer') // { // var ua = navigator.userAgent; // var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); // if (re.exec(ua) != null) // rv = parseFloat( RegExp.$1 ); // } // return rv; // } function strpos (haystack, needle, offset) { // Finds position of first occurrence of a string within another // discuss at: http://phpjs.org/functions/strpos // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // * example 1: strpos('Kevin van Zonneveld', 'e', 5); // * returns 1: 14 var i = (haystack+'').indexOf(needle, (offset || 0)); return i === -1 ? false : i; } /* nur noch aus dem viewport schieben */ function klappx(beitrag) { if (document.getElementById) { if (document.getElementById(beitrag ).style.display == 'none') { document.getElementById(beitrag).style.display = "block"; document.getElementById('einaus_' +beitrag).innerHTML = anz_opt+' [−]'; } else { document.getElementById(beitrag).style.display = "none"; document.getElementById('einaus_' + beitrag).innerHTML = anz_opt+' [+]'; } } } function klapp(beitrag) { if (document.getElementById(beitrag)) { if (document.getElementById(beitrag).style.position == 'absolute') { document.getElementById(beitrag).style.position = "static"; document.getElementById('einaus_' +beitrag).innerHTML = anz_opt+' (esc)'; } else { document.getElementById(beitrag).style.position = "absolute"; document.getElementById(beitrag).style.left = -1000; document.getElementById(beitrag).style.top = -1000; document.getElementById(beitrag).style.width = 0; document.getElementById(beitrag).style.height = 0; document.getElementById(beitrag).style.overflow = 'hidden'; document.getElementById(beitrag).style.display = 'inline'; document.getElementById('einaus_' + beitrag).innerHTML = anz_opt+' (strg+1) '; } } playsound(''); // damit beim Klappen kein Sound gespielt wird. } function kp(e){ if (!e) e=event; // alert (e.keyCode); //if (e.keyCode==79 && e.altKey) {klapp('ae'); document.getElementById("reverse").focus(); return false;} /* alt + o */ if (e.ctrlKey && e.keyCode==49) {klapp('ae'); document.getElementById("reverse").focus(); return false;} /* strg + 1 */ if (e.keyCode==27 && document.getElementById('ae').style.position != 'absolute'){klapp('ae'); document.getElementById("line").focus();} } document.onkeydown=kp; function FensterOeffnen (url) { var width = screen.width * 0.45; var height = screen.height * 0.75; var left = (screen.width - width)/1.1; var top = (screen.height - height)/3; var params = 'width='+width+', height='+height; params += ', top='+top+', left='+left; params += ', location=no'; params += ', menubar=no'; params += ', resizable=yes'; params += ', scrollbars=yes'; params += ', status=no'; params += ', toolbar=no'; params += ', dependent=yes'; newwin=window.open(url,'usr_smileys', params); if (window.focus) {newwin.focus()} return false; } var self_close = "no"; var self_close = "no"; function closepopup() { if(typeof(newwin) == "object" && false == newwin.closed && self_close != "on") { // if(false == newwin.closed) { newwin.close (); } else { // do nothing; } } function YTPop (Adresse) { var iPhone = !!navigator.platform.match(/iPhone|iPod/); if (iPhone === false) { MeinFenster2 = window.open(Adresse,'youtube','width=800, height=450, left=0, top=0, toolbar=no, location=no, menubar=no, scrollbars=yes, status=no, resizable=yes, dependent=yes').focus(); } } function loadytiframe(newsrc){ var newloc = newsrc; document.getElementById('mob_yt').style.height = "120px"; document.getElementById('mob_yt').setAttribute('src', newloc); } function CookieSetz(Bezeichner,Wert,Dauer) { jetzt=new Date(); Auszeit=new Date(jetzt.getTime()+Dauer*86400000); document.cookie=Bezeichner+"="+Wert+";expires="+Auszeit.toGMTString()+";"; } var cookieWert; function holeCookie(keksname) { var alleCookies, i; alleCookies=document.cookie; cookieArr=alleCookies.split(";"); for(var i=0;i < cookieArr.length;i++) { if(cookieArr[i].split("=")[0].replace(/\s+/,"") == keksname) { cookieWert=cookieArr[i].split("="); cookieWert=decodeURIComponent(cookieWert[1].replace(/\+/g," ")); return true; } } return false; } // Abfrage, ob Admin: var isadmin = "0"; var ismod = "0"; if(isadmin==1 && ismod==1) {alert ("Achtung! Du bist gleichzeitig Admin und Moderator!")}; allow_url_fopen = 1; // die Anzeige der online-Zeit bei reloads oder Raumwechsel nicht zuruecksetzen: var Jetzt = new Date(); cookieWert =""; holeCookie("arrival"); if (cookieWert != "") { login = cookieWert; } else { login = Jetzt.getTime(); } // console.log (login); // unerlaubte Raumnamen zurueckweisen: function room_name() { if (document.forms[2].room.value.match(/\W/)) { alert ("Nicht erlaubte Zeichen im Raumnamen!"); return false; } } // AJAX http://board.gulli.com/thread/801675-php-script-aus-einem-javascript-aufrufen/ function get(url, callback_function, return_xml){ var http_request = false; if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml; charset= iso-8859-1'); } }else if(window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); }catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Leider unterstuetz Ihr Browser diese Funktion nicht.'); return false; } http_request.onreadystatechange = function() { if (http_request.readyState == 4) { if (http_request.status == 200) { if (return_xml) { eval(callback_function + '(http_request.responseXML)'); } else { // eval(callback_function + '(http_request.responseText)'); // scheint ausser einem JS error nichts zu bewirken } } else { alert('Problem: ' + http_request.status + ')'); } } } http_request.open('GET', url, true); http_request.send(null); } function playmp3_mit_http(typ) { // document.getElementById('mob_yt').style.setProperty("display", "none", "important"); document.getElementById("mp3").style.display="inline-block"; document.getElementById("mp3").innerHTML = ''; //document.getElementById("line").focus(); if (holeCookie) {holeCookie("counted");} if (cookieWert != typ) { // bei wiederholten Klicks des selben Titels nur einmal zaehlen get("mp3log.php?file="+typ,""); // Aufruf der Funktion zum Schreiben des Logfiles // erst nach 2 Min. wird der selbe Titel erneut gezaehlt var ablauf = new Date(); var Minuten = ablauf.getTime() + ( 120 * 1000); ablauf.setTime(Minuten); document.cookie="counted="+typ+"; expires=" + ablauf.toGMTString(); } } function playmp3olog_mit_http(typ) { // document.getElementById('mob_yt').style.setProperty("display", "none", "important"); document.getElementById("mp3").style.display="inline-block"; document.getElementById("mp3").innerHTML = '

Play

'; //document.getElementById("line").focus(); } function hide_player() { document.getElementById("mp3").style.display="none"; } function loadytiframe(newsrc){ var newloc = newsrc; document.getElementById('mob_yt').style.height = "180px"; document.getElementById('mob_yt').setAttribute('src', newloc); } time_init = 2000; if (time_init < 500) time_init = 500; // disconnect = time_init * 3; // disconnect bei Erreichen dieses refresh Wert // //slowdown = ; //meldung = '..... Chat disconnected (timeout) \n\nHey, hier ist ein Chat, und keine \u00f6ffentliche W\u00e4rmestube!' ; // Online Zeit anzeigen: // erst nach 10 Min. Inaktivitaet startet ein reload oder Raumwechsel die online Zeit neu: var ablauf = new Date(); var Minuten = ablauf.getTime() + (10 * 60 * 1000); ablauf.setTime(Minuten); // document.cookie="arrival="+login+"; expires=" + ablauf.toGMTString(); // function ZeitAnzeigen () { // if (document.getElementById('Anzeige2')) { // var absSekunden = Math.round(ZeitBerechnen()); // var relSekunden = absSekunden % 60; // var absMinuten = Math.abs(Math.round((absSekunden - 30) / 60)); // var relMinuten = absMinuten % 60; // var absStunden = Math.abs(Math.round((absMinuten - 30) / 60)); // var anzSekunden = "" + ((relSekunden > 9) ? relSekunden : "0" + relSekunden); // var anzMinuten = "" + ((relMinuten > 9) ? relMinuten : "0" + relMinuten); // var anzStunden = "" + ((absStunden > 9) ? absStunden : "0" + absStunden); // if (absStunden >= 1) { // document.getElementById('Anzeige2').innerHTML = anzStunden + ":" + anzMinuten + ":" + anzSekunden; // } else { // document.getElementById('Anzeige2').innerHTML = anzMinuten + ":" + anzSekunden; // } // setTimeout("ZeitAnzeigen()", 1000); // } // } // // function ZeitBerechnen () { // var Immernoch = new Date(); // return ((Immernoch.getTime() - login * 1000) / 1000); // } // // // // Uhr anzeigen: // function UhrAnzeigen() { // if (document.getElementById('Uhr_Anzeige2')) { // realtime(); // window.setInterval("realtime()", 1000); // } // } // // function realtime() { // var now = new Date(); // hours = now.getHours(); // minutes = now.getMinutes(); // seconds = now.getSeconds(); // // thetime = (hours < 10) ? "0" + hours + ":" : hours + ":"; // thetime += (minutes < 10) ? "0" + minutes + ":" : minutes + ":"; // thetime += (seconds < 10) ? "0" + seconds : seconds; // // element2 = document.getElementById("Uhr_Anzeige2").innerHTML = thetime; // } function jump(form) { order = form.menu1.selectedIndex; if (form.menu1.options[order].value != 0) { ads(form.menu1.options[order].value); } } function jump_color(form) { ads('/color '+form.querySelector('input').value); } var ablauf2 = new Date(); var Minuten2 = ablauf2.getTime() + (360 * 24 * 60 * 60 * 1000); ablauf2.setTime(Minuten2); function jump2(form) { order = form.menu2.selectedIndex; if (form.menu2.options[order].value != 0) { var style = form.menu2.options[order].value; document.cookie="Style="+style+"; expires=" + ablauf2.toGMTString(); window.location.reload(); } } function setlang(lg) { document.cookie="lang="+lg+"; expires=" + ablauf2.toGMTString(); } function playsound(typ) { // die standardkonforme Loesung fuer alle Browser if (document.getElementById('ton')) { document.getElementById("ton").innerHTML = ''; } } time1 = time_init; function refresh_cb(new_data) { freezed = false; // console.log(freezed); last_msg=""; msg_pos = 0; teil_msg = ""; if (typeof old_data == "undefined" || old_data == "--") { if (playsound) playsound('mp3.w4f.eu/reload2.mp3'); // Sound bei reload } else { if (typeof handle != "string") { holeCookie("nick"); msg_pos = new_data.lastIndexOf("color:"); last_msg = new_data.substr(msg_pos); if (old_msg != last_msg && last_msg.indexOf("/pn") == -1) { if (iOS !==true) { playsound('mp3.w4f.eu/eingang.mp3'); // Sound bei nicht /pn, kein Sound bei /pn - warum nicht? } else { playSprite('msg'); } if (iOS !==true && style!= '12' && style !='11') {popup(new_data);} } // wenn Admin pn kriegt, kein sound if (old_msg != last_msg && last_msg.indexOf(cookieWert) != -1) { if (iOS !==true) { playsound('mp3.w4f.eu/eingang.mp3'); // Sound bei /pn an mich } else { playSprite('msg'); } } if (isadmin == 1 && last_msg.indexOf("/pn") != -1) { if (iOS !==true) { playsound('mp3.w4f.eu/eingang.mp3'); // Sound fuer Admin bei allen /pn } else { playSprite('msg'); } } function alertMsg() { alert("Hallo! Aufwachen!\nHello! Wake Up!"); } // der Alarmruf: if (last_msg.indexOf("/alarm") != -1 && last_msg.indexOf(nick) != -1) { if (iOS !==true) { playsound('mp3.w4f.eu/alarm3.mp3'); } else { playSprite('alarm'); } setTimeout(alertMsg,3000); } // echter /kick: if (last_msg.indexOf("you've been kicked") != -1 && last_msg.indexOf(nick) != -1) { window.location.href = 'kick.php?nick='+nick; } } } old_msg = ""; if (typeof last_msg == "string") old_msg = last_msg; handle = 1; if (document.getElementById("wall")) {document.getElementById("wall").innerHTML = new_data;} // ARIA if (document.getElementById("jaws")) { msg_pos = new_data.lastIndexOf(": pointer"); last_msg = new_data.substr(msg_pos + 11); if (last_msg.indexOf("',0); sub3_aria = sub1_aria.substring(rest + 1); // alles nach dem img last_msg = sub0_aria + sub2_aria + sub3_aria; } // if (last_msg.indexOf('x-shockwave-flash') == -1) { document.getElementById("jaws").innerHTML = '

' + last_msg + '

'; // } else { // document.getElementById("jaws").innerHTML = '

Flash Video

'; // } } // // scroll_int(e) wird nicht mehr aufgerufen // function scroll_int(e) { // elem = document.getElementById(e); // // if (reverse == "reverse") { // if (elem.scrollTop < 0.5) { // elem.scrollTop=0; // clearInterval(scroll_ready); // } // } else { // if (elem.scrollHeight - elem.scrollTop - elem.clientHeight > 0.5) { // // Scrolltempo degressiv: // //delta = elem.scrollHeight - elem.scrollTop; // //elem.scrollTop=elem.scrollTop + delta / 200; // elem.scrollTop=elem.scrollTop + 3; // // // } else { // //setTimeout (elem.scrollTop=elem.scrollHeight + 1000,1000); // //elem.scrollTop=elem.scrollHeight; // clearInterval(scroll_ready); // } // } // } if (reverse !== "reverse") { if (style == 7) { setTimeout(function(){ elem.scrollTop=elem.scrollHeight + 1000; }, 600); } else { setTimeout(function(){ elem.scrollTop=elem.scrollHeight + 1000; }, 300); setTimeout(function(){ elem.scrollTop=elem.scrollHeight + 1000; }, 1000); } } old_data = new_data; time1 = time_init; // bei Eingang einer neuen Meldung wirds wieder schnell setTimeout("changed_data()", time1); } function scroll_click() { elem = document.getElementById('wall'); if (reverse !== "reverse") { elem.scrollTop=elem.scrollHeight + 1000; } } // Filesize abfragen vor dem AJAX refresh var old_size; function set_file_changed(new_size) { // WOW! so lässt sich komfortabel der Verlauf lesen. elem = document.getElementById('wall'); // console.log(elem.scrollHeight - elem.scrollTop - elem.clientHeight); // console.log (elem.scrollHeight +'-'+ elem.scrollTop +'-'+ elem.clientHeight); // console.log (elem.scrollHeight); // console.log (elem.scrollTop); // console.log (elem.clientHeight); if (elem.scrollHeight - elem.scrollTop - elem.clientHeight <= 25 || reverse == "reverse" ) { elem.style.background = "none"; if (document.getElementById('clickable')) { document.getElementById('clickable').style.visibility="hidden"; } if ( typeof old_size == "undefined" || new_size != old_size) { old_size = new_size; x_refresh(refresh_cb); } else { // hierher die Waermestube! if (typeof time1 != "undefined" ) { // if (isadmin != 1 && ismod != 1) {time1 = time1 * (1 + slowdown*0.0002);} // wenn nix los ist, wirds immer langsamer, bis zum timeout: // if (time1 > disconnect) { // /* time1 = disconnect * 0.6; macht mit logout keinen Sinn - zuruecksetzen und halbiert Zeit bis zum disconnect ab dem 2. mal */ // waermestube(); // alert(meldung); // location.href = "logout.php"; // // /* wozu war das? if (light != "yes" && show_user != "no") u_online(); // if (light != "yes" && show_user != "no" && sb != 1)u_online_room(); // */ // } // console.log (time1); // die neue Wärmestube: holeCookie("last"); last=cookieWert; akt = Math.floor(Date.now() / 1000); sleeptime = akt - last; // console.log (sleeptime); if (sleeptime > 60 * 30) { // 30 Minuten last = Math.floor(Date.now() / 1000); document.cookie = 'last='+last+''; alert("Hallo " +nick+"! \nNicht nur mitlesen! Bitte schreib' doch auch mal wieder etwas!"); document.getElementById('line').focus(); } setTimeout("x_file_changed(set_file_changed)",time1); return; } } } else { if (reverse == "reverse") { // do nothing } else { elem.style.background = "transparent url(\'img/arrow_dwn.png\') no-repeat 97% 97%"; elem.style.backgroundSize = "17px"; if (document.getElementById('clickable')) {document.getElementById('clickable').style.visibility="visible";} } // die neue Wärmestube: holeCookie("last"); last=cookieWert; akt = Math.floor(Date.now() / 1000); sleeptime = akt - last; // console.log (sleeptime); if (sleeptime > 60 * 30) { // 30 Minuten last = Math.floor(Date.now() / 1000); document.cookie = 'last='+last+''; alert("Hallo " +nick+"! \nNicht nur mitlesen! Bitte schreib' doch auch mal wieder etwas!"); document.getElementById('line').focus(); } // setTimeout("changed_data()",time1); setTimeout("x_file_changed(set_file_changed)",time1); } } function changed_data() { x_file_changed(set_file_changed); } function add_cb() { // we don't care.. } var handle; // Var global wg. Klick on send function add() { if (reverse == "reverse") { elem = document.getElementById('wall'); elem.scrollTop=0;; } else { elem = document.getElementById('wall'); elem.scrollTop=elem.scrollHeight; } line = document.getElementById("line").value; away_msg == ""; holeCookie("watch"); if (location.search.indexOf('room=Info') == -1) { if (away_msg == "weg" && (isadmin < 1 || cookieWert != "on")) {line = "[hello2][ist jetzt mal \bafk][/hello2] ";} if (away_msg == "warm" && (isadmin < 1 || cookieWert != "on")) {line = "[hello2][hat sich in die W\u00e4rmestube zur\u00fcckgezogen][/hello2] ";} if (away_msg == "re" && (isadmin < 1 || cookieWert != "on")) {line = "[hello][wd][/hello] "; document.location.reload(false);} } if (cookieWert == "on" && line.indexOf(" afk") != -1 ) { alert ("Away from keyboard (afk) nicht verwenden, wenn ghost-mode on."); document.getElementById("line").value = ""; return; } handle = document.getElementById("handle").value; // Fluestern nur erlauben, wenn ein Admin beteiligt ist var user_whisper = "all"; if (user_whisper == "admin") { if (line.indexOf("/pn") != -1) { if (isadmin != 1 ) { // der Admin darf alle anfluestern // suchen, ob einer der Admins angesprochen wird var at_admin = 0; for (var i = 0; i < all_admins.length; i++) { if (line.indexOf('@'+all_admins[i]+' ') != -1) { var at_admin = 1; } } if (at_admin != 1) { alert("Fl\u00fcstern ist nur erlaubt, wenn ein Admin beteiligt ist."); return; } } } } // kein zusätzlicher Test in _pr-Einladung if (line.indexOf(" /pn") != -1 && line.indexOf("_pr ") != -1 ) { line = line.substring(0, line.indexOf('/pn') + 3); } // nicht an mehrere Empfänger flüstern // und auch /pn @user1 @user2 bla bla unterbinden var count2 = (line.match(/@/g) || []).length; if (line.indexOf("/pn") != -1 && count2 >= 2) { alert ("Achtung! Du versuchst, mit mehr als einem User gleichzeitig zu flüstern! Das ist hier nicht erlaubt."); line = ""; } // nicht an sich selbst schreiben: holeCookie("nick"); if (line.indexOf("@" + cookieWert) != -1 ) { alert ("Willst du wirklich an dich selbst schreiben?"); return; } // keine leere Nachricht zulassen: if (line == "" || line == "(Schreib' etwas!)" ) { return; } if (line.indexOf("file://") != -1) { alert ("Nicht erlaubte Zeichen in der Nachricht!"); if (document.getElementById("line")) document.getElementById("line").value = ""; return; } if (isadmin != 1) { if (line.indexOf("/add") != -1) { //muss hier bereits abgefangen werden wg. folgendem if alert("Dieser Befehl steht nur dem Admin zur Verf\u00fcgung!"); if (document.getElementById("line")) document.getElementById("line").value = ""; return; } } if (line.indexOf("/add ") != -1 && isadmin == 1 && allow_url_fopen != 1) { alert ("Dein Server erlaubt das leider nicht (allow_url_fopen=off)"); if (document.getElementById("line")) document.getElementById("line").value = ""; return; } // die Versionsanzeige if (line.indexOf("/pn") != -1 && line.indexOf(" afk ") != -1 ) { alert ("Away from keyboard (afk) darf nicht geflüstert werden."); document.getElementById("line").value = ""; return; } if (line.indexOf("/version") != -1) { alert ("Chat by webdesign.weisshart.de \nVersion: 1.178.02"); document.getElementById("line").value = ""; return; } if (line.indexOf("/usr_smileys.php#") != -1 || line.indexOf("#a") != -1 ) { alert ("Drag & Drop von Smileys geht nur aus dem Nachrichtenfenster, \naber nicht von der Smiley-Leiste oder dem More Smileys Fenster."); document.getElementById("line").value = ""; return; } var user_whisperroom = "admin"; if (user_whisperroom == "admin") { if (line.indexOf("_pr") != -1 && isadmin != 1) { alert ("Fl\u00fcsterr\u00e4ume darf nur der Admin \u00f6ffnen."); if (document.getElementById("line")) document.getElementById("line").value = ""; return; } } var guest_write = "yes"; if (guest_write == "no" ) { var nickname = ""; if (nickname.indexOf("Gast") !== -1) { alert ("Als Gast kannst du nicht schreiben.\n\nUm zu schreiben, log dich bitte aus,\nund melde dich mit deinem registrierten Nicknamen an,\noder registriere dich (das geht ganz schnell!)."); if (document.getElementById("line")) document.getElementById("line").value = ""; return; } } Check = "true"; if (isadmin == 1 && line.indexOf("/del ") != -1) { Check = confirm("Willst du den eingegebenen Raum wirklich l\u00f6schen und entfernen?\n\nHinweis: den Raum, in dem du dich befindest, kannst du nicht l\u00f6schen."); if (Check == false) { if (document.getElementById("line")) document.getElementById("line").value = ""; return; } } // mehr als 4 mal das gleiche Zeichen oder die gleiche Zeichenfolge (z.B. smileys) zurueckweisen und umwandeln if (isadmin != 1) { var re = new RegExp("(\.+)\\1{"+flood_test+",}"); if (line.search(re) != -1 && line.indexOf("#") == -1 && line.indexOf("youtube") == -1) { alert("Sieht so aus, als ob deine Tastatur klemmt?\nBitte \u00fcberpr\u00fcfe deine Eingabe."); return; } } // mehr als 4 mal Leerraum oder Zeilenschaltung zurueckweisen und umwandeln if (isadmin != 1) { var re = new RegExp("(\\n+)\\1{"+flood_test+",}"); if (line.search(re) != -1) { alert("Sieht so aus, als ob deine Tastatur klemmt?\nBitte \u00fcberpr\u00fcfe deine Eingabe."); return; } } // Schreien (nur Grossbuchstaben) zurueckweisen: if (isadmin != 1 && line.indexOf(")") == -1 && line.indexOf("(") == -1) { line_no_digits = line.replace(/[0-9]/g, ''); upper_line_no_digits = line.toUpperCase(); if (line_no_digits === upper_line_no_digits && line.length > flood_test ) { alert("Sieht so aus, als ob deine Tastatur kaputt ist.\nHast du nur Gro\u00dfbuchstaben?\nSo etwas gilt im Chat als unh\u00f6flich."); } } // Mehrfacheingabe von Upload oder sonstiger Links unterbinden if (line.lastIndexOf("http:") - line.indexOf("http:") > 0 && line.indexOf("smileys") == -1 ) { alert("Nur ein Link/Dateiupload pro Eingabe erlaubt!"); return; } if (line.indexOf("/away") != -1 ) { away();return false } // if (line.toUpperCase().indexOf(" AFK") !== -1 || line.toUpperCase().indexOf(" A F K") !== -1 && line.indexOf(" ist ") == -1 && line.indexOf(" is ") == -1 && line.indexOf(" iss ") == -1 || line.toUpperCase() == "AFK " || line.toUpperCase() == "A F K" ) { away(); return false} if (line.indexOf("/ip") != -1 && isadmin == 1) { document.cookie="showip=on; expires=" + ablauf2.toGMTString(); document.location.reload(false); } if (line.indexOf("/noip") != -1 && isadmin == 1) { document.cookie="showip=off; expires=" + ablauf2.toGMTString(); document.location.reload(false); } if (line.indexOf("/go") != -1) { // document.cookie="stop=go"; document.location.reload(true); } if (line.indexOf("/topic") != -1 || line.indexOf("/topicscroll") != -1) { newline = str_replace("/topicscroll","",line ); newline = str_replace("/topic","",newline ); if (document.getElementById('topic')) { // document.getElementById('topic').innerHTML = newline; document.getElementById('topic').innerHTML = '' + newline + ''; } var laufschrift = document.getElementById("topicscroll"); len = laufschrift.innerHTML.length; room = document.getElementById("wrapper").clientWidth; if (len < (room / 7)) { document.getElementById("topicscroll").getElementsByTagName("span")[0].style.paddingLeft="0"; document.getElementById("topicscroll").getElementsByTagName("span")[0].style.animation="0"; } } // if (line.indexOf("/topicscroll") != -1 ) { // newline = str_replace("/topicscroll","",line ); // // if (document.getElementById('topic')) { // document.getElementById('topic').innerHTML = '' + newline + ''; // } // } // bestimmte Befehle zurueckweisen, wenn nicht Admin oder Mod: if (isadmin != 1 && ismod !=1) { if (line.indexOf("/ban") != -1 || line.indexOf("/kick") != -1 || line.indexOf("you've been kicked") != -1 || line.indexOf("/maulkorb") != -1 || line.indexOf("/maul") != -1 || line.indexOf("/nopv") != -1 ) { alert("Dieser Befehl steht nur dem Admin zur Verf\u00fcgung!"); if (document.getElementById("line")) document.getElementById("line").value = ""; return; } p_room = ""; if (line.indexOf("/clear") != -1 && p_room.indexOf("_pr") == -1) { alert("Dieser Befehl steht nur dem Admin zur Verf\u00fcgung!"); if (document.getElementById("line")) document.getElementById("line").value = ""; return; } } // bestimmte Befehle zurueckweisen, wenn nicht Admin: if (isadmin != 1) { if (line.indexOf("/ghost") != -1 || line.indexOf("/peep") != -1 || line.indexOf("/nopeep") != -1 || line.indexOf("/ip") != -1 || line.indexOf("/noip") != -1 || line.indexOf("/approve") != -1 || line.indexOf("/offline") != -1 || line.indexOf("/del") != -1 || line.indexOf("/del_smiley") != -1 || line.indexOf("/archiv") != -1 || line.indexOf("/topic") != -1 || line.indexOf("/pixel") != -1 || line.indexOf("/alarm") != -1 || line.indexOf("/showprofil") != -1 || line.indexOf("/profil") != -1 ) { alert("Dieser Befehl steht nur dem Admin zur Verf\u00fcgung!"); if (document.getElementById("line")) document.getElementById("line").value = ""; return; } if (line.indexOf("img ") != -1 || line.indexOf(" src") != -1 ) { alert("Kein HTML hier!"); return; } } if (isadmin != 1 && ismod !=1) { if (line.indexOf("/erase") != -1 || line.indexOf("/pin") != -1 || line.indexOf("/stick") != -1 ) { alert("Dieser Befehl steht nur dem Admin zur Verf\u00fcgung!"); return; } } // if (line.indexOf("/stop") != -1 ) { // alert("Du hast Autoscroll deaktiviert, um ungestört alte Meldungen nachzulesen. Gib \/go ein, oder lade die Seite neu, um wieder automatisch zur neuesten Meldungen zu scrollen."); // } // nicht erlaubte IRC Befehle zurueckweisen: nick_angemeldet = holeCookie("nick"); var nickname = ""; hello = "yes"; hello = "yes"; ankunft = holeCookie("greeted"); // ein eigenes cookie fuer die Begruessung if(hello != "no" && cookieWert != "yes" && isadmin != 1 && line.indexOf('youtu') == -1 && location.search.indexOf('room=Info') == -1 && line.indexOf('[hello2]')== -1) { // die Begruessung macht den youtube link kaputt + keine Hello wenn Wärmestube //document.cookie="nick="+nickname; document.cookie="greeted=yes"; // Firefox loescht u. U. cookie am Sitzungsende nicht. x_add_line(handle + ": " + line, add_cb); } else { x_add_line(handle + ": " + line, add_cb); } // Anwesenheitscookie erneuern beim Schreiben einer msg // var ablauf = new Date(); // var Minuten = ablauf.getTime() + (10 * 60 * 1000); // ablauf.setTime(Minuten); last = Math.floor(Date.now() / 1000); document.cookie = 'last='+last+''; // console.log (Math.floor(Date.now() / 1000)); if (document.getElementById("line")) document.getElementById("line").value = ""; } // der Versuch, eine Sperrdatei abzufragen // https://stackoverflow.com/questions/3646914/how-do-i-check-if-file-exists-in-jquery-or-pure-javascript/11223909# function UrlExists(url) { if(url){ var req = new XMLHttpRequest(); req.open('GET', url, false); //req.open('HEAD', url, false); req.send(); return req.status==200; } else { return false; } } // http://hendi.name/2006/04/08/str_replace-fur-javascript/ // wird fuer die folgende function set_user benoetigt function str_replace(search, replace, subject) { return subject.split(search).join(replace); } function set_user(result) { if (document.getElementById('uo')) { document.getElementById('uo').innerHTML = result; } } function u_online() { x_user_online(set_user); // if (time1 < disconnect) setTimeout("u_online()", time1 * 5.33); //dynamisch setTimeout("u_online()", 2000 * 3.33); //statisch } function set_user_room(result1) { if (document.getElementById('user_pro_room')) document.getElementById('user_pro_room').innerHTML = result1; } function u_online_room() { // per cookie den refresh vermeiden: // if (holeCookie) holeCookie("stop"); // if (cookieWert != "stop") { x_user_room(set_user_room); setTimeout("u_online_room()", time1 * 8.33); //dynamisch // } } function ads(smiley) { if (document.getElementById('line').value.indexOf('Schreib' etwas!') !== -1) { document.getElementById('line').value = ""; } document.getElementById('line').focus(); document.getElementById('line').value = document.getElementById('line').value + ' ' + smiley + ' '; } function max(e) { if (e.clientHeight == "120") { e.style.maxHeight="120px"; e.style.cursor="zoom-out"; } else if (e.clientHeight > "120") { e.style.maxHeight="120px"; e.style.cursor="zoom-in"; } } function pinnwand1 () { if (localStorage) { var w = localStorage.getItem("pop1_width") || 520; var h = localStorage.getItem("pop1_height") || 700; var l = localStorage.getItem("pop1_left") || 10; var t = localStorage.getItem("pop1_top") || 30; window.open("pinns/pinnwand1.php", "pinnwand1", "top=" + t + ", left=" + l + ", width=" + w + ", height=" + h +""); } else { window.open("pinns/pinnwand1.php", "pinnwand1", " width=520, height=700"); } } function pinnwand2 () { if (localStorage) { var w = localStorage.getItem("pop2_width") || 520; var h = localStorage.getItem("pop2_height") || 700; var l = localStorage.getItem("pop2_left") || 10; var t = localStorage.getItem("pop2_top") || 30; window.open("pinns/pinnwand2.php", "pinnwand2", "top=" + t + ", left=" + l + ", width=" + w + ", height=" + h +""); } else { window.open("pinns/pinnwand2.php", "pinnwand", " width=520, height=700"); } } function smileybox () { if (localStorage) { var w = localStorage.getItem("box_width") || 340; var h = localStorage.getItem("box_height") || 600; var l = localStorage.getItem("box_left") || screen.width * .7; var t = localStorage.getItem("box_top") || screen.height * .2; window.open("usr_smileys1.php", "smileybox", "top=" + t + ", left=" + l + ", width=" + w + ", height=" + h +""); } else { window.open("usr_smileys1.php", "smileybox", " width=340, height=600"); } } function prbox(e) { if (iOS !==true) { // do not use chat_pr on mobile, use skin7 instead e = e.replace("chat.php", "chat_pr.php"); } if (localStorage) { var pw = localStorage.getItem("prbox_width") || 400; var ph = localStorage.getItem("prbox_height") || 650; var pl = localStorage.getItem("prbox_left") || screen.width * .7; var pt = localStorage.getItem("prbox_top") || screen.height * .2; window.open(e, "prbox", "top=" + pt + ", left=" + pl + ", width=" + pw + ", height=" + ph +""); } else { window.open(e, "prbox", " width=400, height=650"); } } function load() { if (document.getElementById('jaws')) { //document.getElementById('jaws').setAttribute('aria-relevant', 'all'); document.getElementById('jaws').setAttribute('aria-live', 'assertive'); } var show_user; show_user = "yes"; var show_rooms; show_rooms = "yes"; var raum; if (window.location.search.indexOf("_pr") !== -1) raum = "pr"; // setTimeout("changed_data()",1000); setTimeout("x_file_changed(set_file_changed)",1000); klapp('ae'); var u_on_room = 1; if (sb == 1) u_on_room = 0; if (light == "yes") u_on_room = 0; if (show_rooms == "no") u_on_room = 0; if (raum == "pr" && show_rooms == "no" && isadmin != 1 ) u_on_room = 0; if (u_on_room == 1) u_online_room(); var u_on = 1; // if (sb == 1) u_on = 0; // in der SB u_online zeigen, weil sonst ghost if (light == "yes") u_on = 0; if (show_user == "no") u_on = 0; if (u_on == 1) u_online(); // if (light != "yes" && sb != 1) ZeitAnzeigen(); // if (light != "yes" && sb != 1) UhrAnzeigen(); } function ProfilOeffnen (Adresse) { var seconds = new Date().getTime() / 1000; MeinFenster = window.open(Adresse+"&test="+seconds, "Zweitfenster", "width=500,height=500,left=100,top=100"); MeinFenster.focus(); } function toggle_vid(e) { if (e.paused) { e.play(); } else { e.pause(); e.removeAttribute('playsinline'); } } function fadeout() { document.body.style.backgroundColor = 'white'; document.body.style.background = 'none'; document.getElementsByTagName('body')[0].style.opacity = 0; document.getElementsByTagName('body')[0].style.WebkitTransition = 'opacity 500ms'; document.getElementsByTagName('body')[0].style.Transition = 'opacity 500ms'; } holeCookie("arrival"); if (cookieWert != "") { window.onload=load; } else { document.write('



Ohne Cookies läuft der Chat leider nicht. Bitte erlaube Cookies in Deinem Browser.

'); } if (document.getElementById("topicscroll")) { var laufschrift = document.getElementById("topicscroll"); len = laufschrift.innerHTML.length; room = document.getElementById("wrapper").clientWidth; // console.log(room); // console.log(len); if (len < (room / 7)) { document.getElementById("topicscroll").getElementsByTagName("span")[0].style.paddingLeft="0"; document.getElementById("topicscroll").getElementsByTagName("span")[0].style.animation="0"; } } // Toggle gif animations - and clear input - on escape document.addEventListener('keydown', freeze_gifs_on_escape, true); var freezed = false; function freeze_gifs_on_escape(e) { if(document.getElementById("line").value.length > 0) { if (e.keyCode == 27 && !e.shiftKey && !e.ctrlKey && !e.altKey) { document.getElementById("line").value = ''; } } else if (e.keyCode == 27 && !e.shiftKey && !e.ctrlKey && !e.altKey || e.keyCode == 13) { if (freezed !== true) { [].slice.apply(document.images).filter(is_gif_image).map(freeze_gif); freezed = true; } else if(document.getElementById("line").value.length == 0) { x_refresh(refresh_cb); freezed = false; } } } function is_gif_image(i) { return /^(?!data:).*\.gif/i.test(i.src); } function freeze_gif(i) { var c = document.createElement('canvas'); var w = c.width = i.width; var h = c.height = i.height; c.getContext('2d').drawImage(i, 0, 0, w, h); try { i.src = c.toDataURL("image/gif"); // if possible, retain all css aspects } catch(e) { // cross-domain -- mimic original with all its tag attributes for (var j = 0, a; a = i.attributes[j]; j++) c.setAttribute(a.name, a.value); i.parentNode.replaceChild(c, i); } } // Toggle gif animations on left-/right swipe // https://code-maven.com/swipe-left-right-vanilla-javascript (function() { var min_horizontal_move = 30; var max_vertical_move = 30; var within_ms = 1000; var start_xPos; var start_yPos; var start_time; function touch_start(event) { start_xPos = event.touches[0].pageX; start_yPos = event.touches[0].pageY; start_time = new Date(); } function touch_end(event) { var end_xPos = event.changedTouches[0].pageX; var end_yPos = event.changedTouches[0].pageY; var end_time = new Date(); var move_x = end_xPos - start_xPos; var move_y = end_yPos - start_yPos; var elapsed_time = end_time - start_time; if (Math.abs(move_x) > min_horizontal_move && Math.abs(move_y) < max_vertical_move && elapsed_time < within_ms) { if (move_x < 0) { //alert("left"); [].slice.apply(document.images).filter(is_gif_image).map(freeze_gif); freezed = true; } else { //alert("right"); x_refresh(refresh_cb); freezed = false; } } } var content = document.getElementById("wrapper"); content.addEventListener('touchstart', touch_start); content.addEventListener('touchend', touch_end); })();