


var LocalizedString = Class.create({

	strings: new Object(),
	moduleStrings: new Array(),

	initialize: function () {
		
	},
	
	localizeString: function(string,callback,module) {

		var parameters = { command:'localizeString',string: string,style:system.getCurrentStyle() };
		
		if (module) {
			parameters.module = module;
		}
	
		new Ajax.Request(system.getLibraryPath() + 'plasticbriqFramework/actions/_localization_actions.php',{
			method:'post',
			parameters:parameters,
			onSuccess: function(transport) {
				callback(transport.responseText);	
			}
		});
		
	},
	
	localizeStrings: function(jsonStrings,module) {

		var parameters = { command:'localizeStrings',strings: jsonStrings,style:system.getCurrentStyle() };
		
		if (module) {
			parameters.module = module;
		}
	
		new Ajax.Request(system.getLibraryPath() + 'plasticbriqFramework/actions/_localization_actions.php',{
			method:'post',
			parameters:parameters,
			onSuccess: function(transport) {
				this.saveLocalizations(transport.responseText);	
			}
		});
		
	},
	
	saveLocalizations: function(jsonStrings) {
	
		var data = jsonStrings.evalJSON();
		
		for (var string in data) {
			this.strings[string] = data.string;
		}
		
	},
	
	add: function(string,value) {
		this.strings[string] = value;
	},
	
	load: function(jsonStrings) {
		this.localizeStrings(jsonStrings);
		
	},
	
	get: function(string) {
		if (this.strings[string]){
			return this.strings[string];
		}
		else {
			return string;
		}
	},
	
	getFromModule: function(string,module) {
		if (!this.moduleStrings[module]){
			this.moduleStrings[module] = new Object();
		}
		
		if (this.moduleStrings[module].string) {
			return this.moduleStrings[module].string;
		}
		else {
			return string;
		}
	}
	
});



var localizedString = new LocalizedString();