/**
 * $Id: officialchart.js,v 1.4 2009/05/04 04:40:37 florawang Exp $
 *
 * 排行榜top100頁用js 
 * 
 * 2009/4/29 增加時間判斷使凌晨00:00-07:00這期間，不出現後一則的連結  (目前排程約可在早上7點前生完排行榜頁面)
 *
 * 以日榜為例說明 : 
 * 瀏覽時間 4/29 00:53 檢視 4/27日榜頁, 此時尚未產生 4/28的排行頁,故不顯示後一日的連結
 *
**/
function gotop100(v){
  article_id = dateRange(v,rank_type);
  offset = getGendate(v,rank_type,''); //output: 20090301
  newUrl = topic_id + '_' + mid_type +'_'+ article_id +'_'+ offset +'_0_0.html';
//  alert(newUrl);
  window.location.href= newUrl;
}
function dateRange(ndate, ty){ //回傳差距(天,週,月)數
  var now = new Date(ndate); //var now=new Date(2009, 3 -1, 17);
  var spday = new Date(start_date);

  if(ty==1){
    day = now.getDay();
    if(day!=6){
      ndate = now.getDate();
      now.setDate(ndate+6-day);
    }
    gnum = 7;
    a=(now.getTime()-spday.getTime())/(24*60*60*1000*gnum);
    b = -1;

  }else if(ty==0){
    gnum = 1;
    a=(now.getTime()-spday.getTime())/(24*60*60*1000*gnum);
    b = 0;

  }else if(ty==2){
    a = (now.getFullYear()-spday.getFullYear())*12  + (now.getMonth()-spday.getMonth());
    b = 0;

  }else if(ty=="yearly"){
    gnum = 365;
    a=(now.getTime()-spday.getTime())/(24*60*60*1000*gnum);
    b = 0;
  }
  a=Math.ceil(a) + 1 + b;
  return a;
}
function getGendate(ndate,ty, format){ //return 20090331 or 2009-03-31
  var now = new Date(ndate);
  //ty==0,2 不用特別處理
  if(ty==1){//回傳該日期當週的週六
    day = now.getDay();
    if(day!=6){
      ndate = now.getDate();
      now.setDate(ndate+6-day);
    }
  }

  if((now.getMonth()+1) < 10){ mon = now.getMonth()+1; mon = '0' + mon; }else{ mon = now.getMonth()+1; }
  if(now.getDate()< 10){ mdate = '0' + now.getDate();}else{ mdate =now.getDate(); }
  newdate = (String)(now.getFullYear()) + format +  (String)(mon) + format + (String)(mdate);
  return newdate;
}

function parseNextPrevDate(){//週-回傳mindate當週的週六去相比;月-回傳mindate當月的最後一日 
  tdate = new Date(gen_date);
  var gen_officialchart_hours = 7; //早上7點生完排行資料
  var range_hours = 24 + gen_officialchart_hours;//瀏覽時間與 maxdate產生頁面時間的差距最小值(hr)

  if(rank_type=='0'){ 
    Dplus = 1; //日減1
    DdateUnit = '日';
    mindate = new Date(start_date);
    maxdate = new Date(nowY,nowM,nowD-1);
    //ex. tdate為4/27, 瀏覽時間 4/29 00:53 尚未產生 4/28的排行頁,故不顯示tdate後一日的link
    if(now.getHours() <= gen_officialchart_hours){
      maxdate_add_range = new Date(maxdate.getFullYear(),maxdate.getMonth(),maxdate.getDate(),maxdate.getHours()+range_hours,0,0);
      if(now < maxdate_add_range){//瀏覽時間 < 最早生檔時間,則maxdate設與 tdate一樣, 使不顯示tdate後則link
	maxdate = tdate;
      }
    }

  }else if(rank_type=='1'){ 
    Dplus = 7;//週減7
    DdateUnit = '週';
    mindate = getGendate(start_date,1, '/');
    mindate = new Date(mindate);
    maxdate = new Date(nowY,nowM,nowD-7);
    //ex. tdate為 4/18(六) ,瀏覽時間為 4/26(日) 00:53, 此時尚未產生下週榜 4/25(六),故不顯示tdate後一週榜的link
    if(now.getHours() <= gen_officialchart_hours){
      maxdate_add_range = new Date(maxdate.getFullYear(),maxdate.getMonth(),maxdate.getDate(),maxdate.getHours()+range_hours,0,0);
      if(now < maxdate_add_range){//瀏覽時間 < 最早生檔時間,則maxdate設與 tdate一樣, 使不顯示tdate後則link
	maxdate = tdate;
      }
    }

  }else if(rank_type=='2'){
    Dplus = tdate.getDate();
    DdateUnit = '月';
    mindate = new Date(start_date);//start_date 當月最後一日
    mindate = new Date(mindate.getFullYear(),mindate.getMonth()+1,(mindate.getDate()-mindate.getDate()));

    //ex. tdate為 3/31,瀏覽時間為 5/1 00:53,此時尚未產生下月榜 4/30,故不顯示tdate後一月榜的link
    maxdate = new Date(nowY,nowM,nowD-nowD); //max:tdate後一個月最後一日
    if(now.getHours() <= gen_officialchart_hours){
      maxdate_add_range = new Date(maxdate.getFullYear(),maxdate.getMonth(),maxdate.getDate(),maxdate.getHours()+range_hours,0,0);//Month/1 6:00
      if(now < maxdate_add_range){ //瀏覽時間 < 最早生檔時間,則maxdate設與 tdate一樣, 使不顯示tdate後則link
	maxdate = tdate;
      }
    }
    next2Month = new Date(tdate.getFullYear(),tdate.getMonth()+2,1);//tdate的下下個月的第一天
  }
//  alert('tdate:'+tdate+'\n mindate:'+mindate+'\n maxdate:'+maxdate);

  //tdate 的前一則
  if(tdate <= mindate) {
    document.getElementById('prev-officialchart').innerHTML = '';
  }else{
    pre_date = new Date(tdate.getFullYear(),tdate.getMonth(),tdate.getDate()-Dplus);
    pre_date_show = '前一' + DdateUnit ;
    pre_date = getGendate(pre_date, 0, '');
    pre_url = topic_id +'_'+ mid_type + '_' + (article_id-1) + '_' + pre_date + '_0_0.html';
    document.getElementById('prev-officialchart').innerHTML = '<a href="'+ pre_url+'">' + pre_date_show + '</a>';
  }
  //tdate 的後一則
  if(tdate >= maxdate) {
    document.getElementById('next-officialchart').innerHTML = '';
  }else{
    if(rank_type=='2'){
      //tdate下一個月的最後一日 - 即是tdate的下下個月的第一天減去1
      next_date = new Date(next2Month.getFullYear(),next2Month.getMonth(),next2Month.getDate()-1);
    }else{
      next_date = new Date(tdate.getFullYear(),tdate.getMonth(),tdate.getDate()+Dplus);	
    }
    next_date_show = '後一' + DdateUnit ;
    next_date = getGendate(next_date, 0, '');
    next_url = topic_id +'_'+ mid_type + '_' + (article_id+1) + '_' + next_date + '_0_0.html';
    document.getElementById('next-officialchart').innerHTML =  '<a href="'+ next_url+'">' + next_date_show + '</a>';
  }
}
//selectWeek
if(rank_type==1){ var selectWeekValue =true;}else{ var selectWeekValue =false;}
