// ####################################
// Класс переключения элементов списка
// ####################################
function cityToggleItems(obj_path, sel_mode, onChange){
	this.obj	= $(obj_path);
	if(!this.obj) return;
	this.mode		= sel_mode || 0; // 0 - можно выбирать только один элемент;  1 - допустим выбор нескольких элементов
	this.onChange	= onChange || null;
	this._selected	= null;
	this.init();
}

cityToggleItems.prototype = {
	// Инициализация событий класса
	init : function(){
		var oThis	= this;
		// Добавляем обработчик события
		this.obj.click(function(event){oThis.selectItem(event); return false;});
		// Проверяем есть ли выбранные элементы
		if(this.mode == 0){
			this._selected = this.obj.find('.selected')[0];
		}
	},
	// Выбираем элемент
	selectItem : function(event){
		event	= event || window.event;
		if (!event.target && event.srcElement) event.target = event.srcElement;
		var obj = event.target;
		if (jQuery.browser.safari && obj.nodeType == 3){
			obj = obj.parentNode;
		}
		if((obj.nodeName == 'A') || (obj.nodeName == 'I')) obj	= obj.parentNode;
		if(obj.className == 'hide') return;
		if((obj.nodeName == 'LI') || (obj.nodeName == 'FONT')){
			var new_val = -1;
			var parent	= false;
			obj	= $(obj);
			if(this.mode == 1){
				new_val	= obj.attr('value') || obj.attr('keywords') ||-1;
				obj.toggleClass('selected');
				if(cmnMatch_class(obj[0], 'selected')){
					var bOn = true;
				}else{
					var bOn = false;
				}
				if(this.onChange) this.onChange(new_val, bOn);
			}else{
				if(this._selected != obj[0]){
					if(this._selected != null){
						$(this._selected).removeClass('selected');
					}
					obj.addClass('selected');
					new_val	= obj.attr('value');
					obj.blur();
					this._selected	= obj[0];
					if(this.onChange) this.onChange(new_val, obj);
				}
			}
		}
	}
}
