// arguments: GET or POST, file 1st handling, div where 2 display 1st handling, Question to ask, form name for POST method, javascript to call/execute

function zajaxGetData (method, dataSource, divID, questMsg, formX, callBack, debug){

var debug = (debug == null) ? false : debug;

//if question is passed (assume yes or no answer)

if(questMsg != '' && questMsg != null){

	var conf = confirm(questMsg);
	
	switch (conf) {
	
		case false:
	
		return;

	}


}

 

var XMLHttpRequestObject = false;

 

if(window.XMLHttpRequest){

 

	XMLHttpRequestObject = new XMLHttpRequest();
	
	 
	
	} else if (window.ActiveXObject) {
	
	XMLHttpRequestObject = new ActiveXObject ("Microsoft.XMLHTTP");

}

if (XMLHttpRequestObject) {

	var obj = document.getElementById(divID);

	//_________________________________ anticache handling IE_____________________________//
	
	if(dataSource.indexOf('?') == -1)

	{

		var anticache = randnr();

		dataSource += '?dummy=' + anticache;

	}

	else

	{

		var anticache = randnr();
		
		dataSource += '&dummy=' + anticache;

	}

	//___________________ Check for chosen method ____________________//
	
	if(method.toUpperCase() == 'GET')
	
	{

		// GET request
		
		XMLHttpRequestObject.open("GET", dataSource, true);
		
		XMLHttpRequestObject.onreadystatechange = function ()
		
		{

		// if state is ready
		
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
		
			obj.innerHTML = XMLHttpRequestObject.responseText;
			obj.innerHTML = parseScript(obj.innerHTML);
			if (debug) debugme(obj.innerHTML);
		
		}

		// if state not yet ready
		
		else
		
		{
		
			displayLoading(divID);
		
		}

	}

	XMLHttpRequestObject.send(null);

	if(callBack)
	
		{
		
			eval(''+callBack+'');
			//callBack();
		
		}
	
	}
	
	//_______________________ end method GET _______________________//

		if(method.toUpperCase() == 'POST' && formX != '')
		
		{
		
			var str = '';
			
			var elem = document.getElementById(''+formX+'').elements;
			
			var question = dataSource.indexOf('?');
			
			for(var i = 0; i < elem.length; i++)
			
			{
				
				// redio en checkbox
				if(elem[i].type == 'checkbox' && elem[i].checked == true || elem[i].type == 'radio' && elem[i].checked == true){
					
					
					elem[i].value = elem[i].value.replace(/€/,"&euro;");
					
					if(question == -1){
				
						str += "?";
				
					}
				
					else
				
					{
				
						str += "&";
				
					}
				
					str += elem[i].name + "=";
				
					str += encodeURIComponent(elem[i].value);
				
					question = 1;
					
				}
				
				if(elem[i].type != 'checkbox' && elem[i].type != 'radio'){
			
					elem[i].value = elem[i].value.replace(/€/,"&euro;");
					
					if(question == -1){
				
						str += "?";
				
					}
				
					else
				
					{
				
						str += "&";
				
					}
				
					str += elem[i].name + "=";
				
					str += encodeURIComponent(elem[i].value);
				
					question = 1;
				
				}
		
		}

	dataSource = dataSource+str;
	
	// POST request
	
	XMLHttpRequestObject.open("POST", dataSource, true);
	
	XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	XMLHttpRequestObject.setRequestHeader("Content-length", str.length);
	
	XMLHttpRequestObject.setRequestHeader("Connection", "close");
	
	XMLHttpRequestObject.onreadystatechange = function ()
	
	{

	// if state is ready
	
	if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
	
		obj.innerHTML = XMLHttpRequestObject.responseText;
		obj.innerHTML = parseScript(obj.innerHTML);
		if (debug) debugme(obj.innerHTML);
		
		}
		
		// if state not yet ready
		
		else
		
		{
		
			displayLoading(divID);
		
		}
	
	}

	XMLHttpRequestObject.send(str);
	
	if(callBack){
		
		eval(''+callBack+'');
	
	}

}

//_______________________ end method POST _______________________//

}

}

 

function randnr ()

{

	var randomnumber=Math.floor(Math.random()*9999999999);
	
	return randomnumber;

}
 

// feedback during handling

function displayLoading(element) {

	if(element){
	
		var obj = document.getElementById(element);
		
		while (obj.hasChildNodes()) {
		
			obj.removeChild(obj.lastChild);
	
		}

		var image = document.createElement("img");
	
		image.setAttribute("src","ajax-loader.gif");
	
		image.setAttribute("alt","Loading...");
		
		image.setAttribute("width","16");
		
		image.setAttribute("height","16");
	
		obj.appendChild(image);

	}

}
var browserName=navigator.appName; 
function parseScript(_source)
{
	if (browserName=="Microsoft Internet Explorer")
	{
		var source = _source;
		var scripts = new Array();
 
		// Strip out tags
		while(source.indexOf("<SCRIPT") > -1 || source.indexOf("</SCRIPT") > -1) {
			var s = source.indexOf("<SCRIPT");
			var s_e = source.indexOf(">", s);
			var e = source.indexOf("</SCRIPT", s);
			var e_e = source.indexOf(">", e);
 
			// Add to scripts array
			scripts.push(source.substring(s_e+1, e));
			// Strip from source
			source = source.substring(0, s) + source.substring(e_e+1);
		}
 
		// Loop through every script collected and eval it
		for(var i=0; i<scripts.length; i++) {
			try {
				eval(scripts[i]);
			}
			catch(ex) {
				// do what you want here when a script fails
			}
		}
		// Return the cleaned source
		return source;
		
	}
	else
	{
		var source = _source;
		var scripts = new Array();
 
		// Strip out tags
		while(source.indexOf("<script") > -1 || source.indexOf("</script") > -1) {
			var s = source.indexOf("<script");
			var s_e = source.indexOf(">", s);
			var e = source.indexOf("</script", s);
			var e_e = source.indexOf(">", e);
 
			// Add to scripts array
			scripts.push(source.substring(s_e+1, e));
			// Strip from source
			source = source.substring(0, s) + source.substring(e_e+1);
			
		}
		// Loop through every script collected and eval it
		for(var i=0; i<scripts.length; i++) {
			try {
				eval(scripts[i]);
			}
			catch(ex) {
				// do what you want here when a script fails
			}
		}
		// Return the cleaned source
		return source;
	}
}function debugme (output){
		
		alert(convertHTMLEntity(output));
}

function convertHTMLEntity (str) {
	var myString = str;
	myString = myString.replace( /\&amp;/g, '&' );
	myString = myString.replace( /\&lt;/g, '<' );
	myString = myString.replace( /\&gt;/g, '>' );
	myString = myString.replace( /\&quot;/g, '"' );
	myString = myString.replace( /\&copy;/g, '©' );
	myString = myString.replace( /\&reg;/g, '®' );
	myString = myString.replace( /\&laquo;/g, '«' );
	myString = myString.replace( /\&raqou;/g, '»' );
	myString = myString.replace( /\&apos;/g, "'" );
	return myString;
}
