/* * * In dieser Datei sind alle Javascript Bestandteile, welche zur Interaktion auf Mitglieder-Daten notwendig sind. * Beispiele: Mitglieder nach Eingabe vorschlagen, ggf. auch weitere Daten eines Mitglieds per Ajax erhalten * * */ /*function createRequestObject(){ var ro; var browser = navigator.appName; if(browser == "Microsoft Internet Explorer"){ ro = new ActiveXObject("Microsoft.XMLHTTP"); } else{ ro = new XMLHttpRequest(); } return ro; } var http = createRequestObject(); */ // alert ('search_username.js tatsaechlich geladen'); var miranus_search_username; var miranus_search_username_suggest; function miranus_add_js_search_username(nodeid) { /* * ToDo: * * Es soll einheitlich in allen Foren-Bereichen möglich sein ein input Feld mit dem HTML-Code * onfocus="miranus_add_js(this,'search_username'); (mehr soll nicht notwendig sein) * um die hier definierte Auswahl-Box zu erweitern. Vgl. Template "User Widget Add". * * Das Element "miranus_search_username_suggest" zur Anzeige der Vorschläge wird also auch dynamisch hier im Javascript erzeugt. * * Dabei ist auch wichtig, dass das Input Feld stets auch funktioniert, falls Javascript deaktiviert ist oder der Ajax Aufruf fehlschlägt. * Der Ajax-Aufruf soll im Normalfall nur dafür sorgen, dass ein vorgeschlagener Nickname in das input-Feld kopiert wird und * später im PHP-Code aus diesem Nickname wieder der User gefunden wird. * * Die Verwendung vorhandener Suggestion Libs / jQuery würde ggf. bei einer folgenden Erweiterung um die Anzeige des Avatars o.ä. scheitern. * * Ein Spezialfall wie hier (Erst nach Auswahl wird ein submit Bton hinzugefügt) müsste gesondert definiert werden und an geeigneter Stelle auf die Standard-Lösung zurückgreifen * Evtl. mit der Übergabe einer function, die nach Auswahl eines Nicknames aufgerufen wird? * * */ if(document.getElementById(nodeid).onkeyup) return; /* Wurde bereits initialisiert */ else { miranus_search_username = document.getElementById(nodeid); /* input Feld */ if(!miranus_search_username) { alert ('node "' + miranus_search_username_id + '"not available'); return; } miranus_search_username.onkeyup = new Function("listUsers();"); miranus_search_username.autocomplete = "off"; //miranus_search_username.style.backgroundColor = '#FF6666'; /* Debug */ miranus_search_username_suggest = document.getElementById("UserSuggest"); //miranus_search_username_suggest = document.createElement('div'); miranus_search_username_suggest.style.position = 'relative'; /* Im Firefox OK, im IE nach rechts verrutscht */ miranus_search_username_suggest.style.zIndex = 99; miranus_search_username_suggest.style.width = document.getElementById(nodeid).style.width;//miranus_search_username.offsetWidth; //miranus_search_username.parentNode.insertBefore(miranus_search_username_suggest,miranus_search_username.nextSibling); } } function listUsers(){ //miranus_search_username.style.backgroundColor = '#66FF66'; /* Debug */ //window.setTimeout("proposeUser('"+ document.getElementById('username').value.replace(/'/g,"\\'") + "')",100) document.getElementById('UserError').innerHTML=''; document.getElementById ("save_button").style.display='block'; name = document.getElementById('username').value.replace(/'/g,"\\'"); if(typeof $ == "function"){ getUserAlternative(name); } else{ proposeUser(name); } } function proposeUser(name){ if(name.length != 0){ hpm_request.open('get', '../ajax/getUser.php?prefix=' +decodeURIComponent(name));// encodeURIComponent(name) hpm_request.onreadystatechange = getUser; hpm_request.send(null); miranus_search_username_suggest.style.display = 'block'; } else { miranus_search_username_suggest.innerHTML = ''; miranus_search_username_suggest.style.display = 'none'; } } function getUserAlternative(sname){ //überprüfen ob Jquery definiert ist if(typeof $ == "function"){ //getData if(sname.length>0){ $.ajax({ method: 'GET', url: '../ajax/getUser.php?prefix=' +sname, //encodeURIComponent(sname), success: function(res){ if(!res || res == ""){ $('#picturediv').hide('slow'); miranus_search_username_suggest.innerHTML = '
Kein User mit '+$('#username').val() +' vorhanden.
'; } else { var users = eval('(' + res + ')'); var list = '
'; for(var i=0;i' + name + '
'; } } list +='
'; miranus_search_username_suggest.innerHTML = list; } } }); } } } function getUser() { if(hpm_request.readyState == 4){ var response = hpm_request.responseText; if(!response || response == " "){ document.getElementById('picturediv').style.display='none'; miranus_search_username_suggest.innerHTML = ""; } else { var users = eval('(' + response + ')'); var list = '
'; for(var i=0;i' +name + '
'; } list +='
'; miranus_search_username_suggest.innerHTML = list; } } } function SelUser(name,id){ document.getElementById('username').value=name; ChkUser(document.getElementById('username').value); miranus_search_username_suggest.innerHTML=''; miranus_search_username_suggest.display = 'none'; }