//////////////////////////////////////////////////////////////////////////////
// Geosys-Eber.de | Javascript-File für User-Center ///////////////////////
//////////////////////////////////////////////////////////////////////////////

// AJAX-Connection inizieiren ////////////////////////////////////////////////////////////////////////////////////////////
var req;
function starteAjax(url) {
	try {
		if( window.XMLHttpRequest ) {
			req = new XMLHttpRequest();
		} else if( window.ActiveXObject ) {
			req = new ActiveXObject( "Microsoft.XMLHTTP" );
		} else {
			alert( "Ihr Webbrowser unterstuetzt leider kein Ajax!" );
		}
		req.open( "GET", url);
		req.onreadystatechange = meineCallbackFkt;
		req.send( null );
		} catch( e ) {
			alert( "Fehler: " + e );
		}
	}
function meineCallbackFkt() {
	if( 4 == req.readyState ) {
		if( 200 != req.status ) {
			alert( "Fehler " + req.status + ": " + req.statusText );
		} else {
			//if(confirm(req.responseText)){}
			eval(req.responseText);
		}
	}
}


// User-Center | User-Verwaltung | User anlegen, bearbeiten AJAX //////////////////////////////////////////////////
function userCenterUserVInput(user, edit_id, benutzera, vornamea, nachnamea, emaila, ansprachea) {
	// Buttons deaktivieren //
	document.getElementsByName("Submit")[0].disabled = true;
	document.getElementsByName("Submit2")[0].disabled = true;
	id=document.getElementsByName("formid")[0].value;
	submitter=document.getElementsByName("formsubmit")[0].value;
	benutzer=document.getElementsByName("formbenutzer")[0].value;
	ansprache=document.getElementsByName("formansprache")[0].value;
	vorname=document.getElementsByName("formvorname")[0].value;
	nachname=document.getElementsByName("formnachname")[0].value;
	gruppe=document.getElementsByName("formgruppe")[0].value;
	email=document.getElementsByName("formemail")[0].value;
	if (benutzer == "" || vorname == "" || nachname == "" || email == "") {
		ajaxFalse("Eines oder mehrere der Eingabefelder sind leer, bitte überprüfen!");
	} else if (!checkBenutzer(benutzer)) {
		ajaxFalse("Der eingegebene Benutzername ist ungültig, bitte korrigieren Sie diesen!<br>Folgende Maske ist zu verwenden: #.#####... (nur Kleinbuchstaben sind möglich)");
	} else if (!checkMail(email)) {
		ajaxFalse("Die eingegebene E-Mail-Adresse ist ungültig, bitte korrigieren Sie diese!");
	} else if (user == benutzer) {
		ajaxFalse("Sie Holzkopf haben ihren eigenen Benutznamen in das Formular eingegeben, bitte korrigieren!");
	} else if (submitter == "Speichern") {
		if(benutzer == benutzera && vorname == vornamea && nachname == nachnamea && email == emaila && ansprache == ansprachea) {
			ajaxFalse("An den Daten wurde nichts verändert, bitte prüfen oder abbrechen!+++");
		} else {
			if(benutzer != benutzera){urla = "&benutzer="+benutzer;} else {urla = "";}
			urlb = "&vorname="+vorname;
			urlc = "&nachname="+nachname;
			urld = "&ansprache="+ansprache;
			if(email != emaila){urle = "&email="+email;} else {urle = "";}	
			url = "/_files/include/ajax.php?ajax=userEdit&id="+edit_id+"&benutzera="+benutzera+urla+urlb+urlc+urld+urle	;
			document.getElementById("ajaxstatus").innerHTML = "<span id='ajaxstatus_blau'><strong>Daten werden überprüft...</strong></span>";
			setTimeout("starteAjax(url)", 1000);
		}
	} else {
		url = "/_files/include/ajax.php?ajax=userNew&benutzer="+benutzer+"&vorname="+vorname+"&nachname="+nachname+"&email="+email+"&gruppe="+gruppe+"&id="+id+"&ansprache="+ansprache;
			document.getElementById("ajaxstatus").innerHTML = "<span id='ajaxstatus_blau'><strong>Daten werden überprüft...</strong></span>";
			setTimeout("starteAjax(url)", 1000);
	}
	return false;
}

// User-Center | Profil bearbeiten ///////////////////////////////////////////////////////////////////////////////////////
function userCenterUserVProfil(id, ansprachea, vornamea, nachnamea, emaila) {
	// Buttons deaktivieren //
	document.getElementsByName("Submit")[0].disabled = true;
	document.getElementsByName("Submit2")[0].disabled = true;
	ansprache=document.getElementsByName("formansprache")[0].value;
	vorname=document.getElementsByName("formvorname")[0].value;
	nachname=document.getElementsByName("formnachname")[0].value;
	email=document.getElementsByName("formemail")[0].value;
	if (ansprache == "" || vorname == "" || nachname == "" || email == "") {
		ajaxFalse("Eines oder mehrere der Eingabefelder sind leer, bitte überprüfen!");
	} else if (vorname == vornamea && nachname == nachnamea && email == emaila && ansprache == ansprachea) {
		ajaxFalse("An den Daten wurde nichts verändert, bitte prüfen oder abbrechen!");
	} else if (!checkMail(email)) {
		ajaxFalse("Die eingegebene E-Mail-Adresse ist ungültig, bitte korrigieren Sie diese!");
	} else {
		if(email != emaila){urlmail = "&email="+email;} else {urlmail = "";}
		url = "/_files/include/ajax.php?ajax=userEditProfil&id="+id+"&vorname="+vorname+"&nachname="+nachname+"&ansprache="+ansprache+urlmail;
		document.getElementById("ajaxstatus").innerHTML = "<span id='ajaxstatus_blau'><strong>Daten werden überprüft...</strong></span>";
		setTimeout("starteAjax(url)", 1000);
	}
	return false;
}

// User-Center | User-Verwaltung | User löschen //////////////////////////////////////////////////////////////////////
function userCenterUserDelete(benutzer, id, loading_id) {
	if(confirm("Wollen Sie den Benutzer \""+benutzer+"\" wirklich löschen?\nAlle Inhalte des Upload-Ordners werden auf dem Fileserver gelöscht!")) {
		document.getElementById("userlisting_control_del_"+loading_id).innerHTML = "<img src='/_files/images/loading_blau.gif' style='padding:14px 0 0 30px;>";
		document.getElementById("userlisting_control_edit_"+loading_id).innerHTML = "";
		url = "/_files/include/ajax.php?ajax=userDelete&id="+id+"&benutzer="+benutzer;
		setTimeout("starteAjax(url)", 1000);
	}
}

// Allgemeine Ajax-Rückgaben //////////////////////////////////////////////////////////////////////////////////////////
function ajaxFalse(obj){
		document.getElementById("ajaxstatus").innerHTML = "<div id='ajaxparser_false'>"+obj+"</div>";
		btn1 = document.getElementsByName("Submit")[0];
		btn2 = document.getElementsByName("Submit2")[0];
		if(btn1){btn1.disabled = false;}
		if(btn2){btn2.disabled = false;}
}
function ajaxTrue(obj, url){
		document.getElementById("ajaxstatus").innerHTML = "<div id='ajaxparser_true'>"+obj+"</div>";
		if(url != "0") {setTimeout("window.location.href = '"+url+"'", 1000);}
}
function ajaxAlert(obj){alert(obj);}
function ajaxLocation(url) {window.location.href=url;}

// User-Center | Aktivierung Passwort festlegen /////////////////////////////////////////////////////
function checkNewPass(hash) {
	document.getElementsByName("Submit")[0].disabled = true;
	user = document.getElementsByName("user")[0].value;
	pass = document.getElementsByName("pass")[0].value;
	pass2 = document.getElementsByName("pass2")[0].value;
	if(pass == "" && pass2 == "") {
		ajaxFalse("Die Passwort-Felder sind leer!");
	} else if (pass != pass2) {
		ajaxFalse("Die eingegebenen Passwörter sind nicht identisch!");
	} else if (document.getElementsByName("pass")[0].value.length < 5)	{
		ajaxFalse("Geben Sie mindestens 5 Zeichen an");
	} else {
	document.getElementById("ajaxstatus").innerHTML = "<span id='ajaxstatus_grau'><strong>Daten werden gespeichert...</strong></span>";
	url = "/_files/include/ajax.php?ajax=userNewPass&hash="+hash+"&pass="+pass+"&user="+user;
	setTimeout("starteAjax(url)", 1000);
	}
	return false;
}

// User-Center | Passwort vergessen | Ajax-Mailversand ////////////////////////////////////////////
function checkNewPassMail() {
	document.getElementsByName("Submit")[0].disabled = true;
	mail = document.getElementsByName("mail")[0].value;
	if (mail == "") {
		ajaxFalse("Das Textfeld ist leer! Bitte geben Sie die E-Mail-Adresse Ihres Accounts ein!");
	} else if (!checkMail(mail)) {
		ajaxFalse("Die eingegebene E-Mail-Adresse ist ungültig, bitte korrigieren Sie diese!");
	} else {
	document.getElementById("ajaxstatus").innerHTML = "<span id='ajaxstatus_grau'><strong>Ihre Daten werden überprüft...</strong></span>";
	url = "/_files/include/ajax.php?ajax=userNewPassMail&mail="+mail;
	setTimeout("starteAjax(url)", 1000);
	}
	return false;
}

// Login Check ///////////////////////////////////////////////////////////////////////////////////////
function login() {
	user=document.getElementsByName("user")[0].value;
	pass=document.getElementsByName("pass")[0].value;
	if(user == "" || pass == "") {
		ajaxFalse("Eines oder beide Felder sind leer!");return false;
	} else if (!checkBenutzer(user)) {
		ajaxFalse("Benutzername ungültig!");return false;
	} else if (pass.length < 5)	{
		ajaxFalse("Passwort ungültig!");return false;
	} else {
		return true;
	}
}

// Fileserver | Neuen Ordner anlegen //////////////////////////////////////////////////////////////
function userCenterFileserverMakeDir(path) {
	title = "Neuen Ordner erstellen";
	html = "Bitte geben Sie einen Namen für den neuen Ordner ein:<form name=\'form_newdirectorie\' action=\'javascript:userCenterFileserverMakeDirCheck(\""+path+"\");\' style=\'margin:5px 0 5px 0;\'><input name=\"ajax_file_input\"class=\'ajax_file_input\' id=\'ajax_file_input\' type=\'text\' style=\'width:400px;\'></form><div id=\'ajaxstatus\' style=\'width:480px; text-align:left; margin:10px 0 0 48px;\'>";
		submitter = "javascript:userCenterFileserverFileRenameCheck(\""+path+"\");";
	(175, title, html, submitter);
}

function userCenterFileserverMakeDirCheck(path) {
	name = document.forms.form_newdirectorie.ajax_file_input.value
	if (!checkFileName(name)) {
		ajaxFalse("Der Dateiname enthält ungültige Zeichen!")
	} else {
		tt_HideInit();
		name = name.replace(/&/g, "%26"); name = name.replace(/\+/g, "%2b");
		url = "/_files/include/ajax.php?ajax=makeDirectorie&name="+name+"&path="+path;
		setTimeout("starteAjax(url)", 500);
	}
}

// Fileserver | Link in einem Alert öffnen ///////////////////////////////////////////////////////////
function userCenterFileserverFileShowLink(download){
	text="Kopieren Sie sich folgenden Zeilen aus diesem Dialog:\n\n1. Alles markieren mit einem 3-fach-Klick auf den Link\n2. In die Zwischenablage kopieren mit der Tastenkombination 'STRG+C'\n3. In einem anderen Programm einfügen mit der Tastenkombination 'STRG+V'\n\nhttp://www.geosys-eber.de/download?file="+download;
	alert(text);
}

// Fileserver | Datei löschen ///////////////////////////////////////////////////////////////////////
function userCenterFileserverFileDelete(file, del, obj){
	if(obj == "Datei"){
		title = "Datei löschen";
		html = "Möchten Sie die folgende Datei wirklich löschen?<br><br><img src='/_files/images/file_15x15.png' alt='' border='' style='padding-right:5px;'><strong>"+file+"</strong>";
	} else {
		title = "Ordner löschen";
		html = "Möchten Sie den folgenden Ordner wirklich löschen?<br><br><img src='/_files/images/directorie_15x15.png' alt='' border='' style='padding-right:5px;'><strong>"+file+"</strong><br><br>Hinweis: Alle beinhalteten Dateien und Unterverzeichnisse werden mit gelöscht!";
		
	}
	submitter = "javascript:userCenterFileserverFileDeleteNow(\""+del+"\");";
	
	toolTipPopup(175, title, html, submitter);
}

// Fileserver | Datei / Ordner löschen | ausführen ////////////////////////////////////////////////
function userCenterFileserverFileDeleteNow(del) {
	tt_HideInit();
	url = "/_files/include/ajax.php?ajax=deleteFile&file="+del;
	setTimeout("starteAjax(url)", 1000);
}


// Fileserver | Datei umbenennen | Popup starten ///////////////////////////////////////////////
function userCenterFileserverFileRename(id, path, object) {
	if(!document.getElementById("ajax_file_input") && !document.getElementById("ajaxstatus_blau")) {
		obj=document.getElementById("file_"+id);
		filename=obj.childNodes[0].innerHTML;
		html = "Geben Sie hier den neuen Namen ein:<form name=\'form_rename\' action=\'javascript:userCenterFileserverFileRenameCheck(\""+id+"\", \""+filename+"\", \""+path+"\", \""+obj+"\");\' style=\'margin:5px 0 5px 0;\'><input class=\'ajax_file_input\' id=\'ajax_file_input\' type=\'text\' value="+filename+" style=\'width:400px;\'></form><div id=\'ajaxstatus\' style=\'width:480px; text-align:left; margin:10px 0 0 48px;\'>";
		submitter = "javascript:userCenterFileserverFileRenameCheck(\""+id+"\", \""+filename+"\", \""+path+"\", \""+obj+"\");";
		toolTipPopup(175, "Umbenennen", html, submitter);
	}
}

// Fileserver | Datei umbenennen | Input in Text zurückwandeln //////////////////////////////
function userCenterFileserverFileRenameCheck(id, old_filename, path, object) {
	obj=document.getElementById("file_"+id);
	new_filename=document.getElementById("ajax_file_input").value;
	if(new_filename == old_filename) {
		tt_HideInit();
	} else if (!checkFileName(new_filename)) {
		ajaxFalse("Der Dateiname enthält ungültige Zeichen!")
	} else {
		tt_HideInit();
		new_filename = new_filename.replace(/&/g, "%26");new_filename = new_filename.replace(/\+/g, "%2b");
		old_filename = old_filename.replace(/&/g, "%26");old_filename = old_filename.replace(/\+/g, "%2b");
		obj.innerHTML = "<span id='ajaxstatus_pfeil' style='margin-top:5px;'><strong>Speichern...</strong></span>";
		url = "/_files/include/ajax.php?ajax=fileRename&old_file="+old_filename+"&new_file="+new_filename+"&path="+path;
		setTimeout("starteAjax(url)", 1000);
	}
}

// Fileserver | Allgemeine Ajax-Rückgaben  ////////////////////////////////////////////////////
function userCenterFileserverAjaxReCheckTrue(info) {	window.location.href="/user/fileserver?ajaxReCheckTrue="+info;}
function userCenterFileserverAjaxReCheckFalse(info) {	window.location.href="/user/fileserver?ajaxReCheckFalse="+info;}


// Normale ToolTips ein und ausschalten /////////////////////////////////////////////////////////
function toolTip(tip) {if(!document.getElementById("ajax_file_input") && !document.getElementById("tooltip_footer")) {Tip(tip);}}
function toolUnTip() {if(!document.getElementById("ajax_file_input") && !document.getElementById("tooltip_footer")) {UnTip();}}

// ToolTip-Popup //////////////////////////////////////////////////////////////////////////////////
function toolTipPopup(size, title, html, submitter) {
	geruest = "<div id=\'tooltip_"+size+"\'><div id=\'tooltip_title\'>"+title+"</div><div id=\'tooltip_close\'><a href=\'javascript:tt_HideInit();\'></a></div><div id=\'tooltip_content\'>"+html+"</div></div><div id=\'tooltip_footer\'><button onclick=\'"+submitter+"\'>OK</button> <button onclick=\'tt_HideInit();\'>Abbrechen</button></div></div>";
	Tip(geruest, STICKY, true, CENTERWINDOW, true, CENTERALWAYS, true, BORDERWIDTH, 0, BGCOLOR, '', PADDING, 0, OFFSETX, 60);
}


// Fileserver | Dateien checken bei Zeile berühren /////////////////////////////////////////////
function checkFileCheck(id) {
	obj=document.getElementById("check_"+id);
	if(obj.checked) {obj.checked = false;} else {obj.checked = true;}
}

function checkAllCheckers() {
	fields = document.forms["FileChecker"].elements;
	for(i=0;i<fields.length;i++) {
		field = fields[i];
		if(field.checked) {field.checked = false;} else {field.checked = true;}
	}
}

// URL Encodierung für GET-Übergabe ////////////////////////////////////////////////////////
function urlencode(str) {
return escape(str).replace('+', '%2B').replace('*', '%2A').replace('/', '%2F').replace('@', '%40');
}

//Mail-Eingabe prüfen ////////////////////////////////////////////////////////////////////////////
function checkMail(s) {
	var a = false;
	var res = false;
	if(typeof(RegExp) == 'function') {
		var b = new RegExp('abc');
		if(b.test('abc') == true){a = true;}
	}
	if(a == true) {
		reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+'(\\@)([a-zA-Z0-9\\-\\.]+)'+'(\\.)([a-zA-Z]{2,4})$');
		res = (reg.test(s));
	} else {
		res = (s.search('@') >= 1 &&
		s.lastIndexOf('.') > s.search('@') &&
		s.lastIndexOf('.') >= s.length-5);
	}
	return(res);
}

//Benutzernamen-Eingabe prüfen //////////////////////////////////////////////////////////////
function checkBenutzer(s) {
	var res = false;
	reg = new RegExp('^([a-z]{1})(\\.)([a-z]+)$');
	res = (reg.test(s));
	return(res);
}

function checkFileName(s) {
	var res = false;
	reg = new RegExp('(^[a-zA-Z0-9\\!\\§\\$\\%\\&\\(\\)\\[\\]\\+\\~\\-\\_\\.]+)$');
	res = (reg.test(s));
	return(res);
}

