/**
* common.js
*
* @version		1.0.2.0
* @update		22:33 2010/8/31
* @lastupdate	----
* @extends		----
*
*/

( function(){
		   

/* ============================================================================== calender
*/

var closeDate = Array();
closeDate[1] = '1,2,3,4,11,12,17,18,24,25,31';
closeDate[2] = '1,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28';
closeDate[3] = '1,2,3,4,5,6,7,8,9,13,14,15,21,22,28,29';
closeDate[4] = '4,5,11,12,18,19,25,26,29';
closeDate[5] = '2,3,4,5,6,9,10,16,17,23,24,30,31';
closeDate[6] = '6,7,13,14,20,21,27,28';
closeDate[7] = '4,5,11,12,18,19,20,25,26';
closeDate[8] = '2,3,8,9,10,14,15,16,17,22,23,24,25,26,27,28,29,30,31';
closeDate[9] = '1,2,3,4,5,6,7,8,9,10,13,14,18,19,21,27,28';
closeDate[10] = '4,5,8,11,12,16,18,19,25,26';
closeDate[11] = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,29,30';
closeDate[12] = '6,7,13,14,20,21,29,30,31';


var calender = function() {
	if (document.getElementById('calender')){
		var today = new Date();
		var tempD = today.getDate();
		if (tempD > 28) today.setDate(28);
		
		var outHtmls = '<h3><img src="http://www.rytas.jp/img/shop/calender.jpg" alt="Calender" /></h3>';
		outHtmls == makeCalender(today);
		
		
		var tempM = today.getMonth();
		today.setMonth(tempM);
		outHtmls += makeCalender(today);
		
		document.getElementById('calender').innerHTML = outHtmls;
	}
}


function makeCalender(today){
	var monthName = '1,2,3,4,5,6,7,8,9,10,11,12'.split(',');
	var monthDays = '31,28,31,30,31,30,31,31,30,31,30,31'.split(',');

	var year = today.getYear();
	if (year < 2000)year += 1900;
	var month = today.getMonth() + 1;
	var day = today.getDate();

	if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))monthDays[1] = 29;
	var start = calcDay(year, month, 1);
	var outHtml = '';
	
	outHtml += '<table summary="営業日カレンダー">';
	outHtml += '<caption>'+monthName[month-1]+'</caption>';

	outHtml += '<thead><tr>';
	outHtml += '<th scope="col" class="sun">S</th>';
	outHtml += '<th scope="col">M</th>';
	outHtml += '<th scope="col">T</th>';
	outHtml += '<th scope="col">W</th>';
	outHtml += '<th scope="col">T</th>';
	outHtml += '<th scope="col">F</th>';
	outHtml += '<th scope="col">S</th>';
	outHtml += '</tr></thead>';

	outHtml += '<tbody>';

	var classClose = Array();
	if (closeDate[month]){
		var dataArray = closeDate[month].split(',');
		for(i=0; i<dataArray.length; i++){
			classClose[dataArray[i]] = 'on';
		}
	}
	var count=0;

	outHtml += '<tr>';
	if (start>0){
		for(i=0; i<start; i++){
			outHtml += '<td>&nbsp;</td>';
			count++;
		}
	}

	var classValue = '';
	for(i=1; i<=monthDays[month-1]; i++){
		if (count % 7==0)outHtml += '<tr>';
		if (classClose[i] == 'on'){
			classValue = ' class="holiday"';
		} else if (count % 7==0){
			classValue = ' class="sun"';
		} else {
			classValue = '';
		}
		outHtml += '<td'+classValue+'>'+i+'</td>';
		if (count % 7==6)outHtml += '</tr>';
		count++;
	}
	if (count % 7 != 0){
		for(i=count % 7; i<7; i++){
			outHtml += '<td>&nbsp;</td>';
		}
		outHtml += '</tr>';
	}

	outHtml += '</tbody>';
	outHtml += '</table>';
return outHtml;
}

function calcDay(yy, mm, dd){
	if ((mm == 2)){yy--; mm += 12;}
	return (yy + Math.floor(yy / 4) - Math.floor(yy / 100) + Math.floor(yy / 400) + Math.floor((13 * mm + 8) / 5) + dd) % 7
}

/* ============================================================================== initRollovers - 'imgover'
	Standards Compliant Rollover Script
	Author : Daniel Nolan
	http://www.bleedingego.co.uk/webdev.php
*/

var initRollovers = function() {
	if (!document.getElementById) return

	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName('img');

	for (var i = 0; i < aImages.length; i++) {		
		if (aImages[i].className == 'imgover') {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_o'+ftype);

			aImages[i].setAttribute('hsrc', hsrc);
		
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
		
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
		
			aImages[i].onmouseout = aImages[i].onclick = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_o'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
};

/* ============================================================================== addEvent
*/

function addEvent(elm, listener, fn){
	try{
		elm.addEventListener(listener, fn, false);
	}catch(e){
		elm.attachEvent('on' + listener, fn);
	}
}

addEvent(window, 'load', function() {
	calender();
	initRollovers();
});

}) ();

