window.changeTag = true;
var oriDynTableName = "SpZbTbl_table";
var trOddClass = "SpZbTbl_tr_row_zebra_odd";
var trEvenClass = "SpZbTbl_tr_row_zebra_even";
var overTrOddClass = "SpZbTbl_tr_row_zebraover_odd";
var overTrEvenClass = "SpZbTbl_tr_row_zebraover_even";
var trClickClass = "SpZbTbl_tr_row_zebraclick_odd";

var tdOddClass = "SpZbTbl_td_row_zebra_odd";
var tdEvenClass = "SpZbTbl_td_row_zebra_even";
var overTdOddClass = "SpZbTbl_td_row_zebraover_odd";
var overTdEvenClass = "SpZbTbl_td_row_zebraover_even";
var tdClickClass = "SpZbTbl_td_row_zebraclick_odd";

var oriDynTable = null;
var oldTrOverClass = null;
var oldTrClickClass = null;
var oldTdOverClass = null;
var oldTdClickClass = null;
var clickTrElement = null;
var clickTdElement = null;

var hasTblBorder = null;

/**
 * 自动扫描表格，描绘奇偶行的颜色
 * oriDynTable：目标表格 oddClass：奇数行的css样式 evenClass：偶数行的css样式
 */
function SpZbTbl_setRowColor()
{
    SpZbTbl_resetTableColor();
    for(var i=1; i<oriDynTable.rows.length; i++)
    {
		oriDynTable.rows[i].attachEvent("onmouseover",SpZbTbl_setOverColor);
		oriDynTable.rows[i].attachEvent("onmouseout",SpZbTbl_setOutColor); 
		oriDynTable.rows[i].attachEvent("onclick",SpZbTbl_setClickColor); 

        if(i % 2 == 0)
			oriDynTable.rows[i].className = trEvenClass;		
        else
            oriDynTable.rows[i].className = trOddClass;
    }
}

/**
 * 自动扫描表格，描绘奇偶列的颜色
 * oriDynTable：目标表格 oddClass：奇数列的css样式 evenClass：偶数列的css样式
 */
function SpZbTbl_setColColor()
{
    SpZbTbl_resetTableColor();
    for(var i=1; i<oriDynTable.rows.length; i++)
    {   
        for(var j=0; j<oriDynTable.rows[i].cells.length; j++)
        {
            if(j % 2 == 0)
                oriDynTable.rows[i].cells[j].className = trEvenClass;
            else
                oriDynTable.rows[i].cells[j].className = trOddClass;
        }
    }
}

/**
 * 删除选定行
 */
function SpZbTbl_deleteRow(){
    if(clickTrElement == 'undefined' || clickTrElement == null ){
		alert('请选择要删除的行！');
		return false;
	}
	
	var rowIndex = clickTrElement.rowIndex;
	if(rowIndex < 0){
		rowIndex=oriDynTable.rows.length-1;
	}
	
	if(rowIndex == 0){
		return false;
	}
	oriDynTable.deleteRow(rowIndex);
}

/**
 * 新增行
 */
function SpZbTbl_addRow(cellHtml){
	if(cellHtml == 'undefined' || cellHtml == null){
		alert('请指定需要添加的内容！');
		return false;
	}
	
	var cellCount=cellHtml.length;
	var rowCount=oriDynTable.rows.length;
    var newRow=oriDynTable.insertRow(rowCount);	
	var newCell;

	for(var i=0;i<cellCount;i++){
		newCell=newRow.insertCell(i);
		newCell.innerHTML=cellHtml[i];
	}	

	newRow.attachEvent("onmouseover",SpZbTbl_setOverColor);
	newRow.attachEvent("onmouseout",SpZbTbl_setOutColor); 
	newRow.attachEvent("onclick",SpZbTbl_setClickColor); 

	if(rowCount % 2 == 0)
		newRow.className = trEvenClass;		
	else
		newRow.className = trOddClass;
}
/**
 * 复制指定的行
 */
function SpZbTbl_cloneRow(){
	if(clickTrElement == 'undefined' || clickTrElement == null ){
		alert('请选择要复制的行！');
		return false;
	}

	var cloneRow=clickTrElement;
	if(cloneRow.rowIndex < 0){
		cloneRow=oriDynTable.rows[oriDynTable.rows.length-1];
	}	

	if(cloneRow.rowIndex == 0){
		return false;
	}
	
	var cellHtml=new Array();
	var cellCount=cloneRow.cells.length;
	for(var i=0; i<cellCount; i++){
		cellHtml[i]=cloneRow.cells[i].innerHTML;
    }

	SpZbTbl_addRow(cellHtml);
}

/**
 * 得到触发事件的行对象
 */
function SpZbTbl_getEventElement(eventElement,eventType){
	if(eventElement.tagName == eventType){
		return eventElement;
	}
		
	eventElement = SpZbTbl_getEventElement(eventElement.parentElement,eventType);
	return eventElement;
}

/**
 * 设置鼠标点击时的样式
 */
function SpZbTbl_setClickColor()
{
	var eventTdElement = SpZbTbl_getEventElement(event.srcElement,'TD');
	var eventTrElement = SpZbTbl_getEventElement(event.srcElement,'TR');

	clickTdElement = eventTdElement;
	clickTrElement = eventTrElement;

	for(var i=1; i<oriDynTable.rows.length; i++)
    {
        if(oriDynTable.rows[i].className == trClickClass){
			oriDynTable.rows[i].className = oldTrClickClass;

			for(var j=0; j<oriDynTable.rows[i].cells.length; j++)
			{
				if(oriDynTable.rows[i].cells[j].className = tdClickClass){
					oriDynTable.rows[i].cells[j].className = oldTdClickClass;
				}
			}
		}	
    }

	oldTrClickClass = oldTrOverClass;
	oldTdClickClass = oldTdOverClass;
	eventTrElement.className = trClickClass;
	eventTdElement.className = tdClickClass;
}

/**
 * 设置鼠标滚动入时的样式
 */
function SpZbTbl_setOverColor()
{	
	var eventTrElement = SpZbTbl_getEventElement(event.srcElement,'TR');
	if(eventTrElement != clickTrElement){
		oldTrOverClass = eventTrElement.className;	

		if(oldTrOverClass == trOddClass)
			eventTrElement.className = overTrOddClass;
		else
			eventTrElement.className = overTrEvenClass;
	}
	
	var eventTdElement = SpZbTbl_getEventElement(event.srcElement,'TD');
	if(eventTdElement != clickTdElement){
		oldTdOverClass = eventTdElement.className;

		if(oldTdOverClass == tdOddClass)
			eventTdElement.className = overTdOddClass;
		else
			eventTdElement.className = overTdEvenClass;
	}
}

/**
 * 设置鼠标滚出时的样式
 */
function SpZbTbl_setOutColor()
{
	
	var eventTrElement = SpZbTbl_getEventElement(event.srcElement,'TR');
	if(eventTrElement != clickTrElement){
		eventTrElement.className = oldTrOverClass;
	}

	var eventTdElement = SpZbTbl_getEventElement(event.srcElement,'TD');
	if(eventTdElement != clickTdElement){
		eventTdElement.className = oldTdOverClass;
	}
}

/**
 * 清空所有tr和td的样式
 */
function SpZbTbl_resetTableColor()
{
    for(var i=1; i<oriDynTable.rows.length; i++)
    {   
        oriDynTable.rows[i].className = "";
        for(var j=0; j<oriDynTable.rows[i].cells.length; j++)
            oriDynTable.rows[i].cells[j].className = "";
    }	
}
/**
 * 初始化表格样式
 */
function SpZbTbl_init(hasTblBorder)
{
	this.hasTblBorder = hasTblBorder;
	oriDynTable = document.getElementById(oriDynTableName);

	if(hasTblBorder){
		oriDynTable.style.setExpression("cssText", "'border-collapse: collapse;border-color:#000000;'");
	}
	
	SpZbTbl_setRowColor();	
}
/**
 * 转换表格行列样式
 */
function SpZbTbl_change()
{
    if(changeTag)
    {
        SpZbTbl_setColColor(document.all.oriDynTable);        
        changeTag = false;
    }
    else	
    {
        SpZbTbl_setRowColor(document.all.oriDynTable);
        changeTag = true;
    }
}