//
// $Id: google_ajax.js,v 2.0 2009/04/27 16:04:04 ph Exp $ 
//

var req;

 function xmlOpen(method, url, toSend, responseHandler)
 {
	//  hideFeedback();
     if (window.XMLHttpRequest)
     {
         // browser has native support for XMLHttpRequest object
         req = new XMLHttpRequest();
			if (req.overrideMimeType) {
				req.overrideMimeType('text/xml');
         }
     }
     else if (window.ActiveXObject)
     {
         // try XMLHTTP ActiveX (Internet Explorer) version
         req = new ActiveXObject("Microsoft.XMLHTTP");
     }
     
     if(req)
     {
         req.onreadystatechange = responseHandler;
         req.open(method, url, true);
		 // wegen OPERA 8 auskommentiert!
			try {
	         req.setRequestHeader("content-type","application/x-www-form-urlencoded");
			}
			catch(e) {
			}
         req.send(toSend);
     }
     else
     {
         alert('Your browser does not seem to support XMLHttpRequest.');
     }
 } 

function ajax_back() {
     if (req.readyState == 4)
     {
         // Make sure the status is "OK"
         if (req.status == 200)
         {
             var ajax = req.responseXML.getElementsByTagName('ajax');

			 var html_teil = req.responseXML.getElementsByTagName('html');
			 var js_teil = req.responseXML.getElementsByTagName('js');

			for(i=0; i < html_teil.length; i++) {
				var node = html_teil.item(i); 
				var node_id = node.getAttribute('html_id'); 
				var append_node = node.getAttribute('append');
				if(document.getElementById(node_id)) {					
					if(append_node==1) {
						document.getElementById(node_id).innerHTML += node.firstChild.nodeValue
					}
					else {
						document.getElementById(node_id).innerHTML = node.firstChild.nodeValue
					}
				}
			}

			for(i=0; i < js_teil.length; i++) {
				var node = js_teil.item(i); 
				var node_id = node.getAttribute('call'); 
				//eval("document.X_"+node_id+" = 'sss' ;"); 
				jscode = node.firstChild.nodeValue.replace(/\n/g,';'); 
				jscode = jscode.replace(/\r/,';'); 
				jscode = jscode.replace(/"/g,'\\"'); 
				eval(node_id+" = new Function('"+jscode+"');"); 
				eval(node_id+"()");
			}
		 
		 }
         else
         {
             alert("There was a problem retrieving the XML data:\n" + req.statusText);
         }
     }
 } 

 function ajax_call(url){
		var Jetzt = new Date();

		if(url.indexOf("?")>0) {
		    url=url + "&t="+Jetzt.getTime();
		}
		else {
			url=url + "?t="+Jetzt.getTime();
		}
	   xmlOpen("GET", url, null, ajax_back);
//	 new IREDS_URL(url,{method:'get'}).call(); 
//	 pageTracker._trackPageview(url);
 }



 function ajax_post(url,post_data) {
     post_data += '&_REFERER='+escape(this.location.href); 
     xmlOpen("POST",url,post_data,ajax_back);
 }

 function ajax_form(obj) {
   if(obj) {
    if(obj.tagName == 'FORM') {
	var values = new Array();
	for (var i = 0; i < obj.elements.length; i++) {
   	   var elem = obj.elements[i];
	   if(elem.name != '') {
		var t = 'NOB'; 
		if(elem.type) { t = elem.type }; 
		if(elem.tagName == 'SELECT' ) { t = "select" }; 
		switch(t) {
			case "NOB": 
				break;
			case "radio": 
				if (elem.checked) {
				  values.push(elem.name+"="+encodeURI(elem.value));
				}
				break;
			case "checkbox":
				if (elem.checked) {
					 values.push(elem.name+"="+encodeURI(elem.value));
				} else {
					 values.push(elem.name+"=");
				}
				break; 
			case "select":
				for(var ii = 0; ii < elem.options.length; ii++ ) {
					if(elem.options[ii].selected) {
						values.push(elem.name+"="+encodeURI(elem.options[ii].value)); 
					} 
				}
	
			break;
                        default:
				values.push(elem.name+"="+encodeURIComponent(elem.value));
			break;
		}
	    }
	}
	ajax_post(obj.action, values.join("&")) ;
    } else {
	alert("Use 'ajax_form' just in formtags "); 
    } 
   } 
 } 


