SHOWPROGRESS=false;
        


if('undefined'==typeof xajax)
xajax= {
}
;
if('undefined'==typeof xajax.config)
xajax.config= {
}
;
xajax.config.setDefault=function(option,defaultValue) {
	if('undefined'==typeof xajax.config[option])
	xajax.config[option]=defaultValue;
}
xajax.config.setDefault('commonHeaders', {
	'If-Modified-Since':'Sat, 1 Jan 2000 00:00:00 GMT'
}
);
xajax.config.setDefault('postHeaders', {
}
);
xajax.config.setDefault('getHeaders', {
}
);
xajax.config.setDefault('waitCursor',false);
xajax.config.setDefault('statusMessages',false);
xajax.config.setDefault('baseDocument',document);
xajax.config.setDefault('requestURI',xajax.config.baseDocument.URL);
xajax.config.setDefault('defaultMode','asynchronous');
xajax.config.setDefault('defaultHttpVersion','HTTP/1.1');
xajax.config.setDefault('defaultContentType','application/x-www-form-urlencoded');
xajax.config.setDefault('defaultResponseDelayTime',1000);
xajax.config.setDefault('defaultExpirationTime',10000);
xajax.config.setDefault('defaultMethod','POST');
xajax.config.setDefault('defaultRetry',5);
xajax.config.setDefault('defaultReturnValue',false);
xajax.config.setDefault('maxObjectDepth',20);
xajax.config.setDefault('maxObjectSize',2000);
xajax.config.setDefault('responseQueueSize',1000);
xajax.config.status= {
	update:function() {
		return {
			onRequest:function() {
				window.status='Sending Request...';
			}
			,
			onWaiting:function() {
				window.status='Waiting for Response...';
			}
			,
			onProcessing:function() {
				window.status='Processing...';
			}
			,
			onComplete:function() {
				window.status='Done.';
			}
		}
	}
	,
	dontUpdate:function() {
		return {
			onRequest:function() {
			}
			,
			onWaiting:function() {
			}
			,
			onProcessing:function() {
			}
			,
			onComplete:function() {
			}
		}
	}
}
xajax.config.cursor= {
	update:function() {
		return {
			onWaiting:function() {
				if(xajax.config.baseDocument.body)
				xajax.config.baseDocument.body.style.cursor='wait';
			}
			,
			onComplete:function() {
				xajax.config.baseDocument.body.style.cursor='auto';
			}
		}
	}
	,
	dontUpdate:function() {
		return {
			onWaiting:function() {
			}
			,
			onComplete:function() {
			}
		}
	}
}
xajax.tools= {
}
xajax.tools.$=function(sId) {
	if(!sId)
			return null;
	if(!xajax.config.baseDocument)	
			return false;
	var oDoc=xajax.config.baseDocument;
	if(!oDoc.getElementById(sId))
			return false;
	var obj=oDoc.getElementById(sId);
	if(typeof obj =='object')
			return obj;
	if(oDoc.all)
			return oDoc.all[sId];
	return false;
}

/** ********************************************************************************************* */

/*
if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt , from)
  {
    var len = this.length >>> 0;
    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}
*/

//Object.indexOf


if(!Array.indexOf){
	    Array.prototype.indexOf = function(obj){
	        for(var i=0; i<this.length; i++){
	            if(this[i]==obj){
	                return i;
	            }
	        }
	        return -1;
	    }
}





if(!Array.prototype.push) 
	Array.prototype.push = function( o ) 
	{
		this[this.length ] = o;
	};

if(!Array.prototype.subarr) 
Array.prototype.subarr = function( iStart, iLength ) 
{

	if(iStart >= this.length || (iLength != null && iLength <= 0)) return [];
	else if(iStart < 0) {
		if(Math.abs(iStart) > this.length) iStart = 0;
		else iStart = this.length + iStart;
	}
	if(iLength == null || iLength + iStart > this.length) iLength = this.length - iStart;

	var aReturn = new Array();
	for(var i=iStart; i<iStart + iLength; i++) {
		aReturn.push(this[i]);
	}
	return aReturn;
};	

if(!Array.prototype.subarray) 
Array.prototype.subarray = function( iIndexA, iIndexB ) {
	if(iIndexA < 0) iIndexA = 0;
	if(iIndexB == null || iIndexB > this.length) iIndexB = this.length;
	if(iIndexA == iIndexB) return [];
	var aReturn = new Array();
	for(var i=iIndexA; i<iIndexB; i++) {
		aReturn.push(this[i]);
	}
	return aReturn;
}
if(!Array.prototype.splice) 
Array.prototype.splice = function(iStart, iLength) {
	if(iLength < 0) iLength = 0;

	var aInsert = new Array();
	if(arguments.length > 2) {
		for(var i=2; i<arguments.length; i++) {
			aInsert.push(arguments[i]);
		}
	}
	var aHead = this.subarray(0, iStart);
	var aDelete = this.subarr(iStart, iLength);
	var aTail = this.subarray(iStart + iLength);
	var aNew = aHead.concat(aInsert, aTail);
	this.length = 0;
	for(var i=0; i<aNew.length; i++) {
		this.push(aNew[i]);
	}

	return aDelete;
}	

var array_search=function( needle, haystack, argStrict ) 
{
    var strict = !!argStrict;
    var key = '';
    for(key in haystack){
        if( (strict && haystack[key] === needle) || (!strict && haystack[key] == needle) ){
            return key;
        }
    }
    return false;
}	
	
/** ********************************************************************************************* */	
	
xajax.tools.setElements=function(array) {
	var key;
	var index;
	var toRemove=[];
	var ok=0;
	index=0;
	//var temp=[];
	
	
	if (typeof array != 'object') {
		return false;
	}
	for (key in array) {
		if(!isNaN(key)) {
			array[array[key]]=(document.getElementById(array[key]) ? document.getElementById(array[key]).value : '' );
			toRemove[index]=key;
			ok=1;
		} else
					array[key]=(xajax.$(key) ? xajax.$(key).value : '' );
		index++;
	}
	if(ok==1)
		for (e in toRemove) {
			
			array.splice(array_search(array[e],array),1);
	}
	return array;
};

xajax.tools.arrayContainsValue=function(array,valueToCheck) {
	var i=0;
	var l=array.length;
	while(i < l) {
		if(array[i]==valueToCheck)
		return true;
		++i;
	}
	return false;
}
xajax.tools.doubleQuotes=function(haystack) {
	return haystack.replace(new RegExp("'",'g'),'"');
}
xajax.tools.singleQuotes=function(haystack) {
	return haystack.replace(new RegExp('"','g'),"'");
}
xajax.tools._escape=function(data) {
	if('undefined'==typeof data)
	return data;
	if('string'!=typeof data)
	return data;
	var needCDATA=false;
	if(encodeURIComponent(data)!=data) {
		needCDATA=true;
		var segments=data.split('<![CDATA[');
		var segLen=segments.length;
		data=[];
		for (var i=0;i < segLen;++i) {
			var segment=segments[i];
			var fragments=segment.split(']]>');
			var fragLen=fragments.length;
			segment='';
			for (var j=0;j < fragLen;++j) {
				if(0!=j)
				segment+=']]]]><![CDATA[>';
				segment+=fragments[j];
			}
			if(0!=i)
			data.push('<![]]><![CDATA[CDATA[');
			data.push(segment);
		}
		data=data.join('');
	}
	if(needCDATA)
	data='<![CDATA['+data+']]>';
	return data;
}
xajax.tools._objectToXML=function(obj,guard) {
	var aXml=[];
	aXml.push('<xjxobj>');
	for (var key in obj) {
		++guard.size;
		if(guard.maxSize < guard.size)
		return aXml.join('');
		if('undefined'!=typeof obj[key]) {
			if('constructor'==key)
			continue;
			if('function'==typeof obj[key])
			continue;
			aXml.push('<e><k>');
			var val=xajax.tools._escape(key);
			aXml.push(val);
			aXml.push('</k><v>');
			if('object'==typeof obj[key]) {
				++guard.depth;
				if(guard.maxDepth > guard.depth) {
					try {
						aXml.push(xajax.tools._objectToXML(obj[key],guard));
					}
					catch(e) {
					}
				}
				--guard.depth;
			} else {
				var val=xajax.tools._escape(obj[key]);
				if('undefined'==typeof val||null==val) {
					aXml.push('*');
				} else {
					var sType=typeof val;
					if('string'==sType)
					aXml.push('S'); else if('boolean'==sType)
					aXml.push('B'); else if('number'==sType)
					aXml.push('N');
					aXml.push(val);
				}
			}
			aXml.push('</v></e>');
		}
	}
	aXml.push('</xjxobj>');
	return aXml.join('');
}
xajax.tools._enforceDataType=function(value) {
	value=new String(value);
	var type=value.substr(0,1);
	value=value.substr(1);
	if('*'==type)
	value=null; else if('N'==type)
	value=value-0; else if('B'==type)
	value=!!value;
	return value;
}
xajax.tools._nodeToObject=function(node) {
	if(null==node)
	return '';
	if('undefined'!=typeof node.nodeName) {
		if('#cdata-section'==node.nodeName||'#text'==node.nodeName) {
			var data='';
			do if(node.data)data+=node.data;
			while(node=node.nextSibling);
			return xajax.tools._enforceDataType(data);
		} else if('xjxobj'==node.nodeName) {
			var key=null;
			var value=null;
			var data=new Array;
			var child=node.firstChild;
			while(child) {
				if('e'==child.nodeName) {
					var grandChild=child.firstChild;
					while(grandChild) {
						if('k'==grandChild.nodeName)
						key=xajax.tools._enforceDataType(grandChild.firstChild.data); else('v'==grandChild.nodeName)
						value=xajax.tools._nodeToObject(grandChild.firstChild);
						grandChild=grandChild.nextSibling;
					}
					if(null!=key) {
						data[key]=value;
						key=value=null;
					}
				}
				child=child.nextSibling;
			}
			return data;
		}
	}
	throw {
		code:10001,data:node.nodeName
	}
	;
}
xajax.tools.getRequestObject=function() {
	if('undefined'!=typeof XMLHttpRequest) {
		xajax.tools.getRequestObject=function() {
			return new XMLHttpRequest();
		}
	} else if('undefined'!=typeof ActiveXObject) {
		xajax.tools.getRequestObject=function() {
			try {
				return new ActiveXObject('Msxml2.XMLHTTP.4.0');
			}
			catch(e) {
				xajax.tools.getRequestObject=function() {
					try {
						return new ActiveXObject('Msxml2.XMLHTTP');
					}
					catch(e2) {
						xajax.tools.getRequestObject=function() {
							return new ActiveXObject('Microsoft.XMLHTTP');
						}
						return xajax.tools.getRequestObject();
					}
				}
				return xajax.tools.getRequestObject();
			}
		}
	} else if(window.createRequest) {
		xajax.tools.getRequestObject=function() {
			return window.createRequest();
		}
	} else {
		xajax.tools.getRequestObject=function() {
			throw {
				code:10002
			}
			;
		}
	}
	return xajax.tools.getRequestObject();
}
xajax.tools.getBrowserHTML=function(sValue) {
	var oDoc=xajax.config.baseDocument;
	if(!oDoc.body)
	return '';
	var elWorkspace=xajax.$('xajax_temp_workspace');
	if(!elWorkspace) {
		elWorkspace=oDoc.createElement('div');
		elWorkspace.setAttribute('id','xajax_temp_workspace');
		elWorkspace.style.display='none';
		elWorkspace.style.visibility='hidden';
		oDoc.body.appendChild(elWorkspace);
	}
	elWorkspace.innerHTML=sValue;
	var browserHTML=elWorkspace.innerHTML;
	elWorkspace.innerHTML='';
	return browserHTML;
}
xajax.tools.willChange=function(element,attribute,newData) {
	if('string'==typeof element)
	element=xajax.$(element);
	if(element) {
		var oldData;
		eval('oldData=element.'+attribute);
		return(newData!=oldData);
	}
	return false;
}
xajax.tools.getFormValues=function(parent) {
	var submitDisabledElements=false;
	if(arguments.length > 1&&arguments[1]==true)
	submitDisabledElements=true;
	var prefix='';
	if(arguments.length > 2)
	prefix=arguments[2];
	if('string'==typeof parent)
	parent=xajax.$(parent);
	var aFormValues= {
	}
	;
	if(parent)
	if(parent.childNodes)
	xajax.tools._getFormValues(aFormValues,parent.childNodes,submitDisabledElements,prefix);
	return aFormValues;
}
xajax.tools._getFormValues=function(aFormValues,children,submitDisabledElements,prefix) {
	var iLen=children.length;
	for (var i=0;i < iLen;++i) {
		var child=children[i];
		if('undefined'!=typeof child.childNodes)
			xajax.tools._getFormValues(aFormValues,child.childNodes,submitDisabledElements,prefix);
		xajax.tools._getFormValue(aFormValues,child,submitDisabledElements,prefix);
	}
}
xajax.tools._getFormValue=function(aFormValues,child,submitDisabledElements,prefix) {
	if(!child.name)
	return;
	if('PARAM'==child.tagName)return;
	if(child.disabled)
	if(true==child.disabled)
	if(false==submitDisabledElements)
	return;
	if(prefix!=child.name.substring(0,prefix.length))
	return;
	if(child.type)
	if(child.type=='radio'||child.type=='checkbox')
	if(false==child.checked)
	return;
	var name=child.name;
	var values=[];
	if('select-multiple'==child.type) {
		var jLen=child.length;
		for (var j=0;j < jLen;++j) {
			var option=child.options[j];
			if(true==option.selected)
			values.push(option.value);
		}
	} else {
		values=child.value;
	}
	var keyBegin=name.indexOf('[');
	if(0 <=keyBegin) {
		var n=name;
		var k=n.substr(0,n.indexOf('['));
		var a=n.substr(n.indexOf('['));
		if(typeof aFormValues[k]=='undefined')
		aFormValues[k]=[];
		var p=aFormValues;
		while(a.length!=0) {
			var sa=a.substr(0,a.indexOf(']')+1);
			var lk=k;
			var lp=p;
			a=a.substr(a.indexOf(']')+1);
			p=p[k];
			k=sa.substr(1,sa.length-2);
			if(k=='') {
				if('select-multiple'==child.type) {
					k=lk;
					p=lp;
				} else {
					k=p.length;
				}
			}
			if(typeof p[k]=='undefined')
			p[k]=[];
		}
		p[k]=values;
	} else {
		aFormValues[name]=values;
	}
}
xajax.tools.stripOnPrefix=function(sEventName) {
	sEventName=sEventName.toLowerCase();
	if(0==sEventName.indexOf('on'))
	sEventName=sEventName.replace(/on/,'');
	return sEventName;
}
xajax.tools.addOnPrefix=function(sEventName) {
	sEventName=sEventName.toLowerCase();
	if(0!=sEventName.indexOf('on'))
	sEventName='on'+sEventName;
	return sEventName;
}
xajax.tools.xml= {
}
;
xajax.tools.xml.parseAttributes=function(child,obj) {
	var iLen=child.attributes.length;
	for (var i=0;i < iLen;++i) {
		var attr=child.attributes[i];
		obj[attr.name]=attr.value;
	}
}
xajax.tools.xml.parseChildren=function(child,obj) {
	obj.data='';
	if(0 < child.childNodes.length) {
		if(1 < child.childNodes.length) {
			var grandChild=child.firstChild;
			do {
				if('#cdata-section'==grandChild.nodeName||'#text'==grandChild.nodeName) {
					obj.data+=grandChild.data;
				}
			}
			while(grandChild=grandChild.nextSibling);
		} else {
			var grandChild=child.firstChild;
			if('xjxobj'==grandChild.nodeName) {
				obj.data=xajax.tools._nodeToObject(grandChild);
				return;
			} else if('#cdata-section'==grandChild.nodeName||'#text'==grandChild.nodeName) {
				obj.data=grandChild.data;
			}
		}
	} else if('undefined'!=typeof child.data) {
		obj.data=child.data;
	}
	obj.data=xajax.tools._enforceDataType(obj.data);
}
xajax.tools.xml.processFragment=function(xmlNode,seq,oRet,oRequest) {
	var xx=xajax;
	var xt=xx.tools;
	while(xmlNode) {
		if('cmd'==xmlNode.nodeName) {
			var obj= {
			}
			;
			obj.fullName='*unknown*';
			obj.sequence=seq;
			obj.request=oRequest;
			obj.context=oRequest.context;
			xt.xml.parseAttributes(xmlNode,obj);
			xt.xml.parseChildren(xmlNode,obj);
			xt.queue.push(xx.response,obj);
		} else if('xjxrv'==xmlNode.nodeName) {
			oRet=xt._nodeToObject(xmlNode.firstChild);
		} else if('debugmsg'==xmlNode.nodeName) {
		} else
		throw {
			code:10004,data:xmlNode.nodeName
		}
		++seq;
		xmlNode=xmlNode.nextSibling;
	}
	return oRet;
}
xajax.tools.queue= {
}
xajax.tools.queue.create=function(size) {
	return {
		start:0,
		size:size,
		end:0,
		commands:[],
		timeout:null
	}
}
xajax.tools.queue.retry=function(obj,count) {
	var retries=obj.retries;
	if(retries) {
		--retries;
		if(1 > retries)
		return false;
	} else retries=count;
	obj.retries=retries;
	return true;
}
xajax.tools.queue.rewind=function(theQ) {
	if(0 < theQ.start)
	--theQ.start; else
	theQ.start=theQ.size;
}
xajax.tools.queue.setWakeup=function(theQ,when) {
	if(null!=theQ.timeout) {
		clearTimeout(theQ.timeout);
		theQ.timeout=null;
	}
	theQ.timout=setTimeout(function() {
		xajax.tools.queue.process(theQ);
	}
	,when);
}
xajax.tools.queue.process=function(theQ) {
	if(null!=theQ.timeout) {
		clearTimeout(theQ.timeout);
		theQ.timeout=null;
	}
	var obj=xajax.tools.queue.pop(theQ);
	while(null!=obj) {
		try {
			if(false==xajax.executeCommand(obj))
			return false;
		}
		catch(e) {
		}
		delete obj;
		obj=xajax.tools.queue.pop(theQ);
	}
	return true;
}
xajax.tools.queue.push=function(theQ,obj) {
	var next=theQ.end+1;
	if(next > theQ.size)
	next=0;
	if(next!=theQ.start) {
		theQ.commands[theQ.end]=obj;
		theQ.end=next;
	} else
	throw {
		code:10003
	}
}
xajax.tools.queue.pushFront=function(theQ,obj) {
	xajax.tools.queue.rewind(theQ);
	theQ.commands[theQ.start]=obj;
}
xajax.tools.queue.pop=function(theQ) {
	var next=theQ.start;
	if(next==theQ.end)
	return null;
	next++;
	if(next > theQ.size)
	next=0;
	var obj=theQ.commands[theQ.start];
	delete theQ.commands[theQ.start];
	theQ.start=next;
	return obj;
}
xajax.responseProcessor= {}
;
xajax.responseProcessor.xml=function(oRequest){
	var xx=xajax;
	var xt=xx.tools;
	var xcb=xx.callback;
	var gcb=xcb.global;
	var lcb=oRequest.callback;
	var oRet=oRequest.returnValue;
	if(xt.arrayContainsValue(xx.responseSuccessCodes,oRequest.request.status)) {
		xcb.execute([gcb,lcb],'onSuccess',oRequest);
		var seq=0;
		if(oRequest.request.responseXML) {
			var responseXML=oRequest.request.responseXML;
			if(responseXML.documentElement) {
				oRequest.status.onProcessing();
				var child=responseXML.documentElement.firstChild;
				oRet=xt.xml.processFragment(child,seq,oRet,oRequest);
			}
		}
		var obj= {}
		;
		obj.fullName='Response Complete';
		obj.sequence=seq;
		obj.request=oRequest;
		obj.context=oRequest.context;
		obj.cmd='rcmplt';
		xt.queue.push(xx.response,obj);
		if(null==xx.response.timeout)
		xt.queue.process(xx.response);
	} else if(xt.arrayContainsValue(xx.responseRedirectCodes,oRequest.request.status)) {
		xcb.execute([gcb,lcb],'onRedirect',oRequest);
		window.location=oRequest.request.getResponseHeader('location');
		xx.completeResponse(oRequest);
	} else if(xt.arrayContainsValue(xx.responseErrorsForAlert,oRequest.request.status)) {
		xcb.execute([gcb,lcb],'onFailure',oRequest);
		xx.completeResponse(oRequest);
	}
	return oRet;
}
xajax.js= {
}
xajax.js.includeScriptOnce=function(command) {
	command.fullName='includeScriptOnce';
	var fileName=command.data;
	var oDoc=xajax.config.baseDocument;
	var loadedScripts=oDoc.getElementsByTagName('script');
	var iLen=loadedScripts.length;
	for (var i=0;i < iLen;++i) {
		var script=loadedScripts[i];
		if(script.src) {
			if(0 <=script.src.indexOf(fileName))
			return true;
		}
	}
	return xajax.js.includeScript(command);
}
xajax.js.includeScript=function(command) {
	command.fullName='includeScript';
	var oDoc=xajax.config.baseDocument;
	var objHead=oDoc.getElementsByTagName('head');
	var objScript=oDoc.createElement('script');
	objScript.src=command.data;
	if('undefined'==typeof command.type)objScript.type='text/javascript'; else objScript.type=command.type;
	if('undefined'!=typeof command.type)objScript.setAttribute('id',command.elm_id);
	objHead[0].appendChild(objScript);
	return true;
}
xajax.js.removeScript=function(command) {
	command.fullName='removeScript';
	var fileName=command.data;
	var unload=command.unld;
	var oDoc=xajax.config.baseDocument;
	var loadedScripts=oDoc.getElementsByTagName('script');
	var iLen=loadedScripts.length;
	for (var i=0;i < iLen;++i) {
		var script=loadedScripts[i];
		if(script.src) {
			if(0 <=script.src.indexOf(fileName)) {
				if('undefined'!=typeof unload) {
					var args= {
					}
					;
					args.data=unload;
					args.context=window;
					xajax.js.execute(args);
				}
				var parent=script.parentNode;
				parent.removeChild(script);
			}
		}
	}
	return true;
}
xajax.js.sleep=function(command) {
	command.fullName='sleep';
	if(xajax.tools.queue.retry(command,command.prop)) {
		xajax.tools.queue.setWakeup(xajax.response,100);
		return false;
	}
	return true;
}
xajax.js.confirmCommands=function(command) {
	command.fullName='confirmCommands';
	var msg=command.data;
	var numberOfCommands=command.id;
	if(false==confirm(msg)) {
		while(0 < numberOfCommands) {
			xajax.tools.queue.pop(xajax.response);
			--numberOfCommands;
		}
	}
	return true;
}
xajax.js.execute=function(args) {
	args.fullName='execute Javascript';
	var returnValue=true;
	args.context.xajaxDelegateCall=function() {
		eval(args.data);
	}
	args.context.xajaxDelegateCall();
	return returnValue;
}
xajax.js.waitFor=function(args) {
	args.fullName='waitFor';
	var bResult=false;
	var cmdToEval='bResult = (';
	cmdToEval+=args.data;
	cmdToEval+=');';
	try {
		args.context.xajaxDelegateCall=function() {
			eval(cmdToEval);
		}
		args.context.xajaxDelegateCall();
	}
	catch(e) {
	}
	if(false==bResult) {
		if(xajax.tools.queue.retry(args,args.prop)) {
			xajax.tools.queue.setWakeup(xajax.response,100);
			return false;
		}
	}
	return true;
}
xajax.js.call=function(args) {
	args.fullName='call js function';
	var parameters=args.data;
	var scr=new Array();
	scr.push(args.func);
	scr.push('(');
	if('undefined'!=typeof parameters) {
		if('object'==typeof parameters) {
			var iLen=parameters.length;
			if(0 < iLen) {
				scr.push('parameters[0]');
				for (var i=1;i < iLen;++i)
				scr.push(', parameters['+i+']');
			}
		}
	}
	scr.push(');');
	args.context.xajaxDelegateCall=function() {
		eval(scr.join(''));
	}
	args.context.xajaxDelegateCall();
	return true;
}
xajax.js.setFunction=function(args) {
	args.fullName='setFunction';
	var code=new Array();
	code.push(args.func);
	code.push(' = function(');
	if('object'==typeof args.prop) {
		var separator='';
		for (var m in args.prop) {
			code.push(separator);
			code.push(args.prop[m]);
			separator=',';
		}
	} else code.push(args.prop);
	code.push(') { ');
	code.push(args.data);
	code.push(' }');
	args.context.xajaxDelegateCall=function() {
		eval(code.join(''));
	}
	args.context.xajaxDelegateCall();
	return true;
}
xajax.js.wrapFunction=function(args) {
	args.fullName='wrapFunction';
	var code=new Array();
	code.push(args.func);
	code.push(' = xajax.js.makeWrapper(');
	code.push(args.func);
	code.push(', args.prop, args.data, args.type, args.context);');
	args.context.xajaxDelegateCall=function() {
		eval(code.join(''));
	}
	args.context.xajaxDelegateCall();
	return true;
}
xajax.js.makeWrapper=function(origFun,args,codeBlocks,returnVariable,context) {
	var originalCall='';
	if(0 < returnVariable.length) {
		originalCall+=returnVariable;
		originalCall+=' = ';
	}
	var originalCall='origFun(';
	originalCall+=args;
	originalCall+='); ';
	var code='wrapper = function(';
	code+=args;
	code+=') { ';
	if(0 < returnVariable.length) {
		code+=' var ';
		code+=returnVariable;
		code+=' = null;';
	}
	var separator='';
	var bLen=codeBlocks.length;
	for (var b=0;b < bLen;++b) {
		code+=separator;
		code+=codeBlocks[b];
		separator=originalCall;
	}
	if(0 < returnVariable.length) {
		code+=' return ';
		code+=returnVariable;
		code+=';';
	}
	code+=' } ';
	var wrapper=null;
	context.xajaxDelegateCall=function() {
		eval(code);
	}
	context.xajaxDelegateCall();
	return wrapper;
}
xajax.dom= {
}
xajax.dom.assign=function(element,property,data) {
	if('string'==typeof element)
	element=xajax.$(element);
	switch(property) {
		case 'innerHTML':
		element.innerHTML=data;
		break;
		case 'outerHTML':
		if('undefined'==typeof element.outerHTML) {
			var r=xajax.config.baseDocument.createRange();
			r.setStartBefore(element);
			var df=r.createContextualFragment(data);
			element.parentNode.replaceChild(df,element);
		} else element.outerHTML=data;
		break;
		default:
		if(xajax.tools.willChange(element,property,data))
		eval('element.'+property+' = data;');
		break;
	}
	return true;
}
xajax.dom.append=function(element,property,data) {
	if('string'==typeof element)
	element=xajax.$(element);
	eval('element.'+property+' += data;');
	return true;
}
xajax.dom.prepend=function(element,property,data) {
	if('string'==typeof element)
	element=xajax.$(element);
	eval('element.'+property+' = data + element.'+property);
	return true;
}
xajax.dom.replace=function(element,sAttribute,aData) {
	var sSearch=aData['s'];
	var sReplace=aData['r'];
	if(sAttribute=='innerHTML')
	sSearch=xajax.tools.getBrowserHTML(sSearch);
	if('string'==typeof element)
	element=xajax.$(element);
	eval('var txt = element.'+sAttribute);
	var bFunction=false;
	if('function'==typeof txt) {
		txt=txt.join('');
		bFunction=true;
	}
	var start=txt.indexOf(sSearch);
	if(start >-1) {
		var newTxt=[];
		while(start >-1) {
			var end=start+sSearch.length;
			newTxt.push(txt.substr(0,start));
			newTxt.push(sReplace);
			txt=txt.substr(end,txt.length-end);
			start=txt.indexOf(sSearch);
		}
		newTxt.push(txt);
		newTxt=newTxt.join('');
		if(bFunction) {
			eval('element.'+sAttribute+'=newTxt;');
		} else if(xajax.tools.willChange(element,sAttribute,newTxt)) {
			eval('element.'+sAttribute+'=newTxt;');
		}
	}
	return true;
}
xajax.dom.remove=function(element) {
	if('string'==typeof element)
	element=xajax.$(element);
	if(element&&element.parentNode&&element.parentNode.removeChild)
	element.parentNode.removeChild(element);
	return true;
}
xajax.dom.create=function(objParent,sTag,sId) {
	if('string'==typeof objParent)
	objParent=xajax.$(objParent);
	var target=xajax.config.baseDocument.createElement(sTag);
	target.setAttribute('id',sId);
	if(objParent)
	objParent.appendChild(target);
	return true;
}
xajax.dom.insert=function(objSibling,sTag,sId) {
	if('string'==typeof objSibling)
	objSibling=xajax.$(objSibling);
	var target=xajax.config.baseDocument.createElement(sTag);
	target.setAttribute('id',sId);
	objSibling.parentNode.insertBefore(target,objSibling);
	return true;
}
xajax.dom.insertAfter=function(objSibling,sTag,sId) {
	if('string'==typeof objSibling)
	objSibling=xajax.$(objSibling);
	var target=xajax.config.baseDocument.createElement(sTag);
	target.setAttribute('id',sId);
	objSibling.parentNode.insertBefore(target,objSibling.nextSibling);
	return true;
}
xajax.dom.contextAssign=function(args) {
	args.fullName='context assign';
	var code=[];
	code.push('this.');
	code.push(args.prop);
	code.push(' = data;');
	code=code.join('');
	args.context.xajaxDelegateCall=function(data) {
		eval(code);
	}
	args.context.xajaxDelegateCall(args.data);
	return true;
}
xajax.dom.contextAppend=function(args) {
	args.fullName='context append';
	var code=[];
	code.push('this.');
	code.push(args.prop);
	code.push(' += data;');
	code=code.join('');
	args.context.xajaxDelegateCall=function(data) {
		eval(code);
	}
	args.context.xajaxDelegateCall(args.data);
	return true;
}
xajax.dom.contextPrepend=function(args) {
	args.fullName='context prepend';
	var code=[];
	code.push('this.');
	code.push(args.prop);
	code.push(' = data + this.');
	code.push(args.prop);
	code.push(';');
	code=code.join('');
	args.context.xajaxDelegateCall=function(data) {
		eval(code);
	}
	args.context.xajaxDelegateCall(args.data);
	return true;
}
xajax.css= {
}
xajax.css.add=function(fileName,media) {
	var oDoc=xajax.config.baseDocument;
	var oHeads=oDoc.getElementsByTagName('head');
	var oHead=oHeads[0];
	var oLinks=oHead.getElementsByTagName('link');
	var found=false;
	var iLen=oLinks.length;
	for (var i=0;i < iLen&&false==found;++i)
	if(0 <=oLinks[i].href.indexOf(fileName)&&oLinks[i].media==media)
	found=true;
	if(false==found) {
		var oCSS=oDoc.createElement('link');
		oCSS.rel='stylesheet';
		oCSS.type='text/css';
		oCSS.href=fileName;
		oCSS.media=media;
		oHead.appendChild(oCSS);
	}
	return true;
}
xajax.css.remove=function(fileName,media) {
	var oDoc=xajax.config.baseDocument;
	var oHeads=oDoc.getElementsByTagName('head');
	var oHead=oHeads[0];
	var oLinks=oHead.getElementsByTagName('link');
	var i=0;
	while(i < oLinks.length)
	if(0 <=oLinks[i].href.indexOf(fileName)&&oLinks[i].media==media)
	oHead.removeChild(oLinks[i]); else++i;
	return true;
}
xajax.css.waitForCSS=function(args) {
	var oDocSS=xajax.config.baseDocument.styleSheets;
	var ssEnabled=[];
	var iLen=oDocSS.length;
	for (var i=0;i < iLen;++i) {
		ssEnabled[i]=0;
		try {
			ssEnabled[i]=oDocSS[i].cssRules.length;
		}
		catch(e) {
			try {
				ssEnabled[i]=oDocSS[i].rules.length;
			}
			catch(e) {
			}
		}
	}
	var ssLoaded=true;
	var iLen=ssEnabled.length;
	for (var i=0;i < iLen;++i)
	if(0==ssEnabled[i])
	ssLoaded=false;
	if(false==ssLoaded) {
		if(xajax.tools.queue.retry(args,args.prop)) {
			xajax.tools.queue.setWakeup(xajax.response,10);
			return false;
		}
	}
	return true;
}
xajax.forms= {
}
xajax.forms.getInput=function(type,name,id) {
	if('undefined'==typeof window.addEventListener) {
		xajax.forms.getInput=function(type,name,id) {
			return xajax.config.baseDocument.createElement('<input type="'+type+'" name="'+name+'" id="'+id+'">');
		}
	} else {
		xajax.forms.getInput=function(type,name,id) {
			var oDoc=xajax.config.baseDocument;
			var Obj=oDoc.createElement('input');
			Obj.setAttribute('type',type);
			Obj.setAttribute('name',name);
			Obj.setAttribute('id',id);
			return Obj;
		}
	}
	return xajax.forms.getInput(type,name,id);
}
xajax.forms.createInput=function(command) {
	command.fullName='createInput';
	var objParent=command.id;
	var sType=command.type;
	var sName=command.data;
	var sId=command.prop;
	if('string'==typeof objParent)
	objParent=xajax.$(objParent);
	var target=xajax.forms.getInput(sType,sName,sId);
	if(objParent&&target) {
		objParent.appendChild(target);
	}
	return true;
}
xajax.forms.insertInput=function(command) {
	command.fullName='insertInput';
	var objSibling=command.id;
	var sType=command.type;
	var sName=command.data;
	var sId=command.prop;
	if('string'==typeof objSibling)
	objSibling=xajax.$(objSibling);
	var target=xajax.forms.getInput(sType,sName,sId);
	if(target&&objSibling&&objSibling.parentNode)
	objSibling.parentNode.insertBefore(target,objSibling);
	return true;
}
xajax.forms.insertInputAfter=function(command) {
	command.fullName='insertInputAfter';
	var objSibling=command.id;
	var sType=command.type;
	var sName=command.data;
	var sId=command.prop;
	if('string'==typeof objSibling)
	objSibling=xajax.$(objSibling);
	var target=xajax.forms.getInput(sType,sName,sId);
	if(target&&objSibling&&objSibling.parentNode)
	objSibling.parentNode.insertBefore(target,objSibling.nextSibling);
	return true;
}
xajax.events= {
}
xajax.events.setEvent=function(command) {
	command.fullName='addEvent';
	var element=command.id;
	var sEvent=command.prop;
	var code=command.data;
	if('string'==typeof element)
	element=xajax.$(element);
	sEvent=xajax.tools.addOnPrefix(sEvent);
	code=xajax.tools.doubleQuotes(code);
	eval('element.'+sEvent+' = function() { '+code+'; }');
	return true;
}
xajax.events.addHandler=function(element,sEvent,fun) {
	if(window.addEventListener) {
		xajax.events.addHandler=function(command) {
			command.fullName='addHandler';
			var element=command.id;
			var sEvent=command.prop;
			var fun=command.data;
			if('string'==typeof element)
			element=xajax.$(element);
			sEvent=xajax.tools.stripOnPrefix(sEvent);
			eval('element.addEventListener("'+sEvent+'", '+fun+', false);');
			return true;
		}
	} else {
		xajax.events.addHandler=function(command) {
			command.fullName='addHandler';
			var element=command.id;
			var sEvent=command.prop;
			var fun=command.data;
			if('string'==typeof element)
			element=xajax.$(element);
			sEvent=xajax.tools.addOnPrefix(sEvent);
			eval('element.attachEvent("'+sEvent+'", '+fun+', false);');
			return true;
		}
	}
	return xajax.events.addHandler(element,sEvent,fun);
}
xajax.events.removeHandler=function(element,sEvent,fun) {
	if(window.removeEventListener) {
		xajax.events.removeHandler=function(command) {
			command.fullName='removeHandler';
			var element=command.id;
			var sEvent=command.prop;
			var fun=command.data;
			if('string'==typeof element)
			element=xajax.$(element);
			sEvent=xajax.tools.stripOnPrefix(sEvent);
			eval('element.removeEventListener("'+sEvent+'", '+fun+', false);');
			return true;
		}
	} else {
		xajax.events.removeHandler=function(command) {
			command.fullName='removeHandler';
			var element=command.id;
			var sEvent=command.prop;
			var fun=command.data;
			if('string'==typeof element)
			element=xajax.$(element);
			sEvent=xajax.tools.addOnPrefix(sEvent);
			eval('element.detachEvent("'+sEvent+'", '+fun+', false);');
			return true;
		}
	}
	return xajax.events.removeHandler(element,sEvent,fun);
}
xajax.callback= {
}
xajax.callback.create=function() {
	var xx=xajax;
	var xc=xx.config;
	var xcb=xx.callback;
	var oCB= {
	}
	oCB.timers= {
	}
	;
	oCB.timers.onResponseDelay=xcb.setupTimer(
	(arguments.length > 0)
	? arguments[0]
	:xc.defaultResponseDelayTime);
	oCB.timers.onExpiration=xcb.setupTimer(
	(arguments.length > 1)
	? arguments[1]
	:xc.defaultExpirationTime);
	oCB.onRequest=null;
	oCB.onResponseDelay=null;
	oCB.onExpiration=null;
	oCB.beforeResponseProcessing=null;
	oCB.onFailure=null;
	oCB.onRedirect=null;
	oCB.onSuccess=null;
	oCB.onComplete=null;
	return oCB;
}
xajax.callback.setupTimer=function(iDelay) {
	return {
		timer:null,delay:iDelay
	}
	;
}
xajax.callback.clearTimer=function(oCallback,sFunction) {
	if('undefined'!=typeof oCallback.timers) {
		if('undefined'!=typeof oCallback.timers[sFunction]) {
			clearTimeout(oCallback.timers[sFunction].timer);
		}
	} else if('object'==typeof oCallback) {
		var iLen=oCallback.length;
		for (var i=0;i < iLen;++i)
		xajax.callback.clearTimer(oCallback[i],sFunction);
	}
}
xajax.callback.execute=function(oCallback,sFunction,args) {
	if('undefined'!=typeof oCallback[sFunction]) {
		var func=oCallback[sFunction];
		if('function'==typeof func) {
			if('undefined'!=typeof oCallback.timers[sFunction]) {
				oCallback.timers[sFunction].timer=setTimeout(function() {
					func(args);
				}
				,oCallback.timers[sFunction].delay);
			} else {
				func(args);
			}
		}
	} else if('object'==typeof oCallback) {
		var iLen=oCallback.length;
		for (var i=0;i < iLen;++i)
		xajax.callback.execute(oCallback[i],sFunction,args);
	}
}
xajax.callback.global=xajax.callback.create();
xajax.response=xajax.tools.queue.create(xajax.config.responseQueueSize);
xajax.responseSuccessCodes=['0','200'];
xajax.responseErrorsForAlert=['400','401','402','403','404','500','501','502','503'];
xajax.responseRedirectCodes=['301','302','307'];
if('undefined'==typeof xajax.command)
xajax.command= {
}
;
xajax.command.create=function(sequence,request,context) {
	var newCmd= {
	}
	;
	newCmd.cmd='*';
	newCmd.fullName='* unknown command name *';
	newCmd.sequence=sequence;
	newCmd.request=request;
	newCmd.context=context;
	return newCmd;
}
if('undefined'==typeof xajax.command.handler)
xajax.command.handler= {
}
;
if('undefined'==typeof xajax.command.handler.handlers)
xajax.command.handler.handlers=[];
xajax.command.handler.register=function(shortName,func) {
	xajax.command.handler.handlers[shortName]=func;
}
xajax.command.handler.unregister=function(shortName) {
	var func=xajax.command.handler.handlers[shortName];
	delete xajax.command.handler.handlers[shortName];
	return func;
}
xajax.command.handler.isRegistered=function(command) {
	var shortName=command.cmd;
	if(xajax.command.handler.handlers[shortName])
	return true;
	return false;
}
xajax.command.handler.call=function(command) {
	var shortName=command.cmd;
	return xajax.command.handler.handlers[shortName](command);
}
xajax.command.handler.register('rcmplt',function(args) {
	xajax.completeResponse(args.request);
	return true;
}
);
xajax.command.handler.register('css',function(args) {
	args.fullName='includeCSS';
	if('undefined'==typeof args.media)
	args.media='screen';
	return xajax.css.add(args.data,args.media);
}
);
xajax.command.handler.register('rcss',function(args) {
	args.fullName='removeCSS';
	if('undefined'==typeof args.media)
	args.media='screen';
	return xajax.css.remove(args.data,args.media);
}
);
xajax.command.handler.register('wcss',function(args) {
	args.fullName='waitForCSS';
	return xajax.css.waitForCSS(args);
}
);
xajax.command.handler.register('as',function(args) {
	args.fullName='assign/clear';
	try {
		return xajax.dom.assign(args.target,args.prop,args.data);
	}
	catch(e) {
	}
	return true;
}
);
xajax.command.handler.register('ap',function(args) {
	args.fullName='append';
	return xajax.dom.append(args.target,args.prop,args.data);
}
);
xajax.command.handler.register('pp',function(args) {
	args.fullName='prepend';
	return xajax.dom.prepend(args.target,args.prop,args.data);
}
);
xajax.command.handler.register('rp',function(args) {
	args.fullName='replace';
	return xajax.dom.replace(args.id,args.prop,args.data);
}
);
xajax.command.handler.register('rm',function(args) {
	args.fullName='remove';
	return xajax.dom.remove(args.id);
}
);
xajax.command.handler.register('ce',function(args) {
	args.fullName='create';
	return xajax.dom.create(args.id,args.data,args.prop);
}
);
xajax.command.handler.register('ie',function(args) {
	args.fullName='insert';
	return xajax.dom.insert(args.id,args.data,args.prop);
}
);
xajax.command.handler.register('ia',function(args) {
	args.fullName='insertAfter';
	return xajax.dom.insertAfter(args.id,args.data,args.prop);
}
);
xajax.command.handler.register('c:as',xajax.dom.contextAssign);
xajax.command.handler.register('c:ap',xajax.dom.contextAppend);
xajax.command.handler.register('c:pp',xajax.dom.contextPrepend);
xajax.command.handler.register('s',xajax.js.sleep);
xajax.command.handler.register('ino',xajax.js.includeScriptOnce);
xajax.command.handler.register('in',xajax.js.includeScript);
xajax.command.handler.register('rjs',xajax.js.removeScript);
xajax.command.handler.register('wf',xajax.js.waitFor);
xajax.command.handler.register('js',xajax.js.execute);
xajax.command.handler.register('jc',xajax.js.call);
xajax.command.handler.register('sf',xajax.js.setFunction);
xajax.command.handler.register('wpf',xajax.js.wrapFunction);
xajax.command.handler.register('al',function(args) {
	args.fullName='alert';
	alert(args.data);
	return true;
}
);
xajax.command.handler.register('cc',xajax.js.confirmCommands);
xajax.command.handler.register('ci',xajax.forms.createInput);
xajax.command.handler.register('ii',xajax.forms.insertInput);
xajax.command.handler.register('iia',xajax.forms.insertInputAfter);
xajax.command.handler.register('ev',xajax.events.setEvent);
xajax.command.handler.register('ah',xajax.events.addHandler);
xajax.command.handler.register('rh',xajax.events.removeHandler);
xajax.command.handler.register('dbg',function(args) {
	args.fullName='debug message';
	return true;
}
);
xajax.initializeRequest=function(oRequest) {
	var xx=xajax;
	var xc=xx.config;
	oRequest.append=function(opt,def) {
		if('undefined'!=typeof this[opt]) {
			for (var itmName in def)
			if('undefined'==typeof this[opt][itmName])
			this[opt][itmName]=def[itmName];
		} else this[opt]=def;
	}
	oRequest.append('commonHeaders',xc.commonHeaders);
	oRequest.append('postHeaders',xc.postHeaders);
	oRequest.append('getHeaders',xc.getHeaders);
	oRequest.set=function(option,defaultValue) {
		if('undefined'==typeof this[option])
		this[option]=defaultValue;
	}
	oRequest.set('statusMessages',xc.statusMessages);
	oRequest.set('waitCursor',xc.waitCursor);
	oRequest.set('mode',xc.defaultMode);
	oRequest.set('method',xc.defaultMethod);
	oRequest.set('URI',xc.requestURI);
	oRequest.set('httpVersion',xc.defaultHttpVersion);
	oRequest.set('contentType',xc.defaultContentType);
	oRequest.set('retry',xc.defaultRetry);
	oRequest.set('returnValue',xc.defaultReturnValue);
	oRequest.set('maxObjectDepth',xc.maxObjectDepth);
	oRequest.set('maxObjectSize',xc.maxObjectSize);
	oRequest.set('context',window);
	var xcb=xx.callback;
	var gcb=xcb.global;
	var lcb=xcb.create();
	lcb.take=function(frm,opt) {
		if('undefined'!=typeof frm[opt]) {
			lcb[opt]=frm[opt];
			lcb.hasEvents=true;
		}
		delete frm[opt];
	}
	lcb.take(oRequest,'onRequest');
	lcb.take(oRequest,'onResponseDelay');
	lcb.take(oRequest,'onExpiration');
	lcb.take(oRequest,'beforeResponseProcessing');
	lcb.take(oRequest,'onFailure');
	lcb.take(oRequest,'onRedirect');
	lcb.take(oRequest,'onSuccess');
	lcb.take(oRequest,'onComplete');
	if('undefined'!=typeof oRequest.callback) {
		if(lcb.hasEvents)
		oRequest.callback=[oRequest.callback,lcb];
	} else
	oRequest.callback=lcb;
	oRequest.status=(oRequest.statusMessages)
	? xc.status.update()
	:xc.status.dontUpdate();
	oRequest.cursor=(oRequest.waitCursor)
	? xc.cursor.update()
	:xc.cursor.dontUpdate();
	oRequest.method=oRequest.method.toUpperCase();
	if('GET'!=oRequest.method)
	oRequest.method='POST';
	oRequest.requestRetry=oRequest.retry;
	oRequest.append('postHeaders', {
		'content-type':oRequest.contentType
	}
	);
	delete oRequest['append'];
	delete oRequest['set'];
	delete oRequest['take'];
	if('undefined'==typeof oRequest.URI)
	throw {
		code:10005
	}
}
xajax.processParameters=function(oRequest) {
	var xx=xajax;
	var xt=xx.tools;
	var rd=[];
	var separator='';
	for (var sCommand in oRequest.functionName) {
		if('constructor'!=sCommand) {
			rd.push(separator);
			rd.push(sCommand);
			rd.push('=');
			rd.push(encodeURIComponent(oRequest.functionName[sCommand]));
			separator='&';
		}
	}
	var dNow=new Date();
	rd.push('&xjxr=');
	rd.push(dNow.getTime());
	delete dNow;
	if(oRequest.parameters) {
		var i=0;
		var iLen=oRequest.parameters.length;
		while(i < iLen) {
			var oVal=oRequest.parameters[i];
			if('object'==typeof oVal&&null!=oVal) {
				try {
					var oGuard= {
					}
					;
					oGuard.depth=0;
					oGuard.maxDepth=oRequest.maxObjectDepth;
					oGuard.size=0;
					oGuard.maxSize=oRequest.maxObjectSize;
					oVal=xt._objectToXML(oVal,oGuard);
				}
				catch(e) {
					oVal='';
				}
				rd.push('&xjxargs[]=');
				oVal=encodeURIComponent(oVal);
				rd.push(oVal);
				++i;
			} else {
				rd.push('&xjxargs[]=');
				oVal=xt._escape(oVal);
				if('undefined'==typeof oVal||null==oVal) {
					rd.push('*');
				} else {
					var sType=typeof oVal;
					if('string'==sType)
					rd.push('S'); else if('boolean'==sType)
					rd.push('B'); else if('number'==sType)
					rd.push('N');
					oVal=encodeURIComponent(oVal);
					rd.push(oVal);
				}
				++i;
			}
		}
	}
	oRequest.requestURI=oRequest.URI;
	if('GET'==oRequest.method) {
		oRequest.requestURI+=oRequest.requestURI.indexOf('?')==-1 ? '?':'&';
		oRequest.requestURI+=rd.join('');
		rd=[];
	}
	oRequest.requestData=rd.join('');
}
xajax.prepareRequest=function(oRequest) {
	var xx=xajax;
	var xt=xx.tools;
	oRequest.request=xt.getRequestObject();
	oRequest.setRequestHeaders=function(headers) {
		if('object'==typeof headers) {
			for (var optionName in headers)
			this.request.setRequestHeader(optionName,headers[optionName]);
		}
	}
	oRequest.setCommonRequestHeaders=function() {
		this.setRequestHeaders(this.commonHeaders);
	}
	oRequest.setPostRequestHeaders=function() {
		this.setRequestHeaders(this.postHeaders);
	}
	oRequest.setGetRequestHeaders=function() {
		this.setRequestHeaders(this.getHeaders);
	}
	if('asynchronous'==oRequest.mode) {
		oRequest.request.onreadystatechange=function() {
			if(oRequest.request.readyState!=4)
			return;
			xajax.responseReceived(oRequest);
		}
		oRequest.finishRequest=function() {
			return this.returnValue;
		}
	} else {
		oRequest.finishRequest=function() {
			return xajax.responseReceived(oRequest);
		}
	}
	if('undefined'!=typeof oRequest.userName&&'undefined'!=typeof oRequest.password) {
		oRequest.open=function() {
			this.request.open(
			this.method,
			this.requestURI,
			'asynchronous'==this.mode,
			oRequest.userName,
			oRequest.password);
		}
	} else {
		oRequest.open=function() {
			this.request.open(
			this.method,
			this.requestURI,
			'asynchronous'==this.mode);
		}
	}
	if('POST'==oRequest.method) {
		oRequest.applyRequestHeaders=function() {
			this.setCommonRequestHeaders();
			try {
				this.setPostRequestHeaders();
			}
			catch(e) {
				this.method='GET';
				this.requestURI+=this.requestURI.indexOf('?')==-1 ? '?':'&';
				this.requestURI+=this.requestData;
				this.requestData='';
				if(0==this.requestRetry)this.requestRetry=1;
				throw e;
			}
		}
	} else {
		oRequest.applyRequestHeaders=function() {
			this.setCommonRequestHeaders();
			this.setGetRequestHeaders();
		}
	}
}
xajax.request=function() {
	var numArgs=arguments.length;
	if(0==numArgs)
	return false;
	var oRequest= {
	}
	if(1 < numArgs)
	oRequest=arguments[1];
	oRequest.functionName=arguments[0];
	var xx=xajax;
	xx.initializeRequest(oRequest);
	xx.processParameters(oRequest);
	while(0 < oRequest.requestRetry) {
		try {
			--oRequest.requestRetry;
			xx.prepareRequest(oRequest);
			return xx.submitRequest(oRequest);
		}
		catch(e) {
			xajax.callback.execute(
			[xajax.callback.global,oRequest.callback],
			'onFailure',oRequest);
			if(0==oRequest.requestRetry)
			throw e;
		}
	}
}
xajax.call=function() {
	var numArgs=arguments.length;
	if(0==numArgs)
	return false;
	var oRequest= {
	}
	if(1 < numArgs)
	oRequest=arguments[1];
	oRequest.functionName= {
		xjxfun:arguments[0]
	}
	;
	var xx=xajax;
	xx.initializeRequest(oRequest);
	xx.processParameters(oRequest);
	while(0 < oRequest.requestRetry) {
		try {
			--oRequest.requestRetry;
			xx.prepareRequest(oRequest);
			return xx.submitRequest(oRequest);
		}
		catch(e) {
			xajax.callback.execute(
			[xajax.callback.global,oRequest.callback],
			'onFailure',oRequest);
			if(0==oRequest.requestRetry)
			throw e;
		}
	}
}
xajax.submitRequest=function(oRequest) {
	oRequest.status.onRequest();
	var xcb=xajax.callback;
	var gcb=xcb.global;
	var lcb=oRequest.callback;
	xcb.execute([gcb,lcb],'onResponseDelay',oRequest);
	xcb.execute([gcb,lcb],'onExpiration',oRequest);
	xcb.execute([gcb,lcb],'onRequest',oRequest);
	oRequest.open();
	oRequest.applyRequestHeaders();
	oRequest.cursor.onWaiting();
	oRequest.status.onWaiting();
	xajax._internalSend(oRequest);
	return oRequest.finishRequest();
}
xajax._internalSend=function(oRequest) {
	oRequest.request.send(oRequest.requestData);
}
xajax.abortRequest=function(oRequest) {
	oRequest.aborted=true;
	oRequest.request.abort();
	xajax.completeResponse(oRequest);
}
xajax.responseReceived=function(oRequest) {
	var xx=xajax;
	var xcb=xx.callback;
	var gcb=xcb.global;
	var lcb=oRequest.callback;
	if(oRequest.aborted)
	return;
	xcb.clearTimer([gcb,lcb],'onExpiration');
	xcb.clearTimer([gcb,lcb],'onResponseDelay');
	xcb.execute([gcb,lcb],'beforeResponseProcessing',oRequest);
	var fProc=xx.getResponseProcessor(oRequest);
	if('undefined'==typeof fProc) {
		xcb.execute([gcb,lcb],'onFailure',oRequest);
		xx.completeResponse(oRequest);
		return;
	}
	return fProc(oRequest);
}
xajax.getResponseProcessor=function(oRequest) {
	var fProc;
	if('undefined'==typeof oRequest.responseProcessor) {
		var cTyp=oRequest.request.getResponseHeader('content-type');
		if(cTyp) {
			if(0 <=cTyp.indexOf('text/xml')) {
				fProc=xajax.responseProcessor.xml;
			}
		}
	} else fProc=oRequest.responseProcessor;
	return fProc;
}
xajax.executeCommand=function(command) {
	if(xajax.command.handler.isRegistered(command)) {
		if(command.id)
		command.target=xajax.$(command.id);
		if(false==xajax.command.handler.call(command)) {
			xajax.tools.queue.pushFront(xajax.response,command);
			return false;
		}
	}
	return true;
}
xajax.completeResponse=function(oRequest) {
	xajax.callback.execute(
	[xajax.callback.global,oRequest.callback],
	'onComplete',oRequest);
	oRequest.cursor.onComplete();
	oRequest.status.onComplete();
	delete oRequest['functionName'];
	delete oRequest['requestURI'];
	delete oRequest['requestData'];
	delete oRequest['requestRetry'];
	delete oRequest['request'];
	delete oRequest['set'];
	delete oRequest['open'];
	delete oRequest['setRequestHeaders'];
	delete oRequest['setCommonRequestHeaders'];
	delete oRequest['setPostRequestHeaders'];
	delete oRequest['setGetRequestHeaders'];
	delete oRequest['applyRequestHeaders'];
	delete oRequest['finishRequest'];
	delete oRequest['status'];
	delete oRequest['cursor'];
}
xajax.$=xajax.tools.$;
xajax.getFormValues=xajax.tools.getFormValues;
xajax.setElements=xajax.tools.setElements;
xajax.isLoaded=true;
xjx= {
}
xjx.$=xajax.tools.$;
xjx.getFormValues=xajax.tools.getFormValues;
xjx.setElements=xajax.tools.setElements;
xjx.call=xajax.call;
xjx.request=xajax.request;


/**agregado por ludwig*/
var on_Request = function()
{

        
	var div=document.getElementById('divStatus');
	div.style.visibility='visible';
	div.innerHTML='enviando';
	//setMsg('enviando solicitud...','status','block');
	//setMsg('waiting','status','visible');
};
var on_Waiting=function()
{

        
    var div=document.getElementById('divStatus');
    if(!div)
        return;
        
	div.style.visibility='visible';
	div.innerHTML='esperando..';
	//setMsg('esperando respuesta...','status','block');
};	
var on_Processing=function()
{
    if(!SHOWPROGRESS)
        return;
	   setMsg('procesando...','status','block');
};
var on_Complete =function()
{
	var div=document.getElementById('divStatus');
    if(!div)
        return;
    
	div.style.display='none';
	//setMsg('completo','status','none');	
	//var div_status=document.getElementById('divStatus');
	//document.body.removeElement(div_status);	
};
var on_ResponseDelay =function()
{
//	setMsg('response_delay','status','visible');	
	//var div_status=document.getElementById('divStatus');
	//document.body.removeElement(div_status);	
};
var on_Expiration=function()
{
	//setMsg('expiring','status','visible');
};
var on_Redirect=function()
{
	//setMsg('redirecting','status','visible');
};
var on_Success=function()
{
	//setMsg('success','status','visible');
;}
var on_ReadyStateChange=function()
{
	//setMsg('ready state change','status','visible');
;}
var on_Failure=function()
{
//	setMsg('Failure','status','visible');
;}


