(function(){
window.undefined = window.undefined;
window.isIE=!!(window.attachEvent && !window.opera);
if (window.isIE) {
window.attachEvent('onunload', $_IEGC);
/* window.attachEvent('onload', $_IEGC); */
}
if ($_E){
$_E_original=$_E;
}
if (!window.isIE && window.Node){
Node.prototype.swapNode=function(node){
var nextSibling=this.nextSibling;
var parentNode=this.parentNode;
node.parentNode.replaceChild(this,node);
parentNode.insertBefore(node,nextSibling);
};
}
if (!window.isIE && window.HTMLElement){
HTMLElement.prototype.__defineGetter__("innerText", function(){ return this.textContent;});
}
})();
function $_IEGC(){
CollectGarbage();
}
var ECSideConstants={
EMPTY_FUNCTION : function(){},
EC_ID : "ec",
ETI_ID : "eti",
ETI_PAGE_FLAG : "eti_p",
SORT_PREFIX : "_s_",
FILTER_PREFIX : "_f_",
ACTION : "a",
FILTER_ACTION : "fa",
CLEAR_ACTION : "ca",
PAGEFIELD_SUFFIX : "_p",
EXPORT_IFRAME_SUFFIX : "_ecs_export_iframe",
SHADOW_ROW : "_shadowRow",
HIDE_HEADER_ROW : "_hideListRow",
DEFALUT_ADD_TEMPLATE : "add_template",
AJAX_ZONE_BEGIN : "_begin_ ",
AJAX_ZONE_END : " _end_",
AJAX_ZONE_PREFIX : "",
MIN_COL_WIDTH : 10,
SCROLLBAR_WIDTH :18,
SCROLL_SPEED : 50,
MIN_COLWIDTH : "30",
AJAX_HEADER :['useAjaxPrep','true'],
ROW_HIGHLIGHT_CLASS : "highlight",
ROW_SELECTLIGHT_CLASS : "selectlight",
DRAG_BUTTON_COLOR : "#3366ff",
HEAD_ZONE_SUFFIX : "_headZone",
BODY_ZONE_SUFFIX : "_bodyZone",
FOOT_ZONE_SUFFIX : "_footZone",
LIST_HEIGHT_FIXED : window.isIE?0:0 ,
LIST_WIDTH_FIXED : window.isIE?0:1 ,
IE_WIDTH_FIX_A : 1,
IE_WIDTH_FIX_B : 2,
FF_WIDTH_FIX_A : -3,
FF_WIDTH_FIX_B : -6,
OFFSET_A : 2
};
var $_E=function(){
var elements = [];
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof(element) == 'string') {
var elemId=element;
element = document.getElementById(elemId);
if (element==null){
element = document.getElementsByName(elemId);
if (element.length>0){
element=element[0];
}else{
element=null;
}
}
}
if (arguments.length == 1) {return element;}
elements.push(element);
}
return elements;
};
var ECSideList={};
var ECSide=function(formid){
var Me=this;
Me.findAjaxZoneAtClient=true;
Me.ETI_ID=ECSideConstants.ETI_ID;
Me.ETI_PAGE_FLAG=ECSideConstants.ETI_PAGE_FLAG;
Me.MIN_COL_WIDTH=80;
Me.onLoad=null;
if (!formid||formid==''){
formid=ECSideConstants.EC_ID;
}
Me.id=formid;
Me.EXPORT_IFRAME_ID=formid+ ECSideConstants.EXPORT_IFRAME_SUFFIX;
Me.SHADOWROW_ID=formid+ECSideConstants.SHADOW_ROW;
Me.ECForm=null;
Me.ECMainContent=null;
Me.selectedRow=null;
Me.sortedColumn=null;
Me.sortType="default";
Me.sortedColumnHearderId=null;
Me.afterFillForm=null;
//Me.resizeWay="resizeSibling";
Me.resizeWay="resizeTable";
Me.listWidth=0;
Me.isClassic=false;
Me.canResizeColWidth=false;
Me.useAjax=true;
Me.doPreload=true;
Me.doPreloadPrev=false;
Me.doPrep="temp";
Me.doPrepPrev="temp";
Me.isDebug=false;
Me.prepState={next : 0 ,prev : 0};
Me.prepPage={next : 0 ,prev : 0};
Me.prepareaName={};
Me.pageFieldName=Me.id + ECSideConstants.PAGEFIELD_SUFFIX;
Me.totalPagesFieldName=Me.id+"_totalpages";
Me.prepareaName['next']=Me.id+"_ec_preparea_n";
Me.prepareaName['prev']=Me.id+"_ec_preparea_p";
Me.scrollList=false;
Me.orgListHeight=0;
Me.listHeight=0;
Me.minHeight=0;
Me.columnNum=0;
ECSideList[formid]=Me;
Me.buildPrepArea=function(){
if (!Me.doPreload){
return;
}
var hasPrepareaNext=document.getElementById(this.prepareaName['next']);
if (!hasPrepareaNext){
var ta=document.createElement("textarea");
ta.id=this.prepareaName['next'];
ta.disabled=true;
ta.style.display="none";
document.body.appendChild(ta);
}
var hasPrepareaPrev=document.getElementById(this.prepareaName['prev']);
if (!hasPrepareaPrev){
var tb=document.createElement("textarea");
tb.id=this.prepareaName['prev'];
tb.disabled=true;
tb.style.display="none";
document.body.appendChild(tb);
}
/* for Debug */
if(Me.isDebug){
ta=document.getElementById(this.prepareaName['next']);
tb=document.getElementById(this.prepareaName['prev']);
ta.disabled=false;
ta.style.display="inline";
ta.rows=10;
ta.cols=50;
tb.disabled=false;
tb.style.display="inline";
tb.rows=10;
tb.cols=50;
}
};
Me.goPage=function(){
var newPageNO = $_E(Me.pageFieldName).value;
var key=null;
if(newPageNO==Me.prepPage['next'] && Me.prepState['next']==2){
key='next';
}else if(newPageNO== Me.prepPage['prev'] && Me.prepState['prev']==2 && Me.doPreloadPrev){
key='prev';
}
if (key!==null){
try{
var newhtml=$_E(Me.prepareaName[key]).value;
if (newhtml==''){ $_E(Me.id).submit(); return; }
Me.ECMainContent.innerHTML=newhtml;
Me.prepState[key]=0;
Me.init();
var originalRequest={};
originalRequest.responseText=newhtml;
if (Me.afterFillForm && typeof(Me.afterFillForm)=="function"){
Me.afterFillForm(originalRequest);
}
window.setTimeout(Me.ajaxPrepSubmit,10);
if (typeof(Me.onLoad)=="function"){
Me.onLoad();
}
Me.handleResize();
Me.hideWaitingBar();
}catch(ex){
$_E(Me.pageFieldName).value=newPageNO;
Me.ajaxSubmit();
/* $_E(Me.id).submit(); */
}
}else{
/* $_E(Me.id).submit(); */
Me.ajaxSubmit();
}
};
Me.dealResponse={
'next' : function(originalRequest){
$_E(Me.prepareaName['next']).value =ECSideUtil.cutText(originalRequest.responseText,Me.id);
Me.prepState['next']=2;
Me.doingAjaxSubmit=false;
},
'prev' : function(originalRequest){
$_E(Me.prepareaName['prev']).value =ECSideUtil.cutText(originalRequest.responseText,Me.id);
Me.prepState['prev']=2;
Me.doingAjaxSubmit=false;
}
};
Me.ajaxPrepSubmit=function(){
if (!Me.doPreload){
return;
}
Me.ajaxPrep(1);
Me.ajaxPrep(-1);
};
Me.ajaxPrep=function(which){
var key;
if (which==1){
key='next';
}else if (which==-1 && Me.doPreloadPrev){
key='prev';
}else{
return;
}
Me.prepState[key]=1;
Me.prepPage[key]=$_E(Me.pageFieldName).value/1+which;
if (Me.prepPage[key]<1 || Me.prepPage[key]>($_E(Me.totalPagesFieldName).value/1)) {
return;
}
$_E(Me.pageFieldName).value=Me.prepPage[key];
Me.ajaxSubmit(Me.dealResponse[key],true);
$_E(Me.pageFieldName).value=Me.prepPage[key]-which;
};
Me.doingAjaxSubmit=false;
Me.ajaxSubmit=function(resfunc,asy,parameter){
if (!Me.useAjax){
Me.ECForm.submit();
return;
}
if (!asy){
asy=false;
}
if (!resfunc){
resfunc=Me.fillForm;
}
if(!asy && Me.doingAjaxSubmit){
/*
alert("the last ajax request is not complete. try later.");
return;
*/
}
Me.doingAjaxSubmit=true;
/* fix a prototype bug */
//pars=pars+'&'+appPara;
//pars=pars.replace(/(^|&)_=(&|$)/g,'$1'+'$2');
//pars=pars.replace(/&+/g,'&');
/* end of fix a prototype bug */
//alert(url+" "+pars)
//ECSideUtil.formSubmit(Me.ECForm,resfunc,"post",asy,parameter);
if (Me.findAjaxZoneAtClient===false){
if (!parameter){
parameter={};
}
if (typeof(parameter)=='string'){
parameter+="&findAjaxZoneAtClient=false&";
}else{
parameter.findAjaxZoneAtClient="false";
}
}
Form.request(Me.ECForm,{method:'post',
requestHeaders:ECSideConstants.AJAX_HEADER,
asynchronous: asy,
parameters: parameter,
onComplete :resfunc });
};
Me.fillForm=function(originalRequest){
var newhtml=ECSideUtil.cutText(originalRequest.responseText,Me.id);
if (newhtml==''){
Me.hideWaitingBar();
return;
}
if (newhtml.indexOf("Exception:")==0){
Me.hideWaitingBar();
Me.ECMainContent.innerHTML=newhtml;
return;
}
Me.ECMainContent.innerHTML=newhtml;
Me.init();
if (Me.afterFillForm && typeof(Me.afterFillForm )=="function"){
Me.afterFillForm(originalRequest);
}
Me.doingAjaxSubmit=false;
Me.handleResize();
Me.hideWaitingBar();
/*
Me.initList();
if (typeof(Me.onLoad)=="function"){
Me.onLoad();
}
*/
};
Me.currentShadowRowParent=null;
Me.currentShadowEventSrc=null;
Me.autoCloseOtherShadowRow=true;
Me.getTotalPage=function(){
return Me.ECForm[Me.totalPagesFieldName].value/1;
};
Me.getPageNo=function(){
if (!Me.ECForm[Me.pageFieldName]){
return 1;
}
return Me.ECForm[Me.pageFieldName].value/1;
};
Me.setPageNo=function(pageNo){
Me.ECForm[Me.pageFieldName]=pageNo;
};
Me.showShadowRowCallBack=function(formid,crow,shadowRow,eventSrc){};
Me.hideShadowRowCallBack=function(formid,crow,shadowRow,eventSrc){};
Me.firstShowShadowRowCallBack=function(formid,crow,shadowRow,eventSrc){};
Me.beforeFilter=function(formid){};
Me.beforeSave=function(formid){};
Me.beforeSubmit=function(formid,crow,shadowRow,eventSrc){};
Me.init=function(){
Me.ECForm=document.getElementById(Me.id);
if (!Me.ECForm) {
/* alert("ERR: tableId=\""+Me.id+"\" not exist!"); */
return;
}
Me.doPreload=Me.doPrep=="temp"?Me.doPreload:Me.doPrep;
Me.doPreloadPrev=Me.doPrepPrev=="temp"?Me.doPreloadPrev:Me.doPrepPrev;
Me.DEFAULT_ACTION=Me.ECForm.getAttribute("action");
Me.ECMainContent=document.getElementById(Me.id+"_main_content");
if (window.isIE){
var hideHeader=document.getElementById(Me.id+ECSideConstants.HIDE_HEADER_ROW);
if (hideHeader){
hideHeader.style.display="none";
}
}
if (window.frameElement && window.frameElement.name==Me.EXPORT_IFRAME_ID){
Me.ECForm.style.visibility ="visible";
ECSideUtil.printFrame(window.frameElement.contentWindow);
return;
}
if (Me.sortedColumnHearderId){
var sortedHeader=document.getElementById(Me.sortedColumnHearderId);
if (sortedHeader && Me.sortType && Me.sortType!='' && Me.sortType!='default' ){
var newHtml=ECSideUtil.trimString(sortedHeader.innerHTML,-1)+"
";
sortedHeader.innerHTML=newHtml;
}
}
if (!Me.useAjax){
Me.doPreload=false;
}
if (typeof(Me.ajaxSubmit)!="function"){
Me.useAjax=false;
Me.ajaxSubmit=function(){
Me.ECForm.submit();
};
}
if (Me.useAjax){
Me.buildPrepArea();
Me.ajaxPrepSubmit();
}
Me.ECListHeadZone=document.getElementById(Me.id+ ECSideConstants.HEAD_ZONE_SUFFIX);
Me.ECListBodyZone=document.getElementById(Me.id+ ECSideConstants.BODY_ZONE_SUFFIX);
Me.ECListHead=document.getElementById(Me.id+"_table_head");
Me.ECListBody=document.getElementById(Me.id+"_table_body");
Me.ECListFoot=document.getElementById(Me.id+"_table_foot");
Me.ECListToolbarTable=document.getElementById(Me.id+"_toolbarTable");
Me.ECListToolbarShadow=document.getElementById(Me.id+"_toolbarShadow");
if (Me.ECListToolbarTable){
Me.ECListToolbarShadow.style.height=Me.ECListToolbarTable.offsetHeight+ 2 +"px";
}
Me.orgListHeight=Me.ECListBody.scrollHeight;
Me.initWaitingBar();
Me.initList();
Me.columnHandler();
Me.listWidth=Me.ECListHead.parentNode.clientWidth;
Me.listHeight=Me.orgListHeight;
Me.ECForm.style.visibility ="visible";
};
Me.waitingBar=null;
Me.waitingBarCore=null;
Me.waitingShowTimes=0;
Me.initWaitingBar=function(){
Me.waitingShowTimes=0;
Me.waitingBar=document.getElementById(Me.id+"_waitingBar");
Me.waitingBar.setAttribute("big","false");
Me.waitingBarCore=document.getElementById(Me.id+"_waitingBarCore");
Me.waitingBarCore.innerHTML=ECSideMessage.WAITTING_MSG;
var wLeft=ECSideUtil.getPosLeft(Me.ECForm);
var wTop=ECSideUtil.getPosTop(Me.ECForm);
Me.waitingBar.style.left=wLeft+"px";
Me.waitingBar.style.top=wTop+"px";
};
Me.resizeWaitinBar=function(){
if (Me.waitingBar && Me.waitingBar.getAttribute("big")=="true"){
var w=Me.ECForm.offsetWidth;
var h=Me.ECForm.offsetHeight;
var cw=Me.waitingBarCore.offsetWidth;
var ch=Me.waitingBarCore.offsetHeight;
Me.waitingBar.style.width=w +"px";
Me.waitingBar.style.height=h-2 +"px";
Me.waitingBarCore.style.left= parseInt(Me.waitingBar.style.left)+(w-cw-50)/2 + "px";
Me.waitingBarCore.style.top=parseInt(Me.waitingBar.style.top)+ (h-ch-40)/2 + "px";
}
};
Me.showWaitingBar=function(){
Me.waitingShowTimes++;
Me.waitingBar.style.height="";
Me.waitingBar.style.width="";
Me.waitingBar.setAttribute("big","false");
if (Me.ECForm[Me.id+"_rd"]) {
Me.ECForm[Me.id+"_rd"].style.display="";
}
Me.waitingBarCore.style.left=Me.waitingBar.style.left;
Me.waitingBarCore.style.top=Me.waitingBar.style.top;
Me.waitingBar.style.display="block";
Me.waitingBarCore.style.display="block";
};
Me.showBigWaitingBar=function(){
Me.waitingShowTimes++;
Me.waitingBar.setAttribute("big","true");
Me.resizeWaitinBar();
if (Me.ECForm[Me.id+"_rd"]) {
Me.ECForm[Me.id+"_rd"].style.display="none";
}
Me.waitingBar.style.display="block";
Me.waitingBarCore.style.display="block";
};
Me.hideWaitingBar=function(){
Me.waitingShowTimes--;
if (Me.waitingShowTimes<1){
Me.waitingBar.setAttribute("big","false");
Me.waitingBar.style.display="none";
Me.waitingBarCore.style.display="none";
Me.waitingShowTimes=0;
if (Me.ECForm[Me.id+"_rd"]) {
Me.ECForm[Me.id+"_rd"].style.display="";
}
}
};
Me.autoFitHeight=function(){
if ( Me.ECListBodyZone.offsetHeight>=Me.ECListBody.parentNode.scrollHeight ){
var dh=Me.ECListBodyZone.offsetHeight-Me.ECListBodyZone.clientHeight+ECSideConstants.LIST_HEIGHT_FIXED;
if (dh <=2 && Me.ECListBodyZone.offsetWidth-Me.ECListBodyZone.clientWidth>2){
dh=ECSideConstants.SCROLLBAR_WIDTH;
}
var tHeight=Me.ECListBody.parentNode.scrollHeight+dh;
tHeight=tHeight0){
Me.resizeHeader();
Me.resized=0;
return;
}
Me.autoFitHeight();
if (window.isIE && Me.ECListToolbarTable){
if(Me.ECListBodyZone.offsetWidth +1 1){
alert(message);
}
}
}
ecsideObj.hideWaitingBar();
};
Me.insertCallBack=function(responseObj){
var rs=ECSideUtil.responseHandler(responseObj);
var tableId=ECSideUtil.trimString(rs[0]);
var ecsideObj=ECSideUtil.getGridObj(tableId);
for (var i=1;i1){
alert(message);
}
}
}
ecsideObj.hideWaitingBar();
};
Me.deleteCallBack=function(responseObj){
var rs=ECSideUtil.responseHandler(responseObj);
var tableId=ECSideUtil.trimString(rs[0]);
var ecsideObj=ECSideUtil.getGridObj(tableId);
for (var i=1;i1){
alert(message);
}
}
}
ecsideObj.hideWaitingBar();
};
};
var ECSideUtil={};
ECSideUtil.responseHandler=function(responseObj){
var result=responseObj.responseText;
result=ECSideUtil.trimString(result);
var rs=result.split("\n");
return rs;
};
ECSideUtil.syncRowsWidth=function(rows1,rows2){
var IE_FIX=0;
var FF_FIX=0;
//IE_FIX=4;
if (rows1 && rows2 && rows1.length>0 && rows2.length>0){
var headTDs=rows1[0].cells;
var bodyTDs=rows2[0].cells;
if (window.isIE){
for (var i=0;i0){
tt=parseInt(bodyTDs[i].width);
}else{
tt=parseInt(bodyTDs[i].style.width);
}
if (isNaN(tt)) {
continue;
}
//tt=bodyTDs[i].offsetWidth;
var brw=0;
brw=headTDs[i].getAttribute("resizeColWidth")=="true"?2:(i==0?0:(i+1==colNum?2:0));
headTDs[i].style.width= (tt+ FF_FIX+ brw )+ "px";
var dw2=bodyTDs[i].clientWidth-headTDs[i].clientWidth;
var dw=bodyTDs[i].offsetWidth-headTDs[i].offsetWidth;
if (headTDs[i].getAttribute("resizeColWidth")!="true" && dw!=0){
headTDs[i].style.width =(tt+ FF_FIX+ brw ) +dw+"px";
}
}
}
}
}
ECSideUtil.resizeAllGird=function(){
for (var girdId in ECSideList ){
var gird=ECSideList[girdId];
gird.handleResize();
}
};
ECSideUtil.getGridObj=function(formid){
if (!formid){
formid=ECSideConstants.EC_ID;
}
return ECSideList[formid];
};
ECSideUtil.getECSideForm=function(formid){
var ecsideObj=ECSideUtil.getGridObj(formid);
if (ecsideObj){
return ecsideObj.ECForm;
}
return null;
};
ECSideUtil.getMessage=function(name, msgs){
var msgTemplate=ECSideMessage[name];
for (var i=1;itotalpages){
alert(ECSideUtil.getMessage("ERR_PAGENO",totalpages));
inputNoObj.focus();
inputNoObj.select();
return;
}
if (pageno<1){
pageno=1;
}
ECSideUtil.gotoPage(pageno,formid);
};
ECSideUtil.doSort=function(event,columnAlias,sortT1,formid,columnHearderId){
var e = event||window.event;
if ( ECSideUtil.startDragobj==true || ECSideUtil.Dragobj){
return;
}
if (window.isIE && e.button>1) {
return;
}
var asc="asc";
var desc="desc";
var defaultOrder="default";
var ecsideObj=ECSideUtil.getGridObj(formid);
var pageid=ecsideObj.pageFieldName;
var form=ecsideObj.ECForm;
//form[pageid].value=1;
if ( typeof(sortT1)!='string'){
columnHearderId=sortT1.id;
sortT1=null;
}else if(columnHearderId && typeof(columnHearderId)!='string'){
columnHearderId=columnHearderId.id;
}
var tOrder="default";
if (sortT1){
tOrder=sortT1;
}else if (ecsideObj.sortedColumn==columnAlias){
if (!ecsideObj.sortType || ecsideObj.sortType=="default"){
tOrder="asc";
}else if (ecsideObj.sortType=="asc"){
tOrder="desc";
}else if (ecsideObj.sortType=="desc"){
tOrder="default";
}else{
tOrder="asc";
}
}else{
tOrder="asc";
}
ECSideUtil.noExport(formid);
var oAction=form.action;
form.action=ecsideObj.DEFAULT_ACTION;
if (ecsideObj.sortedColumn && ecsideObj.sortedColumn!=''){
form[formid+ECSideConstants.SORT_PREFIX+ecsideObj.sortedColumn].value="";
}
ecsideObj.sortedColumn=columnAlias;
ecsideObj.sortType=tOrder;
ecsideObj.sortedColumnHearderId=columnHearderId;
if (ecsideObj.custSort){
ecsideObj.custSort(columnAlias,tOrder);
}else{
form[formid+ECSideConstants.SORT_PREFIX+columnAlias].value=tOrder;
}
try {
ecsideObj.ajaxSubmit();
form.action=oAction;
}catch (e2){
form.submit();
}
ECSideUtil.ColmunMenu.doHideMe();
};
ECSideUtil.doCustomExport=function(fileName,exportAction,formid){
var form=ECSideUtil.getECSideForm(formid);
var otarget=form.target;
var oaction=form.action;
form[formid+"_efn"].value=fileName;
form.action=exportAction;
var targetFrame=ECSideList[formid].EXPORT_IFRAME_ID;
targetFrame=document.getElementById(targetFrame);
if (targetFrame){
form.target=ECSideList[formid].EXPORT_IFRAME_ID;
}
form.submit();
form.target= otarget;
form.action=oaction;
ECSideUtil.noExport(formid);
};
ECSideUtil.doExportList=function(fileName,page,formid){
var type="xls";
ECSideUtil.doExport(type,fileName,page,formid);
};
ECSideUtil.doExport=function(type,fileName,page,formid){
/* for compatibility */
if (arguments.length>4){
type=arguments[4];
fileName=arguments[5];
}
var ecsideObj=ECSideUtil.getGridObj(formid);
var etiid=ecsideObj.ETI_ID;
var etip=ecsideObj.ETI_PAGE_FLAG
var form=ecsideObj.ECForm;
if (page==true){
page=true;
}else{
page=false;
}
page=!confirm(ECSideMessage.EXPORT_CONFIRM);
var maxRowsExported = form.getAttribute("maxRowsExported");
if (page===false && maxRowsExported && ECSideUtil.parseIntOrZero(maxRowsExported)>0){
if(ECSideUtil.parseIntOrZero(maxRowsExported) 0) ? (/^\s+/) : (wh < 0) ? (/\s+$/) : (/^\s+|\s+$/g);
return str.replace(re, "");
};
ECSideUtil.getPosTop=function(elm) {
var top = elm.offsetTop;
while((elm = elm.offsetParent) != null) {
top += (elm.offsetTop-elm.scrollTop);
}
return top;
}
ECSideUtil.getPosLeft=function(elm) {
var left = elm.offsetLeft;
while((elm = elm.offsetParent) != null) {
left += (elm.offsetLeft-elm.scrollLeft);
}
return left;
};
ECSideUtil.getPosRight=function(elm){
return ECSideUtil.getPosLeft(elm)+elm.offsetWidth;
};
ECSideUtil.getPosBottom=function(elm){
return ECSideUtil.getPosTop(elm)+elm.offsetHeight;
};
ECSideUtil.replaceAll=function(exstr,ov,value){
var gc=ECSideUtil.escapeRegExp(ov);
if (gc==null || gc==''){
return exstr;
}
var reReplaceGene="/"+gc+"/gm";
var r=null;
var cmd="r=exstr.replace("+reReplaceGene+","+ECSideUtil.escapeString(value)+")";
eval(cmd);
return r;
};
ECSideUtil.escapeRegExp=function(str) {
return !str?''+str:(''+str).replace(/\\/gm, "\\\\").replace(/([\f\b\n\t\r[\^$|?*+(){}])/gm, "\\$1");
};
ECSideUtil.escapeString=function(str){
return !str?''+str:('"' + (''+str).replace(/(["\\])/g, '\\$1') + '"'
).replace(/[\f]/g, "\\f"
).replace(/[\b]/g, "\\b"
).replace(/[\n]/g, "\\n"
).replace(/[\t]/g, "\\t"
).replace(/[\r]/g, "\\r");
};
ECSideUtil.hasClass=function(object, className) {
if (!object.className) { return false;}
return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1);
};
ECSideUtil.removeClass=function(object,className) {
if (!object) {return;}
object.className = object.className.replace(new RegExp('(^|\\s)'+className+'(\\s|$)'), ' ');
};
ECSideUtil.addClass=function(object,className) {
if (!object || ECSideUtil.hasClass(object, className)){return;}
if (object.className) {
object.className += ' '+className;
} else {
object.className = className;
}
};
ECSideUtil.parseIntOrZero=function(num){
return ECSideUtil.parseInt(num,0);
};
ECSideUtil.parseIntOrOne=function(num){
return ECSideUtil.parseInt(num,1);
};
ECSideUtil.parseInt=function(num,defaultNum){
var t=parseInt(num);
return isNaN(t)?defaultNum:t;
};
ECSideUtil.isCollection=function(obj){
return obj && typeof(obj) != 'string' && typeof(obj.length) == 'number';
};
ECSideUtil.appendMap=function(destination,source){
for (var property in source) {
if (property in destination) {
if (destination[property].constructor != Array) destination[property] = [destination[property]];
destination[property].push(source[property]);
}else{
destination[property] = source[property];
}
}
};
ECSideUtil.groupByCol=function(rows,colNo,startRowNo,endRowNo){
if (!colNo){
colNo=0;
}
if (!startRowNo || startRowNo<0){
startRowNo=0;
}
if (!endRowNo||endRowNo>rows.length){
endRowNo=rows.length;
}
var show="";
var hide="none";
var cell=null;
var info=[];
var startCell=rows[startRowNo].cells[colNo];
var startRowSpan=startCell.rowSpan;
for (var i=startRowNo+1;irows.length){
endRowNo=rows.length;
}
var show="";
var hide="none";
var cell=null;
for (var i=startRowNo;i1){
cell.rowSpan=1;
}
}
};
/* ===========LIST SCROLL ============= */
ECSideUtil.initSeparateLine=function(){
var temp=document.getElementById("separateLine");
if (!temp){
ECSideUtil.separateLine=document.createElement("DIV");
ECSideUtil.separateLine.id="separateLine";
ECSideUtil.separateLine.className="separateLine";
ECSideUtil.separateLine.style.display="none";
document.body.appendChild(ECSideUtil.separateLine);
}
};
/* =========== MENU ============= */
var ECSPopup=function(eid){
var Me=this;
Me.id=eid;
Me.currentContent=null;
Me.hideTimeout1=500;
Me.hideTimeout2=200;
Me.coreElement=null;
Me.isShow=false;
Me.setShow=function(){
Me.isShow=true;
};
Me.setHide=function(){
Me.isShow=false;
};
Me.initMe=function(){
/* TODO */
};
Me.showMe=function(){
/* TODO */
Me.setShow();
};
Me.hideMe=function(){
window.setTimeout(Me.tryHideMe, Me.hideTimeout1);
Me.setHide();
};
Me.tryHideMe=function(){
if (!Me.isShow){
Me.doHideMe();
}
};
Me.doHideMe=function(){
Me.coreElement.style.display="none";
Me.setHide();
};
};
/*
2
*/
ECSideUtil.NearPagesBar=new ECSPopup("nearPagesBar");
ECSideUtil.NearPagesBar.initMe=function(){
var temp=document.getElementById("nearPagesBar");
if (!temp){
this.coreElement=document.createElement("DIV");
this.coreElement.id=this.id;
this.coreElement.className = this.id ;
this.coreElement.style.display="none";
document.body.appendChild(this.coreElement);
ECSideUtil_addEvent(this.coreElement,"mouseover",this.setShow );
ECSideUtil_addEvent(this.coreElement,"mouseout",this.hideMe);
this.currentContent="formid : nearPages";
}
};
ECSideUtil.NearPagesBar.createNearPagesList=function(nearPages,formid){
var listHtml= ECSideMessage.NEARPAGE_TITLE;
var ecsideObj=ECSideUtil.getGridObj(formid);
var page=ecsideObj.getPageNo();
var lastPage=ecsideObj.getTotalPage();
var pi1=0;
var startP=page- nearPages;
var endP=page+ nearPages;
if ( startP<1){
endP=endP+(1-startP);
startP=1;
}
if ( endP>lastPage){
startP=startP-(endP-lastPage);
endP=lastPage;
}
startP=startP<1?1:startP;
listHtml+="";
for (pi1=startP;pi1<=endP;pi1++){
if (pi1==page){
listHtml+=" "+pi1+" ";
}else{
listHtml+=""+pi1+"";
}
}
listHtml+="";
return listHtml;
}
ECSideUtil.NearPagesBar.showMe=function(fireObj,formid){
var ecsideObj=ECSideUtil.getGridObj(formid);
var nearPages=ECSideUtil.parseIntOrZero( ecsideObj.ECForm.getAttribute("nearPages"));
if (nearPages<2){ return ; }
var page=ecsideObj.getPageNo();
//if (this.currentContent!=formid+" : "+page){
this.currentContent=formid+" : "+page;
this.coreElement.innerHTML=this.createNearPagesList(nearPages,formid);
//}
this.setShow();
this.coreElement.style.display="block";
var dx=(this.coreElement.offsetWidth-fireObj.offsetWidth)/2;
this.coreElement.style.left=ECSideUtil.getPosLeft(fireObj)-dx+document.body.scrollLeft+"px";
this.coreElement.style.top= (ECSideUtil.getPosTop(fireObj)- this.coreElement.offsetHeight+document.body.scrollTop) +"px";
};
////////////////////////////////////////////
ECSideUtil.doFilterFocus=function(event,filterInputObj){
var e = event||window.event;
filterInputObj.select();
ECSideUtil_stopEvent(e);
}
ECSideUtil.doFilter=function(event,filterInputObj,filterFieldName,formid){
var e = event||window.event;
if(filterInputObj.type=="button"){
filterInputObj=filterInputObj.nextSibling;
}else if (event.keyCode != 13){
return;
}
ECSideUtil.doFilterCore(filterInputObj,filterFieldName,ECSideConstants.FILTER_ACTION,formid);
};
ECSideUtil.doClearFilter=function(event,filterInputObj,filterFieldName,formid){
ECSideUtil.doFilterCore(filterInputObj,filterFieldName,ECSideConstants.CLEAR_ACTION,formid);
};
ECSideUtil.doFilterCore=function(filterInputObj,filterFieldName,faction,formid){
var ecsideObj=ECSideUtil.getGridObj(formid);
var pageid=ecsideObj.pageFieldName;
var form=ecsideObj.ECForm;
var continueFunction=true;
if (ecsideObj.beforeFilter){
continueFunction=ecsideObj.beforeFilter(formid);
}
if (continueFunction===false){
return;
}
form[formid+ECSideConstants.FILTER_PREFIX+ECSideConstants.ACTION].value=faction;
form[pageid].value=1;
ECSideUtil.clearTotalRows(formid);
ECSideUtil.noExport(formid);
var oAction=form.action;
form.action=ecsideObj.DEFAULT_ACTION;
if (filterInputObj!=null){
form[filterFieldName].value=filterInputObj.value;
}
try {
ecsideObj.ajaxSubmit();
form.action=oAction;
}catch (e2){
form.submit();
}
ECSideUtil.ColmunMenu.doHideMe();
}
ECSideUtil.showColmunMenu=function(event,columnObj,formid){
var e = event||window.event;
ECSideUtil.ColmunMenu.showMe(columnObj,formid);
return ECSideUtil_stopEvent(e);
}
ECSideUtil.ColmunMenu=new ECSPopup("columnMenu");
ECSideUtil.ColmunMenu.initMe=function(){
var temp=document.getElementById("columnMenu");
if (!temp){
this.coreElement=document.createElement("table");
this.coreElement.id=this.id;
this.coreElement.className = this.id ;
this.coreElement.style.display="none";
this.coreElement.style.left="0px";
this.coreElement.style.top="0px";
var ntbody=document.createElement("tbody");
var ntr=document.createElement("tr");
var ntd=document.createElement("td");
ntr.appendChild(ntd);
ntbody.appendChild(ntr);
this.coreElement.appendChild(ntbody);
document.body.appendChild(this.coreElement);
this.currentContent="formid : columnIdx";
}
this.setHide();
};
ECSideUtil.ColmunMenu.getFilterItem=function(menuWidth,columnObj,columnName,formid){
var FIX_WIDTH=20;
var filterFieldName=formid+ECSideConstants.FILTER_PREFIX+columnName;
var filterField=$_E(filterFieldName);
if (!filterField){
return "";
}
var v=filterField.value;
var jsfunction="ECSideUtil.doFilter(event,this,'"+filterFieldName+"','"+formid+"')";
//this.coreElement.style.width=width+"px";
var filterHTML="";
var templateId=columnObj.getAttribute("editTemplate");
var template=document.getElementById(templateId);
var templateText=window.isIE?template.value:template.textContent;
templateText=ECSideUtil.trimString(templateText);
if (templateText.toLowerCase().indexOf("";
}
var clearHTML="";
clearHTML+=""+ECSideMessage.FILTERCLEAR_TEXT+"";
return filterHTML+"
"+clearHTML;
};
ECSideUtil.ColmunMenu.getSortItem=function(menuWidth,columnObj,columnName,formid){
var FIX_WIDTH=30;
var sortFieldName=formid+ECSideConstants.SORT_PREFIX+columnName;
var sortField=$_E(sortFieldName);
if (!sortField){
return "";
}
var jsfunctionAsc="ECSideUtil.doSort(event,'"+columnName+"','asc','"+formid+"')";
var jsfunctionDesc="ECSideUtil.doSort(event,'"+columnName+"','desc','"+formid+"')";
var jsfunctionDefault="ECSideUtil.doSort(event,'"+columnName+"','default','"+formid+"')";
var ascHTML="";
ascHTML+=""+ECSideMessage.SORTASC_TEXT+"";
var descHTML="";
descHTML+=""+ECSideMessage.SORTDESC_TEXT+"";
var defaultHTML="";
defaultHTML+=""+ECSideMessage.SORTDEFAULT_TEXT+"";
return ascHTML+"
"+descHTML+"
"+defaultHTML;
};
ECSideUtil.ColmunMenu.showMe=function(fireObj,formid){
var minWidth=100;
var FIX_WIDTH=5;
var menuWidth=0;
var columnName=fireObj.getAttribute("columnName");
if(this.currentContent==formid+" : "+columnName && this.isShow){
ECSideUtil.ColmunMenu.doHideMe();
return;
}
menuWidth =fireObj.offsetWidth- FIX_WIDTH;
menuWidth=menuWidth< minWidth? minWidth :menuWidth;
var menuZone=this.coreElement.rows[0].cells[0];
var filterItemHTML=this.getFilterItem(menuWidth,fireObj,columnName,formid);
var sortItemHTML=this.getSortItem(menuWidth,fireObj,columnName,formid);
if (filterItemHTML=="" && sortItemHTML==""){
return;
}
var menuHTML=filterItemHTML+"
" + sortItemHTML;
menuZone.innerHTML= menuHTML ;
this.coreElement.style.top= ECSideUtil.getPosBottom(fireObj)+document.body.scrollTop +"px";
this.coreElement.style.display="block";
var tempLeft=ECSideUtil.getPosLeft(fireObj)+document.body.scrollLeft;
if ( tempLeft+this.coreElement.offsetWidth >=document.body.clientWidth-2){
tempLeft=document.body.clientWidth-2-this.coreElement.offsetWidth;
}
this.coreElement.style.left=tempLeft+"px";
this.setShow();
this.currentContent=formid+" : "+columnName;
};
/* ============ RESIZE COLUMN WIDTH ======================= */
ECSideUtil.startDragobj=false;
ECSideUtil.MinColWidth=ECSideConstants.MIN_COLWIDTH;
ECSideUtil.Dragobj=null;
ECSideUtil.DragobjBodyCell=null;
ECSideUtil.DragobjBodyCellNext=null;
ECSideUtil.DragobjNext=null;
ECSideUtil.DragECSideObj=null;
ECSideUtil.leftC=0;
ECSideUtil.rightC=0;
ECSideUtil.startC=0;
ECSideUtil.endC=0;
ECSideUtil.StartResize=function(event,obj,formid){
var e = event||window.event;
if (!formid){
formid=ECSideConstants.EC_ID;
}
obj.focus();
document.body.style.cursor = "col-resize";
var dx=window.isIE?e.x:e.pageX;
ECSideUtil.DragECSideObj=ECSideList[formid];
ECSideUtil.Dragobj=obj.parentNode;
ECSideUtil.DragobjNext = ECSideUtil.getNextElement(ECSideUtil.Dragobj);
var way=ECSideUtil.DragECSideObj.resizeWay;
//ECSideUtil.startC=e.screenX;
ECSideUtil.leftC =ECSideUtil.getPosLeft( ECSideUtil.Dragobj )+parseInt(ECSideUtil.MinColWidth);
if (way=="resizeTable" || !ECSideUtil.DragobjNext){
if (ECSideUtil.DragECSideObj.ECListBodyZone){
ECSideUtil.rightC =ECSideUtil.getPosRight(ECSideUtil.DragECSideObj.ECListBodyZone);
}else{
ECSideUtil.rightC=document.body.clientWidth;
}
}else{
ECSideUtil.rightC =ECSideUtil.getPosRight( ECSideUtil.DragobjNext )-parseInt(ECSideUtil.MinColWidth);
}
ECSideUtil.leftC+=document.body.scrollLeft;
ECSideUtil.rightC+=document.body.scrollLeft;
var cellIndex=ECSideUtil.Dragobj.cellIndex;
try{
ECSideUtil.DragobjBodyCell=ECSideList[formid].ECListBody.rows[0].cells[cellIndex];
}catch(e){
ECSideUtil.DragobjBodyCell=null;
}
try{
ECSideUtil.DragobjBodyCellNext=ECSideUtil.getNextElement(ECSideUtil.DragobjBodyCell);
}catch(e){
ECSideUtil.DragobjBodyCellNext=null;
}
ECSideUtil.MinColWidth=ECSideList[formid].MIN_COL_WIDTH;
if (!ECSideUtil.MinColWidth||ECSideUtil.MinColWidth=='' || ECSideUtil.MinColWidth<1){
ECSideUtil.MinColWidth=ECSideConstants.MIN_COLWIDTH;
}
ECSideUtil.separateLine.style.top=ECSideUtil.getPosTop(ECSideUtil.DragECSideObj.ECListHead)+2;
var dX=window.isIE?document.body.scrollLeft+e.clientX:document.body.scrollLeft+e.pageX;
//ECSideUtil.startC=ECSideUtil.getPosRight( ECSideUtil.Dragobj )-ECSideUtil.parseIntOrZero(ECSideUtil.separateLine.style.width)+document.body.scrollLeft-ECSideUtil.DragECSideObj.ECListBodyZone.scrollLeft;
ECSideUtil.startC=dX;
ECSideUtil.separateLine.style.left=ECSideUtil.startC+"px";
var th=ECSideUtil.DragECSideObj.ECListHead.parentNode.clientHeight;
if (ECSideUtil.DragECSideObj.ECListHead.parentNode!=ECSideUtil.DragECSideObj.ECListBody.parentNode){
th+=ECSideUtil.DragECSideObj.ECListBodyZone.clientHeight;
}
ECSideUtil.separateLine.style.height=th+'px';
ECSideUtil.separateLine.style.display="block";
ECSideUtil.startDragobj=true;
ECSideUtil_stopEvent(e);
}
ECSideUtil.DoResize=function(event){
var e = event||window.event;
var dX=window.isIE?document.body.scrollLeft+e.clientX:document.body.scrollLeft+e.pageX;
if (!ECSideUtil.Dragobj || !ECSideUtil.startDragobj){
if (ECSideUtil.separateLine){
ECSideUtil.separateLine.style.display="none";
}
document.body.style.cursor = "";
return;
}
if (dX<=ECSideUtil.leftC || dX>=ECSideUtil.rightC){
document.body.style.cursor = "not-allowed";
return;
}
if (document.body.style.cursor == "not-allowed"){
document.body.style.cursor = "col-resize";
}
ECSideUtil.separateLine.style.left=dX+"px";
}
ECSideUtil.EndResize=function(event){
if (!ECSideUtil.Dragobj){
ECSideUtil.startDragobj=false;
document.body.style.cursor = "";
return;
}
var e = event||window.event;
//ECSideUtil.endC=e.screenX;
ECSideUtil.endC=ECSideUtil.parseIntOrZero(ECSideUtil.separateLine.style.left);
var dWidth=ECSideUtil.startC-ECSideUtil.endC;
var fixX=0;
if (window.isIE){
fixX = ECSideConstants.IE_WIDTH_FIX_A;
}else{
fixX= ECSideConstants.FF_WIDTH_FIX_A;
}
var cc=0;
cc=ECSideUtil.DragobjBodyCell.clientWidth-dWidth+fixX;
ECSideUtil.Dragobj.style.width=cc+"px";
ECSideUtil.DragobjBodyCell.style.width=cc+"px";
ECSideUtil.DragobjBodyCell.width = cc+"px";
/*
if (ECSideUtil.DragobjNext && ECSideUtil.DragECSideObj.resizeWay!="resizeTable"){
cc=ECSideUtil.DragobjBodyCellNext.clientWidth+dWidth+fixX;
if (cc<10){
cc=10;
}
ECSideUtil.DragobjNext.style.width=cc+"px";
ECSideUtil.DragobjBodyCellNext.style.width=cc+"px";
ECSideUtil.DragobjBodyCellNext.width = cc+"px";
}
*/
if (!ECSideUtil.DragECSideObj.isClassic){
ECSideUtil.syncRowsWidth(ECSideUtil.DragECSideObj.ECListHead.rows,ECSideUtil.DragECSideObj.ECListBody.rows);
}
document.body.style.cursor = "";
ECSideUtil.separateLine.style.display="none";
ECSideUtil.DragECSideObj.handleResize();
try{
//ECSideUtil.DragECSideObj.initScrollXscrollWidth();
//ECSideUtil.DragECSideObj.initScrollBarSize();
}catch(e){}
ECSideUtil.startDragobj=false;
ECSideUtil.Dragobj=null;
ECSideUtil.DragECSideObj=null;
ECSideUtil.DragobjBodyCell=null;
ECSideUtil.DragobjBodyCellNext=null;
ECSideUtil.DragobjNext=null;
ECSideUtil_stopEvent(e);
}
ECSideUtil.resizeInit=function(){
document.onmousemove = ECSideUtil.DoResize;
document.onmouseup = ECSideUtil.EndResize;
document.body.ondrag = function() {return false;};
document.body.onselectstart = function() {
return ECSideUtil.Dragobj==null && ECSideUtil.startDragobj==false;
};
/*
var e = event||window.event;
e.cancelBubble = true
e.returnValue = false;
return false;
*/
};
/* ===========EDIT CELL ============= */
ECSideUtil.getColumnName=function(cellObj,formid){
var ecsideObj=ECSideUtil.getGridObj(formid);
var cname='';
try {
var idx=cellObj.cellIndex;
var cell=ecsideObj.ECListHead.rows[0].cells[idx];
cname=cell.getAttribute("columnName");
}catch(e){
cname='';
}
return cname;
};
// editType = input select checkbox radio
ECSideUtil.editCell=function(cellObj,formid,templateId){
if (cellObj.getAttribute("editing")=="true"){
return;
}
var ecsideObj=ECSideUtil.getGridObj(formid);
cellObj.setAttribute("editing","true");
if (!templateId){
var idx=cellObj.cellIndex;
var thcell=ecsideObj.ECListHead.rows[0].cells[idx];
templateId=thcell.getAttribute("editTemplate");
}
var template=document.getElementById(templateId);
var templateText=window.isIE?template.value:template.textContent;
templateText=ECSideUtil.trimString(templateText);
var text=window.isIE?cellObj.innerText:cellObj.textContent;
var value=cellObj.getAttribute("cellValue");
value=value==null?text:value;
value=ECSideUtil.trimString(value);
var name=ECSideUtil.getColumnName(cellObj,formid);
if (templateText.indexOf("name=\"\"")>0){
templateText=ECSideUtil.replaceAll(templateText,"name=\"\"","name=\""+name+"\"");
}
var editType="input";
if (templateText.toLowerCase().indexOf("0){
editType="checkbox";
}else if(templateText.indexOf(" type=\"radio\"")>0){
editType="radio";
}
}else if (templateText.toLowerCase().indexOf("