/**
###############################################################################
# Author: Andreas Schmidt                                                     #
# Company: Plan-IT Products GmbH & Co. KG                                     #
# E-Mail: a.schmidt@planit-products.de                                        #
###############################################################################
*/
var evalscripts = true;
var http_request = null; 

/**
* Ajax initialisation
*/
function ajaxInit() 
{ 
	try { 
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest(); 
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType("text/html; charset=utf-8");
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
		} else { 
			alert("Your Webbrowser unfortunately supports no Ajax!"); 
		} 
	} 
	
	catch(e) { 
		alert("Fehler: " + e); 
	} 
} 

/**
* @param string	URL String i.e. http://www.test.de?test=1&counter=9
* @return void
*/
function ajaxGo(url, content) 
{ 
//alert(url);
//alert(content);
	ajaxInit();
	if (http_request) { 
		http_request.open("POST", url, true); 
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http_request.onreadystatechange = function () {_ajaxCallback();}; 
		http_request.send(content); 
	}
}

/**
* @param string	ID from a div tag i.e. <div id="myId"></div> id="myId:myId2:myId3"....
* @return void
*
* i.e. http_request.responseText = "
*	First output for 1 Id
*	<!-- ajax splitter -->
*	Second output for 2 Id
*/
function _ajaxCallback() 
{ 
	if (4 == http_request.readyState) { 
		if (200 != http_request.status) { 
			alert("Error " + http_request.status + ": " + http_request.statusText); 
		} else { 
			if (http_request.responseText) {
				var aText = http_request.responseText.split("<!-- ajax splitter -->");
				for (var i = 0; i < aText.length; i++) {
					var sContent = aText[i].split("____");
//alert(sContent[0]);
//lert(sContent[1]);
					if (sContent[0] == "cmd") {
						eval(sContent[1]);
					} else if (sContent[0] == "message") {
						setTimeout("SystemMessage.Load('"+sContent[1]+"')");
					} else if (sContent[0] && sContent[1]) {
						document.getElementById(sContent[0]).innerHTML = sContent[1]; 
					} else if (document.getElementById(sContent[0])) {
						document.getElementById(sContent[0]).innerHTML = "";
					} else {
						alert(sContent[0]);
					}
				}
			}
		} 
	}
} 


function ajaxFormSave(url, form) 
{
	serialized_form = new Array();
	for (var i = 0; i < form.elements.length; i++) {
		if ((form.elements[i].type == "text"
			|| form.elements[i].type == "password" 
			|| form.elements[i].type == "textarea") 
				/*&& !form.elements[i].disabled*/ 
				&& form.elements[i].value) {
			serialized_form[i] = urlencode(form.elements[i].name) + "=" + urlencode(form.elements[i].value);
		}
		if (form.elements[i].type == "hidden" && form.elements[i].value) {
			serialized_form[i] = urlencode(form.elements[i].name) + "=" + urlencode(form.elements[i].value);
		}
		if (form.elements[i].type == "select-one" /*&& !form.elements[i].disabled*/) {
			for (var j=0; j<form.elements[i].length; j++) {
				if (form.elements[i].options[j].selected == true && form.elements[i].options[j].value != '') {
					serialized_form[i] = urlencode(form.elements[i].name) + "=" + urlencode(form.elements[i].options[j].value);
				}
			}
		}
			
		if ((form.elements[i].type == 'checkbox' || form.elements[i].type == 'radio')/* && !form.elements[i].disabled*/) {
			if (form.elements[i].length) {
				for (var j=0; j<form.elements[i].length; j++) {
					if (form.elements[i][j].checked == true) {
						serialized_form[i] = urlencode(form.elements[i].name) + "=" + urlencode(form.elements[i][j].value);
					}
				}
			} else {
				if (form.elements[i].checked == true) {
					serialized_form[i] = urlencode(form.elements[i].name) + "=" + urlencode(form.elements[i].value);
				}			
			}
		}
	}
	ajaxGo(url, serialized_form.join("&"));
}


function urlencode(str) 
{
	var code = "";
	for (var i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") {
			code += "+";
		} else if (str.charAt(i) == "+") {
			code += "%2B";
		} else if (str.charCodeAt(i) > 127) {
			code += encodeURI(str.charAt(i));
		} else {
			code += escape(str.charAt(i));
		}
	}
	return code;
}


// show system message
var SystemMessage = {
	Load:function(content){
		SystemMessage.ShowSplash(content);
		setTimeout("SystemMessage.HideSplash()", 5000); 
	},
	ShowSplash:function(content){
		// splash screen
		var splash = document.createElement("div");
//		splash.style.cssText = "background:url(../library/icons/info.gif) 5px 2px no-repeat; background-color:#ffffee; padding:10px; padding-left:45px; border-top:1px outset #000; border-bottom:1px outset #000; font-weight:bold; color:#000; position:fixed; top:10px; height:17px; width:100%;";
		splash.setAttribute("id","splashscreen");
		document.documentElement.lastChild.appendChild(splash);
		splash.innerHTML = content;

	},
	HideSplash:function(){
		if (document.getElementById("splashscreen")) {
			var s = document.getElementById("splashscreen");
			var p = s.parentNode;
			p.removeChild(s);
		}
	}
};






/*function xmlhttp () {
	_xmlhttp = false;
	if (typeof(ActiveXObject) != "undefined") {
		try {
			_xmlhttp  = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			_xmlhttp  = false;
		}
	} else if (typeof(XMLHttpRequest) != 'undefined') {
		_xmlhttp = new XMLHttpRequest();
	}
	return _xmlhttp;
}

function urlencode(str) 
{
	var code = "";
	for (var i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") {
			code += "+";
		} else if (str.charAt(i) == "+") {
			code += "%2B";
		} else if (str.charCodeAt(i) > 127) {
			code += encodeURI(str.charAt(i));
		} else {
			code += escape(str.charAt(i));
		}
	}
	return code;
}

function autosave(form) 
{
	var serialized_form = "";
	for (var i = 0; i < form.elements.length; i++) {
		if (form.elements[i].type == "text" && !form.elements[i].disabled) {
			serialized_form += urlencode(form.elements[i].name) + "=" + urlencode(form.elements[i].value);
			if (form.elements.length - i > 2) {
				serialized_form += "&";
			}
		}
	}
	
	var conn = xmlhttp();
	if (!conn) {
		return;
	}
	conn.open("POST", form.action, false);
	conn.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
	conn.onreadystatechange = function (e) {
	if (this.readyState != 4) {
		return;
	}
	if (this.responseText == "saved") {
		window.alert("Ihre Formulardaten wurden erfolgreich gespeichert.");
	} else {
		window.alert("Es gab einen Fehler beim Speichern der Formulardaten. Bettigen Sie bitte gleich Zurck und senden Sie das Formular ber den Knopf Daten speichern ab.");
	}
	};
	conn.send(serialized_form);
}

function beforeunload () {
	if (form_changed && !form_submitted) {
		unload_stopped = true;
		return "Sie verlassen die Seite, ohne dass Ihre Formulareingaben gespeichert worden sind. Bitte whlen Sie Abbrechen und senden Sie das Formular ber den Knopf Daten speichern ab, sonst gehen die Eingaben verloren.";
	}
}

function unload () {
	if (form_changed && !form_submitted && !unload_stopped) {
		window.alert("Sie verlassen die Seite, ohne dass Ihre Formulareingaben gespeichert worden sind. Es wird versucht, die Daten automatisch zu speichern.");
		autosave(document.forms.formular);
	}
}

function load () {
	document.forms.formular.elements[0].onchange = form_change;
	document.forms.formular.onsubmit = form_submit;
}

function form_change () {
	form_changed = true;
}

function form_submit () {
	form_submitted = true;
}

var form_changed = false;
var form_submitted = false;
var unload_stopped = false;
window.onload = load;
window.onbeforeunload = beforeunload;
window.onunload = unload;
*/