function setBGround(id, img){
	if(document.layers){FindObj(id).background.src = img;}
	else if(document.all){FindObj(id).background = img;}
}

function FindObj(n, d) {
  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];
  if(x) return x;
  for (i=0;i<d.forms.length;i++) {x=d.forms[i][n]; if(x) return x;}
if (d.layers) 
  for(i=0;i<d.layers.length;i++) {x=FindObj(n,d.layers[i].document); if(x) return x;}
  if(parseInt(navigator.appVersion) >= 5){
	x=document.getElementsByName(n);
	if (x) {
		if (x.length==1) x = x[0];
		else if (x.length==0) {x = document.getElementById(n);}
	} else {
		x = document.getElementById(n);
	}
  }
  return x;  
}

function addFIPSessionGUID(sURL) {
	if (sURL.indexOf("FIPSessionGUID") <= 0) {
		var oSessionField = FindObj("FIPSessionGUID");
		if (oSessionField && oSessionField.value) {
			if (sURL.indexOf("?") > 0) {
				sURL = sURL + "&FIPSessionGUID=" + oSessionField.value
			} else {
				sURL = sURL + "?FIPSessionGUID=" + oSessionField.value
			}
		}
	}
	return sURL;
}

function replacepage(page){
	var sURL = addFIPSessionGUID(page);
	window.location.replace(sURL); 
}

function openPage(page, name, param){
	var sURL = addFIPSessionGUID(page);
	return window.open(sURL, name, param); 
}

function replaceParentpage(page, n){
	var oW = window;
	if(!n) n = 1;
	for(var i=1; i<=n; i++) oW=oW.parent;
	var sURL = addFIPSessionGUID(page);
	oW.location.replace(sURL); 
}

function replaceToppage(page){
	var oW = window;
	while(oW!=oW.parent)oW=oW.parent;
	var sURL = addFIPSessionGUID(page);
	oW.location.replace(sURL); 
}

function replaceObjectPage(windowObj, page){
	var sURL = addFIPSessionGUID(page);
	windowObj.location.replace(sURL);
}

function replaceFramePage(frameName, page){
	var oW = window;
	while(oW != oW.parent)oW=oW.parent;
	var sURL = addFIPSessionGUID(page);
	getWinObj(oW, frameName).location.replace(sURL);
}

function getWinObj(oTopW, name){
	var ow;
	if(oTopW.frames){
		ow = oTopW.frames[name];
		for(var i=0; !ow && i<oTopW.frames.length; i++){ow = getWinObj(oTopW.frames[i], name);}
	}
	return ow;
}

function setFocus(txtName){
	FindObj(txtName).focus();
}

function lTrim(toBeLTrimmed) {
	var unWantedChars = new String(" \n\r\t");
	var str = new String(toBeLTrimmed);
	if (unWantedChars.indexOf(str.charAt(0)) != -1) {
		var i=0, nLen = str.length;
		while (i < nLen && unWantedChars.indexOf(str.charAt(i)) != -1)
			i++;
		str = str.substring(i, nLen);
	}
	return str;
}

function rTrim(toBeRTrimmed) {
	var unWantedChars = new String(" \n\r\t");
	var str = new String(toBeRTrimmed);
	var nLen = str.length;	
	if (unWantedChars.indexOf(str.charAt(nLen)) != -1) {
		var i=nLen-1;
		while (i>0 && unWantedChars.indexOf(str.charAt(i)) !=-1)
			i--; str = str.substring(0,++i);
	}
	return str;
}

function trim(toBeRTrimmed) {
	return lTrim(rTrim(toBeRTrimmed));
}

function JIsDate(strDate){
	var arr = strDate.split("/");
	var sep = "/";
	if (arr.length != 3) {
		arr = strDate.split("-");
		sep = "-";
	}
	if (arr.length == 1) {
		if (strDate.length == 6 || strDate.length == 8) {
			return JIsDate(strDate.substring(0,2)+"/"+strDate.substring(2,4)+"/"+strDate.substring(4));
		} else if (strDate.length == 5 || strDate.length == 7) {
			return JIsDate(strDate.substring(0,1)+"/"+strDate.substring(1,3)+"/"+strDate.substring(3));
		} else {return ""; }
	} else if (arr.length == 3) {
		var theDate = new Date(strDate);
		if (isNaN(theDate)) return "";
		if (arr[2].length <= 2) {// Convert years '00', '01' to '2000', '2001'				
			var tmpDate = new Date(strDate);
			if (parseInt(arr[2],10) <= 10)   //convert only for [00 - 10] to [2000 - 2010], inclusive
               tmpDate.setFullYear(tmpDate.getFullYear()+100);
			//if (tmpDate <= (new Date())) {
			theDate = tmpDate;
			//}
		}
		var iMon = parseInt(arr[0], 10);
		var iDay = parseInt(arr[1], 10);
		var iYear = parseInt(arr[2], 10);
		var strDay = theDate.getDate();
		var strMon = parseInt(theDate.getMonth()) + 1;
		var strYear = theDate.getFullYear();
		if (iMon != strMon || iDay != strDay || ((iYear != strYear) && (iYear != strYear - 1900) && (iYear != strYear - 2000)))	{ 
			return ""; 
		} else { 
			return theDate; 
		}
	}
	else{
		return "";
	}
}

function getAge(strDate) {
	var birthDate = new Date(strDate);
	var now = new Date();
	var age = now.getFullYear() - birthDate.getFullYear();
	if (now < new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())) { age--;}
	return age;
}

/*
	function getInsuranceAge(strDate) {

	var insuranceAge = getAge(strDate);
	var birthDate = new Date(strDate);
	//if (isNaN(birthDate)) { return -1; }
	var mm = birthDate.getMonth()+1;
	var dd = birthDate.getDate();
	var yyyy = birthDate.getFullYear();

	var today = new Date();

	if ((today-new Date(yyyy+insuranceAge, mm, dd)) > (new Date(yyyy+insuranceAge+1, mm, dd)-today)) {
		insuranceAge++;
	}
	return insuranceAge;
}
*/

function matchBDateToAge(age, bDate){
	var mBDate = (bDate.length) ? new Date(bDate) : new Date();
	var dif = getAge(mBDate)-age;
	var sDate = ConvertDateToString(mBDate);
	return sDate.substring(0,sDate.length-4) + (mBDate.getFullYear() + dif);
}

function ConvertDateToString(oDate) {
	return (oDate==null) ? "" : (oDate.getMonth()+1) + "/" + oDate.getDate() + "/" + oDate.getFullYear();
}

function ConvertDateToLong(strDate) {
	var sYear = strDate.getFullYear().toString();
	var sMonth = (strDate.getMonth()+1).toString();
	if (sMonth.length == 1) sMonth = "0" + sMonth
	var sDate = strDate.getDate().toString();
	if (sDate.length == 1) sDate = "0" + sDate
	return parseInt((sYear + sMonth + sDate), 10);
}

function ConvertDateStringToLong(strDate) {
	var sDate = JIsDate(strDate);
	if (sDate == "") return 0;
	else return ConvertDateToLong(JIsDate(strDate));
}

function ConvertLongToDateString(lValue) {
	if (isNaN(lValue)) {
		return "";
	} else if (lValue.toString().length!=8) {
		return "";
	} else {
		var sValue = lValue.toString();
		return sValue.substring(4,6) + "/" + sValue.substring(6,8) + "/" + sValue.substring(0,4);
	}
}

function RoundDouble(num, digits) {
	if (isNaN(digits)) digits = 0;
	var base = Math.pow(10,digits);
	return Math.round(num * base) / base;
}

function FormatDouble(num, digits) {
	var sign = "";
	if(num < 0) {
		sign = "-";
		num = -num;
	}
	var strAmt = parseFloat(num).toString();
	var dot = strAmt.indexOf(".");
	if (dot < 0) dot = strAmt.length;
	if (isNaN(digits)) digits = 0;
	if (dot==0) {
		strAmt = "0" + strAmt;
		dot = 1;
	}
	
	if (digits == 0) {	
		strAmt = strAmt.substring(0,dot);
	} else if (dot+digits+1 < strAmt.length) {
		strAmt = strAmt.substring(0,dot+digits+1);
	} else {	
		if (dot==strAmt.length) strAmt += ".";
		for (var i=strAmt.length; i<=dot+digits;i++) strAmt += "0";
	}
	var arr = new Array();
	var pos=dot%3, count=0;
	if (pos) {
		arr[count] = strAmt.substring(0,pos);
		count++;
	}
	for (; pos<dot; pos+=3,count++) {
		arr[count] = strAmt.substring(pos,pos+3); 
	}
	return sign+arr.join(",")+strAmt.substring(dot);
}

function isInList(list, value) {
    for (var ptr = 0; ptr < list.length; ptr++){
        if (value == list[ptr][0]) {
            return ptr;
        }
    }
    return -1;
}


function NullZero(lValue) {
	if (isNaN(lValue)) {
		return 0;
	} else {
		return lValue;
	}
}

function selectItemFromList(oList, value){
  var index = getElmIndexInList(oList, value);
  SelectListItem(oList, index);
  return index;
}

function SelectListItem(oList, index){
  var opt;
  if (index >= 0){
    opt = oList.options[index];
    if(! opt.selected){
      opt.selected = true;
    }
  }
}

function getElmIndexInList(oList, value){
  var i, leng = oList.length;
  for( i=0; i<leng; i++){
    if (new String(value).toUpperCase() == new String(oList.options[i].value).toUpperCase()) {
       return i;
    }
  }
  return -1;
}

function addToListWArray(oList,value_text_pair_array){
  var leng = value_text_pair_array.length;
  var i, j = oList.length;
  if(leng != null && leng > 0){
    oList.length = j + leng;
    for(i=0; i<leng; i++, j++){
      setListItemVal(oList,j, value_text_pair_array[i][0]);
      setListItemText(oList,j,value_text_pair_array[i][1]);
oList.options[i].selected = false;
    }
  }
}

function setListItemVal(oList, index, value){
  if(oList != null && !(isNaN(index))&& parseInt(index)>=0 && parseInt(index)<=(oList.length-1)){
    oList.options[index].value = value;
  }
}

function setListItemText(oList, index, value){
  if(oList != null && !(isNaN(index))&& parseInt(index)>=0 && parseInt(index)<=(oList.length-1)){
    oList.options[index].text = value;
  }
}

function PopulateList(oList, arr, sortDir){
  if(sortDir) SortListByText(arr, sortDir);
  oList.length = 0;
  addToListWArray(oList, arr);
}

function SortListByText(arr, sortDir) {
	if(sortDir==1) {
		arr.sort(sortByTextAsc);
	} if(sortDir==2) {
		arr.sort(sortByTextDsc);
	}
}

function sortByTextAsc(a, b) {
	return ((a[1] < b[1]) ? -1 : ((a[1] > b[1]) ? 1 : 0));
}

function sortByTextDsc(a, b) {
	return ((a[1] < b[1]) ? 1 : ((a[1] > b[1]) ? -1 : 0));
}

/*
function _ValidateSSN (e) {
   var bIsIE = (document.all)? true:false;
   var fld;
   if (_ValidateSSN.arguments.length == 0)
      fld = (bIsIE)? window.event.srcElement : e.target;
   var value = fld.value;
   var MSG = "Wrong format of SSN. Use 123-45-6789 format.";
   var re;

   if (value.length == 9) {
      re = new RegExp("[0-9]{9}","ig");
      if (value.match(re) != null) {
         fld.value = value.substring(0,3) + "-" + value.substring(3,5) + "-" + value.substring(5,9);
         return;
      }
   } else if (value.length == 11) {
      re = new RegExp("[0-9]{3}-[0-9]{2}-[0-9]{4}","ig");
      if (value.match(re) != null) return;
   }   
   alert("Wrong format of SSN. Use 123-45-6789 format.");
   fld.focus();
}
*/
function _ValidateSSN (e) {
   var bIsIE = (document.all)? true:false;
   var fld;
   if (_ValidateSSN.arguments.length == 0)
      fld = (bIsIE)? window.event.srcElement : e.target;
   var MSG = "Wrong format of SSN. Use 123-45-6789 format.";
   var value = fld.value;

   if (value.length == 0) return;
   if (value.length == 9) {
      if (!isNaN(value)) {
         fld.value = value.substring(0,3) + "-" + value.substring(3,5) + "-" + value.substring(5,9);
         return;
      }
   } else if (value.length == 11) {
      var ss = value.split("-");
      if (ss.length==3 && ss[0].length==3 && ss[1].length==2 && ss[2].length==4 && !isNaN(""+ss[0]+ss[1]+ss[2]))
         return;
   }
   alert(MSG);
   fld.focus();   
}

function _ValidateTaxID(e) {
   var bIsIE = (document.all)? true:false;
   var fld;
   if (_ValidateTaxID.arguments.length == 0)
      fld = (bIsIE)? window.event.srcElement : e.target;
   var MSG = "Wrong format of Tax ID. Use 12-3456789 format.";
   var value = fld.value;

   if (value.length == 0) return;
   if (value.length == 9) {
      if (!isNaN(value)) {
         fld.value = value.substring(0,2) + "-" + value.substring(2,9);
         return;
      }
   } else if (value.length == 10) {
      var ss = value.split("-");
      if (ss.length==2 && ss[0].length==2 && ss[1].length==7 && !isNaN(""+ss[0]+ss[1]))
         return;
   }
   alert(MSG);
   fld.focus();   
}

var SubWindow;
function ShowHelp(level)
{
	if (SubWindow!=null) {
		CloseSubWindow(SubWindow);
	}	
	
	var sDir = "";
	var paramString="width=567, height=430, scrollbars=yes resizable=yes, status=no left=100 top=100";
	
	if(!level || isNaN(level)) level = 0;
	for(var i=1; i<=level; i++) {
		sDir += "../"
	}
		
	SubWindow = window.open(sDir + "Webhelp/lp2000html.htm", null,paramString);
}

function CloseSubWindow(subWindow) {
	try {
		subWindow.close();
	} catch (e) {}
	subWindow = null;	
}

function getIssueAge(birth, currentDate)
{
	var birthDate = new Date(birth);
	var now = new Date(currentDate);
	var age = now.getFullYear() - birthDate.getFullYear();
	if (now < new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())) { age--;}
	return age;
}

function getInsuranceAge(strBirth, iAgeType, strEffDate) {
	var numargs = arguments.length;
	var ageNearType = (numargs<=1) ? 1 : iAgeType;
	var insuranceAge = (numargs<=2) ? getAge(strBirth) : getIssueAge(strBirth, strEffDate);
	var today = (numargs<=2) ? (new Date()) : (new Date(strEffDate));
	if (ageNearType==1) { 
		insuranceAge = ageNearDay(strBirth, insuranceAge, today);
	} else if (ageNearType==2) {
		insuranceAge = ageNearMonth(strBirth, insuranceAge, today) ;
	} 
	return insuranceAge;
}

function ageNearDay(strDate, iAge, today){
	var birthDate = new Date(strDate);
	//var today = new Date();
	var insuranceAge = iAge;
	var mm=birthDate.getMonth();
	var dd=birthDate.getDate();
	var yyyy=birthDate.getFullYear();
	if ((today-new Date(yyyy+insuranceAge, mm, dd)) > (new Date(yyyy+insuranceAge+1, mm, dd)-today)) {
		insuranceAge++;
	}
	return insuranceAge;
}
    
function ageNearMonth(strDate, iAge, today){
	var birthDate = new Date(strDate);
	//var today = new Date();
	var insuranceAge = iAge;
	var mm=birthDate.getMonth();
	var dd=birthDate.getDate();
	var nowmm=today.getMonth();
	var nowdd=today.getDate();
	var nowyyyy=today.getFullYear();
	var diffMonth=0;
	if (nowmm>mm){
		diffMonth=nowmm-mm;
	} else if (nowmm<mm || nowdd < dd) {
		diffMonth=nowmm+12-mm;
	}
	if (diffMonth>6) {
		insuranceAge++;
	} else if (diffMonth==6) {
		if (nowdd>=dd) {
		insuranceAge++;
		}
	}	
	return  insuranceAge;
}

function FixURL(oldURL) {
	var pos = oldURL.indexOf("://");
	if (pos > -1) {
		oldURL = oldURL.substring(pos+3);
	}
	pos = oldURL.indexOf("/");
	if (pos > -1) {
		oldURL = oldURL.substring(pos+1);
	}
	return window.location.protocol + "//" + window.location.host + "/" + oldURL;
}

function AddItemToList(oList, value, text)
{
   for (var i = 0; i < oList.length; i++) {
      if (oList.options[i].value == value && oList.options[i].text == text)
         return;
   }
   oList.length += 1;
   oList.options[i].value = value;
   oList.options[i].text = text;
}  

function RemoveItemFromList(oList, index)
{
   if (index < 0) return;
   for (var i = index; i < oList.length - 1; i++) {
      oList.options[i].value = oList.options[i+1].value;
      oList.options[i].text = oList.options[i+1].text;
      oList.options[i].selected = oList.options[i+1].selected;
   }
   if (oList.length > 0) 
      oList.length -= 1;
}

function NoEditAllFields() {
   
	var indx;

	for (var indx = 0; indx < document.forms(0).elements.length; indx++) {
		var elem = document.forms(0).elements(indx);
		if (elem.disabled == false) {
			if (elem.type == "button" || elem.type == "text" ||
				elem.type == "textarea" || elem.type == "select-one" ||
				elem.type == "check" || elem.type == "radio" ||
				elem.type == "div" || elem.type == "checkbox") {

				elem.disabled = true;
			}
		}
	}
}
