function Core_table_inc(){
	this.init=function(obj,type){
		this.type=type||'lite';
		/*находим все отмеченные таблицы*/
		if (!document.getElementsByTagName){
			return;
		}
		
		obj=obj||document;
		if(obj.tagName=='TABLE'){
			tbls=new Array(obj);
		}else{
			tbls = obj.getElementsByTagName("table");
		}
		
		for (ti=0; ti<tbls.length; ti++){
			var thisTbl = tbls[ti];
			if (((' '+thisTbl.className+' ').indexOf(" core_table_vertical ") != -1)){
				this.makeTStripe(thisTbl);
				core.addStyle(thisTbl,'p');
				this.makeTFirstCol(thisTbl);
			}
			if (((' '+thisTbl.className+' ').indexOf(" core_table_horizontal ") != -1)){
				core.addStyle(thisTbl,'p');
				this.makeTStripe(thisTbl);
			}
			if (((' '+thisTbl.className+' ').indexOf(" core_table_stripe ") != -1)){
				core.addStyle(thisTbl,'p');
				this.makeTStripe(thisTbl);
			}
			if (((' '+thisTbl.className+' ').indexOf(" core_table_motion ") != -1)){
				this.makeTMotion(thisTbl);
			}
			if (((' '+thisTbl.className+' ').indexOf(" core_table_click ") != -1)){
				this.makeTClick(thisTbl);
			}
		}
	}
	this.makeTClick=function (tbl){
		/*по таблице можно кликать*/
		if (!tbl.getElementsByTagName)	return;
		tbl=tbl['tBodies'][0]||tbl;
		rows = tbl.getElementsByTagName("tr");
		for(var i=0; i<rows.length; i++){
			core.addHandler(rows[i],'click',core_tMouseClickFirst);
		}
	}
	this.makeTMotion=function (tbl){
		if (!tbl.getElementsByTagName)	return;
		tbl=tbl['tBodies'][0]||tbl;
		rows = tbl.getElementsByTagName("tr");
		var k=0;
		for(var i=0; i<rows.length; i++){
			var condition=(i+k)%2;
			if(rows[i].style.display!='none'){
				if (((' '+rows[i].className+' ').indexOf(" core_table_meta_tr_odd ") != -1)){
					//core.removeHandler(rows[i],'mouseover',this.tMouseEvenOver.bind(this));
					//core.removeHandler(rows[i],'mouseout',this.tMouseEvenOut.bind(this));
					core.addHandler(rows[i],'mouseover',this.tMouseOver.bind(this));
					core.addHandler(rows[i],'mouseout',this.tMouseOut.bind(this));
					if(condition!=0){
						k++;
					}
				}else if (((' '+rows[i].className+' ').indexOf(" core_table_meta_tr_even ") != -1)){
					//core.removeHandler(rows[i],'mouseover',this.tMouseOddOver.bind(this));
					//core.removeHandler(rows[i],'mouseout',this.tMouseOddOut.bind(this));
					
					core.addHandler(rows[i],'mouseover',this.tMouseOver.bind(this));
					core.addHandler(rows[i],'mouseout',this.tMouseOut.bind(this));
					if(condition==0){
						k++;
					}
				}else if(condition==0){
					//core.addStyle(rows[i],'core_table_row_odd_m_over','core_table_row_odd_m_out');
					
					core.removeHandler(rows[i],'mouseover',this.tMouseOver);
					core.removeHandler(rows[i],'mouseout',this.tMouseOut);
					
					core.addHandler(rows[i],'mouseover',this.tMouseOver.bind(this));
					core.addHandler(rows[i],'mouseout',this.tMouseOut.bind(this));
				}else{
					//core.addStyle(rows[i],'core_table_row_even_m_out','core_table_row_even_m_over');
					core.removeHandler(rows[i],'mouseover',this.tMouseOver.bind(this));
					core.removeHandler(rows[i],'mouseout',this.tMouseOut.bind(this));
					
					core.addHandler(rows[i],'mouseover',this.tMouseOver.bind(this));
					core.addHandler(rows[i],'mouseout',this.tMouseOut.bind(this));
				}
			}else{
				k++;
			}
		}
	}
	/*this.makeTMotionTd=function (tbl){
		//makeTStripe(tbl);
		if (!tbl.getElementsByTagName)	return;
		tbl=tbl['tBodies'][0]||tbl;
		rows = tbl.getElementsByTagName("tr");
		for(var i=0; i<rows.length; i++){
			if((i%2)==0){
				//core.addStyle(rows[i],'core_table_row_odd_m_over','core_table_row_odd_m_out');
				core.addHandler(rows[i],'mouseover',this.tMouseOddOver.bind(this));
				core.addHandler(rows[i],'mouseout',this.tMouseOddOut.bind(this));
			}else{
				//core.addStyle(rows[i],'core_table_row_even_m_out','core_table_row_even_m_over');
				core.addHandler(rows[i],'mouseover',this.tMouseEvenOver.bind(this));
				core.addHandler(rows[i],'mouseout',this.tMouseEvenOut.bind(this));
			}
		}
	}*/
	this.makeTFirstCol=function(tbl){
		rows = tbl.getElementsByTagName("tr");
		for(var i=0; i<rows.length; i++){
			var tdd=rows[i].childNodes.item(0);
			core.addStyle(tdd,"core_table_first_col");
		}
	}
	this.makeTStripe=function(tbl){
		if (!tbl.getElementsByTagName)	return;
		tbl=tbl['tBodies'][0]||tbl;
		rows = tbl.getElementsByTagName("tr");
		var k=0;//переменая востанавливающая соответсвие чётности если пропускаются скрытые строки
		for(var i=0; i<rows.length; i++){
			var condition=(i+k)%2;
			if(rows[i].style.display!='none'){
				if (((' '+rows[i].className+' ').indexOf(" core_table_meta_tr_odd ") != -1)){
					core.addStyle(rows[i],'core_table_row_odd','core_table_row_even');
					core.addStyle(rows[i],'core_table_flag_odd','core_table_flag_even');
					if(condition!=0){
						k++;
					}
				}else if (((' '+rows[i].className+' ').indexOf(" core_table_meta_tr_even ") != -1)){
					core.addStyle(rows[i],'core_table_row_even','core_table_row_odd');
					core.addStyle(rows[i],'core_table_flag_even','core_table_flag_odd');
					if(condition==0){
						k++;
					}
				}else if(condition==0){
					core.addStyle(rows[i],'core_table_row_odd','core_table_row_even');
					core.addStyle(rows[i],'core_table_flag_odd','core_table_flag_even');
				}else{
					core.addStyle(rows[i],'core_table_row_even','core_table_row_odd');
					core.addStyle(rows[i],'core_table_flag_even','core_table_flag_odd');					
				}
				
				
			}else{
				k++;
			}
		}
	}
	this.tgetSelectedLine=function(tbl,tr){///tdкроме
		tr=tr||'asdf';
		/*возвращает масив идентификаторов выбранных строк*/
		if(typeof(tbl)=='string'){
			tbl=document.getElementById(tbl);
		}
		if(tbl.tagName!='TABLE') return;
		
		tbl=tbl['tBodies'][0]||tbl;
		rows = tbl.getElementsByTagName("tr");
		var result=new Array();
		for(var i=0; i<rows.length; i++){
			if (((' '+rows[i].className+' ').indexOf("core_table_row_click1") != -1)){	
				result.push(rows[i]);
			}
		}
		return result;
	}
	this.tMouseOver=function(evt){
		el=core.returnEvtObj(evt);

		if(el.tagName=='TD'){//работаем со строкой, если убрать эту запись будем работать с ячейкой
			el=el.parentNode;
		}
		if(el.tagName!='TR'){
			return;
		}else if(el.tagName=='TR'){
			if (((' '+el.className+' ').indexOf("core_table_flag_even") != -1)){	
				core.addStyle(el,'core_table_row_even_m_over','core_table_row_even');
			}else{
				core.addStyle(el,'core_table_row_odd_m_over','core_table_row_odd');
			}
		}
	}
	this.tMouseOut=function(evt){
		el=core.returnEvtObj(evt);

		if(el.tagName=='TD'){
			el=el.parentNode;
		}
		if(el.tagName!='TR'){
			return;
		}else if(el.tagName=='TR'){
			if (((' '+el.className+' ').indexOf("core_table_flag_even") != -1)){	
				core.addStyle(el,'core_table_row_even','core_table_row_even_m_over');
			}else{
				core.addStyle(el,'core_table_row_odd','core_table_row_odd_m_over');
			}
		}
	}
	
	/*this.tMouseEvenOver=function(evt){
		//alert('Even');
		
		el=core.returnEvtObj(evt);

		if(el.tagName=='TD'){//работаем со строкой, если убрать эту запись будем работать с ячейкой
			el=el.parentNode;
		}
		if(el.tagName!='TR'){
			return;
		}else if(el.tagName=='TR'){
			core.addStyle(el,'core_table_row_even_m_over','core_table_row_even');
		}
	}*/
	/*this.tMouseEvenOut=function(evt){
		el=core.returnEvtObj(evt);

		if(el.tagName=='TD'){
			el=el.parentNode;
		}
		if(el.tagName!='TR'){
			return;
		}else{
			core.addStyle(el,'core_table_row_even','core_table_row_even_m_over');
		}
	}*/
	/*this.tMouseOddOver=function(evt){
		//alert('Odd');
		el=core.returnEvtObj(evt);

		if(el.tagName=='TD'){
			el=el.parentNode;
		}else{
			
		}
		if(el.tagName!='TR'){
			return;
		}else{
			core.addStyle(el,'core_table_row_odd_m_over','core_table_row_odd');
		}
	}*/
	/*this.tMouseOddOut=function(evt){
		el=core.returnEvtObj(evt);

		if(el.tagName=='TD'){
			el=el.parentNode;
		}else{
		
		}
		if(el.tagName!='TR'){
			return;
		}else{
			core.addStyle(el,'core_table_row_odd','core_table_row_odd_m_over');
		}
	}*/
}
function core_tMouseClickFirst(evt){
		el=core.returnEvtObj(evt);
		if(el.tagName=='TD'){//работаем со строкой, если убрать эту запись будем работать с ячейкой
			el=el.parentNode;
		}
		if(el.tagName!='TR'){
			return;
		}else{
			core.removeHandler(el,'click',core_tMouseClickFirst);
			core.addHandler(el,'click',core_tMouseClickSecond);
			core.addStyle(el,'core_table_row_click1','core_table_row_click2');
			if(typeof(tableLineSelected)=='function'){
				var table=el;
				for(var i=0;i<5;i++){
					if(table.tagName!='TABLE'){
						table=table.parentNode;
					}
				}
				tableLineSelected(table,el,evt);
			}else{
				//alert("Не найдена функция tableLineSelected(table,el,evt) хотя бы пустая");
			}
		}
	}
function core_tMouseClickSecond(evt){
		el=core.returnEvtObj(evt);
		if(el.tagName=='TD'){//работаем со строкой, если убрать эту запись будем работать с ячейкой
			el=el.parentNode;
		}
		if(el.tagName!='TR'){
			return;
		}else{
			if(typeof(tableLineUnSelected)=='function'){
				var table=el;
				for(var i=0;i<5;i++){
					if(table.tagName!='TABLE'){
						table=table.parentNode;
					}
				}
				
				tableLineUnSelected(table,el);
			}else{
				//alert("Не найдена функция tableLineUnSelected(table,el) хотя бы пустая");
			}
			core.removeHandler(el,'click',core_tMouseClickSecond);
			core.addHandler(el,'click',core_tMouseClickFirst);
			core.addStyle(el,'core_table_row_click2','core_table_row_click1');
		}
	}
function tClearSelectedLine(tbl,tr){
		if(typeof(tbl)=='string'){
			tbl=document.getElementById(tbl);
		}
		if(tbl.tagName!='TABLE') return false;
		
		var tbl=tbl['tBodies'][0]||tbl;
		var rows = tbl.getElementsByTagName("tr");
		for(var i=0; i<rows.length; i++){
			var el=rows[i];
			if (((' '+el.className+' ').indexOf("core_table_row_click1") != -1)&&el!=tr){	
				core.removeHandler(el,'click',core_tMouseClickSecond);
				core.addHandler(el,'click',core_tMouseClickFirst);
				core.addStyle(el,'core_table_row_click2','core_table_row_click1');
			}
		}
		return true;
	}