(function($){ 
	$.translate = function($lang,$cgi) {
		if (!$lang) $lang = $.translate.lang;
		if (!$lang || $lang == 'en') {
			$.translate.count = 1; // by pass translation
			return false;
		}

		var _objs = $('[title^="~"]').get();
		if (!_objs.length) return null;

		var titles = '';
		for (var i=0; i<_objs.length; i++)
			titles = titles + 
				(_objs[i].title=_objs[i].title.replace(/^~/,'')) + ',';

		for (var i in $.Trans)
			titles = titles + i + ',';

		$.post($cgi||'/z/locale', 
		{lang: $lang, get: titles.substring(0,titles.length-1) }, 
		function($j) {
			var o = JSON.parse($j);
			for (var t=0; t<_objs.length; t++) {
				var _trans = o[_objs[t].title.toLowerCase()];
				if (!_trans) continue;
				$.Trans[_objs[t].title] = _trans;

				if (_objs[t].innerHTML)
					_objs[t].innerHTML = _objs[t].title = _trans;
				else if (_objs[t].tagName == 'INPUT')
					_objs[t].value = _trans;
				else
					_objs[t].title = _trans;
			}
			for (var i in $.Trans) {
				var _trans = o[i.toLowerCase()];
				if (_trans) $.Trans[i] = _trans;
			}
			$.translate.count = _objs.length;
		})
		$(document.body).css('fontFamily','segoe ui,tahoma,verdana,helvetica,sans-serif');
	};

	$.translate.word = function($word) {
		return $.Trans[$word] || $word;
	};

	if ($.isFunction($.nvzCookie.get)) {
		$.translate.lang = $.nvzCookie.get('_locale') || '';
		if ($.translate.lang == 'en')
			$.translate.lang = '';
	}

	$.Trans = {};
})(jQuery);

