function BoardManager(_count_on_page, _total, _board_id, _paginator_id){
				var current_page = 1;
				var total = _total;
				var count = _count_on_page;
				var board_id = _board_id;
				var paginator_id = _paginator_id;
				
				drawPaginator = function(current_page){
					offset = (parseInt(current_page)-1)*count;
					var pag_html = '';
					all=parseInt(total/count+0.999999999999);
					
					
					$('#'+this.paginator_id).html('');
					if(all>1){
						pag_html+='<div>';
						allp=all; d=0;
						if(all>5) { 
							all=5;
							d=(current_page>3)?current_page-3:0;
						}
									
						if(current_page>1) pag_html += '<div class="pag"><table cellspacing="0" cellpadding="0"><tr><td class="pag_begin"><a class="white" href="#comments" style="border: none;" title="В начало" onclick="BM.getBoard(1);"><<</td><td class="pag_end">&nbsp;</td></tr></table></div>';
						for(i=1+d; i<=allp; i++){
							if(i==current_page+3) break;
							if(i!=current_page) pag_html += '<div style="float:left;"><table cellspacing="0" cellpadding="0"><tr><td class="pag_begin"><a class="white" href="#comments" onclick="BM.getBoard('+i+');">'+i+'</a></td><td class="pag_end">&nbsp;</td></tr></table></div>'; 
							else pag_html += '<div class="pag"><b>'+i+'</b></div> ';
						}
										
						if(current_page!=allp) pag_html += '<div class="pag"><table cellspacing="0" cellpadding="0"><tr><td class="pag_begin"><a class="white" href="#comments" style="border: none;" title="В конец" onclick="BM.getBoard('+allp+');">>></a></td><td class="pag_end">&nbsp;</td></tr></table></div>';
					}
					pag_html+='</div>';
						
					$('#'+paginator_id).html(pag_html);
				}
								
				
				this.addMessage = function(){
					if($('#post_message')[0]['value'] == ""){
						errAlert('post_message','введите текст сообщения');
					} else {
						var input_data = {'obj_id': $('#board_object_id')[0]['value'],
							'object': $('#board_object')[0]['value'],
							'message': $('#post_message')[0]['value'],
							'offset': 0,
							'count': count,
							'action': 'add'};
						
						$.post('/messages/do/', input_data, function(data){
							if(data.result){
								total = data.count;
								buildBoard(data, board_id);
								drawPaginator(1);
								$('#post_message')[0]['value'] = '';
								_$('mes_title').focus();
								$('#add_mess_block').hide();
								$('#do_send').hide();$('#do_open').show();
								
							}
	
						}, 'json');
					}
				}
				
				this.init = function(){
					this.getBoard(1);
				}
				
				this.delMess = function(id_mess){
					if(confirm('Удалить сообщение?')){
						var input_data = {'obj_id': $('#board_object_id')[0]['value'],
								'object': $('#board_object')[0]['value'],
								'id_mess': id_mess,
								'offset': (parseInt(current_page)-1)*count,
								'count': count,
								'action': 'del_mess'};
	
							$.post('/messages/do/', input_data, function(data){
								if(data.result){
									total = data.count;
									buildBoard(data, board_id);
									drawPaginator(current_page);
								} else if(current_page>1){
									BM.getBoard(current_page-1);
								}
		
							}, 'json');
						}
				}
				
				this.getBoard = function(page){
					offset = (parseInt(page)-1)*count;
					var input_data = {'obj_id': $('#board_object_id')[0]['value'],
						'object': $('#board_object')[0]['value'],
						'message': $('#post_message')[0]['value'],
						'offset': offset,
						'count': count,
						'action': 'get_board'};
						
						
						$.post('/messages/do/', input_data, function(data){
							if(data.result){
								total = data.count;
								buildBoard(data, board_id);
								drawPaginator(page);
								current_page = page;
							} else {
								clearBoard(board_id);
								total = 0;
								drawPaginator(page);
							}
							if(input_data.object==="report_photo" || input_data.object==="contest_photo")
								if(data.markers) MarqueForMark.drawMarkers(data.markers);
								else MarqueForMark.destroyMarkers();
						}, 'json');
				}

				var buildBoard = function(data, board_id){
					var new_board = '';
					var board_items = data.board_items;
					for(i in board_items){
						if(i == 'indexOf'){
							continue;
						}
						new_board += '<div><table border="0" style="width: 100%"><tr><td style="width: 90px;">';						
						new_board += board_items[i]['block_user_out']+'</td><td style="padding-left: 20px;" valign="top">';
						new_board += '<table><td valign="top" style="height: 17px;"><div class="small8 rem">' + board_items[i]['date_created'] + '</div>';
						new_board += '</tr><tr><td valign="top">' + board_items[i]['message'] + '</td>';
						new_board += '</td></tr></table></td>';
						if(data.can_del || board_items[i]['can_del']){
							new_board += '<td align="right" valign="bottom"><a href="" onclick="BM.delMess('+board_items[i]['mess_id']+'); return false;" style="border: none;"><img src="/images/x.gif" title="удалить"></a></td>';
						}
						new_board += '</tr></table></div>';
						new_board += '<div style="height: 20px; background: center repeat-x url(\'/images/b_dott.gif\');"></div>';
					}
					$('#'+board_id).html(new_board);
				}
				
				var clearBoard = function(board_id){
					$('#'+board_id).html('');
				}
			}
