var startdate = '2010-1-22'; //　開始日
var startday = '1002';//　設定日数

var xmlHttp = false;
//サーバから時間を取る
try {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} 
catch (e) {
    try {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    catch (e2) {
        xmlHttp = false;
    }
}

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
}

//サーバ時間をformatして、時間を表示される関数
var minutetmp = 99; // 分を記録する
function CountDown(){

    xmlHttp.open("GET", "banner.php", false);
    xmlHttp.setRequestHeader("Range", "bytes=-1");
    xmlHttp.send(null);
    
    severtime = new Date(xmlHttp.getResponseHeader("Date"));
    
    //サーバから日付を取る
    var year = severtime.getFullYear();
    var month = severtime.getMonth() + 1;
    var day = severtime.getDate();
    //サーバから時間を取る
    var h = severtime.getHours();
    var m = severtime.getMinutes();
    
    if (minutetmp != m) { //1分ごとに更新する
        // 日付に組み合わせる
        datetimenow = year + "-" + month + "-" + day;
        datenow = new Date(datetimenow);
        
        countday = startday - Dayminus(startdate, datetimenow);
        
        if (countday < 0) {
            countday = 0;
        }
        document.getElementById("showcountdown").innerHTML = countday;
        minutetmp = m;
    }
    
    if (h > 22 && m > 54) { // 23:55以上場合は一秒ごとにチェックする
        mtimes = 1000;
    }
    else { // 23:55の前に5分ごとにチェックする
        mtimes = 300000;
    }
    setTimeout("CountDown()", mtimes); // 一秒ごとに関数に読み込む
}

// 日付間に日を計算する関数
function Dayminus(StartDateValue, EndDateValue){

    StartDate = StartDateValue.split("-");
    EndDate = EndDateValue.split("-");
    var loStart = new Date(StartDate[0], StartDate[1] - 1, StartDate[2], 0, 0, 0, 0);
    var loEnd = new Date(EndDate[0], EndDate[1] - 1, EndDate[2], 0, 0, 0, 0);
    var days = (loEnd.getTime() - loStart.getTime()) / (1000 * 24 * 3600);
    if (days < 0) {
        days = -days;
    }
    return days;
}
