カレンダーを作るスクリプトの一つとして2

カレンダーを作るスクリプトの一つとしての改良版です。
カスタムしやすいように設計したつもり。

カレンダー生成部分は切りはなしました。
cal.js

//
function cal(y,m){
	var today_date = new Date();
	var y  = y ? y : today_date.getFullYear();
	var m = m ? m : today_date.getMonth()+1;
	var cal_month_days_num = function (year,month){
  	var tmpDt = new Date(year,month);
  	tmpDt.setTime(tmpDt.getTime());
  	return tmpDt.getDate();
	}
    
	return {
		year : y ,
		month : m ,
		max : cal_month_days_num(y , m),
		start : new Date(y,m-1,1).getDay()
		};
}

この選択したものを表のようにあつかうため?のクラス(hvg.js)も使用。

/*
#includepath 'path to lib'
*/
#include 'hvg.js';
#include 'cal.js';
//Making CMYK
cmyk = function(c,m,y,k){
		var cmyk = new CMYKColor();		
		cmyk.cyan = c;
		cmyk.magenta = m;
		cmyk.yellow = y;
		cmyk.black = k;
		return cmyk;
}
var CR = String.fromCharCode(13);
var month = 1;

//
var KYU = new cmyk(0,100,100,0);

//カスタム用
// eval(getURL(''));
// eval(getFILE('custum.txt'));
var custum = {
'1-1' : [KYU,'元旦'],
'1-12' : [KYU,'成人の日'],
'2-11' : [KYU,'建国記念の日'],
'3-20' : [KYU,'春分の日'],
'4-29' : [KYU,'昭和の日'],
};

hvg(app.activeDocument.selection).each(function(z){
var cald = cal(2009,month++);
 days = new hvg(z.textFrames);
for(var i = 0 ; i < cald.start; i++)days.next().contents = " ";
for(var i = 0 ; i < cald.max; i++){
//ここに処理を書く
	XX = days.next();
	XX.contents = i+1;
	if(CDATA = custum[(month-1).toString() + '-' + XX.contents]){
	XX.textRange.fillColor = CDATA[0];
	XX.contents = XX.contents + CR +  CDATA[1];
	XX.paragraphs[1].size = 6;	
	}
}
while(x = days.next())x.contents = " ";
});

自分用にはこれで完成のつもり。