.net server control is almost feature complete and functional. All .net examples...
[infodrom/rico3] / ricoClient / js / rico_min.js
index b48b3fa..cdc61e0 100644 (file)
@@ -1547,7 +1547,6 @@ this.loadXMLDoc(g.name)
 }}};
 if(typeof Rico=="undefined"){throw ("GridCommon requires the Rico JavaScript framework")
 }Rico.GridCommon={baseInit:function(){this.options={saveColumnInfo:{width:true,filter:false,sort:false},cookiePrefix:"RicoGrid.",allowColResize:true,windowResize:true,click:null,dblclick:null,contextmenu:null,menuEvent:"dblclick",defaultWidth:-1,scrollBarWidth:19,minScrollWidth:100,frozenColumns:0,exportWindow:"height=400,width=500,scrollbars=1,menubar=1,resizable=1,location=0,toolbar=0,status=0",exportStyleList:["background-color","color","text-align","font-weight","font-size","font-family"],exportImgTags:false,exportFormFields:true,FilterLocation:null,FilterAllToken:"___ALL___",columnSpecs:[]};
-this.colWidths=[];
 this.hdrCells=[];
 this.headerColCnt=0;
 this.headerRowIdx=0;
@@ -1938,7 +1937,7 @@ a++){b.push(escape(c.filterValues[a]))
 }d.push("f"+e+":"+b.join("~"))
 }}Rico.setCookie(this.options.cookiePrefix+this.tableId,d.join(","),this.options.cookieDays,this.options.cookiePath,this.options.cookieDomain)
 }};
-Rico.ColumnConst={UNFILTERED:0,SYSTEMFILTER:1,USERFILTER:2,UNSORTED:0,SORT_ASC:"ASC",SORT_DESC:"DESC",MINWIDTH:10,DOLLAR:{type:"number",prefix:"$",decPlaces:2,ClassName:"alignright"},EURO:{type:"number",prefix:"€",decPlaces:2,ClassName:"alignright"},PERCENT:{type:"number",suffix:"%",decPlaces:2,multiplier:100,ClassName:"alignright"},QTY:{type:"number",decPlaces:0,ClassName:"alignright"},DEFAULT:{type:"showTags"}};
+Rico.ColumnConst={UNFILTERED:0,SYSTEMFILTER:1,USERFILTER:2,UNSORTED:0,SORT_ASC:"ASC",SORT_DESC:"DESC",MINWIDTH:10};
 Rico.TableColumnBase=function(){};
 Rico.TableColumnBase.prototype={baseInit:function(h,g,e,d){Rico.log("TableColumnBase.init index="+g+" tabIdx="+d);
 this.liveGrid=h;
@@ -1961,14 +1960,9 @@ this.mouseMoveHandler=Rico.eventHandle(this,"handleMouseMove");
 this.mouseUpHandler=Rico.eventHandle(this,"handleMouseUp");
 this.mouseOutHandler=Rico.eventHandle(this,"handleMouseOut");
 this.fieldName="col"+this.index;
+this.format={type:"text"};
 var b=h.options.columnSpecs[g];
-this.format=Rico.extend({},Rico.ColumnConst.DEFAULT);
-switch(typeof b){case"object":if(typeof b.format=="string"){Rico.extend(this.format,Rico.ColumnConst[b.format.toUpperCase()])
-}Rico.extend(this.format,b);
-break;
-case"string":if(b.slice(0,4)=="spec"){b=b.slice(4).toUpperCase()
-}if(typeof Rico.ColumnConst[b]=="object"){Rico.extend(this.format,Rico.ColumnConst[b])
-}break
+if(typeof b=="object"){Rico.extend(this.format,b)
 }Rico.addClass(this.dataColDiv,this.colClassName());
 this.visible=true;
 if(typeof this.format.visible=="boolean"){this.visible=this.format.visible
@@ -1999,19 +1993,10 @@ Rico.eventBind(a,"mousedown",this.mouseDownHandler,false)
 if(b.length>0){return b[0].innerHTML
 }else{return Rico.stripTags(a.innerHTML)
 }},_clear:function(a){a.innerHTML=" "
-},clearCell:function(d){var c=this.cell(d);
-this._clear(c,d);
-if(!this.liveGrid.buffer){return
-}var b=this.liveGrid.buffer.options.acceptAttr;
-for(var a=0;
-a<b.length;
-a++){switch(b[a]){case"style":c.style.cssText="";
-break;
-case"class":c.className="";
-break;
-default:c["_"+b[a]]="";
-break
-}}},dataTable:function(){return this.liveGrid.tabs[this.tabIdx]
+},clearCell:function(b){var a=this.cell(b);
+this._clear(a,b);
+if(this.liveGrid.buffer&&this.liveGrid.buffer.options.acceptStyle){a.style.cssText=""
+}},dataTable:function(){return this.liveGrid.tabs[this.tabIdx]
 },numRows:function(){return this.dataColDiv.childNodes.length
 },clearColumn:function(){var b=this.numRows();
 for(var a=0;
@@ -2332,9 +2317,10 @@ this.foundRowCount=false;
 this.totalRows=0;
 this.rowcntContent="";
 this.rcvdOffset=-1;
-this.options={fixedHdrRows:0,canFilter:true,isEncoded:true,acceptAttr:[]};
+this.options={fixedHdrRows:0,canFilter:true,isEncoded:true,acceptStyle:false};
 Rico.extend(this.options,a||{});
-if(b){this.loadRowsFromTable(b,this.options.fixedHdrRows)
+if(b){this.loadRowsFromTable(b,this.options.fixedHdrRows);
+b.parentNode.removeChild(b)
 }else{this.clear()
 }},registerGrid:function(a){this.liveGrid=a
 },setTotalRows:function(a){if(typeof(a)!="number"){a=this.size
@@ -2348,11 +2334,11 @@ case"datamax":this.liveGrid.setPageSize(a);
 break;
 default:this.liveGrid.updateHeightDiv();
 break
-}},loadRowsFromTable:function(h,g){var e=new Array();
+}},loadRowsFromTable:function(h,g){var e=[];
 var a=h.getElementsByTagName("tr");
 for(var d=g||0;
 d<a.length;
-d++){var f=new Array();
+d++){var f=[];
 var c=a[d].getElementsByTagName("td");
 for(var b=0;
 b<c.length;
@@ -2369,35 +2355,17 @@ a++){b[c][a]=b[c][a].toString()
 this.startPos=0;
 this.size=this.baseRows.length
 },dom2jstable:function(f){Rico.log("dom2jstable: encoded="+this.options.isEncoded);
-var e=new Array();
+var e=[];
 var a=f.getElementsByTagName("tr");
 for(var d=0;
 d<a.length;
-d++){var g=new Array();
+d++){var g=[];
 var c=a[d].getElementsByTagName("td");
 for(var b=0;
 b<c.length;
 b++){g[b]=Rico.getContentAsString(c[b],this.options.isEncoded)
 }e.push(g)
 }return e
-},dom2jstableAttr:function(e,b){var h=this.options.acceptAttr;
-Rico.log("dom2jstableAttr start, # attr="+h.length);
-var f=new Array();
-var g=e.getElementsByTagName("tr");
-for(var d=b||0;
-d<g.length;
-d++){var m=new Array();
-var l=g[d].getElementsByTagName("td");
-for(var c=0;
-c<l.length;
-c++){m[c]={};
-for(var a=0;
-a<h.length;
-a++){m[c]["_"+h[a]]=l[c].getAttribute(h[a])
-}if(Rico.isIE){m[c]._class=l[c].getAttribute("className")
-}}f.push(m)
-}Rico.log("dom2jstableAttr end");
-return f
 },_blankRow:function(){var a=[];
 for(var b=0;
 b<this.liveGrid.columns.length;
@@ -2479,8 +2447,8 @@ this.windowPos=b
 },bufferRow:function(a){return this.windowStart+a
 },getWindowCell:function(c,b){var a=this.bufferRow(c);
 return this.isVisible(a)&&b<this.rows[a].length?this.rows[a][b]:null
-},getWindowAttr:function(c,b){var a=this.bufferRow(c);
-return this.attr&&this.isVisible(a)&&b<this.attr[a].length?this.attr[a][b]:null
+},getWindowStyle:function(c,b){var a=this.bufferRow(c);
+return this.attr&&this.isVisible(a)&&b<this.attr[a].length?this.attr[a][b]:""
 },getWindowValue:function(b,a){return this.getWindowCell(b,a)
 },setWindowValue:function(d,b,c){var a=this.bufferRow(d);
 if(a>=this.windowEnd){return false
@@ -2495,7 +2463,7 @@ if(typeof a=="string"){this.rows[d][b]._style=a
 return true
 },getRows:function(f,d){var e=f-this.startPos;
 var a=Math.min(e+d,this.size);
-var c=new Array();
+var c=[];
 for(var b=e;
 b<a;
 b++){c.push(this.rows[b])
@@ -2735,7 +2703,7 @@ this.highlightDiv[b].style[b%2==0?"height":"width"]="0px"
 }}for(b=0;
 b<3;
 b++){this.tabs[b]=document.createElement("table");
-this.tabs[b].className="ricoLG_table";
+this.tabs[b].className=(b<2)?"ricoLG_table":"ricoLG_scrollTab";
 this.tabs[b].border=0;
 this.tabs[b].cellPadding=0;
 this.tabs[b].cellSpacing=0;
@@ -2743,7 +2711,7 @@ this.tabs[b].id=this.tableId+"_tab"+b
 }for(b=0;
 b<2;
 b++){this.thead[b]=this.tabs[b].createTHead();
-Rico.addClass(this.tabs[b],"ricoLG_top");
+this.thead[b].className="ricoLG_top";
 if(Rico.theme.gridheader){Rico.addClass(this.thead[b],Rico.theme.gridheader)
 }}for(b=0;
 b<2;
@@ -2792,12 +2760,12 @@ var j,d=this.filterId(h);
 var i=l.getElementsByTagName("div");
 var g=Rico.getStyle(this.cell(0,h),"textAlign");
 i[1].style.textAlign=g;
-switch(f.filterUI.charAt(0)){case"t":j=Rico.createFormField(i[1],"input","text",d,d);
+switch(f.filterUI.charAt(0)){case"t":j=Rico.createFormField(i[1],"input",Rico.inputtypes.search?"search":"text",d,d);
 var n=f.filterUI.match(/\d+/);
 j.maxLength=f.Length||50;
 j.size=n?parseInt(n,10):10;
-i[1].appendChild(Rico.clearButton(Rico.eventHandle(e,"filterClear")));
-if(e.filterType==Rico.ColumnConst.USERFILTER&&e.filterOp=="LIKE"){var k=e.filterValues[0];
+if(j.type!="search"){i[1].appendChild(Rico.clearButton(Rico.eventHandle(e,"filterClear")))
+}if(e.filterType==Rico.ColumnConst.USERFILTER&&e.filterOp=="LIKE"){var k=e.filterValues[0];
 if(k.charAt(0)=="*"){k=k.substr(1)
 }if(k.slice(-1)=="*"){k=k.slice(0,-1)
 }j.value=k;
@@ -2925,7 +2893,7 @@ e<g.length;
 e++){a=g[e].cells;
 for(j=0,d=0;
 a.length>0;
-j++){if(a[0].className=="ricoFrozen"){if(e==this.headerRowIdx){this.options.frozenColumns=j+1
+j++){if(Rico.hasClass(a[0],"ricoFrozen")){if(e==this.headerRowIdx){this.options.frozenColumns=j+1
 }}else{d=1
 }this.thead[d].rows[e].appendChild(a[0])
 }}}Rico.log("loadHdrSrc end")
@@ -3488,9 +3456,9 @@ Rico.LiveGridColumn=function(a,d,c,b){this.initialize(a,d,c,b)
 Rico.LiveGridColumn.prototype={initialize:function(liveGrid,colIdx,hdrInfo,tabIdx){Rico.extend(this,new Rico.TableColumnBase());
 this.baseInit(liveGrid,colIdx,hdrInfo,tabIdx);
 this.buffer=liveGrid.buffer;
-if(typeof(this.format.type)!="string"||this.format.EntryType=="tinyMCE"){this.format.type="raw"
+if(typeof(this.format.type)!="string"||this.format.EntryType=="tinyMCE"){this.format.type="html"
 }if(typeof this.isNullable!="boolean"){this.isNullable=/number|date/.test(this.format.type)
-}this.isText=/raw|text|showTags/.test(this.format.type);
+}this.isText=/html|text/.test(this.format.type);
 Rico.log(" sortable="+this.sortable+" filterable="+this.filterable+" hideable="+this.hideable+" isNullable="+this.isNullable+" isText="+this.isText);
 this.fixHeaders(this.liveGrid.tableId,this.options.hdrIconsFirst);
 if(this["format_"+this.format.type]){this._format=this["format_"+this.format.type]
@@ -3611,8 +3579,6 @@ b++){this.mFilterInputs[b].checked=a
 },mFilterOtherClick:function(a){this.mFilterInputs[0].checked=false;
 this.mFilterChange=true
 },format_text:function(a){if(typeof a!="string"){return"&nbsp;"
-}else{return Rico.stripTags(a)
-}},format_showTags:function(a){if(typeof a!="string"){return"&nbsp;"
 }else{return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")
 }},format_number:function(a){if(typeof a=="undefined"||a==""||a==null){return"&nbsp;"
 }else{return Rico.formatNumber(a,this.format)
@@ -3620,7 +3586,7 @@ this.mFilterChange=true
 }else{var b=Rico.setISO8601(a);
 if(!b){return a
 }return(this.format.prefix||"")+Rico.formatDate(b,this.format.dateFmt||"translateDateTime")+(this.format.suffix||"")
-}},format_UTCasLocalTime:function(a){if(typeof a=="undefined"||a==""||a==null){return"&nbsp;"
+}},format_utcaslocaltime:function(a){if(typeof a=="undefined"||a==""||a==null){return"&nbsp;"
 }else{var c=new Date();
 var b=Rico.setISO8601(a,-c.getTimezoneOffset());
 if(!b){return a
@@ -3649,31 +3615,19 @@ this.hdrCellDiv.appendChild(this.imgSort)
 }if(!this.format.filterUI){Rico.eventBind(this.imgFilter,"click",Rico.eventHandle(this,"filterClick"),false)
 }},filterClick:function(a){if(this.filterType==Rico.ColumnConst.USERFILTER&&this.filterOp=="LIKE"){this.liveGrid.openKeyword(this.index)
 }},getValue:function(a){return this.buffer.getWindowCell(a,this.index)
-},getBufferAttr:function(a){return this.buffer.getWindowAttr(a,this.index)
+},getBufferStyle:function(a){return this.buffer.getWindowStyle(a,this.index)
 },setValue:function(b,a){this.buffer.setWindowValue(b,this.index,a)
 },_format:function(a){return a
 },_display:function(a,b){b.innerHTML=this._format(a)
 },_export:function(a){return this._format(a)
 },exportBuffer:function(a){return this._export(this.buffer.getValue(a,this.index))
-},displayValue:function(f){var a=this.getValue(f);
-if(a==null){this.clearCell(f);
+},displayValue:function(c){var a=this.getValue(c);
+if(a==null){this.clearCell(c);
 return
-}var e=this.cell(f);
-this._display(a,e,f);
-var d=this.buffer.options.acceptAttr;
-if(d.length==0){return
-}var c=this.getBufferAttr(f);
-if(c==null){return
-}for(var b=0;
-b<d.length;
-b++){c=c["_"+d[b]]||"";
-switch(d[b]){case"style":e.style.cssText=c;
-break;
-case"class":e.className=c;
-break;
-default:e["_"+d[b]]=c;
-break
-}}}};
+}var b=this.cell(c);
+this._display(a,b,c);
+if(this.buffer.options.acceptStyle){b.style.cssText=this.getBufferStyle(c)
+}}};
 Rico.TableColumn={};
 Rico.TableColumn.checkboxKey=function(a){this.initialize(a)
 };
@@ -3881,8 +3835,8 @@ this.sortmenu.addMenuItemId("gridmenuSortAsc",function(){d.sortAsc()
 this.sortmenu.addMenuItemId("gridmenuSortDesc",function(){d.sortDesc()
 },true)
 }this.filtermenu.clearMenu();
-if(d.canFilter()&&!d.format.filterUI&&(!b||d.filterType==Rico.ColumnConst.USERFILTER)){this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",d.displayName),this.filtermenu,false);
-d.userFilter=d.getValue(a);
+if(d.canFilter()){this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",d.displayName),this.filtermenu,false);
+if(!d.format.filterUI&&(!b||d.filterType==Rico.ColumnConst.USERFILTER)){d.userFilter=d.getValue(a);
 if(d.filterType==Rico.ColumnConst.USERFILTER){this.filtermenu.addMenuItemId("gridmenuRemoveFilter",function(){d.setUnfiltered(false)
 },true);
 if(d.filterOp=="LIKE"){this.filtermenu.addMenuItemId("gridmenuChgKeyword",function(){o.openKeyword(i)
@@ -3899,16 +3853,13 @@ if(d.isText){this.filtermenu.addMenuItemId("gridmenuContains",function(){o.openK
 },true)
 }this.filtermenu.addMenuItemId("gridmenuExclude",function(){d.setFilterNE()
 },true)
-}}if(o.filterCount()>0){this.filtermenu.addMenuItemId("gridmenuRefresh",function(){o.filterHandler()
-},true);
-this.filtermenu.addMenuItemId("gridmenuRemoveAll",function(){o.clearFilters()
+}}}if(o.filterCount()>0){this.filtermenu.addMenuItemId("gridmenuRemoveAll",function(){o.clearFilters()
 },true)
-}}else{if(o.filterCount()>0){this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",d.displayName),this.filtermenu,false);
-this.filtermenu.addMenuItemId("gridmenuRemoveAll",function(){o.clearFilters()
+}this.filtermenu.addMenuItemId("gridmenuRefresh",function(){o.filterHandler()
 },true)
-}}this.exportmenu.clearMenu();
-if(f.printVisibleSQL&&typeof(f.dataSource)=="string"){this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
-this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisibleSQL("html")
+}this.exportmenu.clearMenu();
+if(n>0){this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
+if(f.printVisibleSQL&&typeof(f.dataSource)=="string"){this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisibleSQL("html")
 });
 this.exportmenu.addMenuItemId("gridmenuExportAll2Web",function(){f.printAllSQL("html")
 },f.totalRows<=n);
@@ -3917,7 +3868,7 @@ this.exportmenu.addMenuItemId("gridmenuExportVis2SS",function(){f.printVisibleSQ
 });
 this.exportmenu.addMenuItemId("gridmenuExportAll2SS",function(){f.printAllSQL("xl")
 },f.totalRows<=n)
-}else{if(n>0&&m>0){this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
+}else{this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
 this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisible()
 });
 this.exportmenu.addMenuItemId("gridmenuExportAll2Web",function(){f.printAll()
@@ -3993,7 +3944,7 @@ d[h]=a
 },clearTimer:function(){if(typeof this.timeoutHandler!="number"){return
 }window.clearTimeout(this.timeoutHandler);
 delete this.timeoutHandler
-},jsUpdate:function(a,c,f,b,d){this.clearTimer();
+},jsUpdate:function(a,c,e,b,d){this.clearTimer();
 this.processingRequest=false;
 Rico.log("jsUpdate: "+arguments.length);
 if(d){Rico.log("jsUpdate: received error="+d);
@@ -4004,14 +3955,14 @@ if(typeof b=="number"){this.rowcntContent=b.toString();
 this.rcvdRowCount=true;
 this.foundRowCount=true;
 Rico.log("jsUpdate: found RowCount="+this.rowcntContent)
-}this.updateBuffer(a,c,f);
+}this.updateBuffer(a,c,e);
 if(this.options.onAjaxUpdate){this.options.onAjaxUpdate()
 }this.updateGrid(a);
 if(this.options.TimeOut&&this.timerMsg){this.restartSessionTimer()
-}if(this.pendingRequest>=-1){var e=this.pendingRequest;
-Rico.log("jsUpdate: found pending request for offset="+e);
+}if(this.pendingRequest>=-1){var f=this.pendingRequest;
+Rico.log("jsUpdate: found pending request for offset="+f);
 this.pendingRequest=-2;
-this.fetch(e)
+this.fetch(f)
 }},ajaxUpdate:function(a,c){this.clearTimer();
 this.processingRequest=false;
 if(c.status!=200){Rico.log("ajaxUpdate: received http error="+c.status);
@@ -4035,25 +3986,27 @@ o.loadXML(f.responseText.substring(m+3))
 }if(!o){alert("Data provider returned an invalid XML response");
 Rico.log("Data provider returned an invalid XML response");
 return false
-}var e=o.getElementsByTagName("ajax-response");
-if(e==null||e.length!=1){return false
-}this.rcvdRows=0;
+}var d=o.getElementsByTagName("ajax-response");
+if(d==null||d.length!=1){alert("Received invalid response from server");
+return false
+}Rico.log("Processing ajax-response");
+this.rcvdRows=0;
 this.rcvdRowCount=false;
-var c=e[0];
-var a=c.getElementsByTagName("debug");
+var b=d[0];
+var a=b.getElementsByTagName("debug");
 for(var g=0;
 g<a.length;
 g++){Rico.log("ajaxUpdate: debug msg "+g+": "+Rico.getContentAsString(a[g],this.options.isEncoded))
-}var l=c.getElementsByTagName("error");
-if(l.length>0){var d=Rico.getContentAsString(l[0],this.options.isEncoded);
-alert("Data provider returned an error:\n"+d);
-Rico.log("Data provider returned an error:\n"+d);
+}var l=b.getElementsByTagName("error");
+if(l.length>0){var c=Rico.getContentAsString(l[0],this.options.isEncoded);
+alert("Data provider returned an error:\n"+c);
+Rico.log("Data provider returned an error:\n"+c);
 return false
-}var j=c.getElementsByTagName("rows")[0];
+}var j=b.getElementsByTagName("rows")[0];
 if(!j){Rico.log("ajaxUpdate: invalid response");
 this.liveGrid.showMsg(Rico.getPhraseById("invalidResponse"));
 return false
-}var n=c.getElementsByTagName("rowcount");
+}var n=b.getElementsByTagName("rowcount");
 if(n&&n.length==1){this.rowcntContent=Rico.getContentAsString(n[0],this.options.isEncoded);
 this.rcvdRowCount=true;
 this.foundRowCount=true;
@@ -4062,10 +4015,24 @@ Rico.log("ajaxUpdate: found RowCount="+this.rowcntContent)
 this.rcvdOffset=j.getAttribute("offset");
 Rico.log("ajaxUpdate: rcvdOffset="+this.rcvdOffset);
 var h=this.dom2jstable(j);
-var b=(this.options.acceptAttr.length>0)?this.dom2jstableAttr(j):false;
+var e=(this.options.acceptStyle)?this.dom2jstableStyle(j):false;
 this.rcvdRows=h.length;
-this.updateBuffer(k,h,b);
+this.updateBuffer(k,h,e);
 return true
+},dom2jstableStyle:function(e,b){var a=this.options.acceptStyle;
+Rico.log("dom2jstableStyle start");
+var f=[];
+var g=e.getElementsByTagName("tr");
+for(var d=b||0;
+d<g.length;
+d++){var k=[];
+var h=g[d].getElementsByTagName("td");
+for(var c=0;
+c<h.length;
+c++){k[c]=h[c].getAttribute("style")||""
+}f.push(k)
+}Rico.log("dom2jstableStyle end");
+return f
 },processResponseJSON:function(a,d){var c=Rico.getJSON(d);
 if(!c||c==null){alert("Data provider returned an invalid JSON response");
 Rico.log("Data provider returned an invalid JSON response");
@@ -4081,7 +4048,7 @@ this.rcvdRowCount=true;
 this.foundRowCount=true;
 Rico.writeDebugMsg("loadRows, found RowCount="+c.rowcount)
 }this.rcvdRows=c.rows.length;
-this.updateBuffer(a,c.rows);
+this.updateBuffer(a,c.rows,c.styles);
 return true
 },updateBuffer:function(c,a,b){this.baseRows=a;
 this.attr=b;
@@ -4266,7 +4233,6 @@ this.grid=b;
 this.options={maxDisplayLen:20,panelHeight:200,panelWidth:500,compact:false,RecordName:Rico.getPhraseById("record"),updateURL:window.location.href,showSaveMsg:"errors"};
 Rico.extend(this.options,b.options);
 var a=this;
-this.hasWF2=(document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("WebForms","2.0"));
 this.menu=b.menu;
 this.menu.options.dataMenuHandler=function(d,f,g,e){return a.editMenu(d,f,g,e)
 };
@@ -4285,7 +4251,7 @@ Rico.eventBind(document,"click",Rico.eventHandle(this,"clearSaveMsg"));
 this.extraMenuItems=[];
 this.responseHandler=function(){a.processResponse()
 };
-Rico.log("Rico.TableEdit.initialize complete, hasWF2="+this.hasWF2)
+Rico.log("Rico.TableEdit.initialize complete")
 },createKeyArray:function(){this.keys=[];
 for(var a=0;
 a<this.grid.columns.length;
@@ -4471,7 +4437,7 @@ case"D":if(!b.isNullable){b.required=true
 }if(!b.Help){b.Help=b.dateFmt
 }if(typeof b.min=="string"){b.min=Rico.setISO8601(b.min)||new Date(b.min)
 }if(typeof b.max=="string"){b.max=Rico.setISO8601(b.max)||new Date(b.max)
-}if(this.hasWF2){e=Rico.createFormField(f,"input","date",a,a);
+}if(Rico.inputtypes.date){e=Rico.createFormField(f,"input","date",a,a);
 e.required=b.required;
 if(b.min){e.min=Rico.toISO8601String(b.min,3)
 }if(b.max){e.max=Rico.toISO8601String(b.max,3)
@@ -4482,7 +4448,7 @@ b.SelectCtl=null
 break;
 case"I":if(!b.isNullable){b.required=true
 }if(!b.pattern){b.pattern="int-signed"
-}if(this.hasWF2){e=Rico.createFormField(f,"input","number",a,a);
+}if(Rico.inputtypes.number){e=Rico.createFormField(f,"input","number",a,a);
 e.required=b.required;
 e.min=b.min;
 e.max=b.max;