/* 
Infragistics UltraWebGrid Script 
Version 1.0.6007
Copyright (c) 2002 Infragistics, Inc. All Rights Reserved.
*/

// private
function igtbl_addNewClickDown(evnt,gn) 
{
	if(igtbl_button(gn,evnt)!=0)
		return;
	var se=igtbl_srcElement(evnt);
	if(se.tagName=="DIV" && se.getAttribute("addNew") && !igtbl_isDisabled(se))
		igtbl_changeStyle(gn,se,gn+'_SelHeadClass');
	igtbl_activate(gn);
}

// private
function igtbl_addNewClickUp(evnt,gn) 
{
	if(igtbl_button(gn,evnt)!=0)
		return;
	var se=igtbl_srcElement(evnt);
	if(se.tagName=="DIV" && se.getAttribute("addNew") && !igtbl_isDisabled(se))
	{
		igtbl_changeStyle(gn,se,null);
		igtbl_addNew(gn,se.getAttribute("bandNo"));
	}
	igtbl_activate(gn);
}

// public
function igtbl_addNew(gn,bandNo)
{
	var gs=igtbl_gridState[gn];
	var g=gs.grid;
	var table=g.Bands[bandNo].curTable;
	var fac=g.Bands[bandNo].firstActiveCell;
	var clickRow;
	if(gs.ActiveCell!="")
		clickRow=igtbl_getRowById(gs.ActiveCell);
	else if(gs.ActiveRow!="")
		clickRow=igtbl_getRowById(gs.ActiveRow);
	if(!table)
	{
		var hidRow=document.createElement("tr");
		var rn=clickRow.Element.id.split("_");
		rn[0]=gn+"rh";
		hidRow.id=rn.join("_");
		hidRow.setAttribute("hiddenRow",true);
		var ec=document.createElement("td");
		ec.className=igtbl_getExpAreaClass(gn,bandNo-1);
		ec.style.borderWidth=0;
		ec.style.textAlign="center";
		ec.style.padding=0;
		ec.style.cursor="default";
		ec.innerHTML="&nbsp;";
		hidRow.appendChild(ec);
		if(igtbl_getRowSelectors(gn,bandNo-1)==1)
		{
			var rsc=document.createElement("td");
			rsc.className=igtbl_getRowLabelClass(gn,bandNo-1);
			rsc.innerHTML="&nbsp;";
			hidRow.appendChild(rsc);
		}
		var majCell=document.createElement("td");
		majCell.style.overflow="auto";
		majCell.border=0;
		majCell.colSpan=g.Bands[bandNo-1].VisibleColumnsCount;
		hidRow.appendChild(majCell);
		table=document.createElement("table");
		rn[0]=gn+"t";
		table.id=rn.join("_");
		table.border=0;
		table.cellPadding=g.gridElement.cellPadding;
		table.cellSpacing=g.gridElement.cellSpacing;
		table.setAttribute("bandNo",bandNo);
		table.style.cssText=g.gridElement.style.cssText;
		var colGr=document.createElement("colgroup");
		var col=document.createElement("col");
		col.width="22px";
		colGr.appendChild(col);
		if(igtbl_getRowSelectors(gn,bandNo)==1)
		{
			col=document.createElement("col");
			col.width="22px";
			colGr.appendChild(col);
		}
		for(var i=0;i<g.Bands[bandNo].VisibleColumnsCount;i++)
		{
			col=document.createElement("col");
			col.width="100px";
			colGr.appendChild(col);
		}
		table.appendChild(colGr);
		var tHead=document.createElement("thead");
		var tr=document.createElement("tr");
		var th=document.createElement("th");
		th.className=g.Bands[bandNo].NonSelHeaderClass;
		var img=document.createElement("img");
		img.src=g.blankImage;
		img.border=0;
		img.width=22;
		img.height=12;
		th.appendChild(img);
		tr.appendChild(th);
		if(igtbl_getRowSelectors(gn,bandNo)==1)
		{
			th=document.createElement("th");
			th.className=g.Bands[bandNo].NonSelHeaderClass;
			img=document.createElement("img");
			img.src=g.blankImage;
			img.border=0;
			img.width=22;
			img.height=12;
			th.appendChild(img);
			tr.appendChild(th);
		}
		for(var i=0;i<g.Bands[bandNo].Columns.length;i++)
		{
			var column=g.Bands[bandNo].Columns[i];
			if(!column.Hidden)
			{
				th=document.createElement("th");
				th.id=gn+"c"+"_"+bandNo+"_"+i.toString();
				th.className=igtbl_getHeadClass(gn,bandNo,i);
				th.setAttribute("columnNo",i);
				igtbl_setInnerText(th,column.HeaderText);
				tr.appendChild(th);
			}
		}
		tHead.appendChild(tr);
		if(g.Bands[bandNo].ColHeadersVisible!=1)
			tHead.style.display="none";
		table.appendChild(tHead);
		var tBody=document.createElement("tbody");
		table.appendChild(tBody);
		if(g.Bands[bandNo].ColFootersVisible==1)
		{
			var tFoot=document.createElement("tfoot");
			var tr=document.createElement("tr");
			var th=document.createElement("th");
			th.className=igtbl_getExpAreaClass(gn,bandNo);
			th.innerHTML="&nbsp;";
			tr.appendChild(th);
			if(igtbl_getRowSelectors(gn,bandNo)==1)
			{
				th=document.createElement("th");
				th.className=igtbl_getRowLabelClass(gn,bandNo);
				th.innerHTML="&nbsp;";
				tr.appendChild(th);
			}
			for(var i=0;i<g.Bands[bandNo].Columns.length;i++)
			{
				var column=g.Bands[bandNo].Columns[i];
				if(!column.Hidden)
				{
					th=document.createElement("th");
					th.id=gn+"f"+"_"+bandNo+"_"+i.toString();
					th.className=igtbl_getFooterClass(gn,bandNo,i);
					th.innerHTML="&nbsp;";
					tr.appendChild(th);
				}
			}
			tFoot.appendChild(tr);
			table.appendChild(tFoot);
		}
		majCell.appendChild(table);
		clickRow.Element.childNodes[0].innerHTML="<img src="+igtbl_getCollapseImage(gn,bandNo-1)+" border=0 onclick=\"igtbl_toggleRow('"+gn+"','"+clickRow.Element.id+"');\">";
		clickRow.Element.parentNode.insertBefore(hidRow,clickRow.Element.nextSibling);
	}
	var row=document.createElement("tr");
	var rows=table.tBodies[0].rows;
	var lastRow;
	if(rows.length>0)
		lastRow=rows[rows.length-1];
	if(lastRow)
	{
		if(lastRow.parentNode.tagName=="TFOOT")
			lastRow=lastRow.previousSibling;
		if(lastRow.getAttribute("hiddenRow"))
			lastRow=lastRow.previousSibling;
		var altRow=lastRow.getAttribute("alt")!="true" && (g.Bands[bandNo].AltClass!="" || g.AltClass!="");
		var rn=lastRow.id.split("_");
		rn[rn.length-1]++;
		row.id=rn.join("_");
	}
	else
	{
		if(!clickRow)
			row.id=gn+"r_0";
		else
			row.id=clickRow.Element.id+"_0";
	}
	if(g.Bands[bandNo].DefaultRowHeight!="")
		row.style.height=g.Bands[bandNo].DefaultRowHeight;
	if(igtbl_fireEvent(gn,g.Events.BeforeRowInsert,"(\""+gn+"\",\""+row.id+"\")")==true)
	{
		if(igtbl_gridState[gn].NeedPostBack)
			igtbl_doPostBack(gn);
		return;
	}
	if(altRow)
		row.setAttribute("alt","true");
	if(lastRow && rows[rows.length-1].parentNode.tagName=="TFOOT")
		table.tBodies[0].insertBefore(row,rows[rows.length-1]);
	else
		table.tBodies[0].appendChild(row);
	var phCellNo=0;
	for(var i=0;i<g.Bands[bandNo].Columns.length+fac;i++)
	{
		if(i>=fac && g.Bands[bandNo].Columns[i-fac].Hidden)
			continue;
		var cell=document.createElement("td");
		var cn;
		if(lastRow)
			cn=lastRow.cells[phCellNo].id.split("_");
		else
		{
			if(clickRow)
			{
				cn=clickRow.Element.id.split("_");
				cn[0]=gn+"rc";
				cn[cn.length]=-1;
				cn[cn.length]=i-fac;
			}
			else
			{
				cn=new Array();
				cn[0]=gn+"rc";
				cn[1]=-1;
				cn[2]=i-fac;
			}
		}
		if(g.Bands[bandNo].DefaultRowHeight!="")
			cell.height=g.Bands[bandNo].DefaultRowHeight;
		if(g.Bands.length>1 && phCellNo==0)
		{
			cell.className=igtbl_getExpAreaClass(gn,bandNo);
			cell.style.borderWidth=0;
			cell.style.textAlign="center";
			cell.style.padding=0;
			cell.style.cursor="default";
			cell.innerHTML="<img src='"+g.blankImage+"' border=0 width=22 height=12 imgType='blank'>";
		}
		else if(igtbl_getRowSelectors(gn,bandNo)==1 && (g.Bands.length>1 && phCellNo==1 || phCellNo==0))
		{
			cell.className=igtbl_getRowLabelClass(gn,bandNo);
			if(lastRow)
			{
				cn[cn.length-1]++;
				cell.id=cn.join("_");
			}
			else
			{
				if(clickRow)
				{
					cn=clickRow.Element.id.split("_");
					cn[0]=gn+"l";
					cn[cn.length]=0;
					cell.id=cn.join("_");
				}
				else
					cell.id=gn+"l_0";
			}
			cell.innerHTML="<img src='"+g.blankImage+"' border=0 width=22 height=12 imgType='blank'>";
		}
		else
		{
			var columnNo=i-fac;
			var column=g.Bands[bandNo].Columns[columnNo];
			if(altRow)
			{
				if(g.Bands[bandNo].AltClass!="")
					cell.className=g.Bands[bandNo].AltClass;
				else if(g.AltClass!="")
					cell.className=g.AltClass;
				else if(g.Bands[bandNo].ItemClass!="")
					cell.className=g.Bands[bandNo].ItemClass;
				else
					cell.className=g.ItemClass;
			}
			else if(g.Bands[bandNo].ItemClass!="")
				cell.className=g.Bands[bandNo].ItemClass;
			else
				cell.className=g.ItemClass;
			cn[cn.length-2]++;
			cell.id=cn.join("_");
			if(lastRow && lastRow.cells[phCellNo].getAttribute("level"))
			{
				var cl=lastRow.cells[phCellNo].getAttribute("level").split("_");
				cl[cl.length-2]++;
				cell.setAttribute("level",cl.join("_"));
			}
			var nt=igtbl_gridState[gn].grid.Bands[bandNo].Columns[columnNo].DefaultValue;
			if(nt!="")
				gs.ChangedCells[cell.id]=nt;
			switch(column.Type)
			{
				case 3:
					cell.innerHTML="<input type=checkbox"+(igtbl_getAllowUpdate(gn,bandNo,columnNo)==1?"":" disabled")+" onpropertychange='igtbl_chkBoxChange(event,\""+gn+"\");'>";
					break;
				case 7:
					var bc=igtbl_gridState[gn].grid.Bands[bandNo].Columns[columnNo].ButtonClass;
					if(column.CellButtonDisplay==1)
						cell.innerHTML="<button style='width:100%;height:100%;' onclick=\"igtbl_colButtonClick(event,'"+gn+"');\""+(bc==""?"":" class='"+bc+"'")+">&nbsp;</button>";
					else
						cell.innerHTML=(nt==""?"&nbsp;":nt);
					break;
				case 9:
					cell.innerHTML="<a href=''>"+(nt==""?"&nbsp;":nt)+"</a>";
					break;
				default:
					cell.innerHTML=(nt==""?"&nbsp;":nt);
					break;
			}
		}
		row.appendChild(cell);
		phCellNo++;
	}
	if(lastRow && lastRow.getAttribute("level"))
	{
		var rl=lastRow.getAttribute("level").split("_");
		rl[rl.length-1]++;
		row.setAttribute("level",rl.join("_"));
	}
	else if(clickRow && clickRow.Element.getAttribute("level"))
	{
		var rl=clickRow.Element.getAttribute("level").split("_");
		rl[rl.length]=0;
		row.setAttribute("level",rl.join("_"));
	}
	var parRow=table.parentNode.parentNode.previousSibling;
	if(parRow && parRow.childNodes[0].childNodes.length>0 && parRow.childNodes[0].childNodes[0].tagName=="IMG" && parRow.childNodes[0].childNodes[0].style.display=="none")
		parRow.childNodes[0].childNodes[0].style.display="";
	if(bandNo>0 && table.parentNode.parentNode.style.display=="none")
		igtbl_toggleRow(gn,table.parentNode.parentNode.previousSibling.id,table.parentNode.parentNode.id);
	igtbl_setActiveRow(gn,row);
	igtbl_setNewRowImg(gn,row);
	igtbl_scrollToView(gn,row);
	igtbl_gridState[gn].AddedRows[row.id]=true;
	igtbl_fireEvent(gn,g.Events.InitializeRow,"(\""+gn+"\",\""+row.id+"\");");
	igtbl_fireEvent(gn,g.Events.AfterRowInsert,"(\""+gn+"\",\""+row.id+"\");");
	igtbl_updatePostField(gn);
	if(igtbl_gridState[gn].NeedPostBack)
		igtbl_doPostBack(gn);
}

// private
function igtbl_addNewMouseOut(evnt,gn) 
{
	var se=igtbl_srcElement(evnt);
	if(se.tagName == "DIV" && se.getAttribute("addNew"))
		igtbl_changeStyle(gn,se,null);
}

// private
function igtbl_updateAddNewStatus()
{
}

// private
function igtbl_updateAddNewBox(gn)
{
	var grid=igtbl_gridState[gn].grid;
	if(!igtbl_gridState[gn].grid.AddNewBoxVisible)
		return;
	var curBandNo=-1;
	var expandable=false;
	var curRow=null;
	if(igtbl_gridState[gn].ActiveCell!="")
	{
		var cell=igtbl_getElementById(igtbl_gridState[gn].ActiveCell);
		curRow=cell.parentNode;
		curBandNo=parseInt(curRow.parentNode.parentNode.getAttribute("bandNo"),10);
		if(!curRow.getAttribute("groupRow") && curRow.nextSibling && curRow.nextSibling.getAttribute("hiddenRow"))
			expandable=true;
	}
	else if(igtbl_gridState[gn].ActiveRow!="")
	{
		curRow=igtbl_getElementById(igtbl_gridState[gn].ActiveRow);
		curBandNo=parseInt(curRow.parentNode.parentNode.getAttribute("bandNo"),10);
		if(!curRow.getAttribute("groupRow") && curRow.nextSibling && curRow.nextSibling.getAttribute("hiddenRow"))
			expandable=true;
	}
	else
		curRow=igtbl_gridState[gn].grid.gridElement.childNodes[0].rows[0];
	for(var i=0;i<grid.Bands.length;i++)
	{
		if(grid.Bands[i].AllowAddNew==2 || grid.Bands[i].AllowAddNew==0 && grid.AllowAddNew!=1 || grid.Bands[i].IsGrouped || i==0 && grid.AllowPaging && grid.CurrentPageIndex!=grid.PageCount)
			igtbl_setDisabled(grid.Bands[i].addNewElem,true);
		else if(curBandNo==-1 && i==0 || i<=curBandNo || i==curBandNo+1 && !grid.Bands[i].IsGrouped && !(grid.Bands[curBandNo].IsGrouped && curRow.getAttribute("groupRow")))
		{
			if(i==curBandNo+1)
			{
				if(expandable)
 					grid.Bands[i].curTable=curRow.nextSibling.childNodes[grid.Bands[i-1].firstActiveCell].childNodes[0];
 				else
 					grid.Bands[i].curTable=null;
			}
			else
			{
				var cr=curRow;
				for(var j=curBandNo;j>=i;j--)
				{
					grid.Bands[i].curTable=cr.parentNode.parentNode;
					cr=igtbl_getParentRow(gn,cr);
				}
			}
			igtbl_setDisabled(grid.Bands[i].addNewElem,false);
		}
		else
			igtbl_setDisabled(grid.Bands[i].addNewElem,true);
	}
}

// private
function igtbl_setNewRowImg(gn,row)
{
	igtbl_setSelectedRowImg(gn,row,true);
	if(igtbl_gridState[gn].newImg!=null)
	{
		igtbl_gridState[gn].lastSelectedRow=null;
		var imgObj;
		imgObj=document.createElement("img");
		imgObj.src=igtbl_gridState[gn].grid.blankImage;
		imgObj.border="0";
		imgObj.width="22";
		imgObj.height="12";
		imgObj.setAttribute("imgType","blank");
		igtbl_gridState[gn].newImg.parentNode.appendChild(imgObj);
		igtbl_gridState[gn].newImg.parentNode.removeChild(igtbl_gridState[gn].newImg);
		igtbl_gridState[gn].newImg=null;
	}
	if(!row || igtbl_getRowSelectors(gn,row.parentNode.parentNode.getAttribute("bandNo"))==2)
		return;
	var imgObj;
	imgObj=document.createElement("img");
	imgObj.src=igtbl_gridState[gn].grid.newRowImage;
	imgObj.border="0";
	imgObj.width="22";
	imgObj.height="12";
	imgObj.setAttribute("imgType","newRow");
	var cell=row.cells[igtbl_getBandFAC(gn,row)-1];
	cell.innerHTML="";
	cell.appendChild(imgObj);
	igtbl_gridState[gn].newImg=imgObj;
}
