var pop_win;

function rtrim(val) {
  var w_space = String.fromCharCode(32);
  var v_length = val.length;
  var strTemp = "";
  if(v_length < 0) {
    return"";
  }
  var iTemp = v_length -1;
  
  while(iTemp > -1) {
    if (val.charAt(iTemp) == w_space) {
    } else {
      strTemp = val.substring(0,iTemp +1);
      break;
    }
    iTemp = iTemp-1;
  } //End While
  return strTemp;
} //End Function

function roundup(anynum, dp) {
  var i = Math.abs(dp);
  var roundint = 1;
  while (i>0) {
    roundint*=10;
    i--;
  }
  //-- Returns passed number as string in $xxx,xxx.xx format.
  anynum=eval(anynum)
  var workNum=Math.abs((Math.round(anynum*roundint)/roundint));
  return workNum;
}

function formatNum(num, dp) {
  var i = Math.abs(dp);
  var pad = "";
  while (i>0) {
    pad+="0";
    i--;
  }
  var workStr=""+num;
  if (workStr.indexOf(".")==-1){workStr+="."+pad}
  dStr=workStr.substr(0,workStr.indexOf("."));dNum=dStr-0
  pStr=workStr.substr(workStr.indexOf("."))
  while (pStr.length<=dp){pStr+="0"}

  //--- Adds comma in thousands place.
  if (dNum>=1000) {
     dLen=dStr.length
     dStr=parseInt(""+(dNum/1000))+","+dStr.substring(dLen-3,dLen)
  }

  //-- Adds comma in millions place.
  if (dNum>=1000000) {
     dLen=dStr.length
     dStr=parseInt(""+(dNum/1000000))+","+dStr.substring(dLen-7,dLen)
  }
  var retval = dStr + pStr 
  //-- Put numbers in parentheses if negative.
  if (num<0) {retval="-"+retval}
  return retval
}

function newImage(arg) {
  if (document.images) {
    rslt = new Image();
    rslt.src = arg;
    return rslt;
  }
}

var preloadFlag = false;
function preloadImages() {
  if (document.images) {
    preloadFlag = true;
  }
}

function MM_preloadImages() { //v3.0
  var d=document;
  if(d.images) {
   if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
    for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0) { d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}
  }
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function copy(src, dest) {
  dest.value = src.value;
}

function removeSel(selObj) {
  for(var i=selObj.length-1; i>=0; i--) {
    if (selObj.options[i].selected) {
      selObj.options[i] = null;
    }
  }
}

function selectAll(selObj) {
  for(var i=0; i<selObj.length; i++) {
    selObj.options[i].selected = true;
  }
}

function unselectAll(selObj) {
  for(var i=0; i<selObj.length; i++) {
    selObj.options[i].selected = false;
  }
}

function moveItem(from, to) {
  if (from.selectedIndex==-1) return false;
  var desc = from.options[from.selectedIndex].text;
  var val = from.options[from.selectedIndex].value;
  to.options[to.length] = new Option(desc, val);
  from.options[from.selectedIndex] = null;
}

function copyTo(sel, textbox, custflag) {
  for(var i=0; i<sel.length; i++) {
    if (textbox.value.length>0)
      textbox.value = textbox.value + ',';
    textbox.value = textbox.value + sel.options[i].value + "||" + custflag;
  }
}

function searchWildCard(srhform) {
  for(var i=0; i<srhform.elements.length; i++) {
    var ctl = srhform.elements[i];
    if (ctl.type=='text') {
      if (ctl.value=='') ctl.value='*';
    }
  }
}

function popWin(url, w, h) {
  killPop();
  pop_win = window.open(url,'popWin','width='+w+',height='+h+',resizable=yes');
  pop_win.focus();
  return pop_win;
}

function killPop() {
  if (pop_win!=null) pop_win.close();
}

function y2k(number) {
  return (number < 1000) ? number + 1900 : number;
}

function isDate (day,month,year) {
// checks if date passed is valid
// will accept dates in following format:
// isDate(dd,mm,ccyy), or
// isDate(dd,mm) - which defaults to the current year, or
// isDate(dd) - which defaults to the current month and year.
// Note, if passed the month must be between 1 and 12, and the
// year in ccyy format.
    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (y2k(test.getYear()) == year) &&
         (month == test.getMonth()) &&
         (day == test.getDate()) )
        return true;
    else
        return false;
}

function matchValue(selobj, textobj) {
  var idx = selobj.selectedIndex;
  if (textobj.value.length==0) return;
  if (idx>=0 && idx<selobj.options.length) {
    var selval = selobj.options[idx].text;
    if (selval.substring(0,Math.min(selval.length,textobj.value.length))==textobj.value) return;
  }
  for(var i=idx+1; i<selobj.options.length; i++) {
    var selval = selobj.options[i].text;
    if (selval.substring(0,Math.min(selval.length,textobj.value.length))==textobj.value) {
      selobj.selectedIndex = i;
      return;
    }
  }
  for(var i=0; i<idx; i++) {
    var selval = selobj.options[i].text;
    if (selval.substring(0,Math.min(selval.length,textobj.value.length))==textobj.value) {
      selobj.selectedIndex = i;
      return;
    }
  }
}


