// ajaxtools.js// *********************************************************************// ************************* AJAX-Helper ************************************// ********************************************************************* function getHTTPRequestObj() {    //alert("getHTTPRequestObj");    var http_request = null ;    if (window.XMLHttpRequest) { // Mozilla, Safari, ...        http_request = new XMLHttpRequest();        if (http_request.overrideMimeType) {            http_request.overrideMimeType('text/xml');                    }    }     else if (window.ActiveXObject) { // IE        try {            http_request = new ActiveXObject("Msxml2.XMLHTTP");            //alert("Msxml2.XMLHTTP");        }         catch (e) {                        try {                http_request = new ActiveXObject("Microsoft.XMLHTTP");                //alert("Microsoft.XMLHTTP");            }             catch (e) {            }        }    }     if (!http_request) {        alert('Giving up :( Cannot create an XMLHTTP instance');        return null;    }    return http_request ; }          // end of getHTTPRequestObj   function ShowAjaxMsg(msg) {	//alert("ShowAjaxMsg\n" + msg);		var html = '<div style="position:absolute;background-color:yellow;color:black;width:99%;padding:4px;padding-left:8px;padding-right:4px;">' ;	html += msg ;	html += '</div>';			var id = "AjaxMsgWrapper";	var o = document.getElementById(id);	if(o) {		o.innerHTML = html ;		o.style.display = 'block' ;	}}function getXmlStr(xmlDoc) {	try{ 		var xmlstr = "";		if (window.ActiveXObject) {			//alert("do the .xml way");			xmlstr = xmlDoc.xml ;		}		else {			//alert("do the serializer way");			var serializer = new XMLSerializer();			var xmlstr = serializer.serializeToString(xmlDoc);		} 				// alert("showModelleTable: xmldoc=\n" + xmlDoc);		// alert("showModelleTable: xmlstr=\n" + xmlstr);		}		catch(e) {			alert("getXmlStr: " + e.message );			return xmlstr;		}				return xmlstr;}// Standard Callbackfunktionfunction StandardCallback(http_request ) {     // called after data is returned      //alert("StandardCallback - http_request.status=" + http_request.status );         if (http_request.readyState == 4) {         if (http_request.status == 200) {             //var responseText = http_request.responseText;             //alert("StandardCallback: " + responseText );                //alert("http_request.responseText=" + http_request.responseText ); 			try {                 if( left(http_request.responseText,1) != "<")  {	                	var mymsg = http_request.responseText ;                     mymsg = left(mymsg,mymsg.length -1);                     //alert("mymsg=" + mymsg);                                         if( left(mymsg,4) == "msg-" ) {                     	mymsg = strRight(mymsg,"msg-") ;                         alert( mymsg  );                         return false;                                        		}                		else if( left(mymsg,6) == "print-" ) {                		               		}               		else if( left(mymsg,4) == "url-" ) {               			mymsg = strRight(mymsg,"url-") ;                			window.location.href = mymsg ;                  			return false;                		               		}                	else if( left(mymsg,3) == "ok-" ) {                 		mymsg = strRight(mymsg,"ok-") ;                                                           	//alert("mymsg=" + mymsg + "-" );                     	if( mymsg == "" ) {                         	                    	return false;                   		}                     	else if(mymsg == "reload" ) { 	                    	status = "reload";                         	window.location.href = window.location.href ;                  			return false;                     	}                                                    			}                                 	else if( left(mymsg,2)  == "ok" ) {                 		//alert("nun ist es ok");              			return true;        // Nichts machen             		}                                     	else {                 		mymsg = "Fehler in ajaxtools.js - StandardCallback, Agent meldet:<br>" + mymsg ;              		}                                       			return false;                     				}                                                                                 	}             catch(e) {                	alert( "ajaxtools.js - StandardCallback:\n" + e.message );             	return false;                	}                     }         else {             alert('ajaxtools.js - StandardCallback: There was a problem with the request: ' + left(http_request.responseText,500));             //alert(http_request.getAllResponseHeaders())                        return false ;        }     } }           // End StandardCallback // Standard Callbackfunktion// ############################################################// ############################## XSLDOC ######################function RenderXml( xmlDoc, xslkey, targetid ) {	//alert("ajaxtools.js - RenderXml xslkey=" + xslkey);	//alert("ajaxtools.js - RenderXml targetid=" + targetid);		//alert("KdNr = " + KdNr  ) ;	try{		if( RecordCount == null ) RecordCount = 0 ;				var allRecords = xmlDoc.getElementsByTagName('Table'); 		var RecordCount = allRecords.length;		//alert("RecordCount=" + RecordCount);		 			//var xslurl = ThisDBurl + "/xslv/" + xslkey + "?open&tim=" + escape(new Date()) ;			var xslurl = ThisDBurl + "/xslv/" + xslkey ;				//xslurl	 += "?open"		//alert("RenderXml xslurl= " + xslurl ); 					var intoDIVHead = document.getElementById(targetid + "Head");		var intoDIV = document.getElementById(targetid);		//alert("intoDIV= " + intoDIV);					if (window.ActiveXObject) {  	     	var xslDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument.3.0");	  		xslDoc.async = false	  		xslDoc.load( xslurl );	  		//alert( "xslDoc= " + xslDoc.xml);	  		    	  		var xslTemplate=new ActiveXObject("MSXML2.XSLTemplate.3.0");		   	xslTemplate.stylesheet=xslDoc;		   			  			   	try {				var xslProcessor=xslTemplate.createProcessor();				xslProcessor.input = xmlDoc;						xslProcessor.addParameter("RecordCount", RecordCount );				xslProcessor.addParameter("UserKdNr", KdNr );							xslProcessor.transform();			}			catch(e) {				alert("RenderXml: " + e);				return;			}   							var result = xslProcessor.output ;			//alert("processor.output=" + result );			intoDIV.innerHTML=result ; 		}		else if (document.implementation && document.implementation.createDocument){			// FireFox								        			  		try {	  			//alert("renderXml xslurl= " + xslurl ); 					var xmls = new XMLSerializer();   			  			var xslDoc = document.implementation.createDocument("", "", null);		   	xslDoc.async = false		   	xslDoc.load( xslurl );		  	//alert( "xslDoc= " + xmls.serializeToString(xslDoc));		     //  alert( "xmlDoc= " + xmls.serializeToString(xmlDoc));	  			  				  		xsltProcessor=new XSLTProcessor();				xsltProcessor.importStylesheet(xslDoc);				//alert("KdNr = " + KdNr  ) ;				xsltProcessor.setParameter(null, "RecordCount", RecordCount );				xsltProcessor.setParameter(null, "UserKdNr", KdNr );								var outputXHTML  = xsltProcessor.transformToFragment(xmlDoc,document);								//alert( xmls.serializeToString(outputXHTML));				// intoDIV.innerHTML = xmls.serializeToString(outputXHTML);				//setInnerText( targetid,  xmls.serializeToString(outputXHTML) );				 				//alert(outputXHTML);				intoDIV.innerHTML = "";				//intoDIV.appendChild(outputXHTML);				intoDIV.innerHTML = xmls.serializeToString(outputXHTML);							 			}	  		catch(e) {	  			alert("ajaxtools.js - RenderXml: " + e);				return;	  		}	  						  		   			  			}	}	catch(e) {		alert( "ajaxtools.js - RenderXml:\n" + e.message );		return;    	}      }function CallbackWriteToDiv(http_request, divid, ResizeFrameID ) {     // Schreibt ResponseText in das angegebene Div   //alert("CallbackWriteToDiv - http_request.status=" + http_request.status + " - http_request.readyState= " + http_request.readyState);         if (http_request.readyState == 4) {         if (http_request.status == 200) {             var responseText = http_request.responseText;             //alert("CallbackAppendToDiv: " + responseText );              //alert("CallbackAppendToDiv: id=" + divid + " - http_request.responseText=" + http_request.responseText ); 			try { 								hideAllLoadKringel() ;								//alert(http_request.responseText);                if( left(http_request.responseText,1) != "<")  {	                	var mymsg = http_request.responseText ;                     mymsg = left(mymsg,mymsg.length -1);                     //alert("mymsg=" + mymsg);                                         if( left(mymsg,4) == "msg-" ) {                     	mymsg = strRight(mymsg,"msg-") ;                         //alert( mymsg  );                       	var o = document.getElementById(divid);						if(o) {							//alert(http_request.responseText);							o.innerHTML = '<div style="border:1px solid grey;padding:4px;color:red;font-weight:bold;">' + mymsg + '</div>' ;							showObject(divid);							//hideObject("LoadKringel");							//o.style.display = 'block' ;													}                        return false;                                        		}                 	else if( left(mymsg,3) == "ok-" ) {                 		mymsg = strRight(mymsg,"ok-") ;                                                           	//alert("mymsg=" + mymsg + "-" );                     	if( mymsg == "" ) {                         	                    	return false;                   		}                     	else if(mymsg == "reload" ) { 	                    	status = "reload";                         	window.location.href = window.location.href ;                  			return false;                     	}                                                    			}                                 	else if( left(mymsg,2)  == "ok" ) {                 		//alert("nun ist es ok");              			return true;        // Nichts machen             		}                                     	else {                 		mymsg = "Fehler in ajaxtools.js - CallbackWriteToDiv, Agent meldet:<br>" + mymsg ;              		}                                       			return false;                     				} 				else {									var o = document.getElementById(divid);					if(o) {						//alert(http_request.responseText);						o.innerHTML = http_request.responseText ;						//o.style.display = 'block' ;						showObject(divid);					}						//alert("hier: " + parent.document.location.href);												if( ResizeFrameID != "" ) {							parent.ReSizeThisFrame(ResizeFrameID);	// z.B. 'mcframe'						}																	}                                                                                 	}             catch(e) {                	alert( "ajaxtools.js - CallbackWriteToDiv:\n" + e.message );             	return false;                	}                     }         else {             alert('ajaxtools.js - CallbackWriteToDiv: There was a problem with the request: ' + left(http_request.responseText,500));             //alert(http_request.getAllResponseHeaders())                        return false ;        }     } }           // End CallbackWriteToDiv function hideAllLoadKringel() {	hideObject("LoadKringel");	hideObject("LoadKringel_check");	hideObject("LoadKringel_create");	hideObject("LoadKringel_show");	hideObject("LoadKringel_suggest");	}function SaveThisFieldToDoc(fldid) {	//alert("ajaxtools.js - SaveThisFieldToDoc");	try {                                var ThisForm = document.forms[0];                     var ThisURL = ThisDBurl ;             var valu = getFldValu(fldid)               // unid ist eine Globale in der Form                var retvalu = "ok"            	SetFieldOnDoc(unid, fldid, valu, retvalu )          		              }         catch(e) {                 alert( "ajaxtools.js - SetThisFieldOnDoc:\n" + e.message );                 return;         } }function SetFieldOnDoc(unid, fldname, valu, retvalu ) { 	// alert("SetFieldOnDoc: unid= " + unid + "\nfldname=" + fldname + "\nvalu=" + valu );     try {  		if( retvalu == null || retvalu == "" ) { retvalu = "ok" ; }                                var ThisForm = document.forms[0];                     var ThisURL = ThisDBurl ;             ThisURL += "/SetFieldOnDocAgent?open" ;              ThisURL += "&unid=" + unid ;                     ThisURL += "&fldname=" + fldname ;                     ThisURL += "&valu=" + valu ;             ThisURL += "&retvalu=" + retvalu ;                             ThisURL += "&tim=" + escape(new Date()) ;                             //alert("ThisURL=" + ThisURL );                 	// instantiate http_request         	var http_request = getHTTPRequestObj() ;        		if( http_request == null ) {return false; }                		// call function to handle return code            	 	http_request.onreadystatechange = function() { StandardCallback(http_request ); };         	http_request.open('GET', ThisURL, true);         	http_request.send(null);                                                     }         catch(e) {                 alert( "ajaxtools.js - SetFieldOnDoc:\n" + e.message );                 return;         }         } 
