function httpRequest(url,data,method) {	
	var xmlhttp = null;
	if (window.XMLHttpRequest) { 
		xmlhttp = new XMLHttpRequest(); 
	} 
	else if (window.ActiveXObject) { 
		try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } 
		catch (ex) { try  { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } 
		catch (ex) { } }
	}
	if (!url) {
		alert("Error: httpRequest");
		return;
	}
	if (!method) {
		var method = "POST";
		xmlhttp.open(method, url, true);
		if (method == "POST") {
			xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xmlhttp.send(data);
			return xmlhttp;
		}
	}
}

function ajax (data, url, method) {
	var xmlhttp = null;
	if (window.XMLHttpRequest) { 
		xmlhttp = new XMLHttpRequest(); 
	} 
	else if (window.ActiveXObject) {
		try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (ex) {
			try  { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
			catch (ex) { }
		}
	}
	if (!url) {
		var url = "../includes/functions.php";
	}
	if (!method) {
		var method = "POST";
	}
	xmlhttp.open(method, url, false);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlhttp.send("ajax="+data);
	return xmlhttp;
}


function add_other_field (selectid, divid, table, field_id, field_desc)
{
	var divHTML = document.getElementById(divid);

	if (selectid == -1) {
	divHTML.innerHTML = '<input type="text" name="'+divid+'" value="'+divid+'" maxlength="250" onblur="check_other_field(this.value, \''+table+'\', \''+field_desc+'\');">';
	divHTML.style.display = "block";

	}
	
	else {
	divHTML.innerHTML = "";
	divHTML.style.display = "none";
	}
}

function check_other_field (input, table, field)
{
	var xmlhttp = httpRequest("includes/functions.php","cmd=check_other_field&input="+input+"&table="+table+"&field="+field)
	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200 && xmlhttp.responseText != "")
		{
			confirm(xmlhttp.responseText);
			xmlhttp = null;		
		}
	}
			//confirm(input+" - "+table+" - "+field);

	//return;
}

function calendar(name_input_element, id_display_element, lang) {
	if (!lang) {
		var lang = "de";
	}
	if (!id_display_element) {
		id_display_element = "display_"+name_input_element;
	}
	var timestamp = document.getElementsByName(name_input_element)[0].value;
	window.open("calendar.php?timestamp="+timestamp+"&name_input_element="+name_input_element+"&id_display_element="+id_display_element+"&lang="+lang, "Calendar", "width=240px, height=220px, status=no, resize=no, top=200px, left=200px");
}

function testme() {
	alert("hai");
	return;
}

function check_form (funcvalarray, formname) {
	//document.getElementsByTagName("form")[0].target = "";
	//document.getElementsByTagName("form")[0].action = location.href;

	if (funcvalarray.length > 0) {
	var errs = new Array();
	var errschk = new Array();
	var k = 0;
	for(var i=0; i<funcvalarray.length; ++i) {

		var bits = funcvalarray[i].split('=', 2);

		if (bits[0] == 'not_null') {
			var myerr = check_not_null(bits[1]);
		}
		else if (bits[0] == 'email') {
			var myerr = check_email(bits[1]);
		}
		else if (bits[0] == 'website') {
			var myerr = check_website(bits[1]);
		}
		else if (bits[0] == 'numeric') {
			var myerr = check_numeric(bits[1]);
		}
		else if (bits[0] == 'checked') {
			var myerr = check_checked(bits[1]);
		}
		else if (bits[0] == 'unique') {
			var uniquevals = bits[1].split(',');
			var myerr = check_unique(uniquevals[0], uniquevals[1], uniquevals[2], uniquevals[3]);
			bits[1] = uniquevals[0];
		}
		
		if (myerr) {
			errs[k] = myerr;
			errschk[k] = bits[1];
			++k;
		}
		
		if (document.getElementById(bits[1])) {
			document.getElementById(bits[1]).style.color = '';
		}
		else if (document.getElementById('span_'+bits[1])) {
			document.getElementById('span_'+bits[1]).style.color = '';
		}

	}

	if (errs.length > 0) {
		for(var l=0; l<errs.length; ++l) {
			if (document.getElementById('span_'+errschk[l])) {
				document.getElementById('span_'+errschk[l]).style.color = 'red';
			}
			else if (document.getElementById(errschk[l])) {
				document.getElementById(errschk[l]).style.color = 'red';
			}
		}
		alert(errs.join('\n'));
		return false;
	}
	else if (formname && document.getElementById(formname)) {
		document.getElementById(formname).submit();
	}
	else if (formname && document.getElementsByName(formname)[0]) {
		document.getElementsByName(formname)[0].submit();
	}
	else {
		document.getElementsByTagName("form")[0].submit();
	}
	}
}

function check_not_null(element) {
	var err;
	if (document.getElementsByName(element)[0].value == '') {
		var name = "Something";
		if (document.getElementById('span_'+element) && document.getElementById('span_'+element).innerHTML != '') {
			name = document.getElementById('span_'+element).innerHTML;
		}
		else if (document.getElementById(element) && document.getElementById(element).innerHTML != '') {
			name = document.getElementById(element).innerHTML;
		}
		err = name+" wird benötigt";
		return err;
	}
	else {
		return;
	}
}

function check_checked(element) {
	var err;
	if (document.getElementsByName(element)[0].checked == false) {
		var name = "Something";
		if (document.getElementById('span_'+element) && document.getElementById('span_'+element).innerHTML != '') {
			name = document.getElementById('span_'+element).innerHTML;
		}
		else if (document.getElementById(element) && document.getElementById(element).innerHTML != '') {
			name = document.getElementById(element).innerHTML;
		}
		err = name+" wird benötigt";
		return err;
	}
	else {
		return;
	}
}

function check_email(element) {
	var err;
	var pattern = /^[A-Z0-9._-]+@[A-Z0-9.-]+\.[A-Z.]{2,6}$/i;
	if (document.getElementsByName(element)[0].value != '' && document.getElementsByName(element)[0].value.match(pattern) != document.getElementsByName(element)[0].value) {
		var name = "Something";
		if (document.getElementById('span_'+element) && document.getElementById('span_'+element).innerHTML != '') {
			name = document.getElementById('span_'+element).innerHTML;
		}
		else if (document.getElementById(element) && document.getElementById(element).innerHTML != '') {
			name = document.getElementById(element).innerHTML;
		}
		err = name+" ist keine gültige Email-Addresse";
		return err;
	}
	else {
		return;
	}
}

function check_website(element) {
	var err;
	var pattern1 = /^http:\/\/[A-Z0-9-]+\.[A-Z0-9-.]+$/i;
	var pattern2 = /^www\.[A-Z0-9-]+\.[A-Z0-9-.]+$/i;
	if (document.getElementsByName(element)[0].value != '' && document.getElementsByName(element)[0].value.match(pattern2) == document.getElementsByName(element)[0].value) {
		document.getElementsByName(element)[0].value = "http://"+document.getElementsByName(element)[0].value;
	}
	else if (document.getElementsByName(element)[0].value != '' && document.getElementsByName(element)[0].value.match(pattern1) != document.getElementsByName(element)[0].value) {
		var name = "Something";
		if (document.getElementById('span_'+element) && document.getElementById('span_'+element).innerHTML != '') {
			name = document.getElementById('span_'+element).innerHTML;
		}
		else if (document.getElementById(element) && document.getElementById(element).innerHTML != '') {
			name = document.getElementById(element).innerHTML;
		}
		err = name+" ist keine gültige Website";
		return err;
	}
	else {
		return;
	}
}

function check_website2(element) {
	var pattern2 = /^www\.[A-Z0-9-]+\.[A-Z0-9-.]+$/i;
	if (element.value != '' && element.value.match(pattern2) == element.value) {
		element.value = "http://"+element.value;
	}
}

function check_numeric(element) {
	var err;
	var pattern = /^[^A-Z]*$/i;
	if (document.getElementsByName(element)[0].value != '' && document.getElementsByName(element)[0].value.match(pattern) != document.getElementsByName(element)[0].value) {
		var name = "Something";
		if (document.getElementById('span_'+element) && document.getElementById('span_'+element).innerHTML != '') {
			name = document.getElementById('span_'+element).innerHTML;
		}
		else if (document.getElementById(element) && document.getElementById(element).innerHTML != '') {
			name = document.getElementById(element).innerHTML;
		}
		err = name+" ist keine gültige Zahl";
		return err;
	}
	else {
		return;
	}
}

function check_unique(element, table, field, old) {
	var err;
	if (document.getElementsByName(element)[0].value != '') {
		var xmlhttp = ajax("check_unique("+document.getElementsByName(element)[0].value+"|"+table+"|"+field+"|"+old+")", "../includes/functions.php");
		if (xmlhttp.responseText == 0) {
			var name = "";
			if (document.getElementById('span_'+element) && document.getElementById('span_'+element).innerHTML != '') {
				name = document.getElementById('span_'+element).innerHTML;
			}
			else if (document.getElementById(element) && document.getElementById(element).innerHTML != '') {
				name = document.getElementById(element).innerHTML;
			}
			err = name+" '"+document.getElementsByName(element)[0].value+"' is not unique";
			return err;
		}
		else {
			//return xmlhttp.responseText;
		}
	}
	else {
		return;
	}
}


function upload_image(file, form, result) {
	var pattern = new RegExp(/^.+\.(jpg|gif|png|bmp|tif)$/i);
	if (file.value != "" && pattern.test(file.value) == false) {
		alert(file.value+" is not a valid image");
		file.value = "";
		return false;
	}
	else {
		form.submit();
		file.disabled = true;
		document.getElementById(result).innerHTML = "Loading . . .";
	}

}


function del_image(file, hiddeninput, fileinput) {
	document.getElementById('display_'+hiddeninput).innerHTML = "";
	document.getElementsByName(hiddeninput)[0].value = "";
	document.getElementsByName(fileinput)[0].value = "";
	
	var xmlhttp = ajax("file_delete("+file+")", "includes/functions.php");
		if (xmlhttp.responseText == 1) {
		}
		else {
			//alert(xmlhttp.responseText);
			//return xmlhttp.responseText;
		}
}

function upload_file(file, form, name) {
	var pattern1 = new RegExp(/image/i);
	var pattern2 = new RegExp(/^.+\.(jpg|gif|png|bmp|tif)$/i);
	if (file.value != "" && pattern1.test(file.name) == true && pattern2.test(file.value) == false) {
		alert(file.value+" is not a valid image");
		file.value = "";
		return false;
	}
	else {
		form.submit();
		file.disabled = true;
		window.parent.document.getElementById('display_'+name).innerHTML = "Loading . . .";
	}

}

function del_file(name) {
	var myfile = document.getElementsByName(name)[0].value;
	document.getElementsByName(name)[0].value = "";
	document.getElementById('display_'+name).innerHTML = "";
	window.frames['upload1_'+name].document.getElementsByTagName('input')[1].value = "";

	var xmlhttp = ajax("file_delete("+myfile+")", "../includes/functions.php");
	if (xmlhttp.responseText == 1) {		
	}
	else {
		//alert("Could not delete "+myfile);
		//return xmlhttp.responseText;
	}
}

function del_file2(name) {
	var myfile = document.getElementsByName(name)[0].value;
	document.getElementsByName(name)[0].value = "";
	document.getElementById('display_'+name).innerHTML = "";
	window.frames['upload1_'+name].document.getElementsByTagName('input')[1].value = "";

	var xmlhttp = ajax("file_delete("+myfile+")", "includes/functions.php");
	if (xmlhttp.responseText == 1) {		
	}
	else {
		//alert("Could not delete "+myfile);
		//return xmlhttp.responseText;
	}
}

function refresh_members () {
	var xmlhttp = ajax("member_results()", "../includes/functions.php");
	document.getElementById('member_results').innerHTML = xmlhttp.responseText;
}

function refresh_events () {
	var xmlhttp = ajax("event_results()", "../includes/functions.php");
	document.getElementById('event_results').innerHTML = xmlhttp.responseText;
}

function member_del(id) {
	//var agree = confirm("Are you sure you want to delete this item?");
	var agree = confirm("Sind Sie sicher, dass Sie dieses Objekt löschen wollen?");
	if (agree) {
		var xmlhttp1 = ajax("member_del("+id+")", "../includes/functions.php");
		if (xmlhttp1.status == 200) {
			//alert(xmlhttp1.responseText+" "+xmlhttp2.responseText);
			refresh_members();
		}
		//return true;
	}
	else {
		//return false;
	}
}

function event_del(article_id) {
	//var agree = confirm("Are you sure you want to delete this item?");
	var agree = confirm("Sind Sie sicher, dass Sie dieses Objekt löschen wollen?");
	if (agree) {
		var xmlhttp1 = ajax("article_del("+article_id+")", "../includes/functions.php");
		if (xmlhttp1.status == 200) {
			//alert(xmlhttp1.responseText+" "+xmlhttp2.responseText);
			refresh_events();
		}
		//return true;
	}
	else {
		//return false;
	}
}

function article_del(article_id) {
	//var agree = confirm("Are you sure you want to delete this item?");
	var agree = confirm("Sind Sie sicher, dass Sie dieses Objekt löschen wollen?");
	if (agree) {
		var xmlhttp1 = ajax("article_del("+article_id+")", "../includes/functions.php");
		if (xmlhttp1.status == 200) {
			//alert(xmlhttp1.responseText+" "+xmlhttp2.responseText);
			window.location.reload();
		}
		//return true;
	}
	else {
		//return false;
	}
}

function member_status(id,status) {
	var newstatus = 0;
	if (status == 0) {
		var newstatus = 1;
	}
	var query1 = "UPDATE members SET status = "+newstatus+" WHERE member_id = "+id;
	var xmlhttp1 = ajax("dbquery("+query1+")", "../includes/functions.php");
	if (xmlhttp1.status == 200) {
		refresh_members();
	}
}

function member_feature(id,feature) {
	var newstatus = 0;
	if (feature == 0) {
		var newstatus = 1;
	}
	var query1 = "UPDATE members SET feature = "+newstatus+" WHERE member_id = "+id;
	var xmlhttp1 = ajax("dbquery("+query1+")", "../includes/functions.php");
	if (xmlhttp1.status == 200) {
		refresh_members();
	}
}

function article_status(id,status) {
	var newstatus = 0;
	if (status == 0) {
		var newstatus = 1;
	}
	var query1 = "UPDATE articles SET status = "+newstatus+" WHERE article_id = "+id;
	var xmlhttp1 = ajax("dbquery("+query1+")", "../includes/functions.php");
	if (xmlhttp1.status == 200) {
		window.location.reload();
	}
}

function article_feature(id,feature) {
	var newstatus = 0;
	if (feature == 0) {
		var newstatus = 1;
	}
	var query1 = "UPDATE articles SET feature = "+newstatus+" WHERE article_id = "+id;
	var xmlhttp1 = ajax("dbquery("+query1+")", "../includes/functions.php");
	if (xmlhttp1.status == 200) {
		window.location.reload();
	}
}

function add_node (name) {
	var i = eval(name+'_i');
	var mydiv = eval(name+'_div');
	mydiv = mydiv.replace( new RegExp( name+"\\[0\\]", "g" ), name+"["+i+"]");
	mydiv = mydiv.replace( new RegExp( name+"_0", "g" ), name+"_"+i);
	mydiv = mydiv.replace(/del_node\(\)/g, 'del_node(\''+name+'_'+i+'\')');
	document.getElementById(name).appendChild(document.createElement("div"));
	document.getElementById(name).lastChild.id = name+'_'+i;
	document.getElementById(name).lastChild.innerHTML = mydiv;
	++window[name+'_i'];
}

function del_node (id) {
	//var agree = confirm("Are you sure you want to delete this item?");
	var agree = confirm("Sind Sie sicher, dass Sie dieses Objekt löschen wollen?");
	if (agree) {
	old = document.getElementById(id);
	old.parentNode.removeChild(old);
	}
	//x = document.getElementById(id);
	//document.getElementById(name).removeChild(x);
}

function text_size(action) {
	var xmlhttp = ajax("text_size("+action+")", "includes/functions.php");
	document.body.style.fontSize = xmlhttp.responseText+"pt";
}

function position (direction, child, parent) {
	x = document.getElementById(parent);
	y = x.getElementsByTagName("div");
	ids = new Array();

	w = 0;
	for(var i=0; i<y.length; ++i) {
	if (y[i].id == child) {
		current_pos = i;
	}
	else {
		ids[w] = y[i].id;
		++w;
	}
	}

	if (direction == "up" && current_pos != 0 || direction == "down" && current_pos != (y.length-1)) {

		inputs = x.getElementsByTagName("input");
		inputs_names = new Array();
		inputs_values = new Array();
		for(var i=0; i<inputs.length; ++i) {
		inputs_names[i] = inputs[i].name;
		inputs_values[i] = inputs[i].value;
		}
		
		if (direction == "up") {
			ids.splice((current_pos-1),0,child);
		}
		else {
			ids.splice((current_pos+1),0,child);
		}
		for(var i=0; i<ids.length; ++i) {
		old = document.getElementById(ids[i]);
		x.appendChild(document.createElement("div"));
		x.lastChild.innerHTML = old.innerHTML;
		old.parentNode.removeChild(old);
		x.lastChild.id = ids[i];
		}

		for(var i=0; i<inputs_names.length; ++i) {
		document.getElementsByName(inputs_names[i])[0].value = inputs_values[i];
		}

	}

}

function navpos (direction, child, parent) {
	document.getElementById(parent+'_submit').className = "button";
	x = document.getElementById(parent);
	y = x.getElementsByTagName("div");
	ids = new Array();

	w = 0;
	for(var i=0; i<y.length; ++i) {
	if (y[i].id == child) {
		current_pos = i;
	}
	else {
		ids[w] = y[i].id;
		++w;
	}
	}

	if (direction == "up" && current_pos != 0 || direction == "down" && current_pos != (y.length-1)) {

		if (direction == "up") {
			ids.splice((current_pos-1),0,child);
		}
		else {
			ids.splice((current_pos+1),0,child);
		}
		for(var i=0; i<ids.length; ++i) {
		old = document.getElementById(ids[i]);
		x.appendChild(document.createElement("div"));
		x.lastChild.innerHTML = old.innerHTML;
		old.parentNode.removeChild(old);
		x.lastChild.id = ids[i];
		}
	}
}

function row_selected (row) {
	row.style.backgroundColor = "#FDFF6F";
	row.style.cursor = "pointer";
}

function row_deselected (row, status) {
	var color = "#ffffff";
	if (status == 0) {
		color = "#eeeeee";
	}
	row.style.backgroundColor = color;
}

function search_sort (cookie_name, value) {
	var xmlhttp1 = ajax("search_sort("+cookie_name+"|"+value+")", "../includes/functions.php");
	if (xmlhttp1.status == 200) {
		if (cookie_name == "member_main") {
			refresh_members();
		}
		else if (cookie_name == "article_main") {
			window.location.reload();
		}
		else if (cookie_name == "event_main") {
			refresh_events();
		}
	}

}

function search_keyword (cookie_name, input) {
	var string = document.getElementsByName(input)[0].value;
	var xmlhttp1 = ajax("search_keyword("+cookie_name+"|"+string+")", "../includes/functions.php");
	if (xmlhttp1.status == 200) {
		window.location.reload();
	}

}

function search_page(cookie_name, page) {
	var xmlhttp1 = ajax("search_page("+cookie_name+"|"+page+")", "../includes/functions.php");
	if (xmlhttp1.status == 200) {
		window.location.reload();
	}
}