// JavaScript Document

var http_request = false;
var http_request_url;
var http_request_target;
var http_request_action;
var mp_return_value;
if (typeof params == 'undefined') {
	var params = Array();
}

params['form_params'] = Array();

function makePOSTRequest() {
	var url, target, append, parameters, jsaction;
	mp_return_value = '';
	if (arguments[0]) url        = arguments[0];
	if (arguments[1]) target     = arguments[1];
	if (arguments[2]) append     = arguments[2];
	if (arguments[3]) parameters = arguments[3];
	if (arguments[4]) jsaction   = arguments[4];
	//alert('parameters='+parameters);
	//alert('makePOSTRequest('+url+', '+target+', '+parameters+')');
	http_request = null;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			// set type accordingly to anticipated content type
			//http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
	  	} catch (e) {
            		try {
               			http_request = new ActiveXObject("Microsoft.XMLHTTP");
            		} catch (e) {}
	  	}
	}
	else if (!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}

	if (jsaction) http_request_action = jsaction;

	//http_request.onreadystatechange = alertContents;
	http_request.onreadystatechange=function(){
		alertContents(http_request, target, append, parameters, jsaction);
	}
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}


function alertContents(http_request, http_request_target, method, parameters, jsaction){
	//alert('alertContents('+http_request.target+','+http_request.url+')');
	var target_obj = null;
	if (http_request_target) if (typeof http_request_target == 'string') {
		target_obj = document.getElementById(http_request_target);
	}
	else if(http_request_target!=null) {
		target_obj = http_request_target;
	}
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			result = http_request.responseText;
			if (result.length) {
				if (http_request_target && target_obj) {
					switch (method) {
						case APPEND:
							target_obj.innerHTML += result;
							break;
						case PREPEND:
							target_obj.innerHTML = result + target_obj.innerHTML;
							break;
						default:
							target_obj.innerHTML = result;
							break;
					}
				}
				mp_return_value = result;
				if (jsaction) eval(jsaction);
			}
			else {
				if (jsaction) eval(jsaction);
			}
		}
		else {
			mp_return_value = "ERR_NO 199";
			//if (target_obj) setContent(target_obj,'There was a problem with the request.');
			alert(mp_return_value + ': NO RESULT');
		}
	}
}

function jxFormSubmit() {
 var poststr = "";
 thisname = "jxFormSubmit";
 if (arguments.length) {
	 form_obj    = arguments[0];
	 if (form_obj && form_obj.action) {
		 form_action = form_obj.action;
		 form_obj.action = null;
	 }
	 if (arguments[1]) form_action = arguments[1];
	 //alert('form_action='+form_action);

	 if (form_obj && form_obj.target) {
		 form_target = form_obj.target;
		 form_obj.target = null;
	 }
	 if (arguments[2]) form_target = arguments[2];
 }

 copyURL(form_action,thisname);

 if (form_obj) e = form_obj.elements;
 if (e) {
	 if (!params[thisname]) params[thisname] = Array();
	 for(i=0; i<e.length; i++) {
		 name = e[i].name;
		 if (name) params[thisname][name] = escape(encodeURI(e[i].value));
	 }
 }
 poststr = makeQuery(thisname,false);
 //alert('Post data:\n\n'+poststr);
 if (poststr) makePOSTRequest(thisname, form_target, poststr);
 return false;
}


function jxFormSubmit2() { // update from form
  var trigger_target, trigger_url, trigger_method, jsaction;
	for (i=0; i<arguments.length; i+=4) {
		the_form				= arguments[i];
		trigger_url     = arguments[i+1];
		trigger_target  = arguments[i+2];
		trigger_method  = arguments[i+3];
		jsaction        = arguments[i+4];
	}
	params['form_params'] = Array();
	getFormFields(the_form,params['form_params']);
	parameters = makeQuery('form_params',POST);
	//alert(parameters);
	jsaction = the_form.getAttribute("jsaction");
	makePOSTRequest(trigger_url,trigger_target,trigger_method,parameters,jsaction);
	return false;
}
