	
		thenewurl="";
		
    function filterOnEnter(formname,tablename,origurl) {
      if (window.event && window.event.keyCode == 13){
					doFilter(formname,tablename,origurl);
			}
      else{
        return true;
			}
    }
	
  showallstr="(Show all)";

  function gotoPage(theformname,pagenum,tablename){
			theform=document.forms[theformname];
			if(theform.elements['POST']!=null && theform.elements['POST'].value=="Y"){
			pageelem=theform.elements['tablepage'+tablename];
      if (pageelem==null) {
        newurl=getUrlWithParam("tablepage"+tablename,pagenum);
        document.location.href=newurl;
      }
      else {
        pageelem.value=pagenum;
        theform.submit();
      }
		}
		else{
      newurl=getUrlWithParam("tablepage"+tablename,pagenum);
			document.location.href=newurl;
		}
	}
	
	
	
	
	function getUrlWithParam(paramkey, paramval)
	{
		if(thenewurl=="")
		{
			thenewurl=getOrigUrl();
		}

    bits=thenewurl.split("?");
    rooturl=bits[0];
    querystring=bits[1];
    
    params=querystring.split("&");
    newparam=paramkey+"="+escape(paramval);
    
    newparam = newparam.replace(/\+/g,"%2B");
    doneit=false;
    for(x=0;x<params.length;x++){
      if(params[x].indexOf(paramkey+"=",0)==0){
        params[x]=newparam;
        doneit=true;
        break;
      }
    }
    if(!doneit) params.push(newparam);
    newurl=rooturl+"?";
    for(n=0;n<params.length;n++){
      if(params[n]==null||params[n].indexOf("=")==-1) continue;
      newurl+=params[n]+"&";
    }
		thenewurl=newurl;

    return newurl;
    
  }

	function setSort(theformname, thetablename, thesortparam, thefield){
		theform=document.forms[theformname];
		elem=theform.elements[thesortparam];
		if(elem!=null)
		{
			if(elem.value == thefield)
			{
				newval=thefield+"DESC";
			}
			else
			{
				newval=thefield;
			}
                        
                        
                        
			
			
			
                        
                        
		}
                
                if(theform.elements['POST']!=null && theform.elements['POST'].value=="Y"){
			if(theform.elements['tablepage'+thetablename]){
				theform.elements['tablepage'+thetablename].value="1";				
			}
                    	theform.elements[thesortparam].value=newval;
                        theform.submit();
		}
		else{
			
                        getUrlWithParam(thesortparam,newval);
                 	document.location.href=getUrlWithParam(thesortparam,newval);
		} 
	}
  function getColNames(theform,thetablename){
    x=0;
    colNames=new Array();
    while(true){
      colelem=theform.elements["colTitle"+thetablename+x];
      if(colelem==null) {
        break;
      }
      colNames[x]=colelem.value;
      x++;
    }
    return colNames;
  }

  function doFilter(formname,tablename){
    setFilters(formname,tablename,true);
  }

  function clearFilter(formname,tablename){
    setFilters(formname,tablename,false);
  }
  
  
  function setFilters(formname,tablename,doit){  
    theform=document.forms[formname];
    colnames=getColNames(theform,tablename);
		filterparams="";
    for(x=0;x<colnames.length;x++){
      filterid="filter"+tablename+"-"+colnames[x];
			
			
			filterval="";
			
			if(doit) {
	      filterelem=theform.elements[filterid];
			
				if(filterelem!=null){
					filterval=filterelem.value;
					
					if(filterval==showallstr) filterval="";
					
				}
			}
			if(x!=0) {
				filterparams+=",";
			}
			filterparams+=filterval;
             }
        
		
		if(theform.elements['POST']!=null && theform.elements['POST'].value=="Y"){
			if(theform.elements['tablepage'+tablename]){
				theform.elements['tablepage'+tablename].value="1";				
			}
			theform.elements['filtervalues'+tablename].value=filterparams;
                        theform.submit();
		}
		else{
                
			
                 	document.location.href=getUrlWithParam("filtervalues",filterparams);
		} 
            
            
          }


  function doHiddenFilter(formname,tablename){
    setHiddenFilters(formname,tablename,true);
  }

  function clearHiddenFilter(formname,tablename){
    setHiddenFilters(formname,tablename,false);
  }
  
  
  function setHiddenFilters(formname,tablename,doit){  
    theform=document.forms[formname];
    colnames=getColNames(theform,tablename);
		hiddenfilterparams="";
    for(x=0;x<colnames.length;x++){
      hiddenfilterid="hiddenfilter"+tablename+"-"+colnames[x];
			
			
			hiddenfilterval="";
			
			if(doit) {
	      hiddenfilterelem=theform.elements[hiddenfilterid];
			
				if(hiddenfilterelem!=null){
					hiddenfilterval=hiddenfilterelem.value;
					
					if(hiddenfilterval==showallstr) hiddenfilterval="";
					
				}
			}
			if(x!=0) {
				hiddenfilterparams+=",";
			}
			hiddenfilterparams+=hiddenfilterval;
             }
           
		
		if(theform.elements['POST']!=null && theform.elements['POST'].value=="Y"){
			if(theform.elements['tablepage'+tablename]){
				theform.elements['tablepage'+tablename].value="1";				
			}
			theform.elements['hiddenfiltervalues'+tablename].value=hiddenfilterparams;
                        theform.submit();
		}
		else{
                
			getUrlWithParam("tablepage","1");
                 	document.location.href=getUrlWithParam("hiddenfiltervalues",hiddenfilterparams);
		} 
                           
  }


  function populateDropfilter(formname,tablename,filtername,colnum,selection){
    theform=document.forms[formname];
    thedropdown=document.forms[formname].elements["filter"+tablename+"-"+filtername];
		
    
    opts=new Array();
    
    opts.push(showallstr);
		
		for(x=0;x<thedropdown.options.length;x++){
      opts.push(thedropdown.options[x].value);
    }
    
    row=0;
    
    
    
    while(true){
      value=getTableValue(row,colnum,theform,tablename);
      if(value==null) break;
      isnew=true;
      for( n=0;n<opts.length;n++){
        if(opts[n]==value){
          isnew=false;
          break;
        }
      }
      if(isnew){
        opts.push(value);
      }
      row++;
      
    }

    for(x=0;x<opts.length;x++){
      thedropdown.options[x]=new Option();
      thedropdown.options[x].value=opts[x];
      thedropdown.options[x].text=opts[x];
      if(opts[x]==selection){
        thedropdown.options[x].selected=true;
      }
    }
    if(thedropdown.options.length>opts.length){
      for(x=opts.length;x<thecomponent.options.length;x++){
        thedropdown.options[x]=null;
      }
    }
    if(selection==""||selection==showallstr){
      
      thedropdown.options[0].selected=true;
    }
  }

  function getTableValue(x,y,theform,tablename){
    key="tablevalue"+tablename+"-"+x+"-"+y;
    elem=theform.elements[key];
    if(elem==null) return elem;
    return theform.elements[key].value;
  }
  function doButton(action,formname,tablename)
    {
      isjs=false;
      if(action.indexOf("javascript:",0)==0){       
        action=action.substring(11,action.length);
        isjs=true;
      }
      theform=document.forms[formname];
      colnames=getColNames(theform,tablename);
      
      buttons=theform.elements["selectedrow"+tablename];
			
			
      sel=-1;
      var selArray = new Array();
      selCount = 0;
      if(buttons!=null){
				if(buttons.length==null){
					thebutton=buttons;
					buttons=new Array();
					buttons[0]=thebutton;
				}
        for(x=0;x<buttons.length;x++){
          if(buttons[x].checked){
        	if (sel == -1){
        		sel=buttons[x].value;
        	}
            selArray[selCount++] = buttons[x].value;
            
          }
        }
      }

      
      splt=action.split("%");
      newaction="";

      for( x=0;x<splt.length;x++){
        str=splt[x];
				
				firstchar=str.substring(0,1);
				if("0123456789".indexOf(firstchar)!=-1){
					newaction+="%"+str;
					continue;
				}
        if(str.indexOf("col",0)==0){
					if(sel==-1){
						alert("No row selected");
						return;
					}
          num=str.substring(3,str.length);
          			cellVals = new Array();
          			if (selArray.length > 0){
          				for(y=0;y<selArray.length;y++){
          					cellVals[y] = getTableValue(selArray[y],num,theform,tablename);
          				}
          			}
					cellval=getTableValue(sel,num,theform,tablename);
          if(isjs) {
						newaction+="'";
						
						newaction+=cellVals.join(";;");
						newaction+="'";
					}else{
						
						cellval=escape(cellval);
						while (true){
							pluspos=cellval.indexOf("+");
							if(pluspos==-1) break;
							before=cellval.substring(0,pluspos);
							after=cellval.substring(pluspos+1);
							cellval=before+"%2B"+after;
						}
						
						newaction+=cellVals.join(";;");
					}
				}
				else if(str.indexOf("field",0)==0){
					
          addfieldkey="add"+str;
					addfieldelem=theform.elements[addfieldkey];
					addfieldval=addfieldelem.value;

					if(isjs) {
						newaction+="'";
						newaction+=addfieldval;
						if(isjs) newaction+="'";
					}
					else{
						newaction+=escape(addfieldval);
					}
					
				}
				else if (str == "rownum" ){
					newaction+=new String(sel);
					newaction+="&selectedRowsArray=" + selArray.join();
				}
				
				else if (str == "tablepage" ){
					
					origurl=new String(getOrigUrl());
					key="tablepage"+tablename+"=";
					idx=origurl.indexOf(key);
					if(idx!=-1){
						idx+=new String(key).length;;
						endidx=origurl.indexOf("&",idx);
						if(endidx==-1) endidx=origurl.length;
						newaction+=origurl.substring(idx,endidx)
					};
				}
				else if (str == "filtervalues" ){
					filtervals="";
					
					for(c=0;c<colnames.length;c++){
						filterid="filter"+tablename+"-"+colnames[c];
						filterelem=theform.elements[filterid];
						if(filterelem!=null){
							filterval=filterelem.value;
							
							if(filterval==showallstr) filterval="";
						}
						if(c!=0){
							filtervals+=",";
						}
						filtervals+=filterval;
					}
          if(isjs) newaction+="'"+filtervals+"'";
					else newaction+=escape(filtervals);
        }else{
          newaction+=str;
        }
      }
			
			
			len=newaction.length;
			if(newaction.charAt(len-1)=="%"){
				newaction=newaction.substring(0,len-1);
			}
      if(isjs){
        
        eval (newaction);
      }else{
        
        document.location.href=newaction;

      }
    }

    function changeImg(id, source) {
      document.getElementById(id).src = source;
    }
	
	
	function checkLoanXID(loanxid){
		
		if (loanxid.length > 0) {
			
			loanxid = loanxid.replace(/^(0?\d{5})$/i, "LX$1");
			
			if (loanxid.search(/^LX\d?\d{5}$/i) == -1) {
                                setErrorMessage("Please enter a LoanX ID as a 5-6 digit number in the format LX012345");
                                displayErrorMessage(true);
				return false;
			}
			
			loanxid = loanxid.replace(/^(LX)(\d{5})$/i, "$10$2");
		}

        return loanxid;
	}
	
	function checkDate(theDate) {
		if (theDate.length == 7) {
			var months = new Array();
			
			months['jan'] = 1;
			months['feb'] = 2;
			months['mar'] = 3;
			months['apr'] = 4;
			months['may'] = 5;
			months['jun'] = 6;
			months['jul'] = 7;
			months['aug'] = 8;
			months['sep'] = 9;
			months['oct'] = 10;
			months['nov'] = 11;
			months['dec'] = 12;
			
			var day = theDate.substring(0,2);
			var month = theDate.substring(2,5).toLowerCase();
			var year = theDate.substring(5,7);
			
			
			if (year < 50) {
				year = 20 + year;
			}else{
				year = 19 + year;
			}
			
			if (months[month]) {
				if (isDate(day, months[month], year)) {
					return true;
				}
			}
		}
		
		return false;
	}
	
	function isDate (day,month,year) {
	
	
	
	
	
	
	
		
		var today = new Date();
		year = ((!year) ? today.getYear():year);
		month = ((!month) ? today.getMonth():month-1);
		if (!day) return false
		var test = new Date(year,month,day);
		if (test.getYear() == year && month == test.getMonth() && day == test.getDate()) {
			return true;
		}else{
			return false
		}
	}
	
	
	function isElementChecked(form, value) {
		elems = document.forms[form].elements;
		for (i = 0; i < elems.length; i++) {
			if (elems[i].value == value) {
				return elems[i].checked;
			}
		}
		return false;
	}
