//
// Utils object
//

Predmet.Utils = {};

(function () {

	Predmet.Utils = {
	
		toString : function () {
			return 'Utils';
		},
		
		getElementsByClassName : function (settings) {
			var result = [];
			var re = new RegExp('\\b' + settings.className + '\\b');
			var elements = settings.isRecursive ? settings.target.getElementsByTagName('*') : settings.target.childNodes;
			for (var i = 0, length = elements.length; i < length; i++) {
				var element = elements[i];
				if (element && element.className && element.className.match(re)) {
					result.push(element);
				}
			}
			return result;
		},
		
		OpenPopup : function (settings) {
			var id = settings.id || '';
			var url = settings.url || '';
			var userSpecs = settings.specs || {};
			
			var specs = _getDefaultSpecs();
			for (var name in userSpecs) {
				var value = userSpecs[name];
				specs[name] = (value === true ? 'yes' : (value === false ? 'no' : value));
			}
			
			return window.open(url, id, _prepareSpecsString(specs));
		}

	};
	
	var _getDefaultSpecs = 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 _prepareSpecsString = function (data) {
		var specs = [];
		for (var key in data) {
			specs.push(key + '=' + data[key]);
		}
		return specs.join(',');
	};

})();