
function test_months(start_date,end_date){
 //get dates
 var start = [start_date.getFullYear(),start_date.getMonth()+1,start_date.getDate()];
 var end = [end_date.getFullYear(),end_date.getMonth()+1,end_date.getDate()];
 
 //enable months
 var q1 = jQuery('#month-tags .tag');
 q1.removeClass('tag-disabled')
 //select all months if none selected
 if(jQuery('#month-tags .tag-selected').size()<0){ q1.trigger('click',[true]); }
 
 //enable period tags
 jQuery('#period-tags .tag').removeClass('tag-disabled');
 
 //disable months out-of-range
 var md = month_diff(start_date,end_date);
 if(md<12){
  q1.each(function(i,e){
  if(!((start[1]>end[1])&&(i>start[1]-2||i<end[1]))
   && !(start[1]<end[1]&&(i>start[1]-2&&i<end[1]))
   && !(start[1]==end[1]&&start[1]==i+1)
   || (start[1]==end[1]&&i!=start[1]&&i==0)
   ){ jQuery(e).trigger('click',[false]).addClass('tag-disabled'); }
   });
  
  //less than a month in period
  var days = days_diff(start_date,end_date);  
  if(md<1&&days<27){
   t = jQuery('#period-tags .tag:eq(3)');
   if(t.addClass('tag-disabled').hasClass('tag-selected')){
   t.prev().trigger('click');
   }}
  if(days<14){
   t = jQuery('#period-tags .tag:eq(2)');
   if(t.addClass('tag-disabled').hasClass('tag-selected')){
   t.prev().trigger('click');
   }}
  if(days<7){
   t = jQuery('#period-tags .tag:eq(1)');
   if(t.addClass('tag-disabled').hasClass('tag-selected')){
   t.prev().trigger('click');
   }}
  }
 
 }

function month_diff(d1,d2){
	var months;
	months = (d2.getFullYear()-d1.getFullYear())*12;
	months -= d1.getMonth();
	months += d2.getMonth();
	return months; 
	}
function days_diff(start_date,end_date){
	var mspd = 1000 * 60 * 60 * 24;
	var msdiff = end_date.getTime() - start_date.getTime();
	var days = msdiff / mspd;
	return Math.floor(days);
	}
function daysinmonth(m,y){ return (new Date(y,m,0)).getDate(); }
function weekofmonth(date){
 day = date.getDate();
 wom = Math.ceil(day/7);
 dim = daysinmonth(date.getMonth()+1,date.getFullYear());
 if(wom>3){
 womr = Math.ceil((dim+1-day)/7); 
 switch(womr){
  case 1: wom = 4; break;
  case 2: wom = 5; break;
  }
  }
 return wom;
 }

