

function CCodeThatTable(name){var t=this;t.name=name;t.def={datatype:0,data:[]};t.rows=[];t.cols=[];t.cells=[];t.keyCol=0;t.sortCol=-1;t.sortType=1;t.rowIndex=[];t.page=1;t.amountPerPage=-1;t.rowStyle={};t.tableStyle={};t.rowHandler=null;t.rowStart=-1;t.rowHover=-1;t.imgSortAsc="<";t.imgSortDesc=">";t.imgSortAscActive="<font color=#ff0000><<font>";t.imgSortDescActive="<font color=#ff0000>><font>";t.imgMultiSortAscActive="<font color=#0000ff><<font>";t.imgMultiSortDescActive="<font color=#0000ff>><font>";t.imgFirstPage="<<";t.imgLastPage=">>";t.imgPrevPage="<";t.imgNextPage=">";t.resetSortControl="Reset ordinamento";t.resetMarkControl="Reset selezione";t.resetSearchControl="Reset ricerca";t.amountControl="N° Righe: ";t.searchControl="Ricerca: ";t.searchValue="";t.useMultiSort=0;t.useSort=1;t.useAmountPanel=1;t.useSearchPanel=1;t.usePagePanel=1;t.useResetPanel=1;t.multiSortCol=[];t.multiSortType=[];t.vr=[];t.pageCount=1;ua.oldB=(ua.oldOpera||ua.nn4);ua.br=(ua.oldOpera)?1:((ua.nn4)?2:0);};{var CGp=CCodeThatTable.prototype;CGp.makeStyle=function(obj,param,cssName){var css;if(Def(css=makeCssClass(obj[param]))){cssName=makeNameUnique(cssName);obj[param]=cssName;css="\n."+cssName+"{"+css+"}";};
return css;};CGp.init=function(datatype,data){var t=this,rowCount=0,colCount=0,r=t.rows.length;switch(parseInt(datatype)){case 0:break;case 1:data=t.fromCSV(data);break;case 2:data=t.fromCSVFile(data);break;case 3:data=t.fromXMLFile(data);break;case 4:data=t.fromXML(data);break;default:data=[];};t.rows=[];t.rowIndex=[];rowCount=data.length;t.cols=[];colCount=(rowCount)?data[0].length:0;t.cells=[];for(i=0;i<rowCount;i++){t.rows[i]=new CCodeThatRow(t,i);t.rowIndex[i]=i;if(data[i].constructor!=Array)data[i]=data[i].data;if(data[i].constructor!=Array)data[i]=new Array(data[i]);};if(!colCount&&Def(t.def.colDef))colCount=t.def.colDef.length;for(i=0;i<colCount;i++)t.cols[i]=new CCodeThatColumn(t,i,t.def.colDef[i]);for(i=0;i<rowCount;i++){t.cells[i]=[];for(j=0;j<colCount;j++)t.cells[i][j]=new CCodeThatCell(t.rows[i],t.cols[j],data[i][j]);};if(t.amountPerPage<=0)t.amountPerPage=rowCount;if(r!=t.rows.length&&!ua.oldOpera)t.paint();};CGp.loadData=function(tableDef){var t=this,style="",imgs=[],data=[],datatype=0,d;if(Def(tableDef))t.def=tableDef;if(Def(t.def.datatype))datatype=t.def.datatype;if(Def(t.def.data))data=t.def.data;if(ua.oldB)if(datatype>1){alert("Can't load data from file for old browser!");datatype=0;data=[];};for(i in t){if((i.indexOf("Style")>-1)&&t[i].constructor==Object){if(Def(t.def[i]))t[i]=t.def[i];for(j in t[i]){if(j.indexOf("Class")>-1)style+=t.makeStyle(t[i],j,'');};};if(Def(t.def[i])){if(i.indexOf("use")==0)eval('t[i] = '+t.def[i]);if(i.indexOf("Control")>-1)t[i]=makeControl(t.def[i]);if(i.indexOf("img")>-1){t[i]=makeImgTag(t.def[i],i,t[i]);imgs[imgs.length]=t[i].src;}};};for(i=0;Def(t.def.colDef)&&i<t.def.colDef.count;i++){style+=t.makeStyle(t.def.colDef[i].titleClass,"titleClass","title"+i+"_");style+=t.makeStyle(t.def.colDef[i].titleClass,"cellClass","cell"+i+"_");};if(Def(style))dw("<style>"+style+"</style>");t.amountPerPage=t.def.amountPerPage;if(Def(t.def.keyCol))t.keyCol=t.def.keyCol;t.rowHandler=t.def.rowHandler;t.init(datatype,data);};CGp.fromCSV=function(s,spt){var t=this,d=[],i;if(Undef(spt))spt=";";if(ua.oldB)d=s.split("\n");else d=s.split(/\r?\n/);for(i=0;i<d.length;i++)d[i]=d[i].split(spt);
return d;};CGp.fromCSVFile=function(s,spt){var t=this,d=[],doc=null,r,i,c;if(ua.oldB||Undef(s))
return d;if(window.ActiveXObject){doc=new ActiveXObject("Microsoft.XMLDOM");doc.async=0;doc.load(s);doc=doc.documentElement.text;};if(window.XMLHttpRequest){r=new XMLHttpRequest;r.open("GET",s,0);if(Def(r.overrideMimeType))r.overrideMimeType("text/xml");r.send(null);if(!r.responseXML)
return d;doc=r.responseXML.documentElement.firstChild.nodeValue;};if(ua.opera7&&Def(w)&&Def(w.document)&&w.document.readyState=='complete'){doc=w.document.getElementsByTagName("data")[0].firstChild.nodeValue;};if(Def(doc)){d=this.fromCSV(doc,spt);if(Def(w)&&!w.closed){w.close();w=null;curId=0;}
return d;};if(Undef(w)){w=window.open(s);window.focus();};if(curId<10)window.setTimeout(t.name+".init(2, '"+s+"')",1000);else{if(confirm(curId+" tries to access to file "+s+". \nDo you wish try again?")){curId=0;window.setTimeout(t.name+".init(2, '"+s+"')",1000);}else{alert("Can't load data from file "+s+"!");if(Def(w)&&!w.closed){w.close();w=null;curId=0;};};};curId++;
return d;};CGp.fromXML=function(x){var t=this,d=[];if(Undef(x)||x.indexOf("<?")==-1)
return d;var xml=new CXMLTree(x),i,j,f;xml=xml.toObject();xml=xml.data;if(Def(xml.row)){xml=xml.row;if(Undef(xml))
return d;if(xml.constructor!=Array)xml=[xml];for(i=0;i<xml.length;i++){d[i]=[];f=xml[i].field;if(Undef(f))continue;if(f.constructor!=Array)f=[f];for(j=0;j<f.length;j++){d[i][j]=(Undef(f[j].__value))?"":f[j].__value;};};}else{for(i in xml)if(i.indexOf("value")>-1&&Def(xml[i]))x=xml[i];d=t.fromCSV(x);};
return d;};CGp.fromXMLField=function(f){var e="";if(ua.ie)e=(Def(f.text))?f.text:"";else e=(Def(f.firstChild))?f.firstChild.nodeValue:"";
return e;};CGp.fromXMLFile=function(x){var t=this,d=[],doc=null,row,r,i,j;if(ua.oldB||Undef(x))
return d;if(window.ActiveXObject){doc=new ActiveXObject("Microsoft.XMLDOM");doc.async=0;doc.load(x);};if(window.XMLHttpRequest){r=new XMLHttpRequest;r.open("GET",x,0);if(Def(r.overrideMimeType))r.overrideMimeType("text/xml");r.send(null);if(!r.responseXML)
return d;doc=r.responseXML.documentElement;};if(ua.opera7&&Def(w)&&Def(w.document)&&w.document.readyState=='complete'){doc=w.document;};if(Def(doc)){for(i=0;i<doc.getElementsByTagName("row").length;i++){d[d.length]=[];row=doc.getElementsByTagName("row")[i];for(j=0;j<row.getElementsByTagName("field").length;j++)d[i][j]=t.fromXMLField((ua.moz)?row.getElementsByTagName("field")[j]:row.getElementsByTagName("field").item(j));};if(Def(w)&&!w.closed){w.close();w=null;curId=0;}
return d;};if(Undef(w)){w=window.open(x);window.focus();};if(curId<10)window.setTimeout(t.name+".init(3, '"+x+"')",1000);else{if(confirm(curId+" tries to access to file "+x+". \nDo you wish try again?")){curId=0;window.setTimeout(t.name+".init(3, '"+x+"')",1000);}else{alert("Can't load data from file "+x+"!");if(Def(w)&&!w.closed){w.close();w=null;curId=0;};};};curId++;
return d;};CGp.getKeyArray=function(keyCol){var name=keyCol,t=this;if(keyCol.constructor==String&&isNaN(parseInt(keyCol))){keyCol=t.getColByTitle(keyCol);};if(keyCol<0||keyCol>=t.cols.length){alert("No such column "+name+" in table!");
return;};var keyArray=[];for(i=0;i<t.rows.length;i++){if(t.rows[i].isMark)keyArray[keyArray.length]=t.cells[i][keyCol].getDataForFilter();};
return keyArray;};CGp.setKeyArray=function(keyCol,keyArray){var name=keyCol,t=this;if(keyCol.constructor==String&&isNaN(parseInt(keyCol))){keyCol=t.getColByTitle(keyCol);};if(keyCol<0||keyCol>=t.cols.length){alert("No such column "+name+" in table!");
return;};if(keyArray.constructor!=Array||keyArray.length==0){keyArray=[];};t.search(1);for(i=0;i<t.rows.length;i++){if(keyArray.length>0&&keyArray.indexOf(t.cells[i][keyCol].getDataForFilter())==-1){t.rows[i].isVisible=0;};};t.setPage(1);};CGp.getColByTitle=function(title){var colIdx=-1,t=this;for(i=0;i<t.cols.length;i++){if(t.cols[i].title==title){colIdx=i;break;};};
return colIdx;};CGp.toHTML=function(){var t=this,h="<form name=\"f"+t.name+"\"><table cellpadding="+t.tableStyle.cellpadding+" cellspacing="+t.tableStyle.cellspacing+" border="+t.tableStyle.border+" class=\""+t.tableStyle.tableClass+"\">",s="",s1="",s2="",a="",f="",i,j,k,useAutoFilter=0,idx;h+="<tr><th colspan=\""+t.cols.length+"\" nowrap class=\""+t.tableStyle.thClass+"\">"+t.utilsToHTML()+"</th></tr>";h+="<tr>";for(i=0;i<t.cols.length;i++){a=((Def(t.cols[i].titleClass))?" class=\""+t.cols[i].titleClass+"\"":" class=\""+t.tableStyle.thClass+"\"");if(t.cols[i].isVisible)h+="<th "+a+" "+t.cols[i].width+"><div nowrap>"+t.cols[i].titleToHTML()+"</div></th>";if(t.cols[i].useAutoIndex&&!t.cols[i].index.length)t.setIndex(i);if(t.cols[i].useAutoFilter&&!t.cols[i].filter.length)t.cols[i].setFilter();useAutoFilter=useAutoFilter||t.cols[i].useAutoFilter;}h+="</tr>";if(useAutoFilter){h+="<tr>";for(i=0;i<t.cols.length;i++){if(t.cols[i].isVisible)h+="<th class=\""+t.tableStyle.thClass+"\">"+t.cols[i].filterToHTML()+"</th>";};h+="</tr>";};if(!t.vr.length){for(i=0;i<t.rowIndex.length;i++)if(t.rows[t.rowIndex[i]].isVisible)t.vr[t.vr.length]=t.rowIndex[i];}a=t.amountPerPage;k=0;t.pageCount=((t.vr.length%a==0)?(t.vr.length/a):(Math.floor(t.vr.length/a)+1));s=(t.page-1)*a;f=(t.page*a<t.vr.length)?t.page*a:t.vr.length;for(i=s;i<f;i++){idx=t.vr[i];if(s1==t.rowStyle.darkClass)s1=t.rowStyle.lightClass;else s1=t.rowStyle.darkClass;t.rows[idx].css=s1;if(t.rows[idx].isMark)s2=t.rowStyle.markClass;else s2=s1;a=" class=\""+s2+"\" onClick=\""+t.name+".rows["+idx+"].setMark();\""+" onMouseOver=\""+t.name+".rows["+idx+"].setHover();\"";if(k==0)h+="<tr id=\""+t.name+"_row_"+idx+"\""+a+">";else h+="</tr><tr id=\""+t.name+"_row_"+idx+"\""+a+">";for(j=0;j<t.cols.length;j++){if(t.cols[j].isVisible&&Def(t.cells[idx][j]))h+="<td "+t.cols[j].alignment+" class='"+((Def(t.cols[j].cellClass))?t.cols[j].cellClass:((ua.nn4)?s2:""))+"'>"+t.cells[idx][j].getData()+"</td>";}k++;};h+="</tr>";if(t.usePagePanel)h+="<tr><th colspan=\""+t.cols.length+"\" class=\""+t.tableStyle.thClass+"\">"+t.pageTurnToHTML()+"</th></tr>";h+="</table></form>";
return h;};CGp.pageTurnToHTML=function(){var t=this,c=t.pageCount,h="",i;if(c>1){h=" <a href=\""+this.setAction("setPage",1)+"\">"+t.imgFirstPage+"</a> &nbsp; ";if(t.page>1)h+=" <a href=\""+t.setAction("setPage",(t.page-1))+"\">"+t.imgPrevPage+"</a> &nbsp; ";if(!ua.oldB){h+=" <select name=\""+t.getID("pt")+"\" onChange=\""+t.name+".setPage(this.value);\">";for(i=1;i<=c;i++){h+="<option value=\""+i+"\"";if(t.page==i)h+=" selected ";h+=">"+((i-1)*t.amountPerPage+1)+"-"+((i*t.amountPerPage<t.vr.length)?(i*t.amountPerPage):t.vr.length)+"</option>";}h+="</select>";};if(t.page<c)h+=" &nbsp; <a href=\""+this.setAction("setPage",(t.page*1+1))+"\">"+t.imgNextPage+"</a>";h+=" &nbsp; <a href=\""+this.setAction("setPage",c)+"\">"+t.imgLastPage+"</a>";}else{if(!t.vr.length)h+="";else h+=((t.page-1)*t.amountPerPage+1)+"-"+((t.page*t.amountPerPage<t.vr.length)?(t.page*t.amountPerPage):t.vr.length);};
return h;};CGp.utilsToHTML=function(){var t=this,h="",a;if(t.useResetPanel){h+=" &nbsp; <a href=\""+t.setAction("resetSort","")+"\">"+t.resetSortControl+"</a>"+" &nbsp; <a href=\""+t.setAction("setSearch","")+"\">"+t.resetSearchControl+"</a>";if(!ua.nn4&&!ua.oldOpera)h+=" &nbsp; <a href=\""+t.setAction("resetMark","")+"\">"+t.resetMarkControl+"</a>";h+="<br><br>";};if(t.useSearchPanel){h+=t.searchControl+"<input type=\"text\" maxlength=\"256\" value=\""+t.searchValue+"\" name=\"search\" ";if(!ua.nn4)h+="style=\"width:200px;\" onKeyPress=\"keyPress(this.form.b1);\"";h+="> ";a=t.setAction("setSearch","document.forms[f"+t.name+"].search.value");if(a.indexOf("javascript")==-1)a="window.location.href='"+a+"'";else a=t.name+".setSearch(document.forms[&quot;f"+t.name+"&quot;].search.value)";if(ua.nn4){h+=" <a href=\"javascript:"+t.name+".setSearch(window.document.layers['"+t.name+"'].document.forms['f"+t.name+"'].search.value);\">OK</a>";}else{h+=" <input type=\"button\" name=\"b1\" value=\"OK\" onClick=\""+a+"\">";};};if(t.useAmountPanel){h+=" &nbsp; "+t.amountControl+"<input type=\"text\" maxlength=\"5\" value=\""+this.amountPerPage+"\" name=\"amountPerPage\" size=\"3\"";if(!ua.nn4)h+=" onKeyPress=\"keyPress(this.form.b0);\"";h+="'> ";a=t.setAction("setAmountPerPage","document.forms[f"+t.name+"].amountPerPage.value");if(a.indexOf("javascript")==-1)a="window.location.href='"+a+"'";else a=t.name+".setAmountPerPage(document.forms[&quot;f"+t.name+"&quot;].amountPerPage.value)";if(ua.nn4){h+=" <a href=\"javascript:"+t.name+".setAmountPerPage(window.document.layers['"+t.name+"'].document.forms['f"+t.name+"'].amountPerPage.value);\">OK</a>";}else{h+=" <input type=\"button\" name=\"b0\" value=\"OK\" onClick=\""+a+"\">";};};
return h;};CGp.setPage=function(page){var t=this;t.page=page;if(!ua.oldOpera)t.paint();};CGp.setAmountPerPage=function(amount){if(isNaN(parseInt(amount))||Undef(amount)||parseInt(amount)<=0){alert("Can't use value "+amount+" as count of records per page!");if(Def(document.forms['f'+this.name].elements["amountPerPage"]))document.forms['f'+this.name].elements["amountPerPage"].value=this.amountPerPage;
return;}this.amountPerPage=amount;this.setPage(1);};CGp.setSort=function(sortCol,sortType){var t=this,i;t.sortCol=sortCol;t.sortType=sortType;t.multiSortCol.length=0;t.multiSortType.length=0;if(!t.cols[t.sortCol].index.length)t.setIndex(t.sortCol);t.rowIndex.setValue(t.cols[t.sortCol].index);if(t.sortType==-1)t.rowIndex.reverse();t.vr.length=0;t.setPage(1);};CGp.resetSort=function(sortCol){var t=this;if(t.sortCol==-1)
return;if(Undef(sortCol)||t.sortCol==sortCol){t.sortCol=-1;t.sortType=1;t.multiSortCol.length=0;t.multiSortType.length=0;for(i=0;i<t.rows.length;i++)t.rowIndex[i]=i;}else{idx=t.multiSortCol.indexOf(sortCol);if(idx>0){t.multiSortCol.length=t.multiSortType.length=idx;for(z=0;z<t.multiSortCol.length;z++){t.setMultiSort(t.multiSortCol[z],t.multiSortType[z]);};};};t.vr.length=0;t.setPage(1);};CGp.resetMark=function(){var t=this;for(i=0;i<t.rows.length;i++)if(t.rows[i].isMark){t.rows[i].setMark();}};CGp.setMultiSort=function(sortCol,sortType){var t=this,mc=t.multiSortCol,mt=t.multiSortType,i,j,k,left,right,rows,r1,r2;if(!t.useMultiSort)
return;if(mc.length==0){if(t.sortCol==-1){t.sortCol=sortCol;t.sortType=sortType;}else{mc[mc.length]=t.sortCol;mt[mt.length]=t.sortType;}mc[mc.length]=sortCol;mt[mt.length]=sortType;}else{i=mc.indexOf(sortCol);if(i>-1){mt[i]=sortType;}else{mc[mc.length]=sortCol;mt[mt.length]=sortType;};};if(t.cols[t.sortCol].index.length==0)t.setIndex(t.sortCol);t.rowIndex.setValue(t.cols[t.sortCol].index);if(t.sortType==-1)t.rowIndex.reverse();for(i=1;i<mc.length;i++){for(j=1;j<t.rows.length;j++){left=right=-1;r1=t.rowIndex[j-1];r2=t.rowIndex[j];while(t.cells[r1][mc[i-1]].compareTo(t.cells[r2][mc[i-1]])==0){if(left==-1)left=j-1;right=j;j++;if(j<t.rows.length){r1=t.rowIndex[j-1];r2=t.rowIndex[j];}else break;};if(left>-1&&right>-1){rows=t.setIndex2(mc[i],left,right);if(mt[i]==-1)rows.reverse();for(k=0;k<rows.length;k++)t.rowIndex[left+k]=rows[k]._id;};};};t.vr.length=0;t.setPage(1);};CGp.search=function(dontPaint){var isVisible,data,re=new RegExp(this.searchValue,"gi"),t=this,i;for(i=0;i<t.rows.length;i++)t.rows[i].isVisible=1;for(i=0;i<t.rows.length;i++){isVisible=0;for(j=0;j<t.cols.length;j++){data=new String(t.cells[i][j].getDataForFilter());if(t.cols[j].useAutoFilter)t.rows[i].isVisible=t.rows[i].isVisible&&(data.valueOf()==this.cols[j].filterValue.valueOf()||t.cols[j].filterValue=="");if(Def(t.searchValue)&&t.cols[j].type!="Image")isVisible=isVisible||(data.search(re)>-1);};if(Def(t.searchValue))t.rows[i].isVisible=t.rows[i].isVisible&&isVisible;};t.vr.length=0;if(Undef(dontPaint))t.setPage(1);};CGp.setFilter=function(filterCol,filterValue){this.cols[filterCol].filterValue=filterValue;this.search();};CGp.setSearch=function(searchValue){if(Undef(searchValue))searchValue="";if(this.searchValue==""&&searchValue=="")
return;this.searchValue=searchValue;this.search();};CGp.compare=function(row1,row2){var g=row1.grid,c=g.sortCol,r1;
return g.cells[row1._id][c].compareTo(g.cells[row2._id][c]);};CGp.setIndex=function(sortCol){var t=this,i,sc=t.sortCol,rows=[];t.sortCol=sortCol;rows.setValue(t.rows);rows=rows.sort(t.compare);for(i=0;i<t.rows.length;i++){t.cols[t.sortCol].index[i]=rows[i]._id;};t.sortCol=sc;};CGp.setIndex2=function(sortCol,left,right){var t=this,sc=t.sortCol,rows=[],i,j;t.sortCol=sortCol;for(i=left;i<right+1;i++){j=t.rows.indexOf(t.rowIndex[i]);rows[rows.length]=t.rows[j];};rows=rows.sort(t.compare);t.sortCol=sc;
return rows;};CGp.paint=function(){var t=this,HTML=t.toHTML();switch(ua.br){case 1:dw(HTML);break;case 2:var lr=CodeThat.findElement(t.name);if(Undef(lr))CT_createLayer(t.name,CodeThat.getWinWidth(),CodeThat.getWinHeight(),'','',1,1,'','#ffffff','','','visible','','',1,100,'',HTML);else CT_HTML(t.name,HTML);break;default:var lr=CodeThat.findElement(t.name);if(Undef(lr))dw("<div id=\""+t.name+"\"></div>");CT_HTML(t.name,HTML);};};CGp.setAction=function(funcName,funcParam){var l,z;if(ua.oldOpera){l=window.location.href;var stack=[],idx=[],isExist=0,p1=[],p2=[];if(l.indexOf("?")>-1){l=l.slice(l.indexOf("?")+1);while(l.indexOf("&")>-1){stack[stack.length]=l.slice(0,l.indexOf("&"));l=l.slice(l.indexOf("&")+1);}stack[stack.length]=l;for(z=0;z<stack.length;z++){if(stack[z].indexOf(funcName)>-1){idx[idx.length]=z;isExist=1;};};switch(funcName){case "setPage":case "setAmountPerPage":case "setSort":if(isExist)stack[idx[0]]="";break;case "setSearch":if(isExist)stack[idx[0]]="";for(z=0;z<stack.length;z++)if(stack[z].indexOf("setMultiSort")>-1)stack[z]="";break;case "setFilter":case "setMultiSort":if(isExist){p1=eval("["+funcParam+"]");for(z=0;z<idx.length;z++){p2=stack[idx[z]].slice(stack[idx[z]].indexOf("(")+1,stack[idx[z]].indexOf(")"));p2=eval("[\""+p2.replace(new RegExp(","),"\",\"")+"\"]");if(p2[0]==p1[0])stack[idx[z]]="";};};break;};l=window.location.href.slice(0,window.location.href.indexOf("?")+1);for(z=0;z<stack.length;z++){if(Def(stack[z]))l+=stack[z]+"&";};l+=funcName+"("+funcParam+")";}else{l=window.location.href+"?"+funcName+"("+funcParam+")";};l=l.replace(new RegExp("this.value"),"'+ this.value + '");l=l.replace(new RegExp("document.forms\\[f"+this.name+"\\].amountPerPage.value","gi"),"'+ document.forms['f"+this.name+"'].amountPerPage.value + '");l=l.replace(new RegExp("document.forms\\[f"+this.name+"\\].search.value","gi"),"'+ document.forms['f"+this.name+"'].search.value + '");}else{l="javascript:"+this.name+"."+funcName+"("+funcParam+");";};
return l;};CGp.doAction=function(datatype,data){if(Def(datatype)&&Def(data))this.init(datatype,data);if(ua.oldOpera&&window.location.href.indexOf("?")>1){var func=window.location.href.slice(window.location.href.indexOf("?")+1);var stack=[];var toDo="";while(func.indexOf("&")>-1){stack[stack.length]=func.slice(0,func.indexOf("&"));func=func.slice(func.indexOf("&")+1);};stack[stack.length]=func;if(Def(stack)){for(i=0;i<stack.length;i++){stack[i]=stack[i].replace(new RegExp("\\("),"(\"").replace(new RegExp(","),"\",\"").replace(new RegExp("\\)"),"\")");toDo+=this.name+"."+stack[i]+";\n";};eval(toDo);}this.paint();}else{this.paint();};};CGp.callRowHandler=function(){if(Def(this.rowHandler)){this.rowHandler(this.getKeyArray(this.keyCol));}};CGp.getID=function(prx){
return this.name+prx;};};function CCodeThatRow(grid,id){var t=this;t.grid=grid;t._id=id;t.isMark=0;t.isVisible=1;t.css=t.grid.rowStyle.lightClass;};{var CRp=CCodeThatRow.prototype;CRp.setMark=function(){var t=this,z,idx1,idx2,idx3;t.isMark=(!t.isMark);t.setCSS();if(isCtrl){t.grid.rowStart=t._id;t.grid.callRowHandler();
return;}for(z=0;z<t.grid.rows.length;z++){if(z!=t._id&&t.grid.rows[z].isMark){t.grid.rows[z].isMark=0;t.grid.rows[z].setCSS();};};if(isShift){if(t.grid.rowStart==-1)t.grid.rowStart=t._id;var idx1=t.grid.rowIndex.indexOf(t.grid.rowStart),idx2=t.grid.rowIndex.indexOf(t._id),idx3=0;if(idx1>idx2){idx3=idx1;idx1=idx2;idx2=idx3;};for(z=idx1;z<=idx2;z++){if(t.grid.rowIndex[z]==t._id)continue;else{t.grid.rows[t.grid.rowIndex[z]].isMark=1;t.grid.rows[t.grid.rowIndex[z]].setCSS();};};}else{t.grid.rowStart=t._id;};t.grid.callRowHandler();};CRp.setCSS=function(css){var t=this,htmlObjName=t.grid.name+"_row_"+t._id;if(ua.oldB)
return;if(Def(window.document.getElementById(htmlObjName))){if(Undef(css)){if(t.isMark)CT_css(htmlObjName,t.grid.rowStyle.markClass);else CT_css(htmlObjName,t.css);}else{CT_css(htmlObjName,css);};};};CRp.setHover=function(){if(ua.oldB)
return;this.setCSS(this.grid.rowStyle.hoverClass);if(this._id!=this.grid.rowHover&&this.grid.rowHover>-1)this.grid.rows[this.grid.rowHover].setCSS();this.grid.rowHover=this._id;};CRp.valueOf=function(){
return this._id;};};function CCodeThatColumn(grid,id,colDef){var t=this,i,w=0;t.grid=grid;t._id=id;t.useSort=1;t.index=[];t.filter=[];t.filterValue="";for(i in DEFAULT_COLDEF)t[i]=DEFAULT_COLDEF[i];if(Def(colDef)){for(i in colDef){if(Def(colDef[i]))if(i.indexOf("is")>-1||i.indexOf("use")>-1||i.indexOf("Function")>-1)eval("t[i] = "+colDef[i]);else t[i]=colDef[i];};w=parseInt(colDef.width);t.width=(isNaN(w)||w>0)?"width=\""+colDef.width+"\"":"";t.alignment=(Def(colDef.alignment))?" align="+colDef.alignment:"";};if(Undef(t.title))t.title='Column #'+id;if(Undef(t.titleClass))t.titleClass=t.defaultClass;};{var CCp=CCodeThatColumn.prototype;CCp.titleToHTML=function(){var t=this,g=t.grid,h="",l=[g.imgSortAsc,t.title,g.imgSortDesc],i;if(!g.useSort||!t.useSort)
return t.title;if(g.sortCol==t._id){if(g.sortType==1)l=[g.imgSortAscActive,t.title,g.imgSortDesc];else l=[g.imgSortAsc,t.title,g.imgSortDescActive];}else{if(g.useMultiSort){l=[g.imgSortAsc,g.imgSortAsc,t.title,g.imgSortDesc,g.imgSortDesc];i=g.multiSortCol.indexOf(t._id);if(i>-1){if(g.multiSortType[i]==1)l=[g.imgMultiSortAscActive,g.imgSortAsc,t.title,g.imgSortDesc,g.imgSortDesc];else l=[g.imgSortAsc,g.imgSortAsc,t.title,g.imgSortDesc,g.imgMultiSortDescActive];};};}if(l.length==3){h=" <a href=\""+g.setAction("setSort",t._id+",1")+"\">"+l[0]+"</a>"+" <a href=\""+g.setAction("resetSort",t._id)+"\">"+l[1]+"</a>"+" <a href=\""+g.setAction("setSort",t._id+",-1")+"\">"+l[2]+"</a>";}else{h=" <a href=\""+g.setAction("setMultiSort",t._id+", 1")+"\">"+l[0]+"</a>"+" <a href=\""+g.setAction("setSort",t._id+",1")+"\">"+l[1]+"</a>"+" <a href=\""+g.setAction("resetSort",t._id)+"\">"+l[2]+"</a>"+" <a href=\""+g.setAction("setSort",t._id+",-1")+"\">"+l[3]+"</a>"+" <a href=\""+g.setAction("setMultiSort",t._id+",-1")+"\">"+l[4]+"</a>";}
return h;};CCp.getID=function(prx){var t=this;
return t.grid.getID(prx)+t._id;};CCp.setFilter=function(){var t=this,g=t.grid,i,v;if(!t.useAutoFilter)
return;t.filter.length=0;for(i=0;i<g.rows.length;i++){v=g.cells[i][t._id].getDataForFilter();if(Def(v)&&typeof(v)!='unknown'&&t.filter.indexOf(v)==-1)t.filter[t.filter.length]=v;};if(!ua.oldB)eval("try{t.filter = t.filter.sort(compare)}catch(e){}");else t.filter=t.filter.sort(compare);};CCp.filterToHTML=function(){var t=this,i,h="&nbsp;",a="";if(!t.useAutoFilter)
return h;if(!ua.nn4){a=t.grid.setAction("setFilter",t._id+",this.value");if(a.indexOf("javascript")==-1)a="window.location.href='"+a+"'";else a=t.grid.name+".setFilter("+t._id+", this.options[this.selectedIndex].value)";a="onChange=\""+a+"\"";};h="<select id='"+t.getID("filter")+"' name='"+t.getID("filter")+"' "+a+"><option value=''>"+EMPTY_ROW+"</option>";for(i=0;i<t.filter.length;i++)h+="<option value=\""+t.filter[i]+"\""+((t.filterValue!=""&&t.filter[i].toString()==t.filterValue)?" selected":"")+">"+t.filter[i]+"</option>";h+="</select>";if(ua.nn4)h+="&nbsp;<a href=\""+t.grid.setAction("setFilter",t._id+", window.document.layers['"+t.grid.name+"'].document.forms['f"+t.grid.name+"']."+t.getID("filter")+".options[window.document.layers['"+t.grid.name+"'].document.forms['f"+t.grid.name+"']."+t.getID("filter")+".selectedIndex].value")+"\">OK</a>";
return h;};};function CCodeThatCell(row,col,data){var t=this;t.row=row;t.col=col;switch(this.col.type){case "Date":data=parseDate(data,DATE_FORMAT);break;case "Image":break;default:if(ua.oldB)eval("data = parse"+this.col.type+"(data)");else eval("try{eval(\"data = parse\" + this.col.type + \"(data)\");}catch(e){};");break;};t.data=data;};{var CCp=CCodeThatCell.prototype;CCp.compareTo=function(cell){
return this.col.compareFunction(this.data,cell.data);};CCp.getData=function(){var t=this,data="";switch(t.col.type){case "Image":if((Def(t.data)&&t.data.constructor!=Object)||ua.oldOpera)t.data=parseImage(t.data);data=formatImage(t.data);break;case "String":case "Number":case "HTML":case "Email":if(ua.oldB)eval("data = format"+this.col.type+"(t.data)");else eval("try{eval(\"data = format\" + this.col.type + \"(t.data)\");}catch(e){};");break;case "URL":case "Date":case "Currency":default:if(ua.oldB)eval("data = format"+t.col.type+"(t.data, "+t.col.type.toUpperCase()+"_FORMAT)");else eval("try{eval('data = format' + t.col.type + '(t.data, ' + t.col.type.toUpperCase() + '_FORMAT)');}catch(e){data = t.data};");break;};
return data;};CCp.getDataForFilter=function(){var t=this;switch(t.col.type){case "Date":if(ua.oldB)eval("data = format"+t.col.type+"(t.data, "+t.col.type.toUpperCase()+"_FORMAT)");else eval("try{eval('data = format' + t.col.type + '(t.data, ' + t.col.type.toUpperCase() + '_FORMAT)');}catch(e){data = t.data};");break;case "Image":if(this.data.src.indexOf("undefined")<0){start=((this.data.src.lastIndexOf("/")<0)?this.data.src.lastIndexOf("\\"):this.data.src.lastIndexOf("/"))+1;data=this.data.src.slice(start);}else data="No image";break;default:data=this.data;break;};
return data;};};CodeThat.regEventHandler('keydown',isEnterPressed);CodeThat.regEventHandler('click',isKeyHold);CodeThat.regEventHandler('mousemove',isKeyHold);CodeThat.regEventHandler('selectstart',cancelSelection);var isEnter=0,isShift=0,isCtrl=0,isAlt=0,curId=0,w=null;function cancelSelection(e){if(e._e.shiftKey||e._e.ctrlKey){if(ua.moz&&e._e.cancelable)e._e.preventDefault();else e._e.returnValue=false;
return false;};};function isEnterPressed(e){if(e._e.keyCode==13)isEnter=1;else isEnter=0;};function isKeyHold(e){isShift=(ua.opera7)?e._e.ctrlKey:e._e.shiftKey;isCtrl=(ua.opera7)?e._e.shiftKey:e._e.ctrlKey;isAlt=e._e.altKey;};function keyPress(buttonObj){if(Def(window.event)){isEnter=(window.event.keyCode==13);};if(isEnter)buttonObj.click();};