var blogID;

date = new Date();
var y = date.getFullYear();
var m = date.getMonth()+1;
if(m.toString().length < 2) {
	m = "0" + m;
}
var setMonth = y + "/" + m;


function getCalendar(blogURL, id, _path) {
    blogID = id;
    var resentEntryPath = _path;
    var cookie = readCookie("AjaxCal" + id);
  if(cookie != null) {
        path = blogURL + "calendar/" + cookie + "/";
  } else {
	date = new Date();
	var y = date.getFullYear();
	var m = date.getMonth()+1;
	if(m.toString().length < 2) {
		m = "0" + m;
	}
	var setMonth = y + "/" + m + "/";
	var path = blogURL + "calendar/" + setMonth + "/";
  }

    changeMonth(path, resentEntryPath);
}

function changeMonth(url, resentEntryPath) {
    url += "?" + (new Date()).getTime();
    new Ajax.Updater({success: 'calendar'},
                     url, {
                         method: 'get',
                         onComplete: endProcess,
                         onFailure: function() {
                         	errorProcess(resentEntryPath);
                         }
                     });
    return false;
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0, len = ca.length; i < len; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function endProcess() {
    var value = $('calendar').getElementsByTagName('table')[0].getAttribute('summary');
    setWeekendAndHoliday(value.split("/")[0], value.split("/")[1]);
    document.cookie = "AjaxCal" + blogID + "=" + value + "; path=/";
}

function errorProcess(resentEntryPath) {
//    $('calendar').innerHTML = 'File Not Found';
	changeMonth(resentEntryPath);
}

function setWeekendAndHoliday(y,m) {
    setCurrentDate();
    var elements = $('calendar').getElementsByTagName("table");
    for (var j = 0, len = elements.length; j < len; j++) {
        var element = elements[j].getAttribute("summary");
        if(element == null){
            return;
        }
        var year = element.split("/")[0];
        var month = element.split("/")[1];
        if(!(year == y && month == m)){
            return;
        }
        var spans = elements[j].getElementsByTagName("span");
        var day;
        for (i = 0; i < spans.length; i++) {
            if (spans[i].parentNode.nodeName == "TD") {
                if(spans[i].innerHTML.indexOf("href") != -1){
                    day = spans[i].getElementsByTagName("a")[0].innerHTML;
                } else {
                    day = spans[i].innerHTML;
                }
                if (isHoliday(year, month, day)) {
                    spans[i].setAttribute('class', 'holiday');
                    spans[i].setAttribute('className', 'holiday');
                } else if(isSaturday(year, month, day)) {
                    spans[i].setAttribute('class', 'saturday');
                   spans[i].setAttribute('className', 'saturday');
                }
                if (isToday(year, month, day)) {
                    spans[i].parentNode.setAttribute('class', 'today');
                    spans[i].parentNode.setAttribute('className', 'today');
                }
            }
        }
    }
}
