
if (typeof cafen == 'undefined')
	var cafen = new Object();

cafen.langSet = function () {
	this.lang = '';
	this.message = {'ed' : {},'map' : {},'util' : {},'com' : {},'tail' : {},'chart' : {}}
	this.init();
}

cafen.langSet.prototype = {
	message : {},
	init : function() {
		if (typeof cafenGlobalLang != 'undefined') {
			if (this.lang != cafenGlobalLang.lang) {
				this.lang = cafenGlobalLang.lang;
				for(var idx in cafenGlobalLang) {
					for(var sidx in cafenGlobalLang[idx]) {
						if (typeof this.message[idx] != 'undefined') {
							this.message[idx][sidx] = cafenGlobalLang[idx][sidx];
						}
					}
				}
			}
		}
	},
	add : function(idx, sidx, values, keys) {
		if (this.message[idx][sidx] != null) {
			switch(typeof this.message[idx][sidx]){
				case 'string' :
					this.message[idx][sidx] = values;
					break;
					break;
				case 'object' :
					if (this.message[idx][sidx] instanceof Array)
						this.message[idx][sidx].push(values);
					else
						this.message[idx][sidx][keys] = values;
					break;
			}
		}
	},
	get : function() {
		var msg = '';
		for (var i = 0; i < arguments.length; i++) {
			var msgid = arguments[i];
			if (i == 0) {
				var msgidArr = msgid.split('_');
				if (typeof this.message[msgidArr[0]][msgidArr[1]] != 'undefined')
					msg = this.message[msgidArr[0]][msgidArr[1]];
			} else 
				msg = msg.replace(eval('/#' +i+ '/gi'), msgid);
		}
		return msg;
	},
	getObject : function(id) {
		var msgidArr = id.split('_');
		return (typeof this.message[msgidArr[0]][msgidArr[1]] != 'undefined') ? this.message[msgidArr[0]][msgidArr[1]] : {};
	}
}

var cafenMsg = new cafen.langSet();

cafen.modifyFunctionName(cafenMsg, 'cafenMsg');
cafen.modifyFunctionName(cafenGlobalLang, 'cafenGlobalLang');


