
//var SystemAlert = "系统提示：" + "\n\n";
var SystemAlert = "系统提示：" + "\n\n";
var PopWinStyle = "top=20,left=100,width=900,height=650,scrollbars=yes,resizable=yes,status=yes";
var SelectWinStyle = "top=100,left=300,width=450,height=450,scrollbars=yes,resizable=no,status=yes";
var CalendarWinStyle = 'top=100,left=300,width=450,height=300,scrollbars=yes,resizable=no';

function RTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	
	if(v_length < 0)
	{
		return"";
	}
	
	var iTemp = v_length -1;
	while(iTemp > -1)
	{
		if(VALUE.charAt(iTemp) == w_space)
		{}
		else
		{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;
	}
	
	return strTemp;
} 

function LTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	if(v_length < 1)
	{
		return"";
	}
	
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;
	
	while(iTemp < v_length)
	{
		if(VALUE.charAt(iTemp) == w_space)
		{}
		else
		{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} 
	return strTemp;
} 

function Trim(TRIM_VALUE)
{
	if(TRIM_VALUE.length < 1)
	{
		return"";
	}
	
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	
	if(TRIM_VALUE=="")
	{
		return "";
	}
	else
	{
		return TRIM_VALUE;
	}
} 


/// <summary>
/// 弹出窗口
/// </summary>
/// <param name="evt">事件对象 event</param>
/// <param name="style">窗口样式 可以为""</param>
/// <param name="address">窗口地址</param>
/// <param name="winName">窗口名称</param>
/// <param name="ifKey">是否根据按键值弹出窗口 数值型 0和1</param>
/// <param name="keyCode">按键值 数值型 一般为47</param>
/// <returns></returns>
function PopWindow(evt,style,address,winName,ifKey,keyCode) 
{
   var newWin;  
   var _event = evt
   var _winStyle = style;
   var _winName = winName;
   var _address = address;
   var _ifKey = Boolean(ifKey);     
   
   if (_winStyle=="")
   {
		//_winStyle = "top=100,left=200,width=650,height=500,scrollbars=yes,resizable=yes";
		
		_winStyle = "top=50,left=100,width=900,height=650,scrollbars=yes,resizable=yes,menubar=yes,toolbar=yes,location=yes,status=yes";
   }   
   
   if (newWin && !newWin.closed)
   {
		newWin.close();
   }
      
   if(_ifKey)
   {
        var _keyCode = keyCode
		var isNetscape = (document.layers);
		var eventChooser = (isNetscape) ? keyStroke.which : _event.keyCode;	

		if (eventChooser==keyCode)
		{
			newWin = window.open(_address,_winName,_winStyle);	
		    newWin.focus();			
		}	
   }
   else
   {   	
		newWin = window.open(_address,_winName,_winStyle);	
		newWin.focus();
   }
}

/// <summary>
/// 弹出模态窗口
/// </summary>
/// <param name="obj">用来向对话框传递的参数 传递的参数类型不限，包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。</param>
/// <param name="evt">事件对象 event</param>
/// <param name="style">窗口样式 可以为""</param>
/// <param name="address">窗口地址</param>
/// <param name="winName">窗口名称</param>
/// <param name="ifKey">是否根据按键值弹出窗口 数值型 0和1</param>
/// <param name="keyCode">按键值 数值型 一般为47</param>
/// <returns></returns>
function DialogWindow(obj,evt,style,address,winName,ifKey,keyCode) 
{	
	var _event = evt
	var _winStyle = style;
	var _winName = winName;
	var _address = address;
	var _ifKey = Boolean(ifKey);     
		
	if (_winStyle=="")
	{
		_winStyle = "dialogWidth:650px;dialogHeight:500px;scroll:yes;resizable:yes;center:yes;help:no;status:no";
		
		//_winStyle = "dialogTop:100px;dialogLeft:200px;dialogWidth:650px;dialogHeight:500px;scroll:yes;resizable:yes;center:yes;help:no;status:no";		
	}   	   
		    
	if(_ifKey)
	{
		var _keyCode = keyCode
		var isNetscape = (document.layers);
		var eventChooser = (isNetscape) ? keyStroke.which : _event.keyCode;	

		if (eventChooser==keyCode)
		{
			window.showModalDialog(_address,obj,_winStyle);			
		}	
	}
	else
	{   	
		window.showModalDialog(_address,obj,_winStyle);			
	}

}
 

/// <summary>
/// 多选框全选
/// </summary>
/// <param name="control">触发这个方法的控件 一般为 this</param>
/// <param name="checkBoxID">要多选的CheckBox控件的ID</param>
/// <param name="containerType">要多选的CheckBox控件所在的容器类型</param>
function CheckAll(control,checkBoxID,containerType,containerID)
{
	try
	{
		var _checkBoxID = Trim(checkBoxID);
		var _containerType = Trim(containerType);
		var _containerID = Trim(containerID);
		
		switch(_containerType.toLowerCase())
		{
			case "grid" ://"DataGrid"类型
			
				var num = document.forms[0].elements.length;
		        var obj;
		        var objType;
				var objName;
							
		        //var checkBoxID;
				//var checkBoxName;							
				var arrayList;					
				var objCheckBox;	
				var checkBoxRef;
			
				if(control.checked)
				{				
					for (var i=0;i<num;i++)
					{
						obj = document.forms[0].elements[i];
						objType = obj.type;
						objName = obj.name;	
						
						if(objType=="checkbox"&& objName.indexOf(":")!=-1)
						{						
							arrayList = objName.split(":");
							if(arrayList[0]==_containerID)
							{							
								checkBoxRef = arrayList[0]+"_"+arrayList[1]+"_"+_checkBoxID;
								objCheckBox = document.getElementById(checkBoxRef);
								
								if (objCheckBox.disabled)
								{
									continue;
								}
						    
								if (!objCheckBox.checked)
								{
									objCheckBox.checked = true;
								}
								else
								{
									objCheckBox.checked = true;				
								} 
								
								SelectCheckBox(objCheckBox);
							}
						}
					}				
				}
				else
				{
					for (var i=0;i<num;i++)
					{
						obj = document.forms[0].elements[i];
						objType = obj.type;
						objName = obj.name;	
						
						if(objType=="checkbox"&& objName.indexOf(":")!=-1)
						{							
							arrayList = objName.split(":");
							if(arrayList[0]==_containerID)
							{							
								checkBoxRef = arrayList[0]+"_"+arrayList[1]+"_"+_checkBoxID;
								objCheckBox = document.getElementById(checkBoxRef);	
								
								if (objCheckBox.disabled)
								{
									continue;
								}
													   
								objCheckBox.checked = false;
								
								SelectCheckBox(objCheckBox);
							}	
												
						}
					}
				}		
				
				break;	
				
			case "checkboxlist" ://"CheckBoxList"类型
			
				var num = document.forms[0].elements.length;
		        var obj;
		        var objType;
				var objName;
							
		        //var checkBoxID;
				//var checkBoxName;							
				var arrayList;					
				var objCheckBox;	
				var checkBoxRef;
			
				if(control.checked)
				{
					for (var i=0;i<num;i++)
					{
						obj = document.forms[0].elements[i];
						objType = obj.type;
						objName = obj.name;	
						
						if(objType=="checkbox"&& objName.indexOf(":")!=-1)
						{						
							arrayList = objName.split(":");
							if(arrayList[0]==_containerID)
							{							
								checkBoxRef = arrayList[0]+"_"+arrayList[1];
								objCheckBox = document.getElementById(checkBoxRef);
								
								if (objCheckBox.disabled)
								{
									continue;
								}
						    
								if (!objCheckBox.checked)
								{
									objCheckBox.checked = true;
								}
								else
								{
									objCheckBox.checked = true;				
								} 
							}
						}
					}	
				}
				else
				{
					for (var i=0;i<num;i++)
					{
						obj = document.forms[0].elements[i];
						objType = obj.type;
						objName = obj.name;	
						
						if(objType=="checkbox"&& objName.indexOf(":")!=-1)
						{							
							arrayList = objName.split(":");
							if(arrayList[0]==_containerID)
							{							
								checkBoxRef = arrayList[0]+"_"+arrayList[1];
								objCheckBox = document.getElementById(checkBoxRef);	
								
								if (objCheckBox.disabled)
								{
									continue;
								}
													   
								objCheckBox.checked = false;
							}						
						}
					}
				}	
			
				break;
				
			default :
				alert("容器类型出错，请检查！");
				return false;		
		}		
	}
	catch(err)
	{
		alert("Error Name:"+err.name+"\n"+"Error Message:"+err.message);		
	}
}


/// <summary>
/// 得到全选记录的某个字段的和
/// </summary>
/// <param name="hideControlID"></param>
/// <param name="showControlID"></param>
/// <param name="sumValue"></param>
function GetCheckedSumValue(hideControlID,showControlID,sumValue)
{
	try
	{
		if (hideControlID.length==showControlID.length) //&& hideControlID.length==sumValue.length)
		{
			var num = document.forms[0].elements.length;
		    var obj;
		    var objType;
			var objName;
			var arrayList;					
			var objTextBox;	
			var textBoxRef;
			
			for (var i=0;i<num;i++)
			{
				obj = document.forms[0].elements[i];
				objType = obj.type;
				objName = obj.name;	
						
				if(objType=="checkbox"&& objName.indexOf(":")!=-1)
				{
					if (obj.checked)
					{
						arrayList = objName.split(":");										
						
						for(var j=0;j<hideControlID.length;j++)
						{												
							textBoxRef = arrayList[0]+"_"+arrayList[1]+"_"+hideControlID[j];
							objTextBox = document.getElementById(textBoxRef);								
					    	
							sumValue[j] = sumValue[j] + Number(objTextBox.value);																			
						}
					}
				}
			}
			
			for(var j=0;j<hideControlID.length;j++)
			{
				document.getElementById(showControlID[j]).value = sumValue[j];
			}	
			
		}
		else
		{
			alert("得到所选汇总时，传递数组出错！");
		}
	}
	catch(err)
	{
		alert("Error Name:"+err.name+"\n"+"Error Message:"+err.message);		
	}	
}



/// <summary>
/// 得到全选记录的某个字段的和 用于拆分
/// </summary>
/// <param name="hideControlID"></param>
/// <param name="showControlID"></param>
/// <param name="sumValue"></param>
/// <param name="nowControlID">绑定当前拆分数量的控件</param>
/// <param name="allControlID">绑定总数量的控件</param>
function GetCheckedSumValue2(hideControlID,showControlID,sumValue,nowControlID,allControlID)
{
	try
	{
		if (hideControlID.length==showControlID.length) //&& hideControlID.length==sumValue.length)
		{
			var num = document.forms[0].elements.length;
		    var obj;
		    var objType;
			var objName;
			var arrayList;					
			var objTextBox;	
			var textBoxRef;
			
			var objTextBox_now;
			var objTextBox_all;
			
			var textBoxRef_now;
			var textBoxRef_all;
			
			for (var i=0;i<num;i++)
			{
				obj = document.forms[0].elements[i];
				objType = obj.type;
				objName = obj.name;	
						
				if(objType=="checkbox"&& objName.indexOf(":")!=-1)
				{
					if (obj.checked)
					{
						arrayList = objName.split(":");										
						
						for(var j=0;j<hideControlID.length;j++)
						{												
							textBoxRef = arrayList[0]+"_"+arrayList[1]+"_"+hideControlID[j];
							objTextBox = document.getElementById(textBoxRef);
							
							textBoxRef_now = arrayList[0]+"_"+arrayList[1]+"_"+nowControlID;
							objTextBox_now = document.getElementById(textBoxRef_now);
							
							textBoxRef_all = arrayList[0]+"_"+arrayList[1]+"_"+allControlID;
							objTextBox_all = document.getElementById(textBoxRef_all);														
					    	
							sumValue[j] = sumValue[j] + Number(objTextBox.value)/Number(objTextBox_all.value)*Number(objTextBox_now.value);																			
						}
					}
				}
			}
			
			for(var j=0;j<hideControlID.length;j++)
			{
				document.getElementById(showControlID[j]).value = sumValue[j];
			}	
			
		}
		else
		{
			alert("得到所选汇总时，传递数组出错！");
		}
	}
	catch(err)
	{
		alert("Error Name:"+err.name+"\n"+"Error Message:"+err.message);		
	}	
}






/// <summary>
/// 多选框选择 变换背景色
/// </summary>
/// <param name="control">触发这个方法的控件 一般为 this</param>
function SelectCheckBox(control)
{
      if(control.checked==true)
      {          
         for(var e=control.parentElement;e!=null;e=e.parentElement)
         {
             if(e.tagName=="TR")
             {
               //e现在就是TR,也就是那一行。               
               e.runtimeStyle.backgroundColor='#ffcc99';              
               return;
             }  
         }         
      }
      else
      {
         for(var e=control.parentElement;e!=null;e=e.parentElement)
         {
             if(e.tagName=="TR")
             {
               //e现在就是TR,也就是那一行。               
               e.runtimeStyle.backgroundColor='';               
               return;
             }  
         }         
      
      }     
}


/// <summary>
/// 弹出窗口选中赋值
/// </summary>
/// <param name="controlValue">控件的值 顺序为id,refid,...</param>
/// <param name="controlID">控件对象数组</param>
function PopSetValue(controlValue,controlID)
{
	try
	{
		var controlValueArray = controlValue.split("`");			
		
		if (controlValueArray.length==controlID.length)
		{
			var undefined;
			var objControl;
			var objControlRef;
			
			var arrayList;
			var objName;
			
			var temp;
			var ifproduct=false;
			
			for(var i=0;i<controlID.length;i++)
			{			
				objControlRef = Trim(controlID[i]);
				objControl = self.opener.document.getElementById(objControlRef);
				
				
				//如果是产品选择框				
				if(objControlRef=="product_name")
				{
				    ifproduct=true;				
				}				
								
				
				if (objControl!=undefined)
				{
					//objControl.value = Trim(controlValueArray[i]);
					
					temp = Trim(controlValueArray[i]);
					
					if (temp=="无" || temp.toUpperCase()=="S0001")
					{
						temp = "";
					}
					
					objControl.value = temp;		
					
				}
				else
				{
					//解决在Grid中的选择
					if ( i!=1 )
					{
						objControlRef = Trim(controlID[1]);
						objControl = self.opener.document.getElementById(objControlRef);
						objName = objControl.name;
										
						arrayList = objName.split(":");
						objControlRef = arrayList[0]+"_"+arrayList[1]+"_"+Trim(controlID[i]);						
						objControl = self.opener.document.getElementById(objControlRef);	
					
						if (objControl!=undefined)
						{
							//objControl.value = Trim(controlValueArray[i]);
							
							temp = Trim(controlValueArray[i]);
					
							if (temp=="无" || temp.toUpperCase()=="S0001")
							{
								temp = "";
							}
							
							objControl.value = temp;								
							
						}	
					}		
										
				}				
			}
			
			//如果选择产品			
			if(ifproduct)
			{
				objControl = self.opener.document.getElementById("quantity2_Numeric");
			   
			   if(objControl!=undefined)
			   {
			     	if(!objControl.disabled)
					{					
			     		objControl.focus();
						objControl.select();						
					}
			    }
			    			  
			   objControl = self.opener.document.getElementById("quantity1_Numeric");
			   
			   if(objControl!=undefined)
			   {
			     	if(!objControl.disabled)
					{					
			     		objControl.focus();
						objControl.select();						
					}
			    }
			}
			
			window.close();
		}
		else
		{
			alert("传递数组出错！");
		}
	}
	catch(err)
	{
		alert("Error Name:"+err.name+"\n"+"Error Message:"+err.message);		
	}
}


function DialogSetValue(controlValue,controlID)
{
	try
	{
		var controlValueArray = controlValue.split("`");			
		
		if (controlValueArray.length==controlID.length)
		{
			var undefined;
			var objControl;
			var objControlRef;
			
			var arrayList;
			var objName;
			
			var temp;
			
			for(var i=0;i<controlID.length;i++)
			{			
				objControlRef = Trim(controlID[i]);
				objControl = window.dialogArguments.document.getElementById(objControlRef);				
				
				if (objControl!=undefined)
				{
					//objControl.value = Trim(controlValueArray[i]);
					
					temp = Trim(controlValueArray[i]);
					
					if (temp=="无" || temp.toUpperCase()=="S0001")
					{
						temp = "";
					}
					
					objControl.value = temp;		
					
				}
				else
				{
					//解决在Grid中的选择
					if ( i!=1 )
					{
						objControlRef = Trim(controlID[1]);
						objControl = window.dialogArguments.document.getElementById(objControlRef);
						objName = objControl.name;
										
						arrayList = objName.split(":");
						objControlRef = arrayList[0]+"_"+arrayList[1]+"_"+Trim(controlID[i]);						
						objControl = window.dialogArguments.document.getElementById(objControlRef);	
					
						if (objControl!=undefined)
						{
							//objControl.value = Trim(controlValueArray[i]);
							
							temp = Trim(controlValueArray[i]);
					
							if (temp=="无" || temp.toUpperCase()=="S0001")
							{
								temp = "";
							}
							
							objControl.value = temp;								
							
						}	
					}		
										
				}				
			}
			
			window.close();
		}
		else
		{
			alert("传递数组出错！");
		}
	}
	catch(err)
	{
		alert("Error Name:"+err.name+"\n"+"Error Message:"+err.message);		
	}
}


/// <summary>
/// 控制伸缩
/// </summary>
/// <param name="elementIDArray">元素ID数组</param>
function Expand(elementIDArray)
{
	var child;
	for(var i=0;i<elementIDArray.length;i++)
	{
		child = document.getElementById(Trim(elementIDArray[i]));
		if (child!=null)
		{
			if(child.className == "collapsed")
			{
				child.className = "expanded";
				continue;
			}
		
			if(child.className == "expanded")
			{
				child.className = "collapsed";
				continue;
			}			
		}			
	}   
}


/// <summary>
/// 定位在tabPage里的控件
/// </summary>
/// <param name="tabPageID">tabPageID数组</param>
/// <param name="objControlFocus">控件对象</param>
/// <param name="_focusID">控件的ID</param>
/// <param name="_focusIDTagName">控件的TagName</param>
function FocusControlInTabPage(tabPageID,objControlFocus,_focusID,_focusIDTagName)
{
	var objTabPage;		
	var objElement;									
										
	for(var a=0;a<tabPageID.length;a++)
	{
		objTabPage = document.getElementById(Trim(tabPageID[a]));											
																					
		if(objTabPage!=null )	
		{																		
			objElement = objTabPage.getElementsByTagName(_focusIDTagName);
												
			for(var b=0;b<objElement.length;b++)
			{				
				if (objElement[b].id==_focusID)
				{														
					if (objTabPage.currentStyle.display=="block")
					{
						if (!objControlFocus.disabled)
						{
							objControlFocus.focus();
							break;
						}	
					}														
				}
			}
		}																
	}
}


/// <summary>
/// 设定控件焦点
/// </summary>
/// <param name="controlID">控件的ID</param>
/// <param name="controlIDTagName">控件的TagName</param>
/// <param name="tabPageID">tabPageID数组</param>
function SetDefaultFocus(controlID,controlIDTagName,tabPageID)
{
	var undefined;
	var objControl = document.getElementById(controlID);
	if (objControl!=undefined)
	{		
		if (tabPageID!=null)
		{
			FocusControlInTabPage(tabPageID,objControl,controlID,controlIDTagName);					
		}
		else
		{
			if (!objControl.disabled)
			{
				objControl.focus();		
			}	
		}		
	}
	
	WindowOnload();
}


function SetStatus(message)
{window.status = Trim(message);}

/// <summary>
/// 禁用鼠标右键 false禁用,true可用
/// </summary>
function DisRightMenu()
{window.event.returnValue=true;}


function window.onbeforeunload()   
{   
	if(event.clientX>document.body.clientWidth && event.clientY<0)   
	{   
		//window.event.returnValue = "系统提示：" + "\n\n" + "确定关闭本窗口吗？"; 	
		window.event.returnValue = "系统提示：" + "\n\n" + "确定关闭本窗口吗？"; 			
	}		
	
	//if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)   
	//{   
		//window.event.returnValue="确定关闭本窗口吗？"; 		
	//}	   
}


function window.onload()
{
	WindowOnload();
}


function WindowOnload()
{
	//调整DataGrid宽度
	var x = parent.content;
	var panWidth = (screen.availWidth)*0.95;		
	var panWidth2 = (document.body.scrollWidth)*0.95;
	
	if (x!=null) //在框架内
	{	
		if(x.cols=="0,19,*")//菜单隐藏
		{ 		
			var a = window.document.getElementById("panContainer");		
			if(a!=null)
			{ 
				a.style.width = panWidth;
			} 
			
			var b = window.document.getElementById("panContainer2"); 
			if(b!=null)
			{ 
				b.style.width = panWidth;
			}			
		}
		else if(x.cols=="140,19,*")//菜单不隐藏 解决多分辨率问题
		{
			var a = window.document.getElementById("panContainer");		
			if(a!=null)
			{ 
				a.style.width = panWidth - 140; //140是菜单宽度
			} 
			
			var b = window.document.getElementById("panContainer2"); 
			if(b!=null)
			{ 
				b.style.width = panWidth - 140;
			}
		}
	}
	else //在框架外
	{
		/*var btnClose = window.document.getElementById("btnClose");	
		if(btnClose==null)
		{
			var a = window.document.getElementById("panContainer");		
			if(a!=null)
			{ 
				a.style.width = panWidth;
			} 
			
			var b = window.document.getElementById("panContainer2"); 
			if(b!=null)
			{ 
				b.style.width = panWidth;
			}				
		}
		else
		{
			var a = window.document.getElementById("panContainerPop");		
			if(a!=null)
			{ 
				a.style.width = panWidth;
			} 
		}*/
		
		
		var a = window.document.getElementById("panContainer");		
		if(a!=null)
		{ 
			a.style.width = panWidth2;
		} 
		
		var b = window.document.getElementById("panContainer2"); 
		if(b!=null)
		{ 
			b.style.width = panWidth2;
		}
		
		var c = window.document.getElementById("panContainerPop");		
		if(c!=null)
		{ 
			c.style.width = panWidth2;
		} 
			
	}	
}


function ShowAll()
{
	for(var i = 0; i < document.all.length; i++)
	{
	   if (document.all(i).className == "collapsed")
	   {
		document.all(i).className = "expanded" ;
	   }
	}
}

function CloseAll()
{
	for(var i = 0; i < document.all.length; i++)
	{
	   if (document.all(i).className == "expanded")
	   {
		document.all(i).className = "collapsed" ;
	   }
	}
}

function outliner()
{
    var child = document.all[event.srcElement.getAttribute("child",false)];
    
    if (null != child)
    {
		if(child.className == "collapsed")
		{
			child.className = "expanded";
			return;
		}
		
		if(child.className == "expanded")
		{
			child.className = "collapsed";
			return;
		}
    }  
}




/////////////////////////////////////////////排序版本2



var dom = (document.getElementsByTagName) ? true : false;
var ie5 = (document.getElementsByTagName && document.all) ? true : false;
var arrowUp, arrowDown;

if (ie5 || dom)
	initSortTable();

function initSortTable() {
	arrowUp = document.createElement("SPAN");
	var tn = document.createTextNode("5");
	arrowUp.appendChild(tn);
	arrowUp.className = "arrow";

	arrowDown = document.createElement("SPAN");
	var tn = document.createTextNode("6");
	arrowDown.appendChild(tn);
	arrowDown.className = "arrow";
	
	arrowUp.style.fontFamily ='webdings';
	arrowDown.style.fontFamily ='webdings';
}



function sortTable(tableNode, nCol, bDesc, sType,x) {
	var tBody = tableNode.tBodies[0];
	//var trs = tBody.rows;
	var trs = x;
	var trl= trs.length; 	//alert(trl);
	
	var a = new Array();
	
	for (var i = 0; i < trl-1; i++) {
		a[i] = trs[i+1];
	}
	
	var start = new Date;
	window.status = "Sorting data...";
	a.sort(compareByColumn(nCol,bDesc,sType));
	window.status = "Sorting data done";
	
	for (var i = 0; i < trl-1; i++) {
		tBody.appendChild(a[i]);
		window.status = "Updating row " + (i + 1) + " of " + trl +
						" (Time spent: " + (new Date - start) + "ms)";
	}
	
	// check for onsort
	if (typeof tableNode.onsort == "string")
		tableNode.onsort = new Function("", tableNode.onsort);
	if (typeof tableNode.onsort == "function")
		tableNode.onsort();
}

function CaseInsensitiveString(s) {
	return String(s).toUpperCase();
}

function parseDate(s) {
	return Date.parse(s.replace(/\-/g, '/'));
}

function toNumber(s) {
    return Number(s.replace(/[^0-9\.]/g, ""));
}

function compareByColumn(nCol, bDescending, sType) {
	var c = nCol;
	var d = bDescending;
	
	var fTypeCast = String;
	
	if (sType == "Number")
		fTypeCast = Number;
	else if (sType == "Date")
		fTypeCast = parseDate;
	else if (sType == "CaseInsensitiveString")
		fTypeCast = CaseInsensitiveString;

	return function (n1, n2) {
		if (fTypeCast(getInnerText(n1.cells[c])) < fTypeCast(getInnerText(n2.cells[c])))
			return d ? -1 : +1;
		if (fTypeCast(getInnerText(n1.cells[c])) > fTypeCast(getInnerText(n2.cells[c])))
			return d ? +1 : -1;
		return 0;
	};
}

function sortColumnWithHold(e) {
	// find table element
	var el = ie5 ? e.srcElement : e.target;
	var table = getParent(el, "TABLE");
	
	// backup old cursor and onclick
	var oldCursor = table.style.cursor;
	var oldClick = table.onclick;
	
	// change cursor and onclick	
	table.style.cursor = "wait";
	table.onclick = null;
	
	// the event object is destroyed after this thread but we only need
	// the srcElement and/or the target
	var fakeEvent = {srcElement : e.srcElement, target : e.target};
	
	// call sortColumn in a new thread to allow the ui thread to be updated
	// with the cursor/onclick
	window.setTimeout(function () {
		sortColumn(fakeEvent);
		// once done resore cursor and onclick
		table.style.cursor = oldCursor;
		table.onclick = oldClick;
	}, 100);
}

function sortColumn(e,obj,allowPage,pagePosition) {

try{
	
		var tmp = e.target ? e.target : e.srcElement;
		
		////var o = e.srcElement;
		////var b = o.parentElement;
		////if(b!=obj.rows[0])
			////return;
		
		////var trs =obj.rows;
		////var tHeadParent = trs[0];
		
		var tbl = document.getElementById(obj);	
		var trs;	
		
		if (allowPage=="0") 
		{
			trs = tbl.rows;	
		}	
		
		if (allowPage=="1") 
		{
			if (pagePosition=="0")
			{
				//分页在上
				trs = new Array();
				
				for(var i=0;i<tbl.rows.length-1;i++)
				{
					trs[i] = tbl.rows[i+1];
				}			
			}
			
			if (pagePosition=="1")
			{
				//分页在下
				trs = new Array();				
				
				for(var i=0;i<tbl.rows.length-1;i++)
				{
					trs[i] = tbl.rows[i];
				}	
			}
		}
		
			
		
		var tHeadParent = trs[0];	
		
		var el = getParent(tmp, "TD");

		if (tHeadParent == null)
			return;
			
		if (el != null) {
			var p = el.parentNode;
			var i;

			// typecast to Boolean
			el._descending = !Boolean(el._descending);

			if (tHeadParent.arrow != null) {
				if (tHeadParent.arrow.parentNode != el) {
					tHeadParent.arrow.parentNode._descending = null;	//reset sort order		
				}
				tHeadParent.arrow.parentNode.removeChild(tHeadParent.arrow);
			}

			if (el._descending)
				tHeadParent.arrow = arrowUp.cloneNode(true);
			else
				tHeadParent.arrow = arrowDown.cloneNode(true);

			el.appendChild(tHeadParent.arrow);

				

			// get the index of the td
			var cells = p.cells;
			var l = cells.length;
			for (i = 0; i < l; i++) {
				if (cells[i] == el) break;
			}

			var table = getParent(el, "TABLE");
			// can't fail
			
			sortTable(table,i,el._descending, el.getAttribute("type"),trs);		
			
		}
		
	}
	catch(err)
	{
		alert("Error Name:"+err.name+"\n"+"Error Message:"+err.message);
		return false;
		
		/***************************
		Error.name的六种值对应的信息：
		1. EvalError：eval()的使用与定义不一致 
		2. RangeError：数值越界 
        3. ReferenceError：非法或不能识别的引用数值
        4. SyntaxError：发生语法解析错误
        5. TypeError：操作数类型错误
        6. URIError：URI处理函数使用不当
		
		*****************************/	
	}
}


function getInnerText(el) {

	if (ie5) 		
		if (el!=undefined) {
		return el.innerText;	//Not needed but it is faster
		}
	
	var str = "";
	
	//alert(el);
	
	if (el!=undefined) {
	
		var cs = el.childNodes;
		var l = cs.length;
		for (var i = 0; i < l; i++) {
			switch (cs[i].nodeType) {
				case 1: //ELEMENT_NODE
					str += getInnerText(cs[i]);
					break;
				case 3:	//TEXT_NODE
					str += cs[i].nodeValue;
					break;
			}
		}
	}
	
	return str;
}
function getParent(el, pTagName) {
	if (el == null) return null;
	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())	// Gecko bug, supposed to be uppercase
		return el;
	else
		return getParent(el.parentNode, pTagName);
}

/////////////////////////////////////////////排序版本2 结束



/// <summary>
/// 选择table中的某行 设置背景色
/// </summary>
/// <param name="obj">this</param>
/// <param name="dataGridID">DataGridID</param>
function SelectTheRow(obj,dataGridID)
{
	if (document.getElementById(dataGridID)!=null) 
	{
		var childs = document.getElementById(dataGridID).rows; 
		for(var i=1;i<childs.length;i++)
		{
			var child = childs[i];
			
			//alert(child.className);
			
			if( child.className != "fixedTitleRow" )
			{
				child.style.backgroundColor ="#fefefe";
			}	
		}
		
		obj.style.backgroundColor='ffcc99';
	}

	
}



function GetCheckedString(controlID,checkBoxID,controlType)
{
	try
	{
		var objControl = document.getElementById(controlID);
	
		if (objControl==null)
		{
			alert("控件:"+controlID+"不存在！");
			return false;
		}
		
		var str = "";
		
		switch(controlType.toLowerCase())
		{
			case "grid" ://"DataGrid"类型
			
				var num = document.forms[0].elements.length;
				var obj;
				var objType;
				var objName;						
									
				var arrayList;					
				var objCheckBox;	
				var checkBoxRef;			

				for(var a=0;a<num;a++)
				{
					obj = document.forms[0].elements[a];
					objType = obj.type;
					objName = obj.name;	
					
					if(objType=="checkbox" && objName.indexOf(":")!=-1)
					{									
						arrayList = objName.split(":");
						if(arrayList[0]==controlID)
						{							
							checkBoxRef = arrayList[0]+"_"+arrayList[1]+"_"+Trim(checkBoxID);
							objCheckBox = document.getElementById(checkBoxRef);							

							if (objCheckBox.checked)
							{
								str = str + "'" +Trim(objCheckBox.value)+"',";
							}
						}								
					}								
				}	
				
				str = str.substring(0,str.length-1);
				
				return str;			
			
			break;
			
			default :
				alert("控件类型出错，请检查！");
				return false;	
		
		}
		
	}
	catch(err)
	{
		alert("Error Name:"+err.name+"\n"+"Error Message:"+err.message);
		return false;		
	}
	
}




