//getting a request object
function getRequest() {
	var Request = "";
	if(window.XMLHttpRequest) {
		Request = new XMLHttpRequest();
	} else {
		if(typeof ActiveXObject != "undefined") {
			Request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return Request;
}

//check the current answer state
function reqState(hideObj,target) {
	//object which should be hidden after finishing
	var hide = document.getElementById(hideObj);
	
	//readyState 4 means the full answer is received
	if(req.readyState == 4) {
		//print the received text into "target"
		document.getElementById(target).innerHTML = req.responseText;
		
		//hide "hideObj"
		hideObj.style.display = "none";
	}
}

//make a post-string from form-elements
function makePostString(postform) {
	var postStr = "";
	for(i = 0;i<postform.elements.length;i++) {
		postStr += encodeURIComponent(postform.elements[i].name) + "=" + encodeURIComponent(postform.elements[i].value) + "&";
	}
	return postStr;
}

//send a form via ajax
function sendform(formid,request) {
	//get the formobject
	obj = document.getElementById(formid);
	//object for showing the result
	obj2 = document.getElementById('formresult');
	//
	formobj = document.getElementById("form");
	//check for empty fields
	if(obj.username.value=="" || obj.mail.value=="" || obj.comment.value=="") {
		alert("bitte alle Felder ausfüllen!");
		return 0;
	}
	//make a new requestobject
	req = getRequest();
	req.onreadystatechange = reqState;
	//send the request
	req.open("post",request,true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send(makePostString(obj));
}

//send a simple ajax request
function ajaxGet(url,hideObj,target)
{
	//make a new requestobject
	req = getRequest();
	req.onreadystatechange = function (){
		reqState(hideObj,target);
	}
	req.open("post",url,true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send("ajax=1");
	return false;
}

//write some content an run js
function sethtml(div,content) 
{
   var search = content; 
   var script; 
    
   var is_singleq = 0; var singleq = "'"; 
   var is_doubleq = 0; var doubleq = '"'; 
   var is_escaped = 0; var escap = "\\"; 
   var layer = 0; 
          
   while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/)) { 
      search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length); 
      if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break; 
      block = search.substr(0, search.indexOf(RegExp.$1)); 
      search = search.substring(block.length + RegExp.$1.length); 
       
      while(func = block.match(/(function(.+?)\((.*?)\)\s*\{)/)) { 
         eval(block.substr(0,block.indexOf(RegExp.$1))); 
         // for evaluating non functions 
          
         block = block.substr(block.indexOf(RegExp.$1) + RegExp.$1.length); 
         name = RegExp.$2; 
         param = RegExp.$3; 
          
         is_singleq = 0; 
         is_doubleq = 0; 
         is_escaped = 0; 
         layer = 0; 
          
          
         for(i=0;i<block.length;i++) { 
            c = block.substr(i,1); 
             
            if ((is_singleq || is_doubleq) && is_escaped) { 
               is_escaped = 0; 
            } else if (!is_doubleq && (c==singleq)) { 
               is_singleq = !is_singleq; 
            } else if (!is_singleq && (c==doubleq)) { 
               is_doubleq = !is_doubleq; 
            } else if ((is_singleq || is_doubleq) && (c==escap)) { 
               is_escaped = 1; 
            } else if ( c=="{") { 
               layer++; 
            } else if ( c=="}") { 
               if ( layer==0 ) { 
                  break; 
               } 
               layer--; 
            } 
         } 
          
         code = block.substr(0,i-1); 
         block = block.substr(i +1); 
          
         code = code.replace(/\n/g, '\\n'); 
         code = code.replace(/\r/g, '\\r'); 
         code = code.replace(/'/g,"\\'"); 
          
         eval(name + " = new Function('"+param+"','"+code+"');"); 
      } 
      eval(block); // for evaluating non functions 
   } 
   document.getElementById(div).innerHTML=content; 
}

function change(id) {
	var obj = document.getElementById(id).style;
	if(obj.display == "none" || obj.display == "") {
		obj.display = "block";
	} else {
		obj.display = "none";
	}
}
