

var acms = acms || { };

acms.events = Ext.create('Ext.util.Observable', {
	FORM_INITIALIZED : 'acms_form_initialized',
	LIST_INITIALIZED : 'acms_list_initialized',
	constructor : function(cfg) {
		var o = { };
		o[acms.events.FORM_INITIALIZED] = true;
		o[acms.events.LIST_INITIALIZED] = true;
		this.addEvents(o);
		this.callParent(cfg);
	}
});

acms.Object = acms.Object || { };
acms.Object.mergeTo = function(o1, o2) {
	Ext.Object.each(o2, function(key, value) {
		this[key] = value;
	}, o1);
}

acms.Array = acms.Array || { };
acms.Array.range = function (start, end, step) {
	var i, arr = [];
	if (!step) {
		step = 1;
	}
	for (i = start; i <= end; i += step) {
		arr.push(i);
	}
	return arr;
};
acms.Array.map = function (arr, f) {
	var result = [];
	Ext.Array.each(arr, function(item, key, arr) {
		this.push(f(item, key, arr));
	}, result);
	return result;
};
acms.Array.sum = function (arr) {
	var result = 0;
	Ext.Array.each(arr, function(item) {
		result += item;
	});
	return result;
};

acms.Url = acms.Url || { };
acms.Url.parse = function(url) {
	var m = url.match(/(https?|ftp):\/\/([A-Za-z0-9._\/-]+)(\?[a-zA-Z0-9_]+=[^&]*(&[a-zA-Z0-9_]+=[^&]*)*)?/),
	    query = { },
	    f;
	
	if (m[3] !== undefined) {
		f = function(str) {
			var eq, amp, name, val;
			if (str.substr(0,1) === '?') {
				str = str.substr(1);
			}
			eq = str.indexOf('=');
			if (eq !== -1) {
				name = str.substr(0, eq);
				str = str.substr(eq + 1);
				amp = str.indexOf('&');
				val = amp === -1 ? str : str.substr(0, amp);
				query[name] = val;
				if (amp !== -1) {
					f(str.substr(amp + 1));
				}
			}
		};
		f(m[3]);
	}
	
	return {
		protocol : m[1],
		path : m[2],
		query : query
	};
};
acms.Url.build = function (data) {
	var result = data.protocol + '://' + data.path,
	    qarr;
	if (data.query !== undefined) {
		qarr = [];
		for (var i in data.query) {
			qarr.push(i + '=' + data.query[i]);
		}
		result += '?' + qarr.join('&');
	}
	return result;
};

acms.domains = {
	'http://www.todaspulseras.es'   : 'es_ES.utf8',
	'http://www.comprarpulseras.es' : 'es_ES.utf8',
	'http://www.wristfield.de'      : 'de_DE.utf8',
	'http://www.wristbands24.co.uk' : 'en_US.utf8',
	'http://www.armbande.de'        : 'de_DE.utf8',
	'http://www.bratari24.ro'       : 'ro_RO.utf8'
};

acms.mkUrl = function (urlPart, useAdminLocale) {
	var url = acms.path;
	if (acms.domains[acms.path] === undefined) {
		if (useAdminLocale === true) {
			url += '/' + (acms.adminLocale || acms.locale || '');
		} else {
			url += '/' + (acms.locale || '');
		}
	}
	return url + (urlPart || '');
};

acms.lgetCode = function () {
	return acms.locale.substr(0,2);
}

