










function doRepAction() {
  adminTheFormSubmit();
}

if(isNull(document.REPORTS)){
 document.REPORTS = new Object();
}
function Report(data){
 for(i in data){
  this[i]=data[i];
 }
 this.window = window.self;
}
new Report();
var EMPTY_REPORT = new Object();

function FakeForm(){
}

Report.prototype.addProperties=function(data) {
 for(i in data){
  this[i]=data[i];
 }
}

Report.prototype.setCheckPageChanges=function(bDoCheck) {
  this.chkChanges = bDoCheck;
}

Report.prototype.doAjaxRepAction=function(clrMessages) {
  var bIsCheckPageChanges = adminIsCheckPageChanges();
  var bNeedsSaving = adminNeedsSaving;

  if (bIsCheckPageChanges && !isNull(this.chkChanges)) {
    if (this.chkChanges == 0) { 
      adminSetNeedSaving(false);
      adminCheckPageChanges(false);
    }
  }
  var ret;
  
  if (this.ajax) {
    if (isNull(clrMessages)) {
      clrMessages = true;
    }
    var objProg = getDocElm('RepProg' + this.id);
    if (objProg) {objProg.style.display='block';}
    ret = doAjaxAction("UPDATE_REPORT:" + this.reportId, this.id,  this.reportURI, false, clrMessages);
  } else {
    ret = doRepAction();
  }
  
  if (bIsCheckPageChanges && !isNull(this.chkChanges)) {
    if (this.chkChanges == 0) {
      adminSetNeedSaving(bNeedsSaving);
      adminCheckPageChanges(true);
    }
  }
  
  return ret;
}

Report.prototype.scrollTopIntoView=function(){
  getDocElm('Rep_' + this.id).scrollIntoView();
}

Report.prototype.findForm=function(){
 if(!isNull(this.form)){
  return this.form;
 }
 if(!isNull(document.forms[this.id])){
  this.form = document.forms[this.id];
  return this.form;
 }
 for(var i=0; i<document.forms.length; i++){
  var _form = document.forms[i];
  if(!isNull(_form.elements[this.action])){
   this.form = _form;
   return this.form;
  }
 }
 this.form = new FakeForm();
 return this.form;
}
Report.prototype._submitForm=function(_action,_reset,clrMessages){
 var _form = this.findForm();
 _form.elements[this.action].value = _action;
 return this.doAjaxRepAction(clrMessages);
}
Report.prototype.run=function(){
 this._submitForm("RUN");
}
Report.prototype.refresh=function(clrMessages){
 this._submitForm("refreshRep",true,clrMessages);
}
Report.prototype.prevPage=function(){
 this._submitForm("prevPage",true);
}
Report.prototype.nextPage=function(){
 this._submitForm("nextPage",true);
}
Report.prototype.handleKey=function(e){
  if (e.keyCode==13) {
    this.run();
    return false;
  }
  return true;
}

Report.prototype.moveToRecord=function(_row){
 var _form = this.findForm();
 _form.elements[this.startRow].value = _row;
 _form.elements[this.action].value = "goToRow";
 return this.doAjaxRepAction();
}
Report.prototype.clear=function(){
 var _form = this.findForm();
 for(i in this.col){
   var col = this.col[i];
   if(col.filterOp)clearComponent(_form.elements[col.filterOp]);
   if(col.filterValue)clearComponent(_form.elements[col.filterValue]);
 }
}
Report.prototype.exportTo=function(_t,_type){
  var _form = this.findForm();
 _form.elements[this.action].value = "EXPORT";
 _form.elements[this.actionParam].value = 'xml';
  this.showPopup2(_t,this.functionUrl,550,450,false,'Export Report',true,"AUTO");
}
Report.prototype.print=function(){
}
Report.prototype.sortBy=function(_col,_asc,_top,_event){
 var _second = window.event && (window.event.ctrlKey || window.event.shiftKey || window.event.metaKey);
 var _form = this.findForm();
 _form.elements[this.startRow].value = 0;
 _form.elements[this.action].value = "RUN";
 _form.elements[this.col[_col].sortOrder].value = _asc;
 _form.elements[this.col[_col].sortPos].value=_second?-98:-99;
 return this.doAjaxRepAction();
}
Report.prototype.groupBy=function(_obj,_level){
 if(isNaN(_level)){
  _level = -1;
 }
 var _form = this.findForm();
 _form.elements[this.startRow].value = 0;
 _form.elements[this.action].value = "RUN";
 _form.elements[this.obj[_obj].group].value = _level;
 return this.doAjaxRepAction();
}

Report.prototype.hideCol=function(_col){
 var _form = this.findForm();
 _form.elements[this.action].value = "RUN";
 _form.elements[this.col[_col].pos].value = -1;
 return this.doAjaxRepAction();
}

Report.prototype.saveSettings=function(_t, asNew){
  var _form = this.findForm();
  _form.elements[this.action].value="SETTINGS_SAVE";
  _form.elements[this.actionParam].value = asNew;
  this.showPopup2(_t,this.functionUrl,400,250,false,'Save Report Settings',true,"AUTO");
}
Report.prototype.loadSavedSettings=function(_t){
  this.showPopup(_t,'/ta/Default.admin?rnd=FAOJYNGU&@impl=zeyt.report.webview.UiControl_SavedSettingLookup&@windowId=YGVWN&@showStackMB=0&@pushOnStack=0&@noBG=1&@showMB=1',700,600,false,'Lookup Saved Report Settings',false);
}

Report.prototype.selectColumnsPrompt=function(_t){
  var _form = this.findForm();
  _form.elements[this.action].value='COLUMNS_LOOKUP';
  this.showPopup2(_t,this.functionUrl,720,400,false,'Select Report Columns',true,"NO");
}

Report.prototype.runReportWriter=function(_t){
  var savedFormAction = TheForm.action;
  TheForm.action=this.repBuilderUrl;
  adminTheFormSubmit();
  TheForm.action=savedFormAction;
}

Report.prototype.showPopup2=function(_t,_uri,_w,_h,_scroll,_title,_submitTo, scroll){
  if(_submitTo){
  }else{
    _uri += '&$reportPageId=' + this.id + '&$reportId=' + TheForm[this.reportId].value + '&$reportURI=' + TheForm[this.reportURI].value;
  }
  showDialog(_w, _h, _uri, 'parent.hidePopIFrame()', _title, true, false,_submitTo,scroll);
  if(_submitTo){
    TheForm.elements[this.action].value='';
    TheForm.elements[this.actionParam].value=''
  }
}

Report.prototype.showPopup=function(_t,_uri,_w,_h,_scroll,_title,_submitTo){
  var _form = this.findForm();
  if(!_submitTo){
    var _win=new Object();
    _win.width=_w;
    _win.height=_h;
    if(_t){_win.relativeToObj=_t;}
    else{_win.center=true;}
    _win.scrollbars=_scroll;
    _win.resizable=true;
    _win.title=_title;
    _win.url=_uri;
    _win.param = new Object();
    _win.param.$reportPageId = this.id;
    _win.param.$reportId = _form[this.reportId].value;
    _win.param.$reportURI = _form[this.reportURI].value;
    this.window._showPopupWindow(_win);
  }else{
    var oldAction = _form.action;
    var oldTarget = _form.target;
    var _iFrame = showIFrame(_w,_h,'/ta/blank.html');
   _form.action=_uri;
   _form.target=_iFrame.name;
    _form.submit();
   _form.action=oldAction;
   _form.target=oldTarget;
   _form.elements[this.action].value='';
   _form.elements[this.actionParam].value=''
  }
}

Report.prototype.selectColumns=function(_columns){
 var _form = this.findForm();
 _form.elements[this.action].value="SELECT_COLUMNS";
 _form.elements[this.actionParam].value=_columns;
  return this.doAjaxRepAction();
}
Report.prototype.runWithSettings=function(_sId){
 var _form = this.findForm();
 _form.elements[this.action].value="RUN_WITH_SETTINGS";
 _form.elements[this.actionParam].value=_sId;
 return this.doAjaxRepAction();
}
Report.prototype.menuBarSelect=function(){
  var _form = this.findForm();
  showIFrame(158,0,'/ta/Default.admin?rnd=XLLUTNLC&@impl=zeyt.report.webview.UiControl_ReportOptionsMB&@windowId=PGUFK&@showStackMB=0&@pushOnStack=0&@noBG=1&@showMB=0&@NoBody=1&$reportPageId='+this.id+'&$reportId='+_form[this.reportId].value+'&$reportURI='+_form[this.reportURI].value + '&rnd=' + Math.random());
}

function findReport(token) {
 var report = document.REPORTS[""+token];
 if(report){
  return report;
 }
 if(!isNaN(token)){
 }
 var reportId = null;
 if(token && token.tagName){
   var elm = token;
   while (true){
    if(isNull(elm)){
     reportId = null; break;}
    if(elm.tagName.toLowerCase()=="div" && !isNull(elm.attributes.getNamedItem('reportId'))){
     reportId = elm.attributes.getNamedItem('reportId').nodeValue; break; }
    if(elm.tagName.toLowerCase()=="form"){
     for(r in document.REPORTS){
      if(document.REPORTS[r].findForm()==elm){return document.REPORTS[r];}
     }
    }
    elm = elm.parentNode;
   }
 }
 var report = null;
 if(reportId!=null){report = document.REPORTS[reportId]; }
 if(report==null){for(r in document.REPORTS){return document.REPORTS[r];} }
 return report==null?EMPTY_REPORT:report;
}
function reportRun(t){findReport(t).run();return true;}
function reportPrevPage(t){findReport(t).prevPage(); return true;}
function reportNextPage(t){findReport(t).nextPage(); return true;}
function reportHandleKey(t, e){return findReport(t).handleKey(e);}
function reportClear(t){findReport(t).clear(); return true;}
function reportExport(t){findReport(t).exportTo(t,'xml'); return true;}
function reportPrint(t){findReport(t).print(); return true;}
function reportMoveToRecord(t,i){findReport(t).moveToRecord(i); return true;}
function reportSortBy(t,_col,_asc,_top){findReport(t).sortBy(_col,_asc,_top); return false;}
function reportGroupBy(t,col,order){findReport(t).groupBy(col,order); return false;}
function reportHideCol(t,col){findReport(t).hideCol(col); return false; }

function reportSettings(t){findReport(t).settings(); return false;}
function reportSaveSettings(t,asNew){findReport(t).saveSettings(t,asNew); return false; }
function reportSelectColumns(t,_cols){findReport(t).selectColumns(_cols); return false; }
function reportSelectColumnsPrompt(t){findReport(t).selectColumnsPrompt(t); return false; }
function reportRunReportWriter(t){findReport(t).runReportWriter(t); return false; }
function reportLoadSavedSettings(t){findReport(t).loadSavedSettings(t); return false; }
function reportRunWithSettings(t,sId){findReport(t).runWithSettings(sId); return false; }
function reportMenuBarSelect(t){findReport(t).menuBarSelect(); return false; }
function reportSaveSettingsAsDefault(t){findReport(t).saveSettings(t,'default'); return false; }

function atachReportTableHighlight(){
 var tables = document.getElementsByTagName("div");
 for(var i=0; i<tables.length; i++){
  if(tables[i].className=='reportTable'){
    atachTableHighlight(tables[i]);
  }
 }
}

addOnLoad(atachReportTableHighlight);

function xy(o) {
  if(!isNull(o.href) && o.href != '#' && o.href.toUpperCase().indexOf('JAVASCRIPT')==-1) {
    if (o.href.indexOf("&prevScreenX=") != -1) {
      o.href = o.href.substring(0, o.href.indexOf("&prevScreenX="));
    }
    o.href = o.href + "&prevScreenX=" + getPageX() + "&prevScreenY=" + getPageY();
  }
}

function xy2(o) {
  if(!isNull(o)) {
    if (o.indexOf("&prevScreenX=") != -1) {
      o = o.substring(0, o.indexOf("&prevScreenX="));
    }
    o = o + "&prevScreenX=" + getPageX() + "&prevScreenY=" + getPageY();
  }
  return o;
}

function viewReportSetting(sId){
  return showDialog('700px', '500px', '/ta/Default.admin?rnd=ZQLLTUNT&@impl=zeyt.report.webview.UiControl_ViewReportSetting&@windowId=TOGIC&@showStackMB=0&@pushOnStack=0&@noBG=1&@showMB=1&SettingId='+sId, 'parent.hidePopIFrame()', '', true, true);
}


function Rep_moveAllChildren(_from,_to,_appendWhere,_tagName,_checkField){
  var l = new Array();
  var _f = _from.getElementsByTagName(_tagName);
  for(var j=0; j<_f.length; j++){
   var _el = _f[j];
   if(_checkField && !_el.getAttribute(_checkField)){
     continue;
   }
   l[l.length] = _el;
  }
  for(var j=0; j<l.length; j++){
   _to.appendChild(l[j]);
  }
}

function Rep_getReportSettingsForm(){
  return document.forms[0];
}

function Rep_selectAvailableColumns(){ 
  var colFilter = getDocElm('AvailableColFilter');
  if (colFilter  == null  || trim(colFilter.value) == ''){
     Rep_selectAllColumns();
     return false;
  }
  var colFilterTxt = trim(colFilter.value);
  var colFilterTxts = colFilterTxt.split(' ');
  for(var i=0; i<colFilterTxts.length; i++){
    colFilterTxts[i] = trim(colFilterTxts[i]);
    colFilterTxts[i] = colFilterTxts[i].toUpperCase();
  }
  var l = new Array();
  var d = getDocElm('availableColumnsDiv');
  var _f = d.getElementsByTagName('div'); 
  for(var i=0; i<_f.length; i++){
    var dTxt = getDocElm(_f[i].id+'_TXT');
    var dTxtValue = getInnerText(dTxt).toUpperCase();
    if(Rep_isStrMatch(colFilterTxts,dTxtValue)){
        l[l.length] = _f[i];
    }
  }
  var d3 = getDocElm('selectedColumnsDiv_hidden');
  var e3 = d3.getElementsByTagName('div');
  for(var j=0; j<l.length; j++){
         getDocElm('availableColumnsDiv_hidden').appendChild(l[j]);
         for(var k=0; k<e3.length; k++){
             var s = e3[k].id.replace("sel", "");
             var t = l[j].id.replace("avl", "");
             if (s==t){ 
                 getDocElm('selectedColumnsDiv').appendChild(e3[k]);
                 break;
             }
        }
  }
  Rep_updateSelectedColumnsField();
  return false;
}

function Rep_selectAllColumns(){
  Rep_moveAllChildren(getDocElm('selectedColumnsDiv_hidden'),getDocElm('selectedColumnsDiv'),'beforeEnd','div');
  Rep_moveAllChildren(getDocElm('availableColumnsDiv'),getDocElm('availableColumnsDiv_hidden'),'beforeEnd','div');
  Rep_updateSelectedColumnsField();
  return false;
}

function Rep_removeAllColumns(){
  Rep_moveAllChildren(getDocElm('selectedColumnsDiv'),getDocElm('selectedColumnsDiv_hidden'),'beforeEnd','div','canRemoveColumn');
  Rep_moveAllChildren(getDocElm('availableColumnsDiv_hidden'),getDocElm('availableColumnsDiv'),'beforeEnd','div');
  Rep_updateSelectedColumnsField();
  if (TheForm.AvailableColFilter.value != '') {
    TheForm.AvailableColFilter.value='';
    Rep_updateAvailableColumns();
  }
  return false;
}

function Rep_moveColumnUp(_b){
  Rep_moveItemsUp(getDocElm('selectedColumnsDiv'),_b);
  Rep_updateSelectedColumnsField();
  return false;
}

function Rep_moveColumnDown(_b){
  Rep_moveItemsDown(getDocElm('selectedColumnsDiv'),_b);
  Rep_updateSelectedColumnsField();
  return false;
}

function Rep_getReportSettingsColumns(){
  var colIds = new Array();
  var _f = getDocElm('selectedColumnsDiv').getElementsByTagName('div');
  for(var i=0; i<_f.length; i++){
    colIds[colIds.length]='C_' + _f[i].getAttribute('columnIndex');
  }
  for (var i = 0; i < TheForm.elements.length; i++) {
   if (TheForm.elements[i].name.indexOf('ChkPivot_') == 0) {
     if (TheForm.elements[i].checked && isParent(getDocElm('selectedColumnsDiv'),TheForm.elements[i])) {
       colIds[colIds.length] = TheForm.elements[i].name.substring('ChkPivot_'.length);
     }
   }
  }
  return colIds;
}

function Rep_addColumn(_avlDiv,_selDiv){
  getDocElm('availableColumnsDiv_hidden').appendChild (_avlDiv);
  getDocElm('selectedColumnsDiv').appendChild(_selDiv);
  _selDiv.isSelected=true;
  _selDiv.className='selectedColumn_Selected';
  Rep_updateSelectedColumnsField();
  return false;
}

function Rep_removeColumn(_selDiv,_avlDiv){
  getDocElm('selectedColumnsDiv_hidden').appendChild(_selDiv);
  getDocElm('availableColumnsDiv').appendChild(_avlDiv);
  Rep_updateSelectedColumnsField();
  return false;
}

function Rep_selectedFieldUnselectAll(){
 var _f = getDocElm('selectedColumnsDiv').getElementsByTagName('div');
 for(var i=0; i<_f.length; i++){
   _f[i].isSelected=false;
   _f[i].className='selectedColumn';
 }
}

function Rep_selectedFieldSelectAll(){
  var _f = getDocElm('selectedColumnsDiv').getElementsByTagName('div');
  for(var i=0; i<_f.length; i++){
    _f[i].isSelected=true;
    _f[i].className='selectedColumn_Selected';
  }
}

function Rep_selColMouseOver(_d){
  event.cancelBubble=true;
  event.returnValue=false;
  return false;
}

function Rep_selColMouseOut(_d){
  event.cancelBubble=true;
  event.returnValue=false;
  return false;
}

function Rep_selColMouseDown(_d){
  event.cancelBubble=true;
  event.returnValue=false;
  var _wasSelected = _d.isSelected?true:false;
  if(event.altKey){}
  if(event.shiftKey){}
  if(!event.ctrlKey){
    Rep_selectedFieldUnselectAll();
  }
  _d.isSelected=!_wasSelected;
  if(_d.isSelected) {
    _d.className='selectedColumn_Selected';
  } else {
   _d.className='selectedColumn';
  }
  return false;
}

function Rep_selColMouseUp(_d){
  event.cancelBubble=true;
  event.returnValue=false;
  return false;
}

function Rep_avlColMouseDown(_d){
  event.cancelBubble=true;
  event.returnValue=false;
  return false;
}

function Rep_moveItemsDown(_list,_b){
  event.cancelBubble=true;
  event.returnValue=false;
  var _f = _list.getElementsByTagName('div');
  var _l = _f.length;
  if(_l<2)return;
  for(var i=_l-2; i>=0; i--){
    if(_f[i].isSelected) {
      var moveBy = 1;
      if(_b && i>0){
        moveBy = 1+(_l-i)>>1;
      }
      for(;moveBy>0 && _f[i+moveBy].isSelected; moveBy--);
      if(moveBy==0)continue;
      if(i+moveBy+1>=_f.length){
        _list.appendChild(_f[i]);
      }else{
        _list.insertBefore(_f[i],_f[i+moveBy+1]);
      }
    }
  }
}

function Rep_moveItemsUp(_list,_b){
  event.cancelBubble=true;
  event.returnValue=false;
  var _f = _list.getElementsByTagName('div');
  if(_f.length<2)return;
  for(var i=1; i<_f.length; i++){
    if(_f[i].isSelected) {
      var moveBy = 1;
      if(_b)moveBy += i>>1;
      for(;moveBy>0 && _f[i-moveBy].isSelected; moveBy--);
      if(moveBy==0)continue;
      if(i-moveBy>=_f.length){
        _list.appendChild(_f[i]);
      }else{
        _list.insertBefore(_f[i],_f[i-moveBy]);
      }
    }
  }
}

function Rep_isStrMatch(strs,s) {
 var startIndex = 0;
 for(var i=0; i<strs.length; i++){
   if(strs[i].length==0)continue;
   startIndex = s.indexOf(strs[i],startIndex);
   if(startIndex==-1){
     return false;
   }
   startIndex+=strs[i].length;
 }
 return true;
}

function Rep_processOnKeyDown(e) {
 var iKeycode = getEventKeyCode(e);
 if (iKeycode != 13) {
   return true;
 }
 event.cancelBubble=true;
 return false;
}

function Rep_updateAvailableColumns() {
 var colFilter = getDocElm('AvailableColFilter');
 var colFilterTxt = trim(colFilter.value);
 var colFilterTxts = colFilterTxt.split(' ');
 for(var i=0; i<colFilterTxts.length; i++){
   colFilterTxts[i] = trim(colFilterTxts[i]);
   colFilterTxts[i] = colFilterTxts[i].toUpperCase();
 }

 var d = getDocElm('availableColumnsDiv');
  var _f = d.getElementsByTagName('div');
  for(var i=0; i<_f.length; i++){
    var dTxt = getDocElm(_f[i].id+'_TXT');
    var dTxtValue = getInnerText(dTxt).toUpperCase();
    if(Rep_isStrMatch(colFilterTxts,dTxtValue)){
      _f[i].setAttribute("filtered",false);
      _f[i].style.display='block';
    }else{
      _f[i].setAttribute("filtered",true);
      _f[i].style.display='none';
    }
  }
}

function Rep_updateSelectedColumnsField() {
  var colIds = Rep_getReportSettingsColumns();
  var colIdField = TheForm.SelectedColumnIds;
  colIdField.value=colIds
}

function Rep_getColumnsTableHeight() {
  var offSet = 0;
  if (isPopUp()) {
    offSet =46;
  } else {
    offSet =150;
  }

  if (isIE()){
    return document.body.clientHeight-offSet;
  }
  return window.innerHeight-offSet;
}

function Rep_getVItemsScrollHeight() {
  var offSet = 0;
  if (isPopUp()) {
    offSet = 80;
  } else {
    offSet = 165;
  }

  if (isIE()){
    offSet = offSet - 20;
    return document.body.clientHeight-offSet;
  }
  return window.innerHeight-offSet;
}

function Rep_getVItemsScrollWidth() {
  var offSet = 0;
  if (isPopUp()) {
    offSet = 30;
  } else {
    if (isIE()) {
      offSet = 38;
    } else {
      offSet = 46;
    }
  }
  if (isIE()) {
    offSet = offSet - 2;
    return document.body.clientWidth/2-offSet;
  }
  return window.innerWidth/2-offSet;
}

function Rep_initDivStyle() {
  var availDiv = getDocElm('visibleAvailableItemsScrollDiv');
  var selectDiv = getDocElm('visibleSelectedItemsScorllDiv');
  var h = Rep_getVItemsScrollHeight();
  if (h >0){
    availDiv.style.height=h;
    selectDiv.style.height=h;
  }
  var w = Rep_getVItemsScrollWidth();
  availDiv.style.width=w;
  selectDiv.style.width=w;
  var columnsTbl = getDocElm('columnsTable');
  var hTbl = Rep_getColumnsTableHeight();
  if (hTbl > 0) {
    columnsTbl.style.height = hTbl;
  }
}

function Rep_resizeDivStyle() {
 if (isOpera()){
   setTimeout('Rep_rePaintTable()',20);
 } else {
   Rep_rePaintTable();
 }
}

function Rep_rePaintTable() {
  var colTable = getDocElm('columnsTableDiv').innerHTML;
  getDocElm('columnsTableDiv').innerHTML=colTable;
  Rep_delayInitStyle();
}

function Rep_delayInitStyle() {
 setTimeout('Rep_initDivStyle()',300);
}

function Rep_checkSubBoxes(field) {
  var fs = field.value.split('|');
  var index = parseInt(fs[0]);
  var level = parseInt(fs[1]);
  var started = false;
  var finished = false;
  for (var i = 0; i < TheForm.elements.length; i++) {
    var el = TheForm.elements[i];
    if (el.type == 'checkbox') {
      if (el.name != 'GROUP_CHK') {
        if (started && !finished) {
          el.checked = field.checked;
        }
      } else {
        var vs = el.value.split('|');
        var v = parseInt(vs[0]);
        var l = parseInt(vs[1]);
        if (started && !finished && l > level) el.checked = field.checked;
        if (v == index) {
          started = true;
        } else if (v > index && l == level) {
          finished = true;
        }
      }
    }
  }
}