var kport_ajax = new Class({
	options: {
		url:"",
		update:"",
		async:true,
		js:"",
		next_js:"",
		wait_msg:"<img src=\""+tmpl_dir+"img/ajax-loader.gif\" style=\"vertical-align:middle\" alt=\"\" />&nbsp;Attendere...",
		put_wait:true,
		method:"post",
		link: "cancel",
		cycle:0
	},
	loadURL: function(options) {
		this._r.setOptions(options);
		this._r.send();
	},
	initialize: function(options) {
		this.setOptions(options);
		this._r = new Request({
						onRequest:function(){
								if (this.options.put_wait)
								{ $(this.options.update).set('html',this.options.wait_msg);
								}
							},
						onSuccess:function(responseText, responseXML){
								var frm = false;
								var dest = $(this.options.update);
								//if (responseXML)
								// var rxml = responseXML.documentElement;
								//for(var i = 0; i < xml.childNodes.length; i++)
								//{ var node = xml.childNodes[i];
								//  var id = node.getAttribute('value'); // Get attribute value
								//  var value = node.firstChild.nodeValue; // Get node value }
								//}
								//alert(responseText);
								var is_xml = (/<\?xml/i).test(responseText);
								if (is_xml)
								{ //if ($chk(responseXML.getElement('result_msg')))
								  //var rxml = new XML({xml: responseXML});
								  var rxml = parser_xml(responseText);
								  var rmsg = rxml.getElementsByTagName("result_msg");
								  //var rmsg = rxml.getElement('result_msg');
								  if (rmsg[0].childNodes[0])
								   $("msgs").set("html",unescape(rmsg[0].childNodes[0].nodeValue/*get('text')*/));
								  var rbody = rxml.getElementsByTagName("result_body");
								  //var rbody = rxml.getElement('result_body');
								  if (rbody[0].childNodes[0])
								   dest.set('html',rbody[0].childNodes[0].nodeValue/*.get('text')*/);
								  var rprf = rxml.getElementsByTagName("page_reload_flg");
								  //var rprf = rxml.getElement('page_reload_flg');
								  if (rprf[0].childNodes[0])
								  { if (rprf[0].childNodes[0].nodeValue/*.get('text')*/  == "true")
								    { frm = $$("form")[0];
								    }
							      }
								}
								else
								 //if (responseText)
								  dest.set('html',responseText);
								$exec(this.options.js);
								$exec(this.options.next_js);
								if (frm)
								 frm.submit();
								//top.history.go(0);
								if (this.options.cycle)
								 (function(){this.send();}.bind(this)).delay(this.options.cycle);
							}
						});
		this._r.setOptions(this.options);
		this._r.options.evalScripts = function(script){
							this.options.js = script;
						}.bind(this._r);
	}
});
kport_ajax.implement(new Events, new Options);
