/*
	new.js
	
	<div>
		<span class="new-variable">[new]</span> <span class="irp-date">2008.8.7</span>
	</div>
*/

(function() {
	var debug = true;
	var now = new Date();
	var convertDate = function(str) {	// 文字列から日付を得る
		str = str.replace(/^\D*(\d.+\d)\D*$/, '$1');
		var ds = str.split(/\D+/);
		if(ds.length == 3) {
			return new Date((ds[0]<100)?2000+1*ds[0]:ds[0], ds[1]-1, ds[2]);
		} else {
			if(debug) {
				alert('Unknown date format: '+str);
			}
		}
	};
	var getDateElement = function(p) {
		var tags = p.getElementsByTagName('*');
		for(var i=0 ; i<tags.length ; i++) {
			if(tags[i].className == 'irp-date') {
				return tags[i];
			}
		}
	};
	var getDateElementForParent = function (p) {
		return p && (getDateElement(p) || getDateElementForParent(p.parentNode));
	};
	var changeState = function(tag) {
		var d = getDateElementForParent(tag.parentNode);
		var lapDays ='';
		if(d) {
			var released = convertDate(d.childNodes[0].data);	// FIXME: 改良の余地有り
			var lapDays = Math.floor(now.getTime()/86400/1000 - released.getTime()/86400/1000);
			if(lapDays < 31) {
				tag.style.display = 'inline';
			} else {
				tag.style.display = 'none';
			}
		}
	}
	var saved = window.onload;
	window.onload = function() {
		var tags = document.getElementsByTagName('*');
		var i = tags.length;
		while(0 <= --i) {
			var tag = tags[i];
			if(tag.className == 'new-variable') {
				changeState(tag);
			}
		}
		saved && saved();
	}
})();
