


window.room_item_click = function(id){
	window.load_room(id);
};




window.load_room = function(id){
	
	// post form
	var ajaxData = {};
	jQuery.ajax({
		url: "/sobchak/chat_room/"+id, 
		data: ajaxData, 
		success: (function(id){return function(data, status, xhr){
	
			jQuery("#chat-room-place").html(data);
			window.correct_chat_room_height();
			window.change_new_messages_number(id, 0);

			window.load_rte();
			window.scroll_chat_room();

		};})(id),
		dataType: "text"
	});
	
};

window.load_rte = function(){

  elRTE.prototype.options.panels.forChatPanel = [
    "bold", "italic", "underline", "forecolor", "hilitecolor", "smiley"
   ];
  elRTE.prototype.options.toolbars.forChatToolbar = ["forChatPanel"];
 

	var chat_rte_opts = {
     lang         : "ru",
     styleWithCSS : true,
     height       : 100,
     allowSource  : false,
     cssfiles     : ["/css/chat_form_rte.css"],
     fmAllow      : false,
     toolbar      : "forChatToolbar"
  };
	
	window.chat_rte = jQuery(".room-form .inp-text").elrte(chat_rte_opts);

	window.chat_rte.elrte()[0].elrte.$doc.bind("keydown", (function(main_window){ return function(e) {
		if (e.keyCode == 13 && e.ctrlKey) {
			e.preventDefault();
			
			var room_id = jQuery(".chat-room").attr("item_id");
			//alert(room_id);
			var form = jQuery(".room-form form")[0];
			//alert(form);
			window.room_form_submit(room_id, form);
			//jQuery("selector").elrte()[0].save();
		}
	};})(window));

};



window.change_new_messages_number = function(room_id, number){
	var container = jQuery(".chat-list");
	var item = container.find(".list-item[item_id="+room_id+"]");
	var el = item.find(" .nm");
	var span = el.find("span");
	if (span.length){
		var old_number = parseInt(span.html());
	} else {
		var old_number = 0;
	}
	
	if (number){
		var new_str = '<span>'+number+'</span>';
	} else {
		var new_str = '';
	}
	//alert(el.length);
	el.html(new_str);
	
	var diff = number - old_number;
	if (diff < 0) diff = 0;
	
	window.new_messages_counter = window.new_messages_counter + diff;
	if (diff){
		item.prependTo(container);
	}
	
	if (window.new_messages_counter){
		document.title = '( '+window.new_messages_counter+' ) '+window.document_title;
	}
	
};

window.scroll_chat_room = function(){
	var chat_room = jQuery(".chat-room");
	chat_room.scrollTop(10000000);
};


window.room_form_submit = function(room_id, form){

  var text_val = trim(window.chat_rte.elrte("val"));
	
  jQuery("input[name=text]", form).val(text_val);
  window.chat_rte.elrte("val", " ");
	
	//alert('~'+text_val+'~');

	if (text_val){
		jQuery(form).ajaxSubmit({
			success: (function(room_id){return function(data, status, xhr){
					
				if (data.result == "ok"){
					
					var chat_room = jQuery(".chat-room[item_id="+room_id+"]");
					var chat_room_ol = jQuery("ol", chat_room);
				
					chat_room_ol.append(data.text);
					window.scroll_chat_room();
					
					//var chat_room_form = jQuery(".room-form");
					//chat_room_form.find('textarea[name=text]').val('');
					
					window.change_new_messages_number(room_id, 0);
				}
				
			};})(room_id),
			dataType: "json"
		});
	}
	
};





window.open_chat = function(obj_id){
	
	//alert(window.chat_window);
	if (window.chat_window && window.chat_window.focus && !window.chat_window.closed) {
		window.chat_window.focus();
	} else {
		//window.chat_window = window.open_popup_admin_item('/sobchak/chat_loading', 'chat', 80, 80);
		window.chat_window = window.open_popup_admin_item('', 'chat', 80, 90);
		window.chat_window.document.write("Загрузка...");
		window.chat_window.focus();
	}
	
	if (obj_id) {
		
		// check room
		var ajaxData = {obj_id: obj_id};
		jQuery.ajax({
			url: "/sobchak/room_query", 
			data: ajaxData, 
			success: (function(obj_id){return function(data, status, xhr){
		
				if (data.result == "ok"){
					
					
					window.chat_window = window.open_popup_admin_item('/sobchak/chat/'+data.room_id, 'chat', 80, 80);
					//jQuery(window.chat_window).bind("load", function(){alert(111);});
					
				}
				
			};})(obj_id),
			dataType: "json"
		});
	
	} else {
	
		window.chat_window = window.open_popup_admin_item('/sobchak/chat', 'chat', 80, 80);
		//jQuery(window.chat_window).bind("load", function(){alert(111);});
		
	}
	
	
};



window.chat_update = function(){
	
	var room = jQuery(".chat-room");
	var room_id = room.attr("item_id");

  // kakie rumi uje zagrujeni
  var room_ids = new Array();
  var list_items = jQuery('.chat-list .list-item');
  list_items.each((function(room_ids){return function(i, el){
    var rid = jQuery(el).attr('item_id');
    room_ids.push(rid);
  };})(room_ids));

	var ajaxData = {
    room_ids: room_ids.join(',')
  };
	jQuery.ajax({
		url: "/sobchak/chat_update/"+room_id, 
		data: ajaxData, 
		beforeSend: function(){ /* not indicate */ },
		success: (function(room_id){return function(data, status, xhr){
	
			if (data.result == "ok"){
				
				if (data.comments && data.comments.length){
					var chat_room = jQuery(".chat-room[item_id="+room_id+"] ol");
					for(i in data.comments){
						chat_room.append(data.comments[i]);
					}
					window.scroll_chat_room();
				}
				
				
				if (data.new_messages && data.new_messages.length){
					//alert(Dump(data.new_messages));
					for(i in data.new_messages){
						r_id = data.new_messages[i][0];
						num = data.new_messages[i][1];
						window.change_new_messages_number(r_id, num);
					}
					window.scroll_chat_room();
				}


				if (data.new_rooms){
					var chat_list = jQuery('.chat-list ol');
					chat_list.prepend(data.new_rooms);
				}
				
			}
			
		};})(room_id),
		dataType: "json"
	});
	
	
};
	
window.correct_chat_room_height = function(){
		var body_h = jQuery("body").height();
		var chat_room_h = jQuery(".chat-room").height();
		var dif_h = body_h - chat_room_h;
		var window_h = window.screenSize().h;
		var new_chat_room_h = window_h - dif_h;
		
		jQuery(".chat-room").height(new_chat_room_h);
};
	
window.on_focus = function(){
	document.title = window.document_title;
};




window.load_more_rooms = function(user_login, count){
		
		var chat_list = jQuery(".chat-list");
		var items = chat_list.find(".list-item");
		var ids_arr = new Array();
		items.each((function(ids_arr) {return function(i, el){
			var item_id = jQuery(el).attr("item_id");
			ids_arr.push(item_id);
		};})(ids_arr));
		
		var ids = ids_arr.join(',');

		var ajaxData = {
			skip_ids: ids,
			user: user_login
		};
		jQuery.ajax({
			url: "/sobchak/load_more_rooms", 
			data: ajaxData, 
			success: (function(user_login){return function(data, status, xhr){
        

        if (data.result == "ok"){
          if (data.text){
           var chat_list = jQuery(".chat-list ol");
           chat_list.append(data.text);
           //alert();
          }
          if (!data.has_more_items){
            var more_button = jQuery(".chat-list .more-button");
            //alert(more_button.length);
            more_button.hide();
         }
        }

				
			};})(user_login),
			dataType: "json"
		});


};
	

window.load_more_messages = function(user_login, count){

		var chat_room = jQuery(".chat-room");
		var items = chat_room.find(".room-item");
		var first_items = items.first();

    var room_id = chat_room.attr("item_id");

		var message_before = first_items.attr('item_id');

		var ajaxData = {
			room_id: room_id,
			message_before: message_before,
			user: user_login
		};
		jQuery.ajax({
			url: "/sobchak/load_more_messages",
			data: ajaxData,
			success: (function(user_login){return function(data, status, xhr){

        //alert(Dump(data));

        if (data.result == "ok"){
          if (data.text){
           var chat_room = jQuery(".chat-room ol");
           chat_room.prepend(data.text);
           //alert();
          }
          if (!data.has_more_items){
            var more_button = jQuery(".chat-room .more-button");
            more_button.hide();
         }
        }


			};})(user_login),
			dataType: "json"
		});


};








