/*--------------------------------------------------------------
バイオリズム

初回起動時に誕生日を入力するプロンプトが3回出現するので
1999
11
22
と、誕生年、月、日 を入力してください。

shiftキー を押しながらRUNしても生年月日を入力可能

インターバル（スクリプトの間隔）は30分=1800秒 を推奨
画面を右クリックするとメニューがポップアップするので、
最前面にしたり剥がしたりできます。
--------------------------------------------------------------*/




var ratio=0.8;
//この値を0.8にすると80%の大きさで表示、 1.0で標準





//shift を押しながら起動すると生年月日を入力可能
//最初の起動時も入力。

var birthday = new Date();

ini=new Ini(Memo.id+'.ini');
birthday.setTime( ini.read('setting','birthdaytime',0)  );


if( Keyboard.shift ||  birthday.getTime() ==0 ){  //shift key が押されたら設定
	//setting
	birthday.setFullYear( eval(prompt('Enter Birthday Year. 誕生年を入力してください ex.1950 ',2000))  );
	birthday.setMonth(  eval(prompt('Enter Birthday Month. 誕生月を入力してください ex.12',1)) -1 );
	birthday.setDate( eval(prompt('Enter Birthday Date. 誕生日を入力してください ex.5',1)) );
	ini.write('setting','birthdaytime',birthday.getTime());  ini.update();	
}
birthday.setHours(0);birthday.setMinutes(0);birthday.setSeconds(0);birthday.setMilliseconds(0);

//birthday.setFullYear(Math.round(Math.random()*100)+1900);


var h = (162-17); 
var half_h = Math.round(h/2);


var today = new Date();
today.setHours(0);today.setMinutes(0);today.setSeconds(0);today.setMilliseconds(0);


   function getPvalue(birthday,today){
   		var days = Math.floor((today.getTime()-birthday.getTime())/(24*60*60*1000));
		return Math.sin( (days % 23) /23*2*Math.PI);   	
   }
   function getSvalue(birthday,today){
   		var days = Math.floor((today.getTime()-birthday.getTime())/(24*60*60*1000));
		return Math.sin( (days % 28) /28*2*Math.PI);   	
   }   
   function getIvalue(birthday,today){
   		var days = Math.floor((today.getTime()-birthday.getTime())/(24*60*60*1000));
		return Math.sin( (days % 33) /33*2*Math.PI);   	
   }   
   



Memo.width=359*ratio;
Memo.height=243*ratio;
Memo.Clear();



Memo.DrawPNG('bio_bg.png',0,0,0,0,359,243,359*ratio,243*ratio);



weekstr=new Array('Sun,','Mon,','Tue,','Wed,','Thu,','Fri,','Sat,');
monthstr=new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');


birthday.format="yyyy";
s=weekstr[birthday.getDay()] +' '+ birthday.getDate()+' '+ monthstr[birthday.getMonth()] +' '+ birthday.toString();
Date.format="yyyy";
s=s+'  -  '+weekstr[Date.getDay()] +' '+ Date.getDate()+' '+ monthstr[Date.getMonth()] +' '+ Date.toString();
Memo.DrawText( s,14*ratio,54*ratio,  10*ratio,  255,255, 255,100,   'Arial', 220*ratio , 20*ratio ,1); 




for(var x=0;x<14;x++){  

	var d= new Date();
	d.setTime( today.getTime()+ x*24*60*60*1000);


	if(Math.abs(getPvalue(birthday,d))<0.15 || Math.abs(getSvalue(birthday,d))<0.15 || Math.abs(getIvalue(birthday,d))<0.15){
		Memo.DrawPNG('att.png',(x*24+12)*ratio,(49)*ratio,0,0,24,164,24*ratio,164*ratio);
	}

	top=   h-Math.round( getPvalue(birthday,d)*half_h+ half_h )  ;   
	Memo.DrawPNG('star_b.png',(x*24+15)*ratio, (top*ratio+49*ratio) ,0,0,17,17,17*ratio,17*ratio);
	top=   h-Math.round( getSvalue(birthday,d)*half_h+ half_h )  ; 
	Memo.DrawPNG('star_r.png',(x*24+15)*ratio,(top+49)*ratio,0,0,17,17,17*ratio,17*ratio);	
	top=   h-Math.round( getIvalue(birthday,d)*half_h+ half_h )  ; 
	Memo.DrawPNG('star_g.png',(x*24+15)*ratio,(top+49)*ratio,0,0,17,17,17*ratio,17*ratio);	

	Memo.DrawText( d.getDate(), (x*24+17)*ratio ,220*ratio ,  9*ratio,  255,255, 255,255,   'Arial',18*ratio,18*ratio,1);
}






Memo.text='Biorhythm script.';

//updateWindow 画面を描画
/*
if (! Memo.Update() ){
	alert('err');
}*/
while(! Memo.Update()){
sleep(2000);
}