var XMLHTTP = null;
var myTarget = '';
var myTargetAnimation = null;
if (window.XMLHttpRequest) {
	XMLHTTP = new XMLHttpRequest();
//    alert('AJAX ready (XMLHttpRequest)');
} else if (window.ActiveXObject) {
	try {
		XMLHTTP = new ActiveXObject("MSXML2.XMLHTTP");
//        alert('AJAX ready (ActiveXObject("MSXML2.XMLHTTP"))');
	} catch(ex) {
		try {
			XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
//            alert('AJAX ready (ActiveXObject("Microsoft.XMLHTTP"))');
		} catch(ex) {}
	}
}
var delay = 500;
function sendDelayRequest(file, target) {
	window.setTimeout('sendRequest("'+file+'", "'+target+'")', delay);
}

function animate_box(elementID, inout) {
    if (myTargetAnimation != '') {
        if (inout == 'out') {
            if (myTargetAnimation=='side') {
                $("#"+elementID).animate( {opacity: 0.1, width: "0px"}, 600 );
            } else if (myTargetAnimation=='side2') {
                $("#"+elementID).animate( {width: "0px"}, 600 );
            } else if (myTargetAnimation=='fade') {
                $("#"+elementID).fadeOut('fast');
            } else if (myTargetAnimation=='fade_small') {
                $("#"+elementID).animate( {opacity: 0.1, width: "0px"}, 600 );
            } else if (myTargetAnimation=='fade_tabs') {
                $("#"+elementID).animate( {opacity: 0.1, height: "0px"}, 600 );
            } else if (myTargetAnimation=='slide') {
                $("#"+elementID).slideUp("slow");
            } else if (myTargetAnimation=='orga') {
                $("#orga_content").animate( {width: "0px"}, 600 );
            } else if (myTargetAnimation=='spender') {
                $("#"+elementID).fadeOut('fast');
            } else return;
        } else if (inout == 'in') {
            if (myTargetAnimation=='side') {
                $("#"+elementID).animate( {opacity: 1.0, width: "445px"}, 1500 );
            } else if (myTargetAnimation=='side2') {
                $("#"+elementID).animate( {width: "445px"}, 1500 );
            } else if (myTargetAnimation=='fade') {
                $("#"+elementID).fadeIn('fast');
            } else if (myTargetAnimation=='fade_small') {
                $("#"+elementID).animate( {opacity: 1.0, width: "215px"}, 1500 );
            } else if (myTargetAnimation=='fade_tabs') {
                $("#"+elementID).animate( {opacity: 1.0, height: ""}, 1500 );
            } else if (myTargetAnimation=='slide') {
                $("#"+elementID).slideDown("slow");
            } else if (myTargetAnimation=='orga') {
                $("#orga_content").animate( {width: "445px"}, 1500 );
            } else if (myTargetAnimation=='spender') {
                $("#"+elementID).fadeIn('fast');
            } else return;
        }
    }
}

var handleID = null;
function sendSimpleRequest(file, target, animation) {
	//inProgress(true);
	if (!callInProgress()) {
		myTarget = target;
        myTargetAnimation = '';
//        if (animation != undefined)
//            myTargetAnimation = animation;
//        animate_box(myTarget, 'out');
        XMLHTTP.open('get', file, true);
		XMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=iso-8859-1");
		XMLHTTP.onreadystatechange = handleSimpleResponse;
		XMLHTTP.send(null);
		handleID = window.setTimeout('requestAbort()', 5000);
	}	
}

function handleSimpleResponse() {
  if (XMLHTTP.readyState != 4) return;
//  alert('handleSimpleResponse'+"\n\n"+'target: '+myTarget+"\n"+'readyState: '+XMLHTTP.readyState);
  if (XMLHTTP.readyState == 4 && myTarget != '') {
	window.clearTimeout(handleID);
	//inProgress(false);
//    alert('innerHTML:'+"\n\n"+document.getElementById(myTarget).innerHTML);

//    alert('responseText'+"\n\n"+XMLHTTP.responseText);

//    document.getElementsByTagName('body')[0].appendChild(document.createTextNode(XMLHTTP.responseText));

       
    document.getElementById(myTarget).innerHTML = XMLHTTP.responseText;

/*
    var div = document.createElement('div');
    div.innerHTML = XMLHTTP.responseText;
    document.getElementById(myTarget).appendChild(div);
*/

//    alert('innerHTML:'+"\n\n"+document.getElementById(myTarget).innerHTML);
    resizeCols();
  }
  XMLHTTP.abort();
}
function sendRequest(url, params, target) {
	//inProgress(true);
	if (!callInProgress()) {
		myTarget = target;
		if (params == null) {
			XMLHTTP.open('GET', url, true);
		}
		else {
			XMLHTTP.open('POST', url, true);
			XMLHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			XMLHTTP.setRequestHeader("Content-length", params.length);
			XMLHTTP.setRequestHeader("Connection", "close");
		}
		XMLHTTP.onreadystatechange = handleResponse;
		XMLHTTP.send(params);
		handleID = window.setTimeout('requestAbort()', 5000);
	}
}
function handleResponse() {

  if (XMLHTTP.readyState != 4) return;
  if (XMLHTTP.readyState == 4 && myTarget != '') {
    window.clearTimeout(handleID);
	//inProgress(false);
  	var target_element = document.getElementById(myTarget);
  	target_element.innerHTML = XMLHTTP.responseText;
  	evalNewJs(target_element);
  }
  XMLHTTP.abort();
}
var requestAction;
function sendRequestAction(file, target, action) {
	//inProgress(true);
	if (!callInProgress()) {
		requestAction = action;
		myTarget = target;
		XMLHTTP.open('post', file, true);
		XMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=iso-8859-1");
		XMLHTTP.onreadystatechange = handleActionResponse;
		XMLHTTP.send(null);
		handleID = window.setTimeout('requestAbort()', 5000);
	}
}
function handleActionResponse() {
  if (XMLHTTP.readyState != 4) return;
  if (XMLHTTP.readyState == 4 && myTarget != '') {
	window.clearTimeout(handleID);
	//inProgress(false);
//    animate_box(myTarget, 'in');
  	document.getElementById(myTarget).innerHTML = XMLHTTP.responseText;
  	eval(requestAction);
  }
  XMLHTTP.abort();
}

function requestAbort() {
	XMLHTTP.abort();
//	document.getElementById('ajaxProgress').innerHTML = 'Die Anfrage dauerte länger als 3 Sekunden. Bitte aktualisieren Sie Ihre Suche.';
//	document.getElementById('ajaxProgress').innerHTML += '<br/><img src="images/ajax-loader.gif"/>';
}
function inProgress(bool) {
	if (document.getElementById('ajaxProgress')) {
		if (bool)
			document.getElementById('ajaxProgress').innerHTML = '<img src="images/ajax-loader.gif"/>';
		else
			document.getElementById('ajaxProgress').innerHTML = '';
	}
}
function sendRequestAdd(file, target) {
	if (!callInProgress()) {
	  myTarget = target;
	  XMLHTTP.open('post', file, true);
	  XMLHTTP.onreadystatechange = handleAddResponse;
	  XMLHTTP.send(null);
	}	
}
function handleAddResponse() {
  if (XMLHTTP.readyState != 4) return;
  if (XMLHTTP.readyState == 4 && myTarget != '')
		document.getElementById(myTarget).innerHTML += XMLHTTP.responseText;
}

function callInProgress() {
  switch (XMLHTTP.readyState) {
    case 1: case 2: case 3:
      return true;
			break;
		// Case 4 and 0
		default:
			return false;
			break;
	}
}

function encodestring(str) {
	var retVal = str;
	//retVal = retVal.replace('"', '%22');
	retVal = retVal.replace('#', '%23');
	retVal = retVal.replace('$', '%24');
	retVal = retVal.replace('%', '%25');	
	//retVal = retVal.replace('&', '%26');
	retVal = retVal.replace('+', '%2B');	
	//retVal = retVal.replace('/', '%2F');
	retVal = retVal.replace('?', '%3F');
	retVal = retVal.replace('@', '%40');
	retVal = retVal.replace('[', '%5B');
	retVal = retVal.replace(']', '%5D');
	retVal = retVal.replace('{', '%7B');
	retVal = retVal.replace('|', '%7C');
	retVal = retVal.replace('}', '%7D');
	retVal = retVal.replace('§', '%A7');
	retVal = retVal.replace('²', '%B2');
	retVal = retVal.replace('³', '%B3');
	retVal = retVal.replace('Ä', '%C4');
	retVal = retVal.replace('Ö', '%D6');
	retVal = retVal.replace('Ü', '%DC');
	retVal = retVal.replace('ß', '%DF');
	retVal = retVal.replace('ä', '%E4');
	retVal = retVal.replace('ö', '%F6');
	retVal = retVal.replace('ü', '%FC');
	return retVal;
}

function activateElement(element) {
	var myElement = document.getElementById(element);
  myElement.disabled = false;
	myElement.focus();
	myElement.select();
}
function deactivateElement(element, val) {
	var myElement = document.getElementById(element);
  myElement.disabled = true; 
  if (val != '') myElement.value=''+val;
}
function activateSearchElement(element) {
	var myElement = document.getElementById(element);
	if (myElement.disabled) {
	  myElement.disabled = false;
 	  myElement.focus();
	  myElement.select();
	} else {
		myElement.disabled = true; 
	  if (val != '') myElement.value=''+val;
	}
  
}

function hideElements(elementList) {
	var elementsToHide = elementList.split(',');
	for (var bi = 0; bi < elementsToHide.length; bi++) {
		if (document.getElementById(elementsToHide[bi]).style.display == 'none')
			document.getElementById(elementsToHide[bi]).style.display = 'block';
		else
			document.getElementById(elementsToHide[bi]).style.display = 'none';
	}
}
var myLocation = '';
function sendAction(file, location) {
	//if (!callInProgress()) {
		myLocation = location;
		XMLHTTP.open('get', file, true);
		XMLHTTP.onreadystatechange = handleAction;
		XMLHTTP.send(null);
		//handleID = window.setTimeout('requestAbort()', 3000);
	//}
}
function handleAction() {
  if (XMLHTTP.readyState != 4) return;
  if (XMLHTTP.readyState == 4 && myLocation != '') {
	 	window.clearTimeout(handleID);
		if (myLocation != '')
            location = myLocation;
	}	
	XMLHTTP.abort();
}