function bolSetFieldFocus(field){
if(field!=null){
if(field.type!="hidden")field.focus();
}
}
/* Start GDS Changes
 * Modified by: Sanjeewa
 */
function bolGetCookie(p_CookieName)
{

}

function bolSetCookie(p_Name, p_Value)
{
  document.cookie = p_Name + "=" + escape (p_Value);
}

/* End GDS Changes
 */
function bolPopupURL(aURL){
var newWin=window.open(aURL,"bol","directories=0,height=480,width=578,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=yes");
var agt=navigator.userAgent.toLowerCase(); 
if(!(agt.indexOf("msie")!=-1 && (parseInt(agt.substr(agt.indexOf("msie")+5,1))==4))){
newWin.focus();
}
}
function bolPopupURL2(aURL){
var newWin=window.open(aURL,"bol","directories=0,height=480,width=578,location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=yes");
var agt=navigator.userAgent.toLowerCase(); 
if(!(agt.indexOf("msie")!=-1 && (parseInt(agt.substr(agt.indexOf("msie")+5,1))==4))){
newWin.focus();
}
}
function bolPopupURLClose(aURL){
winArray[winArray.length] = window.open(aURL,"bol","directories=0,height=480,width=578,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=yes");
var agt=navigator.userAgent.toLowerCase(); 
}
function bolCloseChildren()
{
	for(i=0;i<winArray.length;i++)
	{
		// check if window wasn't already closed 
		if (winArray[i] && !winArray[i].closed) 
		{	
		  winArray[i].close();
		}		
	}
	winArray.length = 0;
}
function bolBillPayPopup(aURL){
var newWin=window.open(aURL,"bol","directories=0,height=280,width=463,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no");
var agt=navigator.userAgent.toLowerCase(); 
if(!(agt.indexOf("msie")!=-1 && (parseInt(agt.substr(agt.indexOf("msie")+5,1))==4))){
newWin.focus();
}
}
function bolAdPopupURL(aURL){
var leftOffset=0;
var topOffset=0;
var popupwidth=800;
var popupheight=400;
if(screen.width){
if(screen.width>popupwidth){
leftOffset=((screen.width-popupwidth)/2);
}  
}
var newWin=window.open(aURL,"bol",'directories=0,left='+leftOffset+',top='+topOffset+',screenx='+leftOffset+',screeny='+topOffset+',height='+popupheight+',location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=yes,width='+popupwidth);
var agt=navigator.userAgent.toLowerCase(); 
if(!(agt.indexOf("msie")!=-1&&(parseInt(agt.substr(agt.indexOf("msie")+5,1))==4))){
newWin.focus();
}
}
function bolTONWPopupURL(bolObj,aURL){
if(bolObj.selectedIndex!=0){
var leftOffset=50;
var topOffset=30;
var popupwidth=795;
var popupheight=475;
bolObj.selectedIndex = 0;
if(screen.width){	
if(screen.width>popupwidth){	
leftOffset=((screen.width-popupwidth)/2);
}  
}
var newWin=window.open(aURL,"ICMLayout",'directories=0,left='+leftOffset+',top='+topOffset+',screenx='+leftOffset+',screeny='+topOffset+',height='+popupheight+',width='+popupwidth+',location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no');
var agt=navigator.userAgent.toLowerCase(); 
if(!(agt.indexOf("msie")!=-1&&(parseInt(agt.substr(agt.indexOf("msie")+5,1))==4))){	
newWin.focus();	
}
}
}
function bolSelAct(bolObj,bolIdx,bolUseFirstOption){
var bolOffLink=bolObj.options[bolObj.selectedIndex].value;
if(bolUseFirstOption=="true" || (bolUseFirstOption==null && bolObj.selectedIndex!=0)){
if(bolOffLink!="VisaDNDLink" && bolOffLink != "UALMilesPlusLink" && bolOffLink != "SONYREWARDS"){
if(bolIdx=='' || bolOffLink.indexOf("AcctIndex=")==-1){
eval("top.location='"+bolObj.options[bolObj.selectedIndex].value+"'");
}else{
eval("top.location='"+bolObj.options[bolObj.selectedIndex].value+bolIdx+"'");
}
}else{
if (bolOffLink =="UALMilesPlusLink")
{
bolOffSiteLink('UAL Miles Plus','http://mileageplusvisa.ualmiles.com/');	
}
else if (bolOffLink == "SONYREWARDS")
{
bolOffSiteLink('Sony Rewards','http://www.sony.com/sonycard/');	
}
else
{
var bolBrandGoto = "";
if (document.bolForm["bolBrand" + bolIdx] != null)
{
bolBrandGoto = document.bolForm["bolBrand" + bolIdx].value;
}
else
{
var cookieVal = document.cookie;
if ( (cookieVal.indexOf("bolBrand=")) + 0 == -1 )
bolBrandGoto = "";
var temp = cookieVal.substring(cookieVal.indexOf("bolBrand=")+ 9, cookieVal.length);
var offset = temp.indexOf(";");
if (offset + 0 == -1)
{
offset = temp.length;
}
bolBrandGoto = unescape(temp.substring(0, offset));
}
switch(bolBrandGoto)
{
case "BA":
bolOffSiteLink('Visa','http://www.usa.visa.com/personal/shopping/visa_special_offers/First_USA_British_Airways.jsp');
break;
case "AMAZON":
bolOffSiteLink('Visa','https://usa.visa.com/specialOffers/FUSA_Amazon/offers.jsp');
break;
case "AOL":
bolOffSiteLink('Visa','http://usa.visa.com/specialOffers/AOLVisaOffers/offers.jsp');
break;
case "CMSFI":
bolOffSiteLink('Visa','http://usa.visa.com/specialOffers/CMS/offers.jsp');
break;
case "CMS":
bolOffSiteLink('Visa','http://usa.visa.com/specialOffers/CMS/offers.jsp');
break;
case "FROST":
bolOffSiteLink('Visa','http://usa.visa.com/specialOffers/CMS/offers.jsp');
break;
case "YAHOO":
bolOffSiteLink('Visa','http://usa.visa.com/specialOffers/Yahoo/offers.jsp');
break;
case "NETBANK":
bolOffSiteLink('Visa','https://www.usa.visa.com/specialOffers/NetBankVisaOffers/offers.jsp');
break;
default:
bolOffSiteLink('Visa','https://www.usa.visa.com/specialOffers/BankOne/offers.jsp');
break;
}
}
bolObj.selectedIndex=0;
}
}
}
function bolOffSiteLink(gotoName,gotoURL){  
gotoName = escape(gotoName);
gotoURL = escape(gotoURL); 
var OffSitePopUpURL;
var leftOffset=0;
var topOffset=0;    
OffSitePopUpURL="/bolOffSiteLink.aspx"; 
if(screen.width){
if(screen.width < 800){
leftOffset=60;
topOffset=90;
}else{
if(screen.width>=800&&screen.width<1024){
leftOffset=160;
topOffset=134;
}else{
if(screen.width>=1024){
leftOffset=272;
topOffset=250;
}
}
}
}
var loadURL=OffSitePopUpURL+'?gotoName='+gotoName+'&gotoURL='+gotoURL;
var webLinkWin=window.open(loadURL,"view",'width=480,height=295,left='+leftOffset+',top='+topOffset+',screenx='+leftOffset+',screeny='+topOffset+',resizable=no,scrollbars=yes,menubar=no');
webLinkWin.focus();
}
function printPage()
{
  var pr =  (window.print) ? 1 : 0;

  if (pr)	//Browser is Internet Explorer 5 or Netscape 4
    window.print()
  else		//Browser is not Internet Explorer 5 nor is it Netscape 4
    alert("Sorry, your browser doesn't support this feature.");
}

function bolIsValidNotFutureDate(dateField) {
  return bolIsValidDateCompare(dateField, "<=");
}
function bolIsValidDateRange(date1, date2) {
    if ((date1 == "") && (date2 == "")) {
        return true;
    }
    formattedDate1 = bolIsValidDateFormatString(date1);
    if (formattedDate1 == "") {
        return false;
    }
    formattedDate2 = bolIsValidDateFormatString(date2);
    if (formattedDate2 == "") {
        return false;
    }
    date1compare = bolDateCompareString(date1);
    date2compare = bolDateCompareString(date2);
    return (date1compare <= date2compare);
}
function bolIsValidDateCompare(dateField, operator) {
  if (!bolIsValidDateFormat(dateField)) {
    return false;
  }
  var givenDate = bolDateCompareString(dateField.value);
  var today = bolDateCompareString(bolGetTodayAsmmddyyyy());
  return eval("\"" + givenDate + "\"" + operator + "\"" + today + "\"");
}
function bolIsValidDateFormat(dateField) {
  var dateString = bolStrip(dateField.value, " ");
  var newValue = bolIsValidDateFormatString(dateString);
  if (newValue != "") {
    dateField.value = newValue;
    return true;
  }
  return false;
}
function bolDateCompareString(dateString) {
  var month = dateString.substring(0, 2);
  var day = dateString.substring(3, 5);
  var year = dateString.substring(6, 10);
  return year + month + day;
}
function bolGetTodayAsmmddyyyy() {
  var todayDate = new Date();
  var today = (todayDate.getMonth() + 1) + "/" + todayDate.getDate() + "/" + bolGetFullYear(todayDate);
  return (bolIsValidDateFormatString(today));
}
function bolGetFullYear(dateObj) {
  var year = parseInt(dateObj.getYear(), 10);
  if (year < 1000) {
    year += 1900;
  }
  return year;
}
function bolIsValidDateFormatString(dateStr) {
    if (typeof (dateStr) == "undefined") {
        return "";
    }
    var dateLen = dateStr.length;
    if ((bolIsNumeric(dateStr)) && (dateLen == 8)) {
        dateStr = dateStr.substring(0, 2) + "/" + dateStr.substring(2, 4) + "/" + dateStr.substring(4, 8);
        dateLen = dateStr.length;
    }
    if ((bolIsNumeric(dateStr)) && (dateLen == 6)) {
        dateStr = dateStr.substring(0, 2) + "/" + dateStr.substring(2, 4) + "/" + dateStr.substring(4, 6);
        dateLen = dateStr.length;
    }
    if (bolIsNumeric(dateStr)) {
        return "";
    }
    var spacerIndex = bolIndexOfFirstNotIn("0123456789", dateStr);
    var spacerChar = dateStr.charAt(spacerIndex);
    if (bolIsLetter(spacerChar)) {
        return "";
    }
    var firstSpacer = dateStr.indexOf(spacerChar);
    var secondSpacer = dateStr.lastIndexOf(spacerChar);
    var monthStr = dateStr.substring(0, firstSpacer);
    var dayStr = dateStr.substring(firstSpacer + 1, secondSpacer);
    var yearStr = dateStr.substring(secondSpacer + 1, dateLen);
    if ((!bolIsNumeric(monthStr)) || (!bolIsNumeric(dayStr)) || (!bolIsNumeric(yearStr))) {
        return "";
    }
    if (monthStr.length == 1) {
        monthStr = "0" + monthStr;
    }
    if (dayStr.length == 1) {
        dayStr = "0" + dayStr;
    }
    var month = parseInt(monthStr, 10);
    var day = parseInt(dayStr, 10);
    var year = parseInt(yearStr, 10);
    if (yearStr.length == 4) {
       var century = parseInt(yearStr.substring(0,2), 10);
       if (century == 0) {
          return "";
       }
       var YearFirstDigit = parseInt(yearStr.substring(0,1), 10);
       if (YearFirstDigit == 0) {
		  return "";
	   }	  	
    }
    if (yearStr.length == 2) {
        if (year > 71) {
            yearStr = "19" + yearStr;
        } else {
            yearStr = "20" + yearStr;
        }
    }
    if ((monthStr.length != 2) || (dayStr.length != 2) || (yearStr.length != 4)) {
        return "";
    }
    var daysInMonth = new Array(12);
    daysInMonth[1] = 31;
    daysInMonth[2] = 28;
    daysInMonth[3] = 31;
    daysInMonth[4] = 30;
    daysInMonth[5] = 31;
    daysInMonth[6] = 30;
    daysInMonth[7] = 31;
    daysInMonth[8] = 31;
    daysInMonth[9] = 30;
    daysInMonth[10] = 31;
    daysInMonth[11] = 30;
    daysInMonth[12] = 31;
    if ((((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0)) {
        daysInMonth[2] = 29;
    }
    if ((month < 1) || (month > 12)) {
        return "";
    }
    if ((day < 1) || (day > daysInMonth[month])) {
        return "";
    }
    return (monthStr + "/" + dayStr + "/" + yearStr);
}
function bolStrip(string,sChar){
if((string==null)||(string=="")){
return "";
}
var startIndex=bolIndexOfFirstNotIn(sChar,string);
var endIndex=bolIndexOfLastNotIn(sChar,string);
if(startIndex==-1){
return "";
}
return string.substring(startIndex,endIndex+1);
}
function bolIndexOfFirstNotIn(okayChars,inString){
var i;
for(i=0;i<inString.length;i++){
var charm=inString.charAt(i);
if(okayChars.indexOf(charm)==-1){
return i;
}
}
return -1;
}
function bolIndexOfLastNotIn(okayChars, inString) {
var i;
for (i = inString.length - 1; i >= 0; i--) {
var charm = inString.charAt(i);
if (okayChars.indexOf(charm) == -1) {
return i;
}
}
return -1;
}
function bolIsComposedOfChars(validChars, inString) {
return bolIndexOfFirstNotIn(validChars, inString) == -1;
}
bolFieldHasChanged = false;
function bolFormFieldsChanged(){
if(!bolFieldHasChanged){
alert("We detected no changes. If you want to update your information, please try again.");
return false;
}else{
return true;
}
}
function bolIsNumeric(number) {
number = number + "";
return ((number.length > 0) && bolIsComposedOfChars("0123456789", number));
}
function bolIsLetter(aChar) {
return ((aChar >= "a") && (aChar <= "z")) || ((aChar >= "A") && (aChar <= "Z"));
}
function bolCheckRadio(RadioGrp)
{
 var flag = false;
 
 if (RadioGrp.length == null)
 {
  if (RadioGrp.checked)
  {
    flag = true;
  }
 }
 else
 {
  for (var i=0; i<RadioGrp.length; i++)
  {
    if (RadioGrp[i].checked)
     {
     flag = true;
     }
  }
 }
 if (!flag)
  {
  return false;
  }
 else
 {
  return true;  
 }
}
var isValid = false;
function bolValidateForm(form)
{
  if (isValid)
  {
    document.onSamePage = "YES";
    if (confirm('You have already submitted this transaction.\n\nIf you have clicked the Stop button on your browser, click "OK".\n\nIf you have not clicked the Stop button, click "Cancel".\n'))
    {
      if (null == document.onSamePage)
      {
        return false;
      }
      else
      {
        isValid = false;
        form.IsKnownDuplicate.value = "YES";
      }
    }
    else
    {
      return false;
    }
  }
  if (!bolCheckRadio(form.bolSearchTypeFld))
  {
    alert("Please select a time period to search from.");
    return false;
  }
  if (form.bolSearchTypeFld[1].checked == true )
  {
    if (!bolIsValidDateFormat(form.bolDateFromFld))
    {
      alert("Please specify a valid 'from' date.");
      form.bolDateFromFld.select();
      form.bolDateFromFld.focus();
      return false;
    }
     if (!bolIsValidNotFutureDate(form.bolDateFromFld))
    {
      alert("The date may not be in the future.");
      form.bolDateFromFld.select();
      form.bolDateFromFld.focus();
      return false;
    }
    if (!bolIsValidDateFormat(form.bolDateToFld))
    {
      alert("Please specify a valid 'to' date.");
      form.bolDateToFld.select();
      form.bolDateToFld.focus();
      return false;
    }
    if (!bolIsValidNotFutureDate(form.bolDateToFld))
    {
      alert("The date may not be in the future.");
      form.bolDateToFld.select();
      form.bolDateToFld.focus();
      return false;
    }
    if (!bolIsValidDateRange(form.bolDateFromFld.value,form.bolDateToFld.value))
    {
      alert("Enter a 'from' Date that is before the 'to' Date.");
      form.bolDateFromFld.select();
      form.bolDateFromFld.focus();
      return false;
    }
  }
 isValid = true;
  return true;
}
function bolAccountOnChangeDisable(aForm)
{
  aForm.bolSelectButton.disabled=false;
    for (var i=0; i<aForm.bolSearchTypeFld.length; i++)
  {
    aForm.bolSearchTypeFld[i].disabled=true;
  }
  aForm.BoaTimePeriod.disabled=true;
  aForm.bolDateFromFld.disabled=true;
  aForm.bolDateToFld.disabled=true;
  aForm.BoaTransactionType.disabled=true;
  aForm.BoaMerchantName.disabled=true;
  aForm.BoaSearch.disabled=true;
}
