
//Attention : le style par défaut sur tr doit être moins sélectif (.oddRow .evenRow et non "tr.oddRow"/"tr.evenRow") que le style appliqué
//par les évts mousedown mouseover et mouseout (tr.highlightedRow tr.trhover) (ou bien il doit être déclaré avant)
//dans l'exemple de css "tr.oddRow" et "tr.evenRow" ne fonctionnera pas
//ex de css:
/*
tr.trhover{background-color: #A8FFD3; }
tr.highlightedRow {background-color:#FFCC99}
.oddRow{	background-color: #DDDEE8;}
.evenRow{	background-color: #ECEDF2;}
+ dans le xhtml <table class="rowPointerTable" 
seules les tr du tbody seront affectees
*/
var rowPointerHighLightClass="highlightedRow";//class pour setRowPointer() (onmousedown
var rowPointerHoverClass="trhover";//class onMouseOver
//var rowPointerTableId='datagrid';
var rowPointerTableClass="rowPointerTable";//classe à appliquer aux tableaux

//============================================
var rowPointer= {

	init :function (){
		if(!document.getElementsByTagName )return;
		var tables=document.getElementsByTagName('TABLE');
		for(var i=0;i<tables.length;i++){
			if (tables[i].className.indexOf(rowPointerTableClass) != -1) {
					if(tables[i].getElementsByTagName('tbody').length==0)return;
					var trs = tables[i].getElementsByTagName('tbody')[0].getElementsByTagName('TR');
					for(var j=0;j<trs.length;j++){
						//rowPointer.addEvent(trs[j],'mousedown',rowPointer.setRowPointer,false);
						//rowPointer.addEvent(trs[j],'mouseover',rowPointer.trMouseOver,false);
						//rowPointer.addEvent(trs[j],'mouseout',rowPointer.trMouseOut,false);
						common.addEvent(trs[j],'mousedown',rowPointer.setRowPointer);
						common.addEvent(trs[j],'mouseover',rowPointer.trMouseOver);
						common.addEvent(trs[j],'mouseout',rowPointer.trMouseOut);
					}
			}
		}
		//if(document.getElementById(rowPointerTableId)==null)return;
		//var trs = document.getElementById(rowPointerTableId).getElementsByTagName('tbody')[0].getElementsByTagName('TR');
		//for(i=0;i<trs.length;i++){
			//rowPointer.addEvent(trs[i],'mousedown',rowPointer.setRowPointer,false);
			//rowPointerHighLightClass.addEvent(trs[i],'mouseover',rowPointer.trMouseOver,false);
			//rowPointer.addEvent(trs[i],'mouseout',rowPointer.trMouseOut,false);
		//}
	},
	setRowPointer : function (e) {
		var t = window.event ? window.event.srcElement : e ? e.target : null;
		theRow=t.parentNode;
			if(typeof(theRow.clicked)=='undefined'){
				theRow.clicked=true;
			}
		if (typeof(theRow.className) == 'undefined' ) {
			return false;
		}
		if(theRow.clicked==false){
			theRow.className=theRow.className.replace(new RegExp("\\b ?"+rowPointerHighLightClass+"\\b"), "");
		}else {
			theRow.className+=" "+rowPointerHighLightClass;
		}
		theRow.clicked=!theRow.clicked;
		return true;
	},
	trMouseOver:function (e){
		var t = window.event ? window.event.srcElement : e ? e.target : null;
		theRow=t.parentNode;
		theRow.className+=" "+rowPointerHoverClass;
		//document.getElementById('messages').innerHTML="className=["+theRow.className+"]";
	} ,
	trMouseOut:function (e){
		var t = window.event ? window.event.srcElement : e ? e.target : null;
		theRow=t.parentNode;
  	theRow.className=theRow.className.replace(new RegExp("\\b"+rowPointerHoverClass+"\\b"), "");
  	//document.getElementById('messages').innerHTML="className=["+theRow.className+"]";
	} 
	/*,

	addEvent: function (obj, evType, fn, useCapture) {
		// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko
		// By Scott Andrew
      	if (obj.addEventListener) {
        	obj.addEventListener(evType, fn, useCapture);
           	 return true;
      	} else if (obj.attachEvent) {
        	var r = obj.attachEvent('on' + evType, fn);
        	return r;
      	} else {
        	obj['on' + evType] = fn;
        	return true;
      	}
	}
	*/
}
//rowPointer.addEvent(window,'load',rowPointer.init,false);
common.addEvent(window,'load',rowPointer.init);



