/**
 * Main class
 * @class
 */
esyndicat = function()
{
	return {
		/**
		 * Language array
		 */
		lang: null,
		/**
		 * Configuration array
		 */
		conf: null,
		/**
		 *  Exist value in the array
		 *  @param {Array} arr array
		 *  @param {String} value
		 *  @return {Boolean}
		 */
		inArray: function(arr, val)
		{
			if(typeof arr == 'object')
			{
				for(var i = 0; i < arr.length; i++) 
				{
					if(arr[i] == val) 
					{
						return true;
					}
				}

				return false;
			}

			return false;
		},
		/**
		 * Remove one item in the array
		 * @param {Array} arr array
		 * @param {String} val value
		 * @return {Array}
		 */
		remove: function(arr, val)
		{
			if(typeof arr == 'object')
			{
				for(var i = 0; i < arr.length; i++) 
				{
					if(arr[i] == val)
					{
						arr.splice(i, 1);
					}
				}
			}

			return arr;
		},
		/**
		 *  Load configuration or language phrases
		 *  @param {Array} array of parametrs lang|conf
		 *  TODO: store variables in the session. Use sessvars lib.
		 */
		loader: function(params)
		{
			var out = '';
			var url = '';

			url += (typeof params.conf != 'undefined') ? 'conf=' + params.conf : '';
			url += (typeof params.lang != 'undefined') ? '&lang=' + params.lang : '';

			$.ajax({
				type: 'POST', 
				url: 'loader.php?load=vars', 
				data: url,
				async: false,
				success: function(p)
				{
					out = eval('(' + p + ')');
				}
			});
			
			if(typeof out.conf != 'undefined')
			{
				esyndicat.conf = out.conf;
			}

			if(typeof out.lang != 'undefined')
			{
				esyndicat.lang = out.lang;
			}
		},
		/**
		 *  Hidding or showing some element
		 *  @param {String} obj Can be passed with # symbol
		 *  @param {String} action  show|hide|auto
		 */
		display: function(obj, action)
		{
			var obj = (typeof obj == 'object') ? obj : (-1 != obj.indexOf('#')) ? $(obj) : $('#' + obj);
			
			action = action ? action : 'auto';

			if('auto' == action)
			{
				action = ('none' == obj.css('display')) ? 'show' : 'hide';
			}
			
			if('hide' == action)
			{
				if($.browser.msie)
				{
					obj.hide();
				}
				else
				{
					obj.slideUp('slow');
				}
			}

			if('show' == action)
			{
				if($.browser.msie)
				{
					obj.show();
				}
				else
				{
					obj.slideDown('slow');
				}
			}
		},
		/**
		 * Return random letter
		 * TODO: get several letters. get letter in upper case.
		 */
		getRandomLetter: function()
		{
			return String.fromCharCode(97 + Math.round(Math.random() * 25));

			/* For upper case */
			//return String.fromCharCode(65 + Math.round(Math.random() * 25));
		},
		/**
		 * Show error message
		 */
		error: function(error)
		{
			alert(error);
		}
	};
}();
