var ajax={
	method:'GET',
	enableCache:false,
	ajaxCache: new Array(),
    usePOST: function() {this.method='POST';},
    useGET: function() {this.method='GET';},
	call:function(url, params, callback, errorhandler, context) {
		if (this.enableCache!=false && this.ajaxCache[encodeURIComponent(url)])
			return this.ajaxCache[encodeURIComponent(url)].stateChange();
		this.ajaxCache[encodeURIComponent(url)]=new ajaxClient(url, params, callback, errorhandler, context, (typeof callback != 'undefined'));
		if(typeof callback != 'undefined')
			return this.ajaxCache[encodeURIComponent(url)];
		return this.ajaxCache[encodeURIComponent(url)].stateChange();
	}
}
function ajaxClient(url, params, callbackFunc, errorHandlerFunc, context, nonblocking){
    this.callback=callbackFunc;
    this.errorhandler=errorHandlerFunc;
	this.nonblocking=nonblocking;
	if (context)
		this.context=context;
	this.url=url;
    this.params=params;
    if(ajax.method.toLowerCase() == 'get') {
        if(this.url.indexOf('?')!=-1){
            this.url+='&'+this.params;
        }
        else {
            this.url+='?'+this.params;
        }
        this.params=null;
    }
	if (window.XMLHttpRequest)
		this.request = new XMLHttpRequest();
	else {
		try {this.request = new ActiveXObject('Msxml2.XMLHTTP');}
		catch (e){
			try{this.request = new ActiveXObject('Microsoft.XMLHTTP');}
			catch (e){alert('Sorry, AJAX support was not found in your browser.');return false;}
		}
	}
	var thisObj=this;
	this.request.onreadystatechange=function(){thisObj.stateChange();};
	try{this.request.open(ajax.method, this.url, this.nonblocking);}
	catch(e){alert (typeof e);return false;}
    if(ajax.method.toLowerCase() == 'post') {
        this.request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        this.request.setRequestHeader('Content-length', this.params.length);
        this.request.setRequestHeader('Connection', 'close');
    }
	this.request.send(this.params);
	if(!this.nonblocking)
		return this.request.responseText;
	return this;
}
ajaxClient.prototype.stateChange=function() {
	if (this.request.readyState >= 4) {
		if(this.request.status==200) {
			if(this.nonblocking){
				try{return this.callback(this.request, this.context?this.context:null);}
				catch(e){alert('AJAX callback error: '+e+'. '+this.callback);}
			}
			else {return this.request.responseText;}
		}
		else {
            if(this.errorhandler) {
                try{return this.errorhandler(this.request, this.context?this.context:null);}
                catch(e){alert('AJAX errorhandler error: '+e+'. '+this.errorhandler);}
            }
            else {alert('URL: '+this.url.substring(0,64)+ ( this.url.length > 64 ? '…' : '') +'\nProduced AJAX error #'+this.request.status+' ('+this.request.statusText+').');}
        }
    }
}

var flamework = {
    convertParams: function(source) {
        var result='';
        for(var i=0; i<source.length; i++) {
            if(typeof source[i]=='object')
                result+=flamework.obj2url('_'+i, source[i]);
            else
                result+='_'+i+'='+encodeURIComponent(source[i]);
            if(i<source.length-1)
                result+='&';
        }
        return result;
    },
    obj2url: function(prefix, obj) {
        var args=new Array();
        for(var i in obj) {
            if(typeof(obj[i])=='object')
                args[args.length]=flamework.obj2url(prefix+'['+encodeURIComponent(i)+']', obj[i]);
            else
                args[args.length]=prefix+'['+encodeURIComponent(i)+']='+encodeURIComponent(obj[i]);
        }
        return args.join('&');
    },
    json:{
	mod_sections:{
		getSectionContent:function(_0,_1,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<2;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__json&call=mod_sections.getSectionContent(_0,_1)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		getSectionList:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__json&call=mod_sections.getSectionList(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		getSectionArticle:function(_0,_1,_2,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<3;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__json&call=mod_sections.getSectionArticle(_0,_1,_2)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		searchArticles:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__json&call=mod_sections.searchArticles(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		maintenanceLogout:function(c,e){var a='';a='__json&call=mod_sections.maintenanceLogout()'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		getSiteMap:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__json&call=mod_sections.getSiteMap(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);}
	},
	mod_system:{
		generateCAPTCHAimage:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__json&call=mod_system.generateCAPTCHAimage(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		sendFeedback:function(_0,_1,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<2;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__json&call=mod_system.sendFeedback(_0,_1)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);}
	},
	mod_itm:{
		sendApplication:function(_0,_1,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<2;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__json&call=mod_itm.sendApplication(_0,_1)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);}
	},
	app:{
		getCurrentLanguage:function(c,e){var a='';a='__json&call=app.getCurrentLanguage()'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		setCurrentLanguage:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__json&call=app.setCurrentLanguage(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);}
	}	},
	xhtml:{
	mod_sections:{
		getSectionContent:function(_0,_1,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<2;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__fragment&call=mod_sections.getSectionContent(_0,_1)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		getSectionList:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__fragment&call=mod_sections.getSectionList(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		getSectionArticle:function(_0,_1,_2,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<3;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__fragment&call=mod_sections.getSectionArticle(_0,_1,_2)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		searchArticles:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__fragment&call=mod_sections.searchArticles(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		maintenanceLogout:function(c,e){var a;a='__fragment&call=mod_sections.maintenanceLogout()'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		getSiteMap:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__fragment&call=mod_sections.getSiteMap(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);}
	},
	mod_system:{
		generateCAPTCHAimage:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__fragment&call=mod_system.generateCAPTCHAimage(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		sendFeedback:function(_0,_1,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<2;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__fragment&call=mod_system.sendFeedback(_0,_1)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);}
	},
	mod_itm:{
		sendApplication:function(_0,_1,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<2;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__fragment&call=mod_itm.sendApplication(_0,_1)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);}
	},
	app:{
		getCurrentLanguage:function(c,e){var a;a='__fragment&call=app.getCurrentLanguage()'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);},
		setCurrentLanguage:function(_0,c,e){var a=new Array(); for(var i=0;i<arguments.length&&i<1;i++) {a[i]=arguments[i];}a=flamework.convertParams(a);a='__fragment&call=app.setCurrentLanguage(_0)'+(a!=''?'&'+a:'');return ajax.call('/index.php',a,c,e);}
	}
    }
}; var json=flamework.json; var xhtml=flamework.xhtml; var php=flamework;