var DDSPEED = 10;
var DDTIMER = 15;
// var OFFSET = -2;
var OFFSET = 4;
var ZINT = 100;

function ddMenu(id,d){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
  clearInterval(c.timer);
  if(d == 1){
    clearTimeout(h.timer);
    c.style.display = 'block';
    if(c.maxh && c.maxh <= c.offsetHeight){return}
    else if(!c.maxh){
      c.style.left = (h.offsetWidth + OFFSET) + 'px';
      c.style.height = 'auto';
      c.maxh = c.offsetHeight;
      c.style.height = '0px';
    }
    ZINT = ZINT + 1;
    c.style.zIndex = ZINT;
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
  }else{
    h.timer = setTimeout(function(){ddCollapse(c)},50);
  }
}

function ddCollapse(c){
  c.timer = setInterval(function(){ddSlide(c,-1)},DDTIMER);
}

function cancelHide(id){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
  clearTimeout(h.timer);
  clearInterval(c.timer);
  if(c.offsetHeight < c.maxh){
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
  }
}

function ddSlide(c,d){
  var currh = c.offsetHeight;
  var dist;
  if(d == 1){
    dist = Math.round((c.maxh - currh) / DDSPEED);
  }else{
    dist = Math.round(currh / DDSPEED);
  }
  if(dist <= 1 && d == 1){
    dist = 1;
  }
  c.style.height = currh + (dist * d) + 'px';
  c.style.opacity = currh / c.maxh;
  c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')';
  if(currh > (c.maxh - 2) && d == 1){
    clearInterval(c.timer);
  }else if(dist < 1 && d != 1){
    clearInterval(c.timer);
    c.style.display = 'none';
  }
}


/*
 おススメ -----------------------------------
 */

// おススメの前ページを表示
function goOsusumeBack()
{
    var page = $F('nowOsusumePage');
    page = parseInt(page, 10) - 1;
    goOsusumePage(page);
}
//おススメの後ページを表示
function goOsusumeNext()
{
    var page = $F('nowOsusumePage');
    page = parseInt(page, 10) + 1;
    goOsusumePage(page);
}
// おススメの指定ページを表示
function goOsusumePage(page)
{
    $('osusumeCoreDiv1').innerHTML = '<br /><br /><br /><br /><br /><img src="./img/wait.gif" /> 暫くお待ち下さい...';
    $('osusumeCoreDiv2').innerHTML = '<br /><br /><br /><br /><br /><img src="./img/wait.gif" /> 暫くお待ち下さい...';
    $('osusumeCoreDiv3').innerHTML = '<br /><br /><br /><br /><br /><img src="./img/wait.gif" /> 暫くお待ち下さい...';

    var url   = '_Ajax.php';
    var param = 'acttype=getOsusumePage'
              + '&page=' + page
        ;

    var myAjax = new Ajax.Request(
            url,
            {
                method: 'post',
                parameters: param,
                onSuccess: _goOsusumePageOk,
                onFailure: _goOsusumePageErr
            });

    return false;
}

function _goOsusumePageOk(res)
{
    var ret = String(res.responseText);

    if (ret == 'ERROR') {
        $('osusumeCoreDiv1').innerHTML = '<br /><br /><br /><br /><br /><b>取得できませんでした。</b>';
        $('osusumeCoreDiv2').innerHTML = '<br /><br /><br /><br /><br /><b>取得できませんでした。</b>';
        $('osusumeCoreDiv3').innerHTML = '<br /><br /><br /><br /><br /><b>取得できませんでした。</b>';
        alert("データの取得中にエラーが発生しました。");
        return false;
    }

    var arr = ret.split('##!!##$$&&ajj!!###', 5);

    $('osusumeCoreDiv1').innerHTML = arr[0];
    $('osusumeCoreDiv2').innerHTML = arr[1];
    $('osusumeCoreDiv3').innerHTML = arr[2];

    // 現在のページ
    $('nowOsusumePage').value = arr[3];

    if (arr[4] == '1') {
        // 最終ページだったら
        $('osusumeNextBtn').style.display = 'none';
    } else {
        $('osusumeNextBtn').style.display = '';
    }

    if (arr[3] == '1') {
        // 1ページ目だったら
        $('osusumeBackBtn').style.display = 'none';
    } else {
        $('osusumeBackBtn').style.display = '';
    }
}

function _goOsusumePageErr(res)
{
    $('osusumeCoreDiv1').innerHTML = '<br /><br /><br /><br /><br /><b>取得できませんでした。</b>';
    $('osusumeCoreDiv2').innerHTML = '<br /><br /><br /><br /><br /><b>取得できませんでした。</b>';
    $('osusumeCoreDiv3').innerHTML = '<br /><br /><br /><br /><br /><b>取得できませんでした。</b>';
    alert("通信中にエラーが発生しました。\r\nインターネットに正常に接続されているか、確認して下さい。");
}


/*
カレンダー -----------------------------------
*/
function drawCalendar(year, month)
{
    if (year < 1900 || year > 2100) {
        alert('1900年1月 ～ 2100年12月までのカレンダーしか表示できません。');
        return false;
    }

    $('calendarDiv').innerHTML = '<br /><br /><br /><img src="./img/wait.gif" /> 暫くお待ち下さい...';


    var url   = '_Ajax.php';
    var param = 'acttype=drawCalendar'
              + '&year='  + year
              + '&month=' + month
        ;

    var myAjax = new Ajax.Request(
            url,
            {
                method: 'post',
                parameters: param,
                onSuccess: _drawCalendarOk,
                onFailure: _drawCalendarErr
            });

    return false;
}
function _drawCalendarOk(res)
{
    var ret = String(res.responseText);

    if (ret == 'ERROR') {
        $('calendarDiv').innerHTML = '<b>取得できませんでした。</b>';
        alert("データの取得中にエラーが発生しました。");
        return false;
    }

    $('calendarDiv').innerHTML = ret;
}

function _drawCalendarErr(res)
{
    $('calendarDiv').innerHTML = '<b>取得できませんでした。</b>';
    alert("通信中にエラーが発生しました。\r\nインターネットに正常に接続されているか、確認して下さい。");
}
