function openwin(url, features)
{
	window.open(url, "newwin", features, "false");
}

function openclaimsummary(url, features)
{
	openwin('/code/printclaimsummary.aspx?Dview=DentistPrintClaimSummary','height=500,width=800,location=no,status=no,toolbar=yes,menubar=yes,scrollbars=yes');
}

function openeob(url, features)
{
	openwin('/code/printclaim.aspx?Dview=DentistPrintClaim','height=500,width=700,location=no,status=no,toolbar=yes,menubar=yes,scrollbars=yes');
}

function opensubscribereob(url, features)
{
	openwin('/code/printclaim.aspx?Dview=SubscriberPrintClaim','height=500,width=700,location=no,status=no,toolbar=yes,menubar=yes,scrollbars=yes');
}

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.01
  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 && d.getElementById) x=d.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 parseDateFromString(dateString)
{
  var strArray = dateString.split("/")
  var d = new Date()
  d.setFullYear(strArray[2],strArray[0]-1,strArray[1]);
  return d;
}

function yearsBetween(date1, date2)
{
  var msinyear = 1000*60*60*24*365;
  var years = parseInt((date1 - date2)/msinyear);
  if(years < 0)
    years = years*-1;
    
  return years;
}

function lastDayOfMonth(inDte) {
  var month = inDte.getMonth();
  var year = inDte.getFullYear();
  month ++;
  var dd = new Date(year, month, 0);
  return dd;
}

function lastDayOfYear(inDte) {
  var dd = new Date(inDte.getFullYear(), 11, 31);
  return dd;
}

function dateByCoveragePeriod(inDte, coverStartDte, coverEndDte)
{
  var coverStartDte = new Date(coverStartDte.getFullYear(), coverStartDte.getMonth(), coverStartDte.getDate());
  var coverEndDte = new Date(coverEndDte.getFullYear(), coverEndDte.getMonth(), coverEndDte.getDate());
  
  if(inDte >= coverStartDte && inDte <= coverEndDte) {
    return coverEndDte;
  }
  else { 
    var coverStart = new Date(coverStartDte.getFullYear(), inDte.getMonth(), inDte.getDate());
    
    if(coverStart >= coverStartDte && coverStart <= coverEndDte) {
      return new Date(inDte.getFullYear() + 1, coverEndDte.getMonth(), coverEndDte.getDate());
    }
    else {
      return new Date(inDte.getFullYear(), coverEndDte.getMonth(), coverEndDte.getDate());
    }
  }  
}

function calculateOverageDate(limitType, limit, dob, coverStartDte, coverEndDte)
{
    if(dob.getMonth() == 1 && dob.getDate() == 29)
    {
      if(!isLeapYear(dob.getFullYear() + parseInt(limit)))
        dob = new Date(dob.getFullYear(), dob.getMonth(), dob.getDate()-1);
    }
    
    var tmp_overage_dte = new Date(dob.getFullYear() + parseInt(limit), dob.getMonth(), dob.getDate());
    
    switch(parseInt(limitType))
    {
      case 1:
        return tmp_overage_dte;
        break
      case 2:
        return lastDayOfMonth(tmp_overage_dte);
        break
      case 3:
        return lastDayOfYear(tmp_overage_dte);
        break
      case 4:
        return dateByCoveragePeriod(tmp_overage_dte, coverStartDte, coverEndDte);
        break
      default:
        alert('Invalid age limit type.');
     }
 }
 
 function isLeapYear(year)
 {
    if(year % 4 != 0)
      return false;
    else if(year % 400 == 0)
      return true;
    else if(year % 100 == 0)
      return false;
    else
      return true;
 }

function subtractDays(inDte, days)
{
  var oneMinute = 60 * 1000;  // milliseconds in a minute
  var oneHour = oneMinute * 60;
  var oneDay = oneHour * 24;
  var daysToSubtract = oneDay * days;
  
  return new Date(inDte.getTime() - daysToSubtract);
}