Import('advajax/advajax.js');

MyAJAX = {};

MyAJAX.objects = [];

MyAJAX.type = 'POST';

MyAJAX.key = 'action';

MyAJAX.params = {
	file:	'ajax.php',
	tag:	{},
	method:	function(obj){}
};

/**
 * @public
 * @param	{String}
 * @param	{Array}
 * @param	{Object}
 */
MyAJAX.init = function(method, args, params){
	var values = {};
	for(var i in MyAJAX.params){
		values[i] = MyAJAX.params[i];
	}
	values['tag'] = {};

	if(typeof(params) != 'undefined'){
		if(typeof(params) == 'function'){
			values['method'] = params;
		}
		else{
			for(var i in params){
				values[i] = params[i];
			}
		}
	}

	values['tag']['myajaxMethod'] = values['method'];

	var parameters = {};
	parameters[MyAJAX.key] = method;
	if(args != null){
		for(var i = 0; i < args.length; i++){
			var s = new String(args[i]);
			parameters['args[' + i + ']'] = MyAJAX.encode(s);
		}
	}
	var p = {
		'tag'			: values['tag'],
		'url'			: values['file'],
		'parameters'	: parameters,
		'onSuccess'		: MyAJAX.responseMethod
	};

	advAJAX.handleRequest(MyAJAX.type, p);
};

MyAJAX.responseMethod = function(obj){
	var method = obj['tag']['myajaxMethod'];
	method(obj);
};

/**
 * @private
 */
MyAJAX.toArray = function(obj){
	var result = null;
	eval('result = ' + obj.responseText);
	return result;
};


/**
 * @private
 */
MyAJAX.getArgs = function(args){
	if(args == null){
		args = [];
	}
	var s = '';
	for(var i = 0; i < args.length; i++){
		var string = new String(args[i]);
		s += '&args[]=' + MyAJAX.encode(string);
	}
	return s;
};

/**
 * @private
 */
MyAJAX.encode = function(string) {
	var chars = new Array(
		[ 'ą', '%u0105' ],
		[ 'Ą', '%u0104' ],
		[ 'ć', '%u0107' ],
		[ 'Ć', '%u0106' ],
		[ 'ę', '%u0119' ],
		[ 'Ę', '%u0118' ],
		[ 'ł', '%u0142' ],
		[ 'Ł', '%u0141' ],
		[ 'ń', '%u0144' ],
		[ 'Ń', '%u0143' ],
		[ 'ó', '%u00F3' ],
		[ 'Ó', '%u00D3' ],
		[ 'ś', '%u015B' ],
		[ 'Ś', '%u015A' ],
		[ 'ź', '%u017A' ],
		[ 'Ź', '%u0179' ],
		[ 'ż', '%u017C' ],
		[ 'Ż', '%u017B' ],
		[ 'ç', '%u00E7' ],
		[ 'Ç', '%u00C7' ],
		[ 'è', '%u00E8' ],
		[ 'È', '%u00C8' ],
		[ 'é', '%u00E9' ],
		[ 'É', '%u00C9' ],
		[ 'ë', '%u00EB' ],
		[ 'Ë', '%u00CB' ],
		[ 'ö', '%u00F6' ],
		[ 'Ö', '%u00D6' ]
	);
	for(var i = 0; i < chars.length; i++){
		var re = RegExp(chars[i][0], 'g');
		string = string.replace(re, chars[i][1]);
	}
	return string;
};
