//XML数据显示类
var xmldisp_vers="1.0";
var szNotUpdateable="";
var iUpKey=38, iDownKey=40; 

new xmlDisplay(null,null,null);
xmlDisplay.prototype.fldcnt=0;
xmlDisplay.prototype.rows=0;
xmlDisplay.prototype.bDontPost=0;
xmlDisplay.prototype.scrolloffs=0;
xmlDisplay.prototype.page=0;
xmlDisplay.prototype.fldfirst=0;
xmlDisplay.prototype.KeyMap=null;
xmlDisplay.prototype.focusflag=0;

xmlDisplay.prototype.s = "";
//methods
xmlDisplay.prototype.getFldDes=function(i){return this.src.Fields.Field[this.names[i]];}
xmlDisplay.prototype.selectRow=function(r){
	var pos=this.page*this.rows+r+this.scrolloffs;
	return this.src.setPos(pos);
	}

xmlDisplay.prototype.getValue=GridGetValue;

xmlDisplay.prototype.putValue=GridPutValue;

xmlDisplay.prototype.getRow=GridGetRow;
xmlDisplay.prototype.valchanged=GridValChanged;
xmlDisplay.prototype.setFocus=GridSetFocus;
xmlDisplay.prototype.xvalidate=GridValidate; 
xmlDisplay.prototype.scroll=GridScroll;
xmlDisplay.prototype.refr=GridRefr;
//public
xmlDisplay.prototype.post=GridPost;
xmlDisplay.prototype.postall=function(){if (this.src.forcepost()) return;this.post();}
xmlDisplay.prototype.removeRow=GridDelete;
xmlDisplay.prototype.newRow=GridNew;
xmlDisplay.prototype.undo=GridUndo;

xmlDisplay.prototype.search=SearchKey;
xmlDisplay.prototype.getID=getid;
xmlDisplay.prototype.toText=ToText;
xmlDisplay.prototype.frText=FrText;
xmlDisplay.prototype.Find=Find;
xmlDisplay.prototype.findclass=findclass;
xmlDisplay.prototype.Find1=Find1;
xmlDisplay.prototype.findclass1=findclass1;
xmlDisplay.prototype.attribute_walk=attribute_walk;
xmlDisplay.prototype.tree_walk=tree_walk;
xmlDisplay.prototype.getHead=getHead;
xmlDisplay.prototype.getFoot=getFoot;

xmlDisplay.prototype.first=GridFirst;
xmlDisplay.prototype.last=GridLast;
xmlDisplay.prototype.pgup=pgBackw;
xmlDisplay.prototype.pgdown=pgForw;
xmlDisplay.prototype.up=GridUp;//pre-rec
xmlDisplay.prototype.down=GridDown;//next-rec
xmlDisplay.prototype.left=GridL;//prev-field
xmlDisplay.prototype.right=GridR;//next-field
xmlDisplay.prototype.sort=function(n){if(this.src.forcepost())return;var i;for(i=0;i<this.fldcnt;i++){if (this.names[i]==n){this.fCol=i;break;}}this.src.sort(n);this.first();}
xmlDisplay.prototype.xfocus=GridFocus;
xmlDisplay.prototype.keys=GridKeys;
xmlDisplay.prototype.setKeyMap=GridSetKeys;
xmlDisplay.prototype.OnError=function(s){alert(s);return null;}

var fset=0;

function xmlDisplay(src,fldids,names,rstate)
{
//this.s = "<?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"yes\"?>  <DATAPACKET Version=\"2.0\"><METADATA>";
this.s = "";
this.src=src;
this.fldids=fldids;
this.names=names;
this.rstate=rstate;

//if(src==null||src.doc=="") return null;
if(src==null) return null; 
src.regobj(this);
//if(names){this.fldcnt=names.length}else{if(fldids){this.fldcnt=fldids.length}else{this.fldcnt=this.src.FieldCnt}};
if(fldids){this.fldcnt=fldids.length}else{if(names){this.fldcnt=names.length}else{this.fldcnt=this.src.FieldCnt}};
this.rows= 0;
var i;
for(i=0;i<this.fldcnt;i++)
{
 var ref=fldids[i]; 
 
// var t=ref.type;if(t==null)t=ref[0].type;
// if(t=="text"||t=="textarea")
// {
  var l=ref.length;
  if(isNaN(l)) l=1;
  if(this.rows==0) this.rows=l;
  if(l!=this.rows){this.OnError(names[i]+": inconsistent row-count");if(l<this.rows) this.rows=l;}
// }


 var f=this.getFldDes(i);
 if(f==null) { return this.OnError(names[i]+": name not found in rowset");}
 if(this.rows != 0){
 if(this.rows == 1)
 {
  if(ref.setAttribute)
  {
	  //ref.innerText = szNotUpdateable;
	 ref.setAttribute(szNotUpdateable,1);
//   if(f.readonly==1) ref.setAttribute(szNotUpdateable,1);
//   if(f.maxlength>0&&f.Type!=szUni) ref.setAttribute("maxLength",f.maxlength);
  }
 }
 else
 {
  var j;
  for(j=0;j<ref.length;j++)
  {
   if(ref[j].setAttribute)
   {
	 ref[j].setAttribute(szNotUpdateable,1);

//    if(f.readonly==1) ref[j].setAttribute(szNotUpdateable,1);
//   if(f.maxlength>0) ref[j].setAttribute("maxLength",f.maxlength);
   }
  }
 }
 }
 if(f.readonly==1&&i==this.fldfirst) this.fldfirst++;
}
this.fRow=0;
this.fCol=0;
//Init
this.selectRow(0);

this.refr(1);
if(fset==0&&this.src.parent==null){this.setFocus(0,this.fldfirst);fset++;}
//this.keys=GridKeys;
if(this.rows==1)
{
this.setKeyMap(iUpKey,"left");
this.setKeyMap(iDownKey,"right");
}
else
{
this.setKeyMap(iUpKey,"up");
this.setKeyMap(iDownKey,"down");
}
this.setKeyMap(33,"pgup");
this.setKeyMap(34,"pgdown");
this.setKeyMap(45,"newRow");
this.setKeyMap(13,"right"); 
return this;
}

function GridKeys(el)
{
var e,k;
e=self.event;
if(!e) return true;
if(e!=null){k=e.keyCode;}else{k=e.which;}
 
var found=false;
var r,c;

for(c=0;c<this.fldcnt;c++)
{
 var ref=this.fldids[c];
 if(this.rows==1){if (ref==el) found= true;}
 else
 {
  for(r=0; r<this.rows;r++)
   {if(ref[r]==el){found=true; break;}}
 }
 if(found) break;
} 
if(!found) return true;

if(this.KeyMap==null) return true;
var a=this.KeyMap[k.toString()];
if(a==null||this[a]==null){return true;}
a="this."+a+"();";
eval(a);
return true;  
}

function GridL()
{
var r=this.fRow,c=this.fCol;
do{if(c>0)c--;else c=this.fldcnt-1;}
while(this.getFldDes(c).readonly==1&&c!=this.fCol)
this.setFocus(r,c);
}

function GridR()
{
var r=this.fRow,c=this.fCol;
do{if(c< this.fldcnt-1)c++;else c=0;}
while(this.getFldDes(c).readonly==1&&c!=this.fCol)
this.setFocus(r,c);
}

function GridDown()
{
var r=this.fRow, c=this.fCol;
if(this.rows==1){this.pgdown();return;}
if(r<this.rows-1){r++;}else{this.scroll(1);return;}
this.setFocus(r,c);
}

function GridUp()
{
var r=this.fRow,c=this.fCol;
if(this.rows==1){this.pgup();return;}
if(r>0) r--;else{this.scroll(-1);return;}
this.setFocus(r,c);
}

function pgBackw()
{
if(this.page>0||this.scrolloffs)
{
// if(this.src.forcepost()) return;
 if(this.page) this.page--;else{this.fRow+=this.scrolloffs-this.rows;this.scrolloffs=0}
 if(this.scrolloffs<0&&this.page==0){this.scrolloffs=0;this.fRow=0;}
 if(this.rows==1) this.selectRow(0);
 else this.refr(1);
}
else {this.fRow=0;}
this.setFocus(this.fRow, this.fCol);
}

function pgForw()
{
if(this.rows*(this.page+2)<this.src.RowCnt) 
{
// if(this.src.forcepost()) return;
 this.page++;
 if(this.rows==1) this.selectRow(0);else this.refr(1);
}
else{this.last();return;}
this.setFocus(this.fRow,this.fCol);
}

function GridScroll(inc)
{
if(inc>0)
{
 if(this.page*this.rows+this.fRow+this.scrolloffs>=this.src.RowCnt) return;
 if(this.scrolloffs==this.rows-1){this.scrolloffs=0;this.page++;}
 else this.scrolloffs++;
}
else
{
 if(-this.scrolloffs==this.rows-1){if(this.page>0){this.scrolloffs=0;this.page--;}}
 else{this.scrolloffs--;if(this.page*this.rows+this.scrolloffs<0)this.scrolloffs=0}
}
var r=this.fRow;
this.selectRow(r);
this.refr(1);
this.setFocus(r,this.fCol);
}

function GridSetFocus(r,c)
{
if(c>=this.fldcnt||r>=this.rows) return;
var ref=this.fldids[c];
if(this.rows>1) ref=ref[r];
if(ref.disabled||ref.readonly) return; 
/*
if(ref.focus!=null){
	this.focusflag=1;//ref.focus();
	if(this.focusflag==1)this.xfocus(r,c);
	}
*/
}

function GridFocus(r,c)
{
var ref;
this.focusflag=0;
if(c==null)
{ 
 if(r==null){r=this.fRow;c=this.fCol;ref=this.fldids[c];}
 else
 {
  var i,j,ref,found=0;
  for(j=0;j<this.fldcnt;j++)
  {
   ref=this.fldids[j];
   if(this.rows==1){if(ref==r){r=0;c=j;found=1;break;}}   
   else for(i=0;i<this.rows;i++) if(ref[i]==r){r=i;c=j;found=1;break;}
   if(found) break;
  }  
  if(found==0)return;
 }
}
else ref=this.fldids[c];
if(this.rows>1) ref=ref[r];
var f=this.getFldDes(c);
var p=this.page*this.rows+this.scrolloffs;
if(f&&f.readonly==1)
{
 if(ref.getAttribute&&ref.getAttribute("disabled")==true){}//explorer only
 else ref.blur();
 return;
}
else
{
 if(r!=this.fRow&&this.bDontPost==0)
 {if(this.src.noIns!=0&&(p+r)>=this.src.RowCnt){ref.blur();return;}
   if(this.src.forcepost()!=0)return;
 }
 if(c!=this.fCol){if(this.src.noUpd!=0&&p+this.fRow<this.src.RowCnt&&this.valchanged(p,this.fRow,this.fCol)!=0){this.refr(1);}
     else if(this.valchanged(p,this.fRow,this.fCol)!=0&&this.xvalidate(this.fRow,this.fCol,0)==0)return;}
 this.fRow=r;
 this.fCol=c;
 if(this.rows>1) this.selectRow(r);
 if(ref.select!=null) ref.select();
 this.bDontPost=0;
}
}

function GridUndo()
{
var r=this.fRow;
if(r==-1) return;
var pos=this.page*this.rows+r+this.scrolloffs;
if(pos>=0&&pos<this.src.RowCnt)
{
 this.src.undo(pos);
 if(pos&&pos>=this.src.RowCnt) this.last();
 else this.setFocus(r,this.fCol);
}
if(pos>=this.src.RowCnt){this.refr(1);this.last();}
}

function GridNew()
{
if(this.src.noIns) return;
if(this.src.forcepost()) return;
var pages=0,r=this.src.RowCnt%this.rows;
pages=(this.src.RowCnt-r)/this.rows;
if(r==0&&pages)
{
 if(this.rows==1) pages++;
 else this.scrolloffs=1;
 r=this.rows-1;
 this.page=pages-1;
}
else{this.scrolloffs=0;this.page=pages;}
this.refr(1);
this.setFocus(r,this.fldfirst);
}

function GridFirst()
{
//if(this.src.forcepost()) return;
this.scrolloffs=0;
this.page=0;
if(this.rows==1) this.selectRow(0);else{if(this.src.pos!=0)this.src.pos =0;this.refr(1);}
this.setFocus(0,this.fCol);
}

function GridLast()
{
//if(this.src.forcepost()) return;
var r=this.src.RowCnt%this.rows ;
pages=(this.src.RowCnt-r)/this.rows;
if(r==0){r=this.rows-1;this.page=pages-1;this.scrolloffs=0;}
else{this.scrolloffs=0;this.page=pages;r--;}

if(this.rows==1) this.selectRow(0);
else this.refr(1);
var t = this.src.RowCnt-this.rows;
this.setFocus(t,this.fCol);
}

function GridValChanged(pos,r,c)
{
var f=this.getFldDes(c);
var val="";
if(pos+r<this.src.RowCnt)
{if(f){val=f.Value(pos+r);if(val) val=f.todisp(val);}}
else
{
 if(this.getValue(c,r)!="")return 1;
 return 0;
}
var gval=this.getValue(c,r);
if(val==gval) return 0;
 
if(f&&(f.Type=="string"||f.Type==szUni||f.subtype=="Text"))
  if(txtnorm(val)==txtnorm(gval)) return 0;
if(f&&f.readonly==1){this.OnError(f.name+" : Cannot change readonly field");return 0;}
return 1;
}

function txtnorm(s){var v=new Array();v=s.split("\r\n");s=v.join(" ");v=s.split("\n");s=v.join(" ");v=s.split("\r");s=v.join(" ");return s;}

function GridValidate(r,c,q)
{
if(this.bDontPost) return 0;
var ref;
if(c==null)
{ 
 var i,j,ref,found=0;
 for(j=0;j<this.fldcnt;j++)
 {
  ref=this.fldids[j];
  if(this.rows==1){if (ref==r) {r=0;c=j;found=1;break;}}   
  else for(i=0;i<this.rows;i++) if(ref[i]==r){r=i;c=j;found=1;break;}
  if(found) break;
 }  
 if(found==0) return 1;
}

var v=this.getValue(c,r);
var f=this.getFldDes(c);
var res="";
if(f){if(f.required!=0&&v==""&&q==0)res=v;else res=f.validate(v);}
if(res!=null){v=res;this.putValue(c,r,v);return 1;}

this.setFocus(r,c);
return 0;
}

function GridGetRow(row)
{
var i,f,v,r=new Array();
for(i=0;i<this.fldcnt;i++)
{
 v=this.getValue(i,row);
 f=this.getFldDes(i);
 if(f) r[this.names[i]]=f.frdisp(v);
}
return r;
}

function GridPutValue(col,row,val)
{
var ref=this.fldids[col];
var a = this.getID(row);
var f = this.getFldDes(col);
/*	for(var i=0;i<customs_class.length;i++)
	{
		if(f.name == customs_class[i])
		{
			ref.innerHTML = "<a herf='#' class='c' onclick='"+this.find(f.name,'')+"'>"+val+"</a>";
		}
	}

if(this.rows==1)
{

 if(ref.type=="select-one"){var le=ref.length,i;for(i=0;i<le;i++)if(ref[i].value==val)ref[i].selected=true;else ref[i].selected=false;}else
 if(ref.type=="text"||ref.type=="textarea"||ref.type=="select-one") ref.value=val;
 else
 if(ref[0].type=="radio")
 {
  var i;
  for(i=0;i<ref.length;i++)
  {
   if(ref[i].value==val){ref[i].checked=true; break;}
   else ref[i].checked=false;
  } 
 }
}
else ref[row].value = val;
*/
if(this.rows == 1)
	{
	if(col == 1)
		{
			ref.innerHTML = "<a href='"+a+".htm' class='c'>"+val+"</a>";
		}
		else
		{
			
			if(col != 0) 
			{
				var t = false;
				/*
				for(var i=0;i<customs_class.length;i++)
				{
					if(f.name == customs_class[i])
					{
						//alert(f.name);
						ref.innerHTML = "<a href='#' class='c' onclick=\"javascript:check1('"+f.name+"','"+f.Value(row)+"')\">"+val+"</a>";
						t = true;
						break;
					}
				}
				if(!t)ref.innerHTML = val;
				*/
				ref.innerHTML = val;
			}
			else
				ref.value = val;
		}
		document.all.DataGrid1.innerHTML = "<a href=\"#\" onclick=\"car('"+a+"')\" class='c'>购物</a>";
	}
	else
	{
		if(col == 1)
		{
			//var a = this.getID(row);
			ref[row].innerHTML = "<a href='"+a+".htm' class='c'>"+val+"</a>";
		}
		else
		{
			if(col != 0)
			{
				var t = false;
				/*
				for(var i=0;i<customs_class.length;i++)
				{
					if(f.name == customs_class[i])
					{
						//alert(f.name);
						ref[row].innerHTML = "<a href='#' class='c' onclick=\"javascript:check1('"+f.name+"','"+f.Value(row)+"')\">"+val+"</a>";
						t = true;
						break;
					}
				}
				if(!t)ref[row].innerHTML = val;*/
				ref[row].innerHTML = val;
			}
			else
				ref[row].value = val;
		}
		document.all.DataGrid1[row].innerHTML = "<a href=\"#\" onclick=\"car('"+a+"')\" class='c'>购物</a>";
	}
//ref.innerText = val + " " ;
}
function GridGetValue(col,row)
{
var ref=this.fldids[col];
if(this.rows==1)
{
/*
 if(ref.type=="select-one"){var le=ref.length,i;for(i=0;i<le;i++)if(ref[i].selected)return ref[i].value;return ""}
 if(ref.type=="text"||ref.type=="textarea") return ref.value;
 if(ref[0].type=="radio")
 {
  var i;
  for(i=0;i<ref.length;i++)
  {if(ref[i].checked==true) return ref[i].value;}
 }
 return "";
 */
 if(col == 1)
	return ref.innerHTML;
 else
	{
	 if(col !=0)
		 return ref.innerHTML;
	 else
		 return ref.value;
	}
}
else
	{
/*
if(ref[row].type=="select-one") 
{return ref[row].options[ref[row].selectedIndex].value}
else return ref[row].value;
}*/
 if(col == 1)
 return ref[row].innerHTML;
 else{
	 if(col !=0)
		return ref[row].innerHTML;
	 else
	 return ref[row].value;
 }
	}
}

function GridDelete()
{
if(this.src.noDel) return;
if(this.src.forcepost()) return;
var r=this.fRow;
if(r==-1) return;
var pos=this.page*this.rows+r+this.scrolloffs;
if(pos>=0&&pos<this.src.RowCnt)
{
 this.src.deletex(pos);
 if(pos&&pos>=this.src.RowCnt) this.last();
 else this.setFocus(r,this.fldfirst);
}
}

function GridRefr(r)
{
if(r==0&&this.rows>1) return;
var i,j, pos;
if(r==2){this.scrolloffs=0;this.fRow=0;this.page=0}
if(this.rows==1) {if (this.page<this.src.RowCnt){pos=this.src.pos;this.page=pos;}else pos=this.page}
else 
{
//这里处理最后一页也显示设定的记录条数
	var count = parseInt(this.src.RowCnt/this.rows) + (r==0?0:1);
	if(this.page >= count-1)
	{
		pos = this.src.RowCnt-this.rows;
	}
//结束
	else
	{
		pos=this.page*this.rows+this.scrolloffs;
	}
}
if(pos<0) pos=0;

for(i=0;i<this.rows;i++)
{
for(j=0;j<this.fldcnt;j++)
{
 var val="";
 if(pos<this.src.RowCnt)
 {
  var f=this.getFldDes(j);
  if(f)
	  {
		  val=f.Value(pos);
//		  alert(val);
		  if(val)val=f.todisp(val);
	  }
 }
 this.putValue(j,i,val);
}
/*
if(this.rstate)
{
 var st=this.src.RowState(pos);
 if(this.rows==1) this.rstate.value=st;else this.rstate[i].value=st;
}
*/
pos++;
}
}

function GridPost()
{
if(this.bDontPost) return 1;
var src=this.src;
var j,r=this.fRow,pos=this.page*this.rows+this.scrolloffs;
var bMod=0,err=0,bIns=(pos+r>=src.RowCnt)?1:0;
var row=null;

for(j=0;j<this.fldcnt;j++)
{
 if(this.valchanged(pos,r,j))
 { 
  if((bIns==0&&src.noUpd!=0)||(bIns!=0&&src.noIns)){this.refr(1);return 0;}
  f=this.getFldDes(j);
  if(f&&f.readonly!=0)continue;
  bMod=1;
  if(this.xvalidate(r,j,1)==0) return 1;
  if(row==null)row=new Array();
  var f,v;
  v=this.getValue(j,r);
  if(f)row[this.names[j]]=f.frdisp(v);
 }
}
if(bMod)
{
 if(bIns)
 {
  for(j=0;j<this.fldcnt;j++) if(this.xvalidate(r,j,1)==0) return 1;
 }
 if(bIns==0){err=src.modify(pos+r,row);}else{err=src.insert(row,1);}
}
return err;
}

function GridSetKeys(key,action,param)
{
	if(this.KeyMap==null) this.KeyMap=new Array();
	this.KeyMap[key.toString()]=action;
}

function SearchKey(colname,key)
{
	var rowstr = "";
	for(i=0;i<this.src.RowCnt;i++)
	{
		for(j=0;j<this.fldcnt;j++)
		{
		 var val="";
		  var f=this.getFldDes(j);
		  if(f.name==colname)
			{
		  if(f)
			  {
				  val=f.Value(i);
				  if(val)val=f.todisp(val);
				  if(val.indexOf(key) != -1)
				  {
					//找到符合条件的记录存储
					rowstr += "<ROW";
					for(m=0;m<this.fldcnt;m++)
					  {
						var h = this.getFldDes(m);
						rowstr += " "+h.name+"=\""+this.frText(h.Value(i))+"\"";
					  }
					rowstr += " />"; 
				  }
			  }
			  break;
			}
		}
	}
	return rowstr;
}

function getid(r)
{
	var val="";
	var f=this.getFldDes(0);
var r1=this.src.RowCnt%this.rows ;
pages=(this.src.RowCnt-r1)/this.rows;
pages --;
if (r1 != 0)
{
	pages ++;
}
var row = "";
	if(this.page == pages)
	{
		if(pages == 0)
			row = r;		
		else
			row = this.src.RowCnt-this.rows +r;
	}
	else
	{
		row = this.page*this.rows + r;
	}
	val=f.Value(row);
/*
var r=this.src.RowCnt%this.rows ;
pages=(this.src.RowCnt-r)/this.rows;
if(r==0){r=this.rows-1;this.page=pages-1;this.scrolloffs=0;}
else{this.scrolloffs=0;this.page=pages;r--;}

if(this.rows==1) this.selectRow(0);
else this.refr(1);
var t = this.src.RowCnt-this.rows;
this.setFocus(t,this.fCol);
*/

	return val;
}

function ToText(str)
{
if(str.indexOf("&")==-1) return str;
var s=new Array();
str+=" ";//Netscape4 bug
s=str.split("&lt;");
str=s.join("<");
s=str.split("&gt;");
str=s.join(">");
s=str.split("&quot;");
str=s.join("\"");
s=str.split("&apos;");
str=s.join("\'");
s=str.split("&amp;");
str=s.join("&");
s=str.split("&#009;");
str=s.join("\t");

s=str.split("&#013;&#010;");
str=s.join("\r\n");
//single new-lines:
s=str.split("&#010;");
str=s.join("\r\n");
s=str.split("&#013;");
str=s.join("\r");
s=str.split("&#092;");
str=s.join("\\");

while((iBeg=str.indexOf("&#"))!=-1){
if((iEnd=str.indexOf(";"))!=-1){
s1=str.substring(0,iBeg);s2=str.substring(iEnd+1,str.length+1);
val=parseInt(str.substring(iBeg+2,iEnd));
if(!isNaN(val)){s=String.fromCharCode(val);str=s1+s+s2;}}
}
return str.substring(0,str.length-1);
}
 
function FrText(str)
{
var s=new Array();
str=str+" ";//Netscape4 bug !
s=str.split("&");
str=s.join("&amp;");
s=str.split("<");
str=s.join("&lt;");
s=str.split(">");
 
str=s.join("&gt;");
s=str.split("\"");
str=s.join("&quot;");
s=str.split("\'");
str=s.join("&apos;");

s=str.split("\\");
str=s.join("&#092;");
s=str.split("\t");
str=s.join("&#009;");
s=str.split("\n");
str=s.join("&#010;");
s=str.split("\r");
str=s.join("&#013;");
return str=str.substring(-1,str.length-1);
}

function Find(colname,key)
{
	var str = "<?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"yes\"?>  <DATAPACKET Version=\"2.0\"><METADATA>";
	var XMLBroker1_Doc = new ActiveXObject("MSXML2.DOMDocument.3.0");//取具体数据
	XMLBroker1_Doc.async = false;
	XMLBroker1_Doc.load(data1);
	XMLBroker1_RS = new xmlRowSet(XMLBroker1_Doc, null, null);
	this.src = XMLBroker1_RS;
	var rowstr1 =  this.search(colname,key);
	str += this.getHead() + rowstr1 + this.getFoot();
	XMLBroker1_Doc.loadXML(str);
    XMLBroker1_RS = new xmlRowSet(XMLBroker1_Doc, null, null);
	//this.src = XMLBroker1_RS;
	DataGrid1_Disp = new xmlDisplay(XMLBroker1_RS, this.fldids, this.names,this.rstate);
	xml_ready=true;
var o = document.all.table1;
var t = document.all.thin;
if(typeof(o) == "undefined" || typeof(t) == "undefined") error += "去掉了必要标签<span id=\"thin\"></span>\r\n";
var trs = "";
var rows = o.rows.length;//行数
var cells = o.rows(0).cells.length;//列数
	if(DataGrid1_Disp.rows > XMLBroker1_RS.RowCnt)
	{
		if(XMLBroker1_RS.RowCnt <1)
		{
			document.all.thin.innerHTML = "<center>没有记录</center>";
			document.all.layersearch.innerHTML = "";
		}
		else
		{
			var decrows = Math.floor((DataGrid1_Disp.rows-XMLBroker1_RS.RowCnt)/cells);
			var rowindex =  DataGrid1_Disp.rows/cells-decrows-1;
			var over = (DataGrid1_Disp.rows-XMLBroker1_RS.RowCnt)%cells;

for(var i= 0;i<rownums/cells;i++)
{
	document.all.table1.rows[i].style.display = "";
	for(var j=0;j<cells;j++)
	{
		document.all.table1.rows[i].cells[j].children(0).style.display = "";
	}
}
			if(decrows>0)
			{
				for(var i=rowindex;i<rownums/cells-1;i++)
				{
					document.all.table1.rows[i+1].style.display = "none";
				}
			}
			if(over>0)
			{

				for(var i=0;i<over;i++)
				{
				var cell = cells-i-1;

				try{
					var oChild=document.all.table1.rows[rowindex].cells[cell].children(0);
					oChild.style.display = "none";
				}
				catch(e)
					{
					}
				}
			}
		}
	}
//如果不是产品栏目运行以下代码。
if(typeof(includecart) == "undefined")includecart = "0";
if(includecart == "0")
{
	var count = DataGrid1_Disp.rows > XMLBroker1_RS.RowCnt ? XMLBroker1_RS.RowCnt:DataGrid1_Disp.rows;
if(XMLBroker1_RS.RowCnt > 0)
{
	if(count > 0)
	{
		for(var i=0;i<count;i++)
		{
			try
			{
				document.all.DataGrid1[i].style.display = "none";
			}
			catch(e)
			{
				document.all.DataGrid1.style.display = "none";
			}
		}
	}
	else
	{
			document.all.DataGrid1.style.display = "none";
	}
}
}
	disppage();
}

//结果中查询
function Find1(colname,key)
{
	var str = "<?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"yes\"?>  <DATAPACKET Version=\"2.0\"><METADATA>";
	var XMLBroker1_Doc = new ActiveXObject("MSXML2.DOMDocument.3.0");//取具体数据
	XMLBroker1_Doc.async = false;
	//XMLBroker1_Doc.load(data1);
	//XMLBroker1_RS = new xmlRowSet(XMLBroker1_Doc, null, null);
	//this.src = XMLBroker1_RS;
	var rowstr1 =  this.search(colname,key);
	str += this.getHead() + rowstr1 + this.getFoot();
	XMLBroker1_Doc.loadXML(str);
    XMLBroker1_RS = new xmlRowSet(XMLBroker1_Doc, null, null);
	DataGrid1_Disp = new xmlDisplay(XMLBroker1_RS, this.fldids, this.names,this.rstate);
	xml_ready=true;
var o = document.all.table1;
var t = document.all.thin;
if(typeof(o) == "undefined" || typeof(t) == "undefined") error += "去掉了必要标签<span id=\"thin\"></span>\r\n";
var trs = "";
var rows = o.rows.length;//行数
var cells = o.rows(0).cells.length;//列数
	if(DataGrid1_Disp.rows > XMLBroker1_RS.RowCnt)
	{
		if(XMLBroker1_RS.RowCnt <1)
		{
			document.all.thin.innerHTML = "<center>没有记录</center>";
			document.all.layersearch.innerHTML = "";
		}
		else
		{
			var decrows = Math.floor((DataGrid1_Disp.rows-XMLBroker1_RS.RowCnt)/cells);
			var rowindex =  DataGrid1_Disp.rows/cells-decrows-1;
			var over = (DataGrid1_Disp.rows-XMLBroker1_RS.RowCnt)%cells;
for(var i= 0;i<rownums/cells;i++)
{
	document.all.table1.rows[i].style.display = "";
	for(var j=0;j<cells;j++)
	{
		document.all.table1.rows[i].cells[j].children(0).style.display = "";
	}
}
			if(decrows>0)
			{
				for(var i=rowindex;i<rownums/cells-1;i++)
				{
					document.all.table1.rows[i+1].style.display = "none";
				}
			}
			if(over>0)
			{
				for(var i=0;i<over;i++)
				{
				try{
				var cell = cells-i-1;
					var oChild=document.all.table1.rows[rowindex].cells[cell].children(0);
					oChild.style.display = "none";
				}
				catch(e)
					{
					}
				}
			}
		}
	}
//如果不是产品栏目运行以下代码。
if(typeof(includecart) == "undefined")includecart = "0";
if(includecart == "0")
{
	var count = DataGrid1_Disp.rows > XMLBroker1_RS.RowCnt ? XMLBroker1_RS.RowCnt:DataGrid1_Disp.rows;
if(XMLBroker1_RS.RowCnt > 0)
{
	if(count > 0)
	{
		for(var i=0;i<count;i++)
		{
			try
			{
				document.all.DataGrid1[i].style.display = "none";
			}
			catch(e)
			{
				document.all.DataGrid1.style.display = "none";
			}
		}
	}
	else
	{
			document.all.DataGrid1.style.display = "none";
	}
}
}
	disppage();
}



function attribute_walk(node)
{
  for  (m=0; m<node.attributes.length; m++)
  {
    attrib = node.attributes.item(m);
	this.s += " ";
	this.s += attrib.name;
	this.s += "=\"";
	this.s += attrib.nodeValue;
	this.s += "\"";
  }
  if(node.nodeType ==1)
  {
	this.s += "/>";
  }
  return this.s;
} //end attribute_walk

function tree_walk(node) {

for (current=0; current<node.childNodes.length; current++) 
{
  child=node.childNodes.item(current);
  if (child.nodeType<3)
  {
	  this.s += "<";
	  this.s += child.nodeName;
  }
  if (child.nodeType==1)
  { 
    if (child.attributes.length>0)
	{
      this.attribute_walk(child);
    }
	else
	{
		this.s += ">";
	}
  }
  if (child.hasChildNodes)
  {
    depthList[depth]=current;
    depth=depth+1;
    this.tree_walk(child);
    depth=depth-1;
    current=depthList[depth];
  }
  else
  {
  }
}
return this.s;
}

function getHead()
{
	depth=0;
	depthList = new Array();
	var nod = XMLBroker1_Doc.documentElement.childNodes.item(0);
	this.s += this.tree_walk(nod);
	this.s = this.s.substr(0,this.s.length);
	this.s += "</FIELDS></METADATA><ROWDATA>";
return this.s;
}

function getFoot()
{
	var foot = "</ROWDATA></DATAPACKET>";
	return foot;
}

function findclass(colname,key)
{
	this.Find(colname,key);
}

function findclass1(colname,key)
{
	this.Find1(colname,key);
}
