JS2.OO.createClass("GridSimple.Main");GridSimple.Main.oo('extends',JS2.Main);(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('member','components',['Loader','Dimension','Main','Data','Body','Header','Resizer','Sorter','Messenger']);K.oo('member','core',['Dimension','Data']);K.oo('method',"setColumns",function(columns){this.data.setColumns(columns);});K.oo('method',"getColumns",function(){return this.data.columns;});K.oo('method',"setDimensions",function(width,height){this.dim.set(width);});K.oo('method',"setHeight",function(height){this.dim.setHeight(height);});K.oo('method',"setWidth",function(width){this.dim.setWidth(width);});K.oo('method',"setRows",function(rows){this.data.setRows(rows);});K.oo('method',"getRows",function(){return this.data.rows;});K.oo('method',"sort",function(colIdx,option){this.data.sort(colIdx,option);});K.oo('method',"clear",function(){this.data.clear();});})(GridSimple.Main,GridSimple);JS2.OO.createClass("GridSimple.Loader");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('method',"e_start",function(){this.initHTML();this.assign();if(this.seed){this.main.assign('jqMain',this.jqMain);this.main.assign('jqGrid',this.jqGrid);this.main.assign('jqWidget',this.jqWidget);this.main.assign('jqGridLoading',this.jqGridLoading);}
this.notify('initHTML');this.notify('registerEvents');});K.oo('method',"initialize",function(options){this.options=options;});K.oo('method',"initHTML",function(){this.jqParent=$(this.options.mainElement);if(this.seed){this.jqParent=this.seed.jq;this.main.assign('dim',this.dimension);}
this.jqParent.append(this.htmlCache.container());this.jqUniverse=this.jqParent.find('>.universe');this.jqMain=this.jqUniverse.find('>.mainGridSimple');this.jqGrid=this.jqMain.find('>.grid');this.jqWidget=this.jqUniverse.find('>.widget');this.jqGridLoading=this.jqUniverse.find('>.gridLoading');this.jqMainFooter=this.jqMain.find('>.mainFooter');this.jqMainHeader=this.jqMain.find('>.mainHeader');this.jqGrid.addClass('gridSimple');this.jqParent.css(this.dim.parent);});K.oo('method',"e_resizeHeight",function(){this.jqParent.css(this.dim.parent);});K.oo('method',"assign",function(){this.notify('assign',{key:'jqMain',value:this.jqMain});this.notify('assign',{key:'jqGrid',value:this.jqGrid});this.notify('assign',{key:'jqWidget',value:this.jqWidget});this.notify('assign',{key:'jqGridLoading',value:this.jqGridLoading});});})(GridSimple.Loader,GridSimple);GridSimple.Loader.oo('setHTMLCache',{"container":function(){return"<div class='universe'><div class='mainGridSimple'><div class='grid'><div class='hMask'><div class='header'><\/div><\/div><div class='body'><table class='data'><colgroup><\/colgroup><tbody><\/tbody><\/table><\/div><div class='resizerLine'><\/div><\/div><div class='mainFooter'><\/div><\/div><div class='widget'><\/div><div class='gridLoading'><div class='message'><\/div><\/div><\/div>"}});JS2.OO.createClass("GridSimple.Data");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('method',"initialize",function(options){this.columns=[];this.rows=[];});K.oo('method',"setRows",function(rows){this.rows=rows;this.notify('dataLoaded');});K.oo('method',"setColumns",function(columns){this.columns=columns;this.notify('initCols');});K.oo('method',"column",function(idx){return this.columns[idx];});K.oo('method',"sort",function(colIdx,desc){desc?this.sortDescending(colIdx):this.sortAscending(colIdx);});K.oo('method',"sortAscending",function(colIdx){var datatype=this.columns[colIdx].datatype;var cDatatype=sci.constants.datatypes[datatype];if(!cDatatype)return;var algorithm=cDatatype.sort;this.rows.sort(function(a,b){return algorithm(a[colIdx],b[colIdx]);});this.notify('dataLoaded');this.setSorterIcon(colIdx,false);});K.oo('method',"sortDescending",function(colIdx){var datatype=this.columns[colIdx].datatype;var cDatatype=sci.constants.datatypes[datatype];if(!cDatatype)return;var algorithm=cDatatype.sort;this.rows.sort(function(a,b){return algorithm(b[colIdx],a[colIdx]);});this.notify('dataLoaded');this.setSorterIcon(colIdx,true);});K.oo('method',"setSorterIcon",function(colIdx,desc){this.notify('setSorterIcon',{colIdx:colIdx,desc:desc});});K.oo('method',"clear",function(){this.rows=[];this.notify('dataLoaded');this.notify('loadData');});})(GridSimple.Data,GridSimple);JS2.OO.createClass("GridSimple.Header");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('method',"e_initHTML",function(){this.jqMask=this.jqGrid.find(">.hMask");this.jq=this.jqMask.find(">.header");});K.oo('method',"e_initCols",function(){this.initCols();});K.oo('method',"initCols",function(){var cols=this.data.columns;this.buildColumns(cols);this.jqSorters=this.jqColumns.find('.sorter');this.jqResizers=this.jqColumns.find('.resizer');this.dblclicked=false;this.jq.disableSelection();if(this.jqColumns.length>0){for(var i=0,c;c=cols[i];i++){this.jqColumns[i].setAttribute('colIdx',i);}}
var self=this;this.jqColumns.dblclick(function(){var jqCol=$(this);var jq=jqCol.first('.content');var idx=parseInt(jqCol.attr('colIdx'));self.notify('columnContentDblclicked',idx,jq,jqCol);self.dblclicked=true;});this.resizeWidth();this.notify('colsInit');});K.oo('method',"buildColumns",function(cols){this.defaultWidths=[];var html='';for(var it5=0,col,it5__arr=cols,it5__len=it5__arr.length;(col=it5__arr[it5])||it5<it5__len;it5++){html+=this.htmlCache.column(DISPLAY.html(col.name));this.defaultWidths.push(col.width||150);}
this.jq.html(html);this.jqColumns=this.jq.find('>.column');for(var i=0,c;c=cols[i];i++){var klass=c.isPrimary?'primary':'normal';this.jqColumns.eq(i).addClass(klass);}});K.oo('method',"e_resizeWidth",function(){this.resizeWidth();});K.oo('method',"resizeWidth",function(){this.dim.setColumns(this.jqColumns,{jqParent:this.jq});this.jqMask.css(this.dim.header);});K.oo('method',"e_hScroll",function(params){this.jq[0].style.left='-'+params.left+'px';});})(GridSimple.Header,GridSimple);GridSimple.Header.oo('setHTMLCache',{"column":function(){return"<div class='column'><div class='resizer'><\/div><div class='sorter'><\/div><div class='icon'><\/div><div class='content'>"+arguments[0]+"<\/div><\/div>"}});JS2.OO.createClass("GridSimple.BodyController");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('method',"e_initCols",function(){this.view.scroll();});K.oo('method',"e_initHTML",function(){this.view.initHTML();});K.oo('method',"e_dataLoaded",function(){this.view.populate();});})(GridSimple.BodyController,GridSimple);JS2.OO.createClass("GridSimple.BodyView");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('member','PADDING_ADJUSTMENT',$.browser.safari?1:-4*2);K.oo('method',"initHTML",function(){this.jqBody=this.jqGrid.find('>.body');this.jq=this.jqBody.find('>.data');this.jqTbody=this.jq.first('>tbody');var TMP_SEL_MARKER=this.SEL_MARKER||JS2.SEL_MARKER;TMP_SEL_MARKER.addVal(TMP_SEL_MARKER.getRealClassScope(this),"main table",this.jqTbody,null);this.jqColgroup=this.jq.first('>colgroup');var self=this;this.jqBody.scroll(function(evt){self.scroll(evt);});this.jqBody.click(function(evt){self.handleClick(evt);});this.jqBody.disableSelection();this.jqBody.mouseover(function(evt){self.handleMouseover(evt);});this.jqBody.mouseout(function(evt){self.handleMouseout(evt);});});K.oo('method',"scroll",function(evt){var sTop=this.jqBody[0].scrollTop;var sLeft=this.jqBody[0].scrollLeft;if(this.sTop!=sTop){this.sTop=sTop;this.notify('vScroll',{top:sTop});}else if(this.sLeft!=sLeft){this.sLeft=sLeft;this.notify('hScroll',{left:sLeft});}});K.oo('method',"handleClick",function(e){var cell=this.getCell(e.target);if(!cell)return;var colIdx=cell.getAttribute('colIdx');if(colIdx===null)return;var context={colIdx:colIdx,rowIdx:cell.getAttribute('rowIdx'),cell:cell,jqTarget:$(e.target)};this.notify('clickCell',context);});K.oo('method',"handleMouseover",function(e){var cell=this.getCell(e.target);if(!cell)return;this.hoveredCell=cell;$(cell).addClass('mouseover');var context={colIdx:cell.getAttribute('colIdx'),rowIdx:cell.getAttribute('rowIdx'),cell:cell,jqTarget:$(e.target)};this.notify('mouseoverCell',context);});K.oo('method',"handleMouseout",function(e){if(this.hoveredCell){$(this.hoveredCell).removeClass('mouseover');this.hoveredCell=null;}
this.notify('mouseoutCell');});K.oo('method',"getCell",function(ele){for(var i=0;i<3;i++){if(ele.tagName=='TD')return ele;ele=ele.parentNode;}
return false;});K.oo('method',"populate",function(){this.constructTable();this.setTDClasses();var rows=this.data.rows;var cols=this.data.columns;var nCols=cols.length;for(var y=0,ylen=rows.length;y<ylen;y++){for(var x=0;x<nCols;x++){this.populateCell(x,y);}}
this.jq.css('table-layout','fixed');this.scroll();});K.oo('method',"setTDClasses",function(){});K.oo('method',"constructTable",function(){var rows=this.data.rows;var cols=this.data.columns;var nCols=cols.length;var html=[];for(var y=0,ylen=rows.length;y<ylen;y++){html.push('<tr>');for(var x=0;x<nCols;x++){html.push('<td colIdx="'+x+'" rowIdx="'+y+'"');html.push(' class="'+cols[x].datatype.toLowerCase()+'" />');}
html.push('</tr>');}
html=html.join('');var colHTML='';for(var i=0,c;c=cols[i++];){var klass=c.isPrimary?'primary':'normal';colHTML+='<col class="'+klass+'" />';}
this.jqColgroup.html(colHTML);$.browser.msie||$.browser.opera?this.jqTbody.html(html):this.jqTbody[0].innerHTML=html;this.jqRows=this.jqTbody.find('>tr');this.matrix=[];var TMP_SEL_MARKER=this.SEL_MARKER||JS2.SEL_MARKER;TMP_SEL_MARKER.addVal(TMP_SEL_MARKER.getRealClassScope(this),"matrix",this.matrix,null);for(var i=0,len=this.jqRows.length;i<len;i++){this.matrix.push(this.jqRows.eq(i).find('>td'));}
this.jqFirstRow=this.jqTbody.find('tr:first td');this.resizeWidth();});K.oo('method',"e_resizeWidth",function(){this.resizeWidth();});K.oo('method',"e_populateCell",function(colIdx,rowIdx){this.populateCell(colIdx,rowIdx);});K.oo('method',"resizeWidth",function(){if(this.jqFirstRow){this.dim.setColumns(this.jqFirstRow,{jqParent:this.jq,adjust:this.PADDING_ADJUSTMENT});}
this.jqBody.css(this.dim.body);});K.oo('method',"e_resizeHeight",function(){this.jqBody.css(this.dim.body);});K.oo('method',"getCellData",function(colIdx,rowIdx){var col=this.data.columns[colIdx];var datatype=col.datatype;var value=this.data.rows[rowIdx][colIdx];if(value===null||value===undefined||$.trim(String(value)).length==0){return DISPLAY.blankValue;}else{var tmpValue=col.escapeHTML==false?value:DISPLAY.datatype(datatype,value);if(tmpValue.toString()=='NaN'||tmpValue=='NaN-NaN-NaN')tmpValue=value;return tmpValue;}});K.oo('method',"populateCell",function(colIdx,rowIdx){var val=this.getCellData(colIdx,rowIdx);this.matrix[rowIdx][colIdx].innerHTML=val;});})(GridSimple.BodyView,GridSimple);JS2.OO.createClass("GridSimple.Resizer");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('member','dependencies',"header");K.oo('member','MIN_COLUMN_WIDTH',50);K.oo('method',"e_initHTML",function(){this.initHTML();this.registerEvents();});K.oo('method',"e_colsInit",function(){this.initCols();});K.oo('method',"initHTML",function(){this.jqResizerLine=this.jqGrid.find('>.resizerLine');});K.oo('method',"registerEvents",function(){var self=this;this.header.jq.mousemove(function(e){if(self.isMouseDown)self.mouseMove(e);});$(document).mouseup(function(e){if(self.isMouseDown){self.isMouseDown=false;self.mouseUp(e);}});});K.oo('method',"initCols",function(){var self=this;this.jqResizers=this.header.jqResizers;this.jqColumns=this.header.jqColumns;this.jqResizers.mousedown(function(e){self.jqColumn=$(e.target).parent();self.isMouseDown=true;self.mouseDown(e);});this.jqResizers.dblclick(function(){self.toggleColumnWidth(this.parentNode);});});K.oo('method',"toggleColumnWidth",function(ele){var colIdx=ele.getAttribute('colIdx');if(!this.columnToggleWidths)this.columnToggleWidths={};if(!this.columnToggleWidths[colIdx])this.columnToggleWidths[colIdx]=this.MIN_COLUMN_WIDTH;this.columnToggleWidths[colIdx]=this.columnToggleWidths[colIdx]==this.MIN_COLUMN_WIDTH?this.jqGrid.first('>.body').width():this.MIN_COLUMN_WIDTH;this.data.column(colIdx).width=this.columnToggleWidths[colIdx];this.header.dblclicked=true;this.notify('resizeWidth');});K.oo('method',"mouseDown",function(e){document.body.style.cursor='e-resize';this.startPageX=e.pageX;this.gridLeft=this.data.jqGrid.offset().left;this.minLeft=e.pageX-this.jqColumn.width()+this.MIN_COLUMN_WIDTH-this.gridLeft;this.setPosition(e);this.jqResizerLine.show();});K.oo('method',"mouseMove",function(e){document.body.style.cursor=e.pageX-this.startPageX>=0?'e-resize':'w-resize';this.setPosition(e);});K.oo('method',"setPosition",function(e){var left=e.pageX-this.gridLeft;if(left<this.minLeft)left=this.minLeft;this.jqResizerLine[0].style.left=left+'px';});K.oo('method',"mouseUp",function(e){this.jqResizerLine.hide();document.body.style.cursor='auto';var delta=e.pageX-this.startPageX;var colIdx=parseInt(this.jqColumn.attr('colIdx'));var width=this.data.columns[colIdx].width+=delta;this.data.columns[colIdx].width=width<this.MIN_COLUMN_WIDTH?this.MIN_COLUMN_WIDTH:width;this.notify('resizeWidth');});})(GridSimple.Resizer,GridSimple);JS2.OO.createClass("GridSimple.Sorter");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('member','dependencies','header');K.oo('method',"e_colsInit",function(){var self=this;this.jqSorters=this.header.jqSorters;this.jqColumns=this.header.jqColumns;this.jqColumns.click(function(e){var jqColumn=$(this);var colIdx=jqColumn.attr('colIdx');clearTimeout(self.clickTimeout);self.clickTimeout=setTimeout(function(){if(self.header.dblclicked){self.header.dblclicked=false;}else{self.sort(colIdx);}},300);});});K.oo('method',"e_setSorterIcon",function(params){this.setSorterIcon(params.colIdx,params.desc);});K.oo('method',"sort",function(colIdx){var jqSorter=this.jqSorters.eq(colIdx);this.data.sort(colIdx,jqSorter.hasClass('descending')?false:true);});K.oo('method',"setSorterIcon",function(colIdx,desc){var ASC='ascending';var DESC='descending';var jqSorter=this.jqSorters.eq(colIdx);var newClass=desc?DESC:ASC;this.jqSorters.removeClass(ASC).removeClass(DESC);jqSorter.addClass(newClass);});})(GridSimple.Sorter,GridSimple);JS2.OO.createClass("GridSimple.Dimension");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('method',"initialize",function(options){this.options=options;this.height=options.height||null;this.width=options.width||'100%';this.reset();});K.oo('method',"e_resize",function(){this.reset();});K.oo('method',"set",function(w,h){this.width=w;this.height=h;this.reset();});K.oo('method',"setWidth",function(w){this.width=w;this.reset();});K.oo('method',"setHeight",function(h){this.height=h;this.reset();this.notify('resizeHeight');});K.oo('method',"reset",function(){var scrollarWidth=18;var gridWidth=$.browser.msie&&this.width.toString().match(/^\d+$/)?this.width-scrollarWidth:this.width;this.header={height:(this.options.headerHeight||22),width:gridWidth};this.body={width:gridWidth,top:this.header.height};if(this.height&&this.height.toString().match(/^\d+$/))this.body.height=this.height-this.header.height;this.parent={width:gridWidth};if(this.height)this.parent.height=this.height;});K.oo('method',"setColumns",function(jqs,options){options=options||{};var cols=this.data.columns;var total=0;for(var i=0,c;c=cols[i];i++){var jq=jqs.eq(i);if(c.hidden){if($.browser.msie&&$.browser.version==8){var hiddenCol='td:nth-child('+(i+1)+')';$(hiddenCol).hide();}else{jq.hide();}}else{var width=options.adjust?options.adjust+c.width:c.width;jq.show();jq.width(width);if(options.absolute)jq.css({left:total});total+=c.width+1;}}
if(options.jqParent){options.jqParent.width(total);}});K.oo('method',"getCellPosition",function(colIdx,rowIdx){var left=this.getColumnPositionLeft(colIdx);var heightPadding=$.browser.msie&&$.browser.version<8?3:0;var top=rowIdx*(this.jqGrid.first('>.body>table>tbody>tr').height()+heightPadding);return{top:top,left:left};});K.oo('method',"getColumnPositionLeft",function(colIdx){var left=0;var cols=this.data.columns;for(var i=0;i<colIdx;i++){var c=cols[i];if(!c.hidden)left+=c.width+1}
return left;});})(GridSimple.Dimension,GridSimple);JS2.OO.createClass("GridSimple.Messenger");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('method',"e_initHTML",function(){this.jqMessage=this.jqGridLoading.find('>.message');this.jqGridLoading.hide();this.jqMessage.hide();});K.oo('method',"e_loadData",function(){this.show('Loading Data');});K.oo('method',"e_dataLoaded",function(){this.show();});K.oo('method',"e_resizeHeight",function(){this.jqMessage.css({'height':this.dim.body.height+'px','line-height':this.dim.body.height+'px'});});K.oo('method',"show",function(msg){if(!this.jqMessage)return;if(msg){this.jqMessage.html(msg).show();this.jqGridLoading.show();}else{this.jqMessage.hide();this.jqGridLoading.hide();}});})(GridSimple.Messenger,GridSimple);JS2.OO.createClass("GridSimple.CellInput");(function(K,Package){var self=K;var _super=JS2.OO['super'];K.oo('method',"e_initHTML",function(){this.jq=$(this.htmlCache.main());var self=this;this.jq.blur(function(){self.blur();});this.jq.keypress(function(evt){self.keyup(evt);});this.seed.first('.universe').append(this.jq);});K.oo('method',"e_clickCell",function(context){this.context=context;var jq=context.jqTarget;this.jq.css(jq.position());this.jq.width(jq.width());this.jq.val(this.data.rows[context.rowIdx][context.colIdx]);this.jq.show();this.jq.focus();});K.oo('method',"blur",function(){if(!this.context)return;var txt=this.jq.val();this.data.rows[this.context.rowIdx][this.context.colIdx]=this.jq.val();this.jq.hide();this.jq.val('');this.context=false;this.notify('dataLoaded');});K.oo('method',"keyup",function(evt){if(evt.keyCode==KEYCODE.ENTER){this.blur();}});})(GridSimple.CellInput,GridSimple);GridSimple.CellInput.oo('setHTMLCache',{"main":function(){return"<input style='position: absolute; margin: 0; display: none' \/>"}});