var rot13map;


function rot13init()
{
  var map = new Array();
  var s   = "abcdefghijklmnopqrstuvwxyz";
  
  for (i=0; i<s.length; i++)
    map[s.charAt(i)]			= s.charAt((i+13)%26);
  for (i=0; i<s.length; i++)
    map[s.charAt(i).toUpperCase()]	= s.charAt((i+13)%26).toUpperCase();
  return map;
}

function Trim(sData) {
var sTrimmed = String(sData);
    sTrimmed = sTrimmed.replace(/(^\s+)|(\s+$)/g, '');
    return sTrimmed;
}

function rot13(a)
{ 
  if (!rot13map)
    rot13map=rot13init();
  s = "";
  for (i=0; i<a.length; i++)
    {
      var b = a.charAt(i);

      s	+= (b>='A' && b<='Z' || b>='a' && b<='z' ? rot13map[b] : b);
    }
  return s;
}
// Check for the form resubmit
function checkResubmit(count) {
        count.value = count.value + 1
	if (count.value > 1) {
	    alert("This form is already submitted")
	    return false
	  }else return true
}

//Verify Comment length
function verifyCmt(cmtlable,cmtobject,cmtwidth){
	var cmtval = cmtobject.value;
	if (cmtval.length > cmtwidth) {
	    alert(cmtlable + " cannot be more than " + cmtwidth + " characters."); 
	    return false; 
    	} else 
	  return true;
}

//Special charcters
var BadChrs = /[$\\@\\\#%\^\&\*\(\)\[\]\+\_\{\}\`\~\=\|\'\"\?\<\>\:\;]/;
//Active Character Filter scan , to be called onKeyUp
function actvScan(field) {
	var strPass = field.value;
	var strLength = strPass.length;
	var lchar = field.value.charAt((strLength) - 1);
	if(lchar.search(BadChrs) != -1) {
	var tst = field.value.substring(0, (strLength) - 1);
	field.value = tst;
   }
}
//Passive Character Filter scan, to be called on submit
function pasvScan(field) {
	if(field.value.search(BadChrs) == -1)
	{
		return true;
	}
	else
	{
		alert("The following characters\n\r\n\r@ $ % ^ & * # ( ) [ ] \\ { + } ` ~ =  | ' \" ? < > : ;\n\r\n\rare not allowed.\n");
		field.select();
		field.focus();
		return false;
	}
}

function checkInvalidChars(fldObj,regExpLst,chrString) {
// fldObj : field Object to check
// regExpLst : Regular Expression eg: [^A-Za-z0-9_\s] => Non alpha and no space are invalid
// chrString : list of characters not allowed for msg
// returns true	
//alert('Passing "'+regExpLst+'" and chrString = '+chrString)

      
        //Space has been added to valid character string

        var foundspace = searchStr('\\s', regExpLst);

        if (foundspace == 0 && Trim(regExpLst) != '[{<>]') {
           var strLength = regExpLst.length;
           regExpLst = '['+regExpLst.substring(1,strLength-1)+'\\s'+']';
        }

        
	if(fldObj.value.search(regExpLst) == -1) // No Invalid found
	{
		//alert();
		//alert('Passed, No Invalid characters found: '+fldObj.value.search(regExpLst)+'and regExpLst is '+regExpLst)
		return true;
	}else{
		alert('The following characters are not allowed:\n\r\n\r\t'+chrString+'\n\r\n\rThe field that contains the invalid characters will be highlighted. \nRemove any invalid characters from the field.');
		// Following change is implemeted as per SPR#1153
                // fldObj.value="";
		fldObj.select();
		fldObj.focus();
		return false;
	}
}

function checkInvalidCharsNoAlert(fldObj,regExpLst,chrString) {
// fldObj : field Object to check
// regExpLst : Regular Expression eg: [^A-Za-z0-9_\s] => Non alpha and no space are invalid
// chrString : list of characters not allowed for msg
// returns true	
//alert('Passing "'+regExpLst+'" and chrString = '+chrString)

        
        //Space has been added to valid character string

        var foundspace = searchStr('\\s', regExpLst);

        if (foundspace == 0 && Trim(regExpLst) != '[{<>]') {
           var strLength = regExpLst.length;
           regExpLst = '['+regExpLst.substring(1,strLength-1)+'\\s'+']';
        }
	

        if(fldObj.value.search(regExpLst) == -1) // No Invalid found
	{
		//alert();
		//alert('Passed, No Invalid characters found: '+fldObj.value.search(regExpLst)+'and regExpLst is '+regExpLst)
		return true;
	}else{
		//alert('Sorry, but the following characters are not allowed\n\r\n\r'+chrString);
		// Following change is implemeted as per SPR#1153
                //fldObj.value="";
		fldObj.select();
		fldObj.focus();
		return false;
	}
}

// Check multiplefields with passive scan
function scanFields(input,fields)
{
//input : form object
//fields : list of all fields to scan separated by "|"
    
    var scanFields = fields.split("|");
  
    var fieldCheck   = true;
    var tempText = ''

    for(var fieldNum=0; fieldNum < scanFields.length; fieldNum++) {
        if (fieldCheck) {
			fieldCheck = pasvScan(input.elements[scanFields[fieldNum]]);
        }
    }
	
    return fieldCheck;
}

//Date Interval Validation
function checkDateInterval(fromObj,toObj,msg){
	var fromDateArray = fromObj.value.split("/");
	var toDateArray = toObj.value.split("/");
	
	//alert('from ='+fromObj.value+', to='+toObj.value+' and msg ='+msg);
	var fromDateMM = fromDateArray[0];
	var fromDateDD = fromDateArray[1];
	var fromDateYYYY = fromDateArray[2];
	var toDateMM = toDateArray[0];
	var toDateDD = toDateArray[1];
	var toDateYYYY = toDateArray[2];

	if ((toDateYYYY < fromDateYYYY) || ((toDateYYYY == fromDateYYYY) && (toDateMM < fromDateMM)) || ((toDateDD < fromDateDD) && (toDateYYYY == fromDateYYYY) && (toDateMM == fromDateMM))) {
		alert(msg);
		return false;
	}else{
		return true;
	}
}

//Time Interval Validation
function checkTimeInterval(fromObj,toObj,msg){
	var fromTimeArray = fromObj.value.split(":");
	var toTimeArray = toObj.value.split(":");
	
	//alert('from ='+fromObj.value+', to='+toObj.value+' and msg ='+msg);
	var fromTimeHH = fromTimeArray[0];
	var fromTimeMM = fromTimeArray[1];

	var toTimeHH = toTimeArray[0];
	var toTimeMM = toTimeArray[1];


	if ((fromTimeHH>toTimeHH) || ((fromTimeHH == toTimeHH)&& (fromTimeMM>toTimeMM))){
		alert(msg);
		return false;
	}else{
		return true;
	}
}

//Date Validation
function VerifyDate(datefrom,alr)
{
 if(datefrom.value!='')
  {
  var dtstr='date';
  var dtDD='day';
  var dtMM='Month';
  var dtYYYY='Year';
  var dtCentury='Century';
  var Montharray= new Array('01','02','03','04','05','06','07','08','09','10','11','12');
  var dayarray= new Array('31','28','31','30','31','30','31','31','30','31','30','31');

  strdate = Trim(datefrom.value);
  validformat = false; 

  // mm/dd/yyyy or mm-dd-yyyy 
  if (strdate.substring(2,3)=='/' && strdate.substring(5,6)=='/' || strdate.substring(2,3)=='-' && strdate.substring(5,6)=='-' ) {
     validformat = true;  
  
  }
    
  // mmddyyyy
  if (strdate.length==8 && strdate.search('/')==-1) {
     validformat = true;  
  
  }

  // m/dd/yyyy or m-dd-yyyy
  if (strdate.substring(1,2)=='/' && strdate.substring(4,5)=='/' || strdate.substring(1,2)=='-' && strdate.substring(4,5)=='-' ) {
     strdate='0'+strdate;
     validformat = true;  

  } 

  // mm/d/yyyy or mm-d-yyyy
  if (strdate.substring(2,3)=='/' && strdate.substring(4,5)=='/' || strdate.substring(2,3)=='-' && strdate.substring(4,5)=='-' ) {
     strdate=strdate.substring(0,2)+'0'+strdate.substring(3,9)
     validformat = true;  

  } 

  // m/d/yyyy or m-d-yyyy
  if (strdate.substring(1,2)=='/' && strdate.substring(3,4)=='/' || strdate.substring(1,2)=='-' && strdate.substring(3,4)=='-' ) {
     strdate='0'+strdate.substring(0,1)+'0'+strdate.substring(2,8)
     validformat = true;  
 
  } 

  // pull out any seperators to check for validation

  if (  validformat==true) {
     for (var i=0, output='', valid="/-"; i < strdate.length; i++)
         {
          if (valid.indexOf(strdate.charAt(i)) == -1)
              output += strdate.charAt(i)
              dtstr=output;
    }
  } else dtstr=''
  
  //dtstr=datefrom.value;
  if (dtstr.length==8) {
     dtDD=dtstr.substring(2,4); 
     dtMM=dtstr.substring(0,2);
     dtYYYY=dtstr.substring(4,8);
     dtCentury=dtstr.substring(4,6);
  }



 if((dtYYYY%4==0 && dtYYYY%100!=0)||(dtYYYY%100==0 && dtYYYY%400==0))
 dayarray[1]=29;
else
dayarray[1]=28;



if(isNaN(dtstr) || dtstr.length<8)
 {
 if (alr == undefined) {alert('Invalid Date. \nFormat should be MM/DD/YYYY.')}
 //alert('bad date');
 datefrom.focus();
 return false;}
else if((dtCentury>=18) && (dtCentury<=20)){
	if(dtMM>=1 && dtMM<=12){
		for(i=0;i<Montharray.length;i++){ 
			if(Montharray[i]==dtMM){
				if(dtDD>dayarray[i] || dtDD==0){
					//alert for wrong days
					 if (alr == undefined) {alert('Invalid Date. \nFormat should be MM/DD/YYYY.');}
					//alert('bad date');
					datefrom.focus();
					return false;
				}
				break;
			}
		}
	}else{
		// alert for wrong month
		 if (alr == undefined) {alert('Invalid Date. \nFormat should be MM/DD/YYYY.');}
		//alert('bad date');
		datefrom.focus();
		return false;
	}

}else if (dtCentury < 18){
		//alert for wrong century
		 if (alr == undefined) {alert('Invalid century. Date cannot be less than 01/01/1800');}
		//alert('bad date');
		datefrom.focus();
		return false;	
}else if (dtCentury > 20){
		//alert for wrong century
		 if (alr == undefined) {alert('Invalid century. Date cannot be greater than 12/31/2099');}
		//alert('bad date');
		datefrom.focus();
		return false;		
	
}else{
//alert for wrong century
 if (alr == undefined) {alert('Invalid Date. \nFormat should be MM/DD/YYYY.');}
//alert('bad date');
datefrom.focus();
return false;}
}
// return the date with seperators
 if(datefrom.value!='')
   {
   datefrom.value =  dtMM + '/' + dtDD + '/' + dtYYYY;
   return true;
   }
}



function checkDateFields(input,datefield,datetitle)
{
//input : form object
//datefield : list of all date field separated by "|"
//datetitle : list of the repective titles separated by "|"

  var dateFields = datefield.split("|");
  var fieldNames = datetitle.split("|");

  var fieldCheck   = true;
  var fieldsNeeded = "\nInvalid date entered in the following field(s):\n\n\t";
  var tempText = ''

  for (var fieldNum=0; fieldNum < dateFields.length; fieldNum++) {
    // fill '*' dates with current date - ACH 29Sep2004
    if (Trim(input.elements[dateFields[fieldNum]].value)=='*') {
      input.elements[dateFields[fieldNum]].value = currentStringDate();
    }
    var datevalid = VerifyDate(input.elements[dateFields[fieldNum]],'F')
    if (datevalid == false) {
      fieldsNeeded += fieldNames[fieldNum] + "\n\t";
      fieldCheck = false;
    }
  }
  fieldsNeeded +="\nEnter a valid date in the format MMDDYYYY.";

  if (fieldCheck == true) {
    return true;
  }
  else {
  if ( fieldCheck == false)
    alert(fieldsNeeded);
  return false;
  }
}

// Numeric Validation
function VerifyNum(number)
{
 if(isNaN(number.value))
 {
  alert("Enter a valid numeric value");
  number.focus();
  number.value=''
  return false;
 }
 else
 {
 return true;
 }
}

// Empty Field Validation
function notblank(fld)
{
 if(fld.value=='')
 {
  alert("Field Should not be blank");
  fld.focus();
  return false;  
 }
 else
 {
  return true;
 } 
}

// New Empty Field Validation
function forceText(fld)
{
 if(fld.value=='')
 {
  alert(fld.name + " should not be blank");
  fld.focus();
  return false;  
 }
 else
 {
  return true;
 } 
}

// New Numeric Validation
function forceNum(fld)
{
 if(isNaN(fld.value))
 {
  alert(fld.name + " should be a numeric value");
  fld.focus();
  fld.value=''
  return false;
 }
 else
 {
 return true;
 }
}

// Time Validation
function VerifyTime(Stime,format)
{
		 
 if(Stime.value!='')
 { 
  var tmstr='time';
  var tmHH='hrs';
  var tmMM='Minuts';
  var tmSS='Seconds';
  var tmFormat=format;
  tmstr=Stime.value;
  
  if (Stime.value.search(':') >= 0){//HH:MM:SS
  tmHH=tmstr.substring(0,2); 
  tmMM=tmstr.substring(3,5);
  tmSS=tmstr.substring(6,8);
 }else{ //HHMMSS
  tmHH=tmstr.substring(0,2); 
  tmMM=tmstr.substring(2,4);
  tmSS=tmstr.substring(4,6);
} 
 
 TMnum=tmHH+tmMM+tmSS;

 if(isNaN(TMnum) || tmstr.length!=tmFormat.length)
  {alert('Invalid Time \nEnter a valid time in the format ' + tmFormat)
   Stime.focus();}
 else if(tmHH>23 || tmHH < 0)
  {alert('Invalid time; should be 0000 to 2359');
   Stime.focus();}
 else if(tmMM>=60)
  {alert('Invalid minutes; should be less than 60');
   Stime.focus();}
 else if(tmSS>=60)
  {alert('Invalid seconds; should be less than 60');
   Stime.focus();}
 else if(tmHH==23 && tmMM==59 && tmSS>0)
  {alert('Invalid time; should be 0000 to 2359');
   Stime.focus();}
 else
  return true;

 }
}


function chkdate(recdate)
{ 
  var dtDD='day';
  var dtMM='Month';
  var dtYYYY='Year';
  var dtstr=recdate;
  
  var cdate=new Date();
  var entdate=new Date();

  dtDD=dtstr.substring(0,2); 
  dtMM=dtstr.substring(3,5);
  dtYYYY=dtstr.substring(6,10);

  entdate.setDate(dtDD);
  entdate.setMonth(dtMM-1);
  entdate.setYear(dtYYYY);

 if(entdate<cdate)
 return true;
 else
 return false;

}


function Comparedates(Fdate,Tdate,Seperator)
{ 
  var FdtDD='Day';
  var FdtMM='Month';
  var FdtYYYY='Year';

  var TdtDD='day';
  var TdtMM='Month';
  var TdtYYYY='Year';

  var FromDatestr=Fdate;
  var ToDatestr=Tdate;
  var DSeperator=Seperator;

  var Fromdate=new Date();
  var Todate=new Date();

 if(FromDatestr!='' && ToDatestr!='')
 {

  if(DSeperator!='')
  { 
   FdtDD=FromDatestr.substring(0,2); 
   FdtMM=FromDatestr.substring(3,5);
   FdtYYYY=FromDatestr.substring(6,10);

   TdtDD=ToDatestr.substring(0,2); 
   TdtMM=ToDatestr.substring(3,5);
   TdtYYYY=ToDatestr.substring(6,10);
  
  }
  else 
  {
   FdtDD=FromDatestr.substring(0,2); 
   FdtMM=FromDatestr.substring(2,4);
   FdtYYYY=FromDatestr.substring(4,8);

   TdtDD=ToDatestr.substring(0,2); 
   TdtMM=ToDatestr.substring(2,4);
   TdtYYYY=ToDatestr.substring(4,8);
  }


 
  Fromdate.setYear(FdtYYYY);
  Fromdate.setMonth(FdtMM-1);
  Fromdate.setDate(FdtDD);
 
  Todate.setYear(TdtYYYY);
  Todate.setMonth(TdtMM-1);
  Todate.setDate(TdtDD);

  if(Todate<Fromdate)
  return true;
  else
  return false;
 }
else
  return false;

}


function chkdateNul(recdate)
{ 
alert(recdate);

  var dtDD='day';
  var dtMM='Month';
  var dtYYYY='Year';
  var dtstr=recdate;
  
  var cdate=new Date();
  var entdate=new Date();

  dtDD=dtstr.substring(0,2); 
  dtMM=dtstr.substring(3,5);
  dtYYYY=dtstr.substring(6,10);

  entdate.setDate(dtDD);
  entdate.setMonth(dtMM-1);
  entdate.setYear(dtYYYY);

if(entdate<cdate)
 return true;
 else
 return false;
}

//the following function checks if the user's browser supports such advanced features as DIVs.
function OldBrowser()
{
var iePos = navigator.appVersion.indexOf("MSIE");
if (iePos>0)
	ver=parseInt(navigator.appVersion.substring(iePos+5,iePos+7));
else
	ver=parseInt(navigator.appVersion);

if (ver<5)
	return true;
else
	return false;
}

function radio_checker()
{
  // set var radio_choice to false
  var radio_choice = false;

  // Test if has only one record on the form
  if (document.forms[0].REC.value==null) {
    // Loop from zero to the one minus the number of radio button selections
    for (counter = 0; counter < document.forms[0].REC.length; counter++)
    {
      // If a radio button has been selected it will return true
      // (If not it will return false)
      if (document.forms[0].REC[counter].checked) {
        radio_choice = true;
        document.forms[0].selectedrec.value = document.forms[0].REC[counter].value
      }
    }
  }
  else {
    radio_choice = true;
	document.forms[0].selectedrec.value = document.forms[0].REC.value;
  }


  if (!radio_choice)
  {
    // If there were no selections made display an alert box 
    alert("A record must be selected before the command can be performed. Select a record first.")
    return (false);
  }
  return (true);
}

function radio_unchecker()
{
  // set var radio_choice to false
  var radio_choice = false;

  // Test if has only one record on the form
  if (document.forms[0].REC.value==null) {
    // Loop from zero to the one minus the number of radio button selections
    for (counter = 0; counter < document.forms[0].REC.length; counter++)
    {
      // If a radio button has been selected it will return true
      // (If not it will return false)
      if (document.forms[0].REC[counter].checked) {
        radio_choice = true;
        document.forms[0].REC[counter].checked = false;
      }
    }
  }
  else {
    radio_choice = true;
	document.forms[0].REC.checked = false;
  }


  if (!radio_choice) return (false);
  return (true);
}

function openNewWindow(theURL,winName,features) 
{ //v2.0
//alert('Calling function with '+theURL+','+winName+','+features)
  window.open(theURL,winName,features);

}

//Cookie functions
function SetCookie (name, value, expires, path, domain, secure) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
// 23Feb04 ACH: To make cookie transient, we no longer set an expiry date
//	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
	((path == null) ? "" : ("; path=" + path)) +
	((domain == null) ? "" : ("; domain=" + domain)) +	
	((secure == true) ? "; secure" : "");
}

// Get Cookie Value function
function getCookieVal(offset) {
   var endstr = document.cookie.indexOf (";", offset);
   if (endstr == -1) endstr = document.cookie.length;
   return unescape (document.cookie.substring(offset, endstr));
}

// Get Cookie function
function GetCookie(name) {
   var arg = name+"=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;
   while (i < clen) {
      var j = i + alen;
      if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0) break;
   }
   return null;
}

function deleteCookie (name,path,domain) {
  if (GetCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "");
// 23Feb04 ACH: To make cookie transient, we no longer set an expiry date
//    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}


function deleteOACCookies(mgdomain) {

	deleteCookie('oac_racfid',"/scripts/",mgdomain);
	deleteCookie('oac_pwd',"/scripts/",mgdomain);
	deleteCookie('oac_court',"/scripts/",mgdomain);
	deleteCookie('topRacfid',"/scripts/",mgdomain);
	deleteCookie('topPerson',"/scripts/",mgdomain);
	deleteCookie('topPerTK',"/scripts/",mgdomain);
        deleteCookie('BKREFCS',"/scripts/",mgdomain);
        deleteCookie('BKREFCS_TK',"/scripts/",mgdomain);
	return;
}

function setOACCookies(mgdomain) {
	
	// sets expiry date
   	var expdate = new Date ();
   	expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
	
	//stores cookies below
	SetCookie ("oac_racfid","allo",expdate,"/scripts/",mgdomain);
	SetCookie ("oac_pwd","allo",expdate,"/scripts/",mgdomain);
	SetCookie ("oac_court","allo",expdate,"/scripts/",mgdomain);
	
return;
}

function Login(mgdomain) {
  // sets expiry date
  var expdate = new Date ();
  expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
  
  //Different behavior if Netscape
  if(parent.document.layers) {
    parent.document.layers["loginLayer"].document.superForm.action = parent.document.forms[0].FORMACTION.value;
    parent.document.layers["loginLayer"].document.superForm.APPNAME.value = parent.document.forms[0].APPNAME.value;
    parent.document.layers["loginLayer"].document.superForm.PRGNAME.value = parent.document.forms[0].PRGNAME.value;
    // 23Feb04 ACH: also encrypt racf id
    SetCookie ("oac_racfid",rot13(parent.document.layers["loginLayer"].document.superForm.LOGINRACFID.value),expdate,"/scripts/",mgdomain);
    SetCookie ("oac_pwd",rot13(parent.document.layers["loginLayer"].document.superForm.PWD.value),expdate,"/scripts/",mgdomain);
    SetCookie ("oac_court",parent.document.layers["loginLayer"].document.superForm.COURT.value,expdate,"/scripts/",mgdomain);
  }
  else {
    parent.textFrame.document.superForm.action = parent.document.forms[0].FORMACTION.value;
    parent.textFrame.document.superForm.APPNAME.value = parent.document.forms[0].APPNAME.value;
    parent.textFrame.document.superForm.PRGNAME.value = parent.document.forms[0].PRGNAME.value;
        // 23Feb04 ACH: also encrypt racf id
	SetCookie ("oac_racfid",rot13(parent.textFrame.document.superForm.LOGINRACFID.value),expdate,"/scripts/",mgdomain);
	SetCookie ("oac_pwd",rot13(parent.textFrame.document.superForm.PWD.value),expdate,"/scripts/",mgdomain);
	SetCookie ("oac_court",parent.textFrame.document.superForm.COURT.value,expdate,"/scripts/",mgdomain);
  }
  
}

<!-- Prev next buttons
function initButtons(imgurl) {

  var currForm=document.forms[0];
  preloadNavButtons(imgurl+'bpushPrev.gif',imgurl+'bpushNext.gif',imgurl+'benablPrev.gif',imgurl+'benablNext.gif');
  if (currForm.PrevEnabled.value=='true') {
    currForm.Prev.src = imgurl+'benablPrev.gif';
	currForm.Prev.Usrc = imgurl+'benablPrev.gif';
	currForm.Prev.Psrc = imgurl+'bpushPrev.gif';
	currForm.Prev.enbl = true;
	} else currForm.Prev.enbl = false;
  if (currForm.NextEnabled.value=='true') {
    currForm.Next.src = imgurl+'benablNext.gif';
	currForm.Next.Usrc = imgurl+'benablNext.gif';
	currForm.Next.Psrc = imgurl+'bpushNext.gif';
	currForm.Next.enbl = true;
	} else currForm.Next.enbl = false;

}

function preloadNavButtons() { //v3.0
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadNavButtons.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function 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=findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function navButtonRestore() { //v3.0
  var x,a=navButtonRestore.arguments;
   if ((x=findObj(a[0]))!=null){
     if (x.enbl) {
	   x.src=x.Usrc;
	   return true;
     } else return false;
   };
}

function navButtonSwap() { //v3.0
  var x,a=navButtonSwap.arguments;
   if ((x=findObj(a[0]))!=null){
     if (x.enbl) {
	   x.src=x.Psrc;
	   return true;
     } else return false;
   };
}
//-->

function setWaitPointer() {
 if (document.all)
  for (var i=0;i < document.all.length; i++)
   document.all(i).style.cursor = 'wait';
}
function resetPointer() {
 if (document.all)
  for (var i=0;i < document.all.length; i++) document.all(i).style.cursor = 'default';
}
function PictureNum(expr,decplaces) {
// Example: x=PictureNum("10.5",2) ---> x="10.50"
	var str = (Math.round(parseFloat(expr) * Math.pow(10,decplaces))).toString()
	if (str=="NaN") str="0"
	while (str.length <= decplaces) {
		str = "0" + str
	} 
	var decpoint = str.length - decplaces
	return str.substring(0,decpoint) + "." + str.substring(decpoint,str.length)
}

function checkRequiredFields(input,reqdfield,reqdtitle)
{
//input : form object
//reqdfield : list of all required field separated by "|"
//reqdtitle : list of the repective titles separated by "|"
// Modified by: Juston Su - 7/22/2004 - Place focus on the first required field of the array
    
    var requiredFields = reqdfield.split("|");
    var fieldNames = reqdtitle.split("|");
  
    var fieldCheck   = true;
    var fieldsNeeded = "\nThe following field(s) cannot be blank:\n\n\t";
    var tempText = ''
	var firstFieldIndex = -1
	

    for(var fieldNum=0; fieldNum < requiredFields.length; fieldNum++) {
        if ((Trim(input.elements[requiredFields[fieldNum]].value) == "") ||
            (input.elements[requiredFields[fieldNum]].value == " ")) {	
            fieldsNeeded += fieldNames[fieldNum] + "\n\t";
            fieldCheck = false;
			if (firstFieldIndex == -1)
			{firstFieldIndex = fieldNum;}
        }
    }
	  //append the paragraph after the field names
		fieldsNeeded +="\nEnter a valid value in the field(s).";
		
    if (fieldCheck == true)
    {
		return true;
	}
    else
    {
        if ( fieldCheck == false)
		    alert(fieldsNeeded); 
			input.elements[requiredFields[firstFieldIndex]].focus();
	
	    return false;
    }
}

function VerifyTimeNoAlert(Stime,format)
{
 if(Stime.value!='')
 { 
  var tmstr='time';
  var tmHH='hrs';
  var tmMM='Minuts';
  var tmSS='Seconds';
  var tmFormat=format;
  tmstr=Stime.value;
  
  if (Stime.value.search(':') >= 0){//HH:MM:SS
  tmHH=tmstr.substring(0,2); 
  tmMM=tmstr.substring(3,5);
  tmSS=tmstr.substring(6,8);
 }else{ //HHMMSS
  tmHH=tmstr.substring(0,2); 
  tmMM=tmstr.substring(2,4);
  tmSS=tmstr.substring(4,6);
} 
 
 TMnum=tmHH+tmMM+tmSS;
 if (Stime.value.search(':') >= 0){
    return false;
  }
 if(isNaN(TMnum) || tmstr.length!=tmFormat.length)
  {return false;}
 else if(tmHH>23 || tmHH < 0)
  {return false;}
 else if(tmMM>=60)
  {return false;}
 else if(tmSS>=60)
  {return false;}
 else if(tmHH==23 && tmMM==59 && tmSS>0)
  {return false;}
 else
  return true;
 }
}	

function checkTimeFields(input,timefield,timetitle)
{
//input : form object
//timefield : list of all time field separated by "|"
//timetitle : list of the repective titles separated by "|"
    
  var timeFields = timefield.split("|");
  var fieldNames = timetitle.split("|");

  var fieldCheck   = true;
  var fieldsNeeded = "\nInvalid time entered in the following field(s):\n\n\t\t";
  var tempText = ''

  for (var fieldNum=0; fieldNum < timeFields.length; fieldNum++) {
    // fill '*' times with current date - ACH 29Sep2004
    if (Trim(input.elements[timeFields[fieldNum]].value)=='*') {
      input.elements[timeFields[fieldNum]].value = getCurrentTime();
    }
    var timevalid = VerifyTimeNoAlert(input.elements[timeFields[fieldNum]],'HHMM') && checkInvalidCharsNoAlert(input.elements[timeFields[fieldNum]],'[^0-9]','`A-Z~!@#$%^&*\'()&#34;-_=+[]{}\|;:,.<>/?')
    //var timevalid = checkInvalidCharsNoAlert(input.elements[timeFields[fieldNum]],'[^0-9]','`A-Z~!@#$%^&*\'()&#34;-_=+[]{}\|;:,.<>/?')
    if (timevalid == false) {
      fieldsNeeded += fieldNames[fieldNum] + "\n\t\t";
      fieldCheck = false;
    }
  }
  //append the instructional text after the field names
  fieldsNeeded += "\nEnter a valid time in the format HHMM and between 0000 and 2359.";

  if (fieldCheck == true) {
    return true;
  }
  else {
    if ( fieldCheck == false)
      alert(fieldsNeeded);		
    return false;
  }
}

// function to reset the counter, a hidden field in top.htm 
// This hidden field is reset onLoad of every form which needs this checkResubmit
function resetReSubmitCount(){
	parent.topFrame.document.forms[0].reSubmitCount.value=0;
}

function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

//  Start - Functions created by PJ
// This is for Jobsubmission screen 
function checkJobSubmission(frmobject) {

var sch_now = frmobject.SCH_NOW[1].checked;
var sch_start_date=frmobject.SCH_START_DATE.value;
var sch_start_time=frmobject.SCH_START_TIME.value;
var errors = 0;

   // check if radio buttons not blank
   if (document.forms[0].SCH_NOW[0].checked==false && document.forms[0].SCH_NOW[1].checked==false){
       alert('Please select schedule option');
       errors = errors+1;
   }

if (document.forms[0].NOT_EMAIL[0].checked==true && Trim(document.forms[0].NOT_EMAIL_OFL_PER_TYP.value)=='') {
   alert('Please enter a person type code');
   errors = errors+1;
   }

if (document.forms[0].NOT_EMAIL[1].checked==true && Trim(document.forms[0].NOT_EMAIL_ORG_PER_TYP.value)=='') {
   alert('Please enter a person type code');
   errors = errors+1;
   }


if (sch_now == true) {
   // check required 
   var blankdate = checkRequiredFields(frmobject,'SCH_START_DATE|SCH_START_TIME','Start Date|Start Time');

   if (blankdate == false) {
      errors = errors+1;
   }

   // check date
   var invaliddate = checkDateFields(frmobject,'SCH_START_DATE','Start Date');
   if (invaliddate == false) {
      errors = errors+1;
   }

   // check time
   var invalidtime = checkTimeFields(frmobject,'SCH_START_TIME','Start Time');
   if (invalidtime == false) {
      errors = errors+1;
   }
  
   // check for past date
   var pastdate = checkpastDate(document.forms[0].SCH_START_DATE,'Start Date/Time: Cannot set job to run in the past');
   if (pastdate == false) {
      document.forms[0].SCH_START_DATE.focus();
      errors = errors+1;
   }
 
   //check for past time
   var cur_time = getCurrentTime(); 
   if (pastdate == true && document.forms[0].SCH_START_DATE.value == document.forms[0].SCH_TODAY_DATE.value && document.forms[0].SCH_START_TIME.disabled==true) {
       var pasttime = checkpastTime(document.forms[0].SCH_START_TIME.value,'Start Date/Time: Cannot set job to run in the past');
       if (pasttime == false) {
          if (document.forms[0].SCH_START_TIME.disabled==false) {
              document.forms[0].SCH_START_TIME.focus();
          }
          errors = errors+1;
       } 
   } else 
          if (document.forms[0].SCH_START_DATE.value == document.forms[0].SCH_TODAY_DATE.value && document.forms[0].SCH_START_TIME.disabled==false) {
		
             if(document.forms[0].SCH_START_TIME.value < cur_time) {
             	document.forms[0].SCH_START_TIME.value=cur_time; 
             }
          }

   // check for email address
   if (document.forms[0].NOT_EMAIL[2].checked==true) {
      var blankaddr = checkRequiredFields(frmobject,'NOT_OTHER_EMAIL','Other email address');
      if (blankaddr == false) {
         document.forms[0].NOT_OTHER_EMAIL.focus();
         errors = errors+1;
      }
   }
   
 }

if (errors==0) {
   return true; 
 }return false;
} 

// This is for Jobsubmission screen 
function reset_SCH_Email_radio(){

   if (document.forms[0].SCH_NOT[2].checked==true ||document.forms[0].SCH_NOT[0].checked==true) {
      document.forms[0].NOT_EMAIL[0].checked = false;
      document.forms[0].NOT_EMAIL[1].checked = false;
      document.forms[0].NOT_EMAIL[2].checked = false; 
  }

}

// When Now is clicked
function set_SCH_NOW_radio(){

   if (document.forms[0].SCH_NOW[1].checked==true) {
      document.forms[0].SCH_NOT[0].checked = false;
      document.forms[0].SCH_NOT[0].disabled= true;
      document.forms[0].SCH_NOT[1].checked = true;
      document.forms[0].NOT_EMAIL[0].checked = true;
  }

}

// reset now 
function reset_SCH_NOW_radio(){

   if (document.forms[0].SCH_NOW[0].checked==true) {
      document.forms[0].SCH_NOT[0].checked = true;
      document.forms[0].SCH_NOT[0].disabled= false;
      document.forms[0].NOT_EMAIL[0].checked = false;
      document.forms[0].NOT_EMAIL[1].checked = false;
      document.forms[0].NOT_EMAIL[2].checked = false; 

  }

}

// set Notification default
function set_SCH_NOT_radio(){

   if (document.forms[0].SCH_NOT[1].checked==true) {
      document.forms[0].NOT_EMAIL[0].checked = true;

  }

}


// This is for Jobsubmission screen 
function set_SCH_Email_radio(){

   if (document.forms[0].NOT_EMAIL[0].checked==true ||document.forms[0].NOT_EMAIL[1].checked==true || document.forms[0].NOT_EMAIL[2].checked==true ) {
      document.forms[0].SCH_NOT[1].checked = true;
  }

}

// Check Past date
function checkpastDate(datefield,msg) {
  var dtDD='day';
  var dtMM='Month';
  var dtYYYY='Year';
  var dtstr=datefield.value;

  var cdate=new Date();
  var entdate=new Date();

  dtDD=dtstr.substring(3,5); 
  dtMM=dtstr.substring(0,2);
  dtYYYY=dtstr.substring(6,10);
 
  entdate.setDate(dtDD);
  entdate.setMonth(dtMM-1);
  entdate.setYear(dtYYYY);

  if (entdate<cdate && dtstr != '') {
      alert(msg);
	  
      return false;
  } else return true;
}

// Check Past time
function checkpastTime(toTime,msg){

        var now = new Date();
        var hh = now.getHours();
        var mm = now.getMinutes();
        var hhc = padNum(hh);      
        var mmc = padNum(mm);
        var cur_time = hhc+mmc;

        var fromTimeHH = cur_time.substring(0,2);
	var fromTimeMM = cur_time.substring(2,4);
 
        var toTimeHH = toTime.substring(0,2);
	var toTimeMM = toTime.substring(2,4);


	if ((fromTimeHH>toTimeHH) || ((fromTimeHH == toTimeHH)&& (fromTimeMM>toTimeMM))){
		alert(msg);
		return false;
	}else{
		return true;
	}
} 

// Get Current Time
function getCurrentTime() {

        var now = new Date();
        var hh = LZ(now.getHours());
        var mm = LZ(now.getMinutes());
        //var hhc = padNum(hh);      
        //var mmc = padNum(mm);
        //var curTime = hhc+mmc;
        var curTime = hh+mm;

        return curTime;

}


// Pad leading zero
function padNum(Num) {
  if (Num<10  &&  Num>0)  {
        padstr ="0" +Num; 
  }
  else padstr=""+Num; 
  return padstr;
}  

function updateHiddenScreen(url){
   parent.HiddenScreen.location = url
}

var vWinHelp = null;

function show_help() {
		 var str = "status,menubar,toolbar,location,directories,resizable,scrollbars,titlebar";
		 if (window.screen)
		 {		 var aw = screen.availWidth - 50;
		 		 var ah = screen.availHeight;
		 		 str += ",left=50";
		 		 str += ",width=" + aw;
		 		 str += ",top=1";
		 		 str += ",height=" + ah;
		 }
		 else
		 {		 str += ",left=50";
		 		 str += ",width=750";
		 		 str += ",top=1";
		 		 str += ",height=570";
		 }
		 if (vWinHelp && vWinHelp.open && !vWinHelp.closed) 
		 		 vWinHelp.focus();
		 else
		 {		 vWinHelp = window.open("/html/WebHelp/JCIHelp.htm","JCIHelp", str);
		 		 vWinHelp.focus();
		 }
}

function upperMe(input) {
input.value = input.value.toUpperCase()
}

function trimAll(input) {

// input is a form object

    for(var I=0;input.length>I;I++) {
        
        if((input.elements[I].type=='text') || (input.elements[I].type=='textarea')) {
           
           input.elements[I].value=Trim(input.elements[I].value);
        }
    }
}

// SEARCH FOR A CHARACTER
function searchStr(sub, string) {
 var s = string.indexOf(sub,0) + 1;
 return s;
} 


function NewWindow(URL)
{
  WinFeatures =
"toolbar=no,location=no,directories=no,status=no,menubar=no"
  WinFeatures += ",scrollbars=yes,resizable=yes,maximize=yes"
  MyNewWin = window.open(URL,"SomeTitle",WinFeatures)
}

function validateDateTime(fromDateObj,fromTimeObj,toDateObj,toTimeObj,Datemsg,Timemsg){

        var error_count = 0        

// Check Date fields


	var fromDateArray = fromDateObj.value.split("/");
	var toDateArray = toDateObj.value.split("/");
	
	var fromDateMM = fromDateArray[0];
	var fromDateDD = fromDateArray[1];
	var fromDateYYYY = fromDateArray[2];
	var toDateMM = toDateArray[0];
	var toDateDD = toDateArray[1];
	var toDateYYYY = toDateArray[2];

	if ((toDateYYYY < fromDateYYYY) || ((toDateYYYY == fromDateYYYY) && (toDateMM < fromDateMM)) || ((toDateDD < fromDateDD) && (toDateYYYY == fromDateYYYY) && (toDateMM == fromDateMM))) {
		alert(Datemsg);
                toDateObj.focus();
		//return false;
                error_count = error_count+1;
	}

// Check time fields

	var fromTimeArray = fromTimeObj.value.split(":");
	var toTimeArray = toTimeObj.value.split(":");
	
	//alert('from ='+fromTimeObj.value+', to='+toTimeObj.value+' and Timemsg ='+Timemsg);
	var fromTimeHH = fromTimeArray[0];
	var fromTimeMM = fromTimeArray[1];

	var toTimeHH = toTimeArray[0];
	var toTimeMM = toTimeArray[1];

        if (error_count==0 && fromDateObj.value==toDateObj.value){
	   if ((fromTimeHH>toTimeHH) || ((fromTimeHH == toTimeHH)&& (fromTimeMM>toTimeMM))){
		alert(Timemsg);
		toTimeObj.focus();
		// return false;
                error_count = error_count+1;
	   }
        }


//
 	if (error_count!=0) {
           return false;
	} else return true;
		   
}


function LZ(x) {return(x<0||x>9?"":"0")+x}	

function validateCurrentDateTime(fromDateObj,fromTimeObj,Datemsg,Timemsg){

        var error_count = 0        

// Check Date fields


	var now = new Date();

	var fromDateArray = fromDateObj.value.split("/");
	
	var fromDateMM = fromDateArray[0];
	var fromDateDD = fromDateArray[1];
	var fromDateYYYY = fromDateArray[2];
 

	var toDateMM = LZ(now.getMonth()+1);
	var toDateDD = LZ(now.getDate());
	var toDateYYYY = now.getYear();

	if ((toDateYYYY < fromDateYYYY) || ((toDateYYYY == fromDateYYYY) && (toDateMM < fromDateMM)) || ((toDateDD < fromDateDD) && (toDateYYYY == fromDateYYYY) && (toDateMM == fromDateMM))) {
		alert(Datemsg);
		fromDateObj.focus();
		//return false;
                error_count = error_count+1;
	}

// Check time fields

	var fromTimeArray = fromTimeObj.value.split(":");
	
     
        var fromTimeHH = fromTimeObj.value.substr(0,2);
        var fromTimeMM = fromTimeObj.value.substr(2,2);

   

	var toTimeHH = LZ(now.getHours());
	var toTimeMM = LZ(now.getMinutes());


        if (error_count==0 && fromDateMM==toDateMM && fromDateDD==toDateDD && fromDateYYYY==toDateYYYY ){
	   if ((fromTimeHH>toTimeHH) || ((fromTimeHH == toTimeHH) && (fromTimeMM>toTimeMM))){
		alert(Timemsg); 
		fromTimeObj.focus();
		// return false;
                error_count = error_count+1;
	   }
        }


 	if (error_count!=0) {
           return false;
	} else return true;
		   
}

function fillCurrentDate(input,fields)
{
    //input : form object
    //fields : list of all fields separated by "|"
    
    var scanFields = fields.split("|");
  
    for(var i=0; i < scanFields.length; i++) {
       
       if(Trim(input.elements[scanFields[i]].value)=='*') {
           input.elements[scanFields[i]].value = currentStringDate();
       }
    }
	
}

function fillCurrentTime(input,fields)
{
    //input : form object
    //fields : list of all fields separated by "|"
    
    var scanFields = fields.split("|");
  
    for(var i=0; i < scanFields.length; i++) {
       
       if(Trim(input.elements[scanFields[i]].value)=='*') {
           input.elements[scanFields[i]].value = getCurrentTime();
       }
    }
	
}

function currentStringDate() {

	var now = new Date();

	var toDateMM = LZ(now.getMonth()+1);
	var toDateDD = LZ(now.getDate());
	var toDateYYYY = now.getYear();
 
        return (toDateMM + '/' + toDateDD + '/' + toDateYYYY);

}

function init_scrolling_tbl() {
  document.getElementById("tblHeader").style.setExpression("left","-document.getElementById('tblBody_div').scrollLeft");
  for (var i = 0; i < document.getElementById("tblHeader").rows(0).cells.length; i++) {
    document.getElementById('tblHeader').rows(0).cells(i).style.setExpression("width","document.getElementById('tblBody').rows(0).cells("+i+").offsetWidth");
  }
	if (document.getElementById('tblFooter_div') != null)
		document.getElementById("tblBody_div").style.setExpression("height","document.body.clientHeight-document.getElementById('tblHeader_div').offsetHeight-document.getElementById('tblFooter_div').offsetHeight");
	else
		document.getElementById("tblBody_div").style.setExpression("height","document.body.clientHeight-document.getElementById('tblHeader_div').offsetHeight");
}

function padding(num, str, char){
        var opString = "";
        var pad = char;
        if (str != "" && str != null) opString = str;
        for (; opString.length < num;){
                opString += pad;
        }
        return opString.substr(0, num);
}

// Integer Validation
function VerifyInt(number)
{
 if(isNaN(number.value))
 {
  alert("Enter a valid Integer value");
  number.focus();
  number.value=''
  return false;
 }
 else if(number.value.indexOf('.') != -1) 
 {
  alert("Enter a valid Integer value");
  number.focus();
  number.value=''
  return false;
 }
 else
  {
 return true;
 }
}


