var NI = ('undefined' == typeof(NI)) ? {} : NI;

(function () {

	NI.Utility = {

		openPopup : function (config) {
			var name = (config.name || '').replace(/\W/g, '_');
			var url = config.url || '';
			var settings = config.settings || {};
			var defaults = _getDefaultPopupSettings();

			for (var name in settings) {
				var value = settings[name];
				defaults[name] = (value === true ? 'yes' : (value === false ? 'no' : value));
			}

			return window.open(url, name, _preparePopupSettingsString(defaults));
		}

	};

	var _getDefaultPopupSettings = function () {
		return {
			'location' : '0',
			'menubar' : '0',
			'resizable' : '0',
			'scrollbars' : '0',
			'status' : '0',
			'titlebar' : '0',
			'toolbar' : '0',
			'width' : '100',
			'height' : '100',
			'left' : '100',
			'top' : '100'
		};
	};

	var _preparePopupSettingsString = function (data) {
		var settings = [];
		for (var key in data) {
			settings.push(key + '=' + data[key]);
		}
		return settings.join(',');
	};

})();