'use strict';
jQuery(document).ready(function($){
$('.calc-result').hide();
$('#wpcalc').on('reset', function(){
$('.calc-result').hide();
});
$('#wpcalc').on('submit', function(event){
event.preventDefault();
let period=$('#wpcalc input[name="period"]').val();
let cycle=$('#wpcalc input[name="cycle"]').val();
let duration=$('#wpcalc input[name="duration"]').val();
let error=$('.calc-error');
$('.calc-result').show();
if(period===''||cycle===''||duration===''){
error.show();
return false;
}
let period_arr=period.split('-');
let month=wpcalc_object.month;
cycle=parseInt(cycle)||0;
let len=parseInt(duration)||0;
let d=period_arr[2];
let m=period_arr[1];
let y=period_arr[0];
let pdm=1;
let menstruation=len-1;
let clsarr=new Array();
let safety2,
pregnancy,
pregnancy1,
pregnancy2,
safety,
ovul,
i, j;
if(cycle - len >=11){
safety2=11;
}else{
safety2=cycle - len;
}
if(cycle - len - safety2 >=3){
pregnancy1=3;
}else{
if(cycle - len - safety2 > 0){
pregnancy1=cycle - len - safety2;
}else{
pregnancy1=0;
}}
if(cycle - len - safety2 - pregnancy1 >=2){ovul=2;}else{
if(cycle - len - safety2 - pregnancy1 > 0) ovul=cycle - len - safety2 - pregnancy1; else ovul=0;
}
if(cycle - len - safety2 - pregnancy1 - ovul >=3){pregnancy2=3;}else{
if(cycle - len - safety2 - pregnancy1 - ovul > 0) pregnancy2=cycle - len - safety2 - pregnancy1 -
ovul; else pregnancy2=0;
}
if(cycle - len - safety2 - pregnancy1 - ovul - pregnancy2 > 0){
safety=cycle - len - safety2 - pregnancy1 - ovul - pregnancy2;
}else{safety=0;}
clsarr[0]='pdm';
for(i=1;i<=len-1;i++) clsarr[i]='menstruation';
for(i=menstruation+pdm;i<=menstruation+pdm+safety;i++) clsarr[i]='safety';
for(i=menstruation+pdm+safety;i<=menstruation+pdm+safety+pregnancy2;i++) clsarr[i]='pregnancy2';
for(i=menstruation+pdm+safety+pregnancy2;i<=menstruation+pdm+safety+pregnancy2+ovul;i++) clsarr[i]='ovul';
for(i=menstruation+pdm+safety+pregnancy2+ovul;i<=menstruation+pdm+safety+pregnancy2+ovul+pregnancy1;i++) clsarr[i]='pregnancy1';
for(i=menstruation+pdm+safety+pregnancy2+ovul+pregnancy1;i<=menstruation+pdm+safety+pregnancy2+ovul+pregnancy1+safety2;i++) clsarr[i]='safety2';
safety2=safety2+1;
for(i=-1;i>=-safety2;i--) clsarr[i]='safety2';
for(i=-safety2;i>=-safety2-pregnancy1;i--) clsarr[i]='pregnancy1';
for(i=-safety2-pregnancy1;i>=-safety2-pregnancy1-ovul;i--) clsarr[i]='ovul';
for(i=-safety2-pregnancy1-ovul;i>=-safety2-pregnancy1-ovul-pregnancy2;i--) clsarr[i]='pregnancy2';
for(i=-safety2-pregnancy1-ovul-pregnancy2;i>=-safety2-pregnancy1-ovul-pregnancy2-safety;i--) clsarr[i]='safety';
for(i=-safety2-pregnancy1-ovul-pregnancy2-safety;i>=-safety2-pregnancy1-ovul-pregnancy2-safety-menstruation;i--) clsarr[i]='menstruation';
for(i=-safety2-pregnancy1-ovul-pregnancy2-safety-menstruation;i>=-safety2-pregnancy1-ovul-pregnancy2-safety-menstruation-pdm;i--) clsarr[i]='pdm';
let result='<div class="service-calendar">';
let cls;
let dayCount;
let x, mezd;
for(i=m-1;i<12;i++){
dayCount=new Date(y, i + 1, 0).getDate();
result+='<div class="month">'+month[i]+' '+ y +'</div><table><tbody><tr>';
for(j=1;j<=31;j++){
x='';
cls='';
if(j<=dayCount){
let oToday=new Date(y,m-1,d);
let oDeadLineDate=new Date(y,i,j);
cls=Math.floor((oDeadLineDate - oToday) / (1000 * 60 * 60 * 24));
mezd=(parseInt(cls)%parseInt(cycle));
if(j<10) x='0'+j; else x=j;
}
result+='<td class="'+clsarr[mezd]+'">'+x+'</td>';
if(((j) % 7==0)&&(j < 36)){
result +='</tr><tr>';
}}
result+='</tr></tbody></table>';
}
for(i=0;i<m-1;i++){
dayCount=new Date(y+1, i + 1, 0).getDate();
let year=parseInt(y) +1;
result+='<div class="month">'+month[i]+' '+ year +'</div><table><tbody><tr>';
for(j=1;j<=31;j++){
x='';
cls='';
if(j<=dayCount){
let oToday=new Date(y,m-1,d);
let oDeadLineDate=new Date(parseInt(y)+1,i,j);
cls=Math.floor((oDeadLineDate - oToday) / (1000 * 60 * 60 * 24));
mezd=(parseInt(cls)%parseInt(cycle));
if(j<10) x='0'+j; else x=j;
}
result+='<td class="'+clsarr[mezd]+'">'+x+'</td>';
if(((j) % 7==0)&&(j < 36)){
result +='</tr><tr>';
}}
result+='</tr></tbody></table>';
}
result+='</div>';
$('#result').html(result);
});
});