// Ajaxオブジェクト取得メソッド
function getActiveXObject() {

    if( window.XMLHttpRequest ) {

        var ajax = new XMLHttpRequest();

    } else if( window.ActiveXObject ) {

        try {

            var ajax = new ActiveXObject( "Msxml2.XMLHTTP" );
        } catch(e) {

            var ajax = new ActiveXObject( "Microsoft.XMLHTTP" );
        }
    }
    return ajax;
}
function viewCalendar( strRelativePath, nYear, nMonth ) {

    var d = new Date();

    if(
        nYear == undefined ||
        nMonth == undefined
    ) {
        nYear = d.getFullYear();
        nMonth = d.getMonth()+1;
    }

    var objAjax = getActiveXObject();
    if( objAjax ) {

        objAjax.open( "POST", "get_calendar.html?year="+nYear+"&month="+nMonth, true );
        objAjax.send("");
    }
    objAjax.onreadystatechange = function() {

        if( objAjax.readyState == 4 && objAjax.status == 200 ) {

            var objData = null;

            if( objAjax.responseText ) {
                objData = eval('('+objAjax.responseText+')');
            }
            createCalendarView(objData, nYear, nMonth, strRelativePath );
        }
    }
}

function createCalendarView(objData, nYear, nMonth, strRelativePath ) {

    var elDiv = document.getElementById('calendar');
    removeNodes(elDiv);

    // ヘッダ
    var elTable = document.createElement( 'table' );
    elTable.className = 'table_calendar';
    var elTbody = document.createElement( 'tbody' );
    var elTr = document.createElement( 'tr' );
    var elTdLeft = document.createElement( 'td' );
    var elTdCenter = document.createElement( 'td' );
    var elTdRight = document.createElement( 'td' );
    var elLeftA = document.createElement('a');
    var elRightA = document.createElement('a');

    var elLeftImg = document.createElement('img');
    var elRightImg = document.createElement('img');

    var d = new Date();

    var strTitle = nYear + ' 年 '
    strTitle = strTitle + nMonth + ' 月';
    var elTextNode = document.createTextNode(strTitle);
    elTdCenter.appendChild( elTextNode );

    var nPrevMonth = '';
    var nPrevYear = '';
    var nNextMonth = '';
    var nNextYear = '';
    if(nMonth == 1) {
        nPrevMonth = 12;
        nPrevYear = nYear - 1;
        nNextMonth = nMonth + 1;
        nNextYear = nYear;
    } else {
        if( nMonth == 12 ) {
            nNextMonth = 1;
            nNextYear = nYear + 1;
        } else {
            nNextMonth = nMonth + 1;
            nNextYear = nYear;
        }
        nPrevMonth = nMonth - 1;
        nPrevYear = nYear;
    }

//    if( nYear == d.getFullYear() && nMonth == (d.getMonth()+1) ) {
    if( nYear == 2009 && nMonth == 1 ) {
        // 前月はグレーアウト画像
        elLeftImg.src = strRelativePath + './common/images/blog/blog_prev_btn_g.gif';
    } else {
        elLeftA.href = "index.html?year="+nPrevYear+"&month="+nPrevMonth;
        elLeftImg.src = strRelativePath + './common/images/blog/blog_prev_btn.gif';
//        elLeftImg.className = 'cursor_pointer';
/*
        elLeftImg.onclick = function() {
            viewCalendar(
                strRelativePath,
                nPrevYear,
                nPrevMonth
            );
        }
*/
    }

    if( nYear == 2035 && nMonth == 12 ) {

//       if( nYear == d.getFullYear() && nMonth == (d.getMonth()+1) ) {
        // 翌月はグレーアウト画像
        elRightImg.src = strRelativePath + './common/images/blog/blog_next_btn_g.gif';
    } else {

        elRightA.href = "index.html?year="+nNextYear+"&month="+nNextMonth;
        elRightImg.src = strRelativePath + './common/images/blog/blog_next_btn.gif';
//        elRightImg.className = 'cursor_pointer';
/*
        elRightImg.onclick = function() {
            viewCalendar(
                strRelativePath,
                nNextYear,
                nNextMonth
            );
        }
*/
    }

    elTdLeft.appendChild(elLeftA);
    elTdRight.appendChild(elRightA);

    elLeftA.appendChild(elLeftImg);
    elRightA.appendChild(elRightImg);

    elTr.appendChild(elTdLeft);
    elTr.appendChild(elTdCenter);
    elTr.appendChild(elTdRight);
    elTbody.appendChild(elTr);
    elTable.appendChild(elTbody);

    elDiv.appendChild(elTable);

    var arrWeekday = ['日','月','火','水','木','金','土'];

    var elTable = document.createElement( 'table' );
    elTable.className = 'table_calendar';
    var elTbody = document.createElement( 'tbody' );
    var elTr = document.createElement( 'tr' );

    for( var i=0; i<arrWeekday.length; ++i ) {
        var elTd = document.createElement( 'td' );
        var elText = document.createTextNode(arrWeekday[i]);
        if(i==0) {
            elTd.className = 'first_day';

            var elSpan = document.createElement( 'span' );
            elSpan.className = 'holiday';
            elSpan.appendChild(elText);
            elTd.appendChild(elSpan);
        } else if(i==6) {
            elTd.className = 'week_end';

            var elSpan = document.createElement( 'span' );
            elSpan.className = 'saturday';
            elSpan.appendChild(elText);
            elTd.appendChild(elSpan);
        } else {
            elTd.className = 'normal';

            elTd.appendChild(elText);
        }
        elTr.appendChild(elTd);
    }
    elTbody.appendChild(elTr);
    elTable.appendChild(elTbody);

    for( var j=0; j<objData.length; ++j ) {
        var elTd = document.createElement( 'td' );
        if(objData[j].status == 'sun') {
            var elTbody = document.createElement( 'tbody' );
            var elTr = document.createElement( 'tr' );

            elTd.className = 'first_day';
        } else {
            if(objData[j].status == 'sat') {
                elTd.className = 'week_end';
            } else {
                elTd.className = 'normal';
            }
        }
        if(objData[j].day) {
            var elText = document.createTextNode(objData[j].day);
        } else {
            var elText = document.createTextNode(' ');
        }
        elTd.appendChild(elText);

        if(objData[j].blog_id) {
            var elA = document.createElement( 'a' );
            elA.href = "index.html?year="+nYear+"&month="+nMonth+"#a"+objData[j].blog_id;
            elA.appendChild(elText);
            elTd.appendChild(elA);
        } else {
            elTd.appendChild(elText);
        }
/*
        if(objData[j].shop_holiday) {
            var elSpan = document.createElement( 'span' );
            elSpan.className = 'holiday';
            elSpan.appendChild(elText);
            elTd.appendChild(elSpan);
        } else {
            elTd.appendChild(elText);
        }
*/
//        var elBr = document.createElement( 'br' );
/*
        elTd.appendChild(elBr);
        elTd.appendChild(
            document.createTextNode(objData[j].hotel)
        );
*/
        elTr.appendChild(elTd);
        if(objData[j].status == 'sat') {
            elTbody.appendChild(elTr);
            elTable.appendChild(elTbody);
        }
    }
    elDiv.appendChild(elTable);
}

function removeNodes( el ) {

    if( el ) {
        while( el.hasChildNodes() ) {
            el.removeChild( el.firstChild );
        }
    }
}

function reloadhtml( year, month, blog_id ) {
    document.new_blog.action='index.html?year='+year+'&month='+month+'#a'+blog_id;
    document.new_blog.submit();
}
