//<![cdata[
<!--

/*
 * Australian Bureau of Meteorology - National Climate Centre
 * Authors: John Phan, Ian Barnes-Keoghan - May 2009
 *
 * Description: This script is used for the MWR product to display links to the PDFs
 *
 */

var UPLOAD_DAY = 25;
var FIRST_EVER = new Date(2008,6,1,0,0,0);
var MONTHS_BACK = 12;

var mons   = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
var abbrs  = ["NSW", "NT", "Qld", "SA", "Tas", "Vic", "WA"];
var states = ["New South Wales", "Northern Territory", "Queensland", "South Australia", "Tasmania", "Victoria", "Western Australia"];

document.write('<div class="box">');
document.write('<p style="margin:5px">Issues can be downloaded as PDFs. Note that each file is around 7 MB.</p>');

var allInTable = writeTable(MONTHS_BACK);    // write a table for recent ones
if (! allInTable) writeControlPanel();  // write selector for earlier months if needed

document.write('</div>');

function writeTable (monthsBack) {
    var last = new Date();
    last.setMonth(last.getMonth() - 1);
    if (last.getDate() <= UPLOAD_DAY)  last.setMonth(last.getMonth() - 1);
    last.setDate(1);
    last.setHours(0);
    last.setMinutes(0);
    last.setSeconds(0);
    var then;
    var m;
    var s;
    document.write('<table summary="pdfs links" width="100%">');
    for (m = 0; m > -monthsBack; m--) {
        then = addMonth(last, m);
        if (then >= FIRST_EVER) {
            document.write("<tr>");
            for (s = 0; s < abbrs.length; s++) {
                document.write('<td style="text-align: center">' + mwrLink(then, abbrs[s], states[s]) + "</td>");
            }
            document.write("</tr>");
        }
    }
    document.write("</table>");
    return (then <= FIRST_EVER);
}

function addMonth(d, month){
    t  = new Date (d);
    t.setMonth(d.getMonth() + month) ;
    if (t.getDate() < d.getDate())  t.setDate(0);
    return t;
}

function mwrLink(date, abbr, state) {
    var href = abbr + '/mwr-' + abbr + '-' + yyyymm(date) + '.pdf';
    var title = state + ' Monthly Weather Review for ' + monthyyyy(date);
    var text = abbr + '<br />' + monyyyy(date);
    var url = "/climate/mwr/" + href.toLowerCase();
    return '<a href="' + url + '" title="' + title + '">' + text + '</a>';
}

function yyyymm(date) {
    var mm = date.getMonth() + 1;
    if (mm < 10) mm = '0' + mm;
    return date.getFullYear() + '' + mm;
}

function monthyyyy(date) {
    return months[date.getMonth()] + ' ' + date.getFullYear();
}

function monyyyy(date) {
    return mons[date.getMonth()] + ' ' + date.getFullYear();
}

function writeControlPanel() {
    document.write('<form name="form">');
    document.write('<br /><br /><p>Issues from ' + monthyyyy(FIRST_EVER) + ' on are also available:</p>');

    document.write('<table summary="mwr control panel" width="100%">');
    document.write('<tbody>');
    document.write('<tr>');
    document.write('<td width="10%">&nbsp;</td>');
    document.write('<td width="30%">');
    document.write('<div class="control-label">Select state or territory</div>');

    document.write('<select name="state" id="state" class="state-list" onchange="fillMonth()">');
    document.write('<option value="nsw" selected="selected">New South Wales</option>');
    document.write('<option value="vic">Victoria</option>');
    document.write('<option value="qld">Queensland</option>');
    document.write('<option value="wa">Western Australia</option>');
    document.write('<option value="sa">South Australia</option>');

    document.write('<option value="tas">Tasmania</option>');
    document.write('<option value="nt">Northern Territory</option>');
    document.write('</select>');
    document.write('</td>');
    document.write('<td width="30%">');
    document.write('<div class="control-label">Select month</div>');
    document.write('<select name="period" id="period" class="period-list">');

    document.write('<option></option>');
    document.write('</select>');
    document.write('</td>');
    document.write('<td width="20%" valign="middle"><br />');
    document.write('<input type="button" value="Download" onclick="showPDF();" />');
    document.write('</td>');
    document.write('<td width="10%">&nbsp;</td>');
    document.write('</tr>');
    document.write('</tbody>');

    document.write('</form>');

    document.write('</table>');

    fillMonth();
}

function fillMonth () {
  var mons = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
  var now = new Date();
  var curr_day = now.getDate();
  var curr_mon = now.getMonth();
  var curr_year = now.getFullYear();
  var start_year = FIRST_EVER.getFullYear();
  var start_mon = FIRST_EVER.getMonth();
  var mon, year, mon_str, yyyymm, period, url;
  var state = document.form.state.value;
  var i = 0;
  var j = 0;
  // refesh the month list for each call
  for (j = 0; j < document.form.period.length; j++) document.form.period.remove(j);
  //if (curr_day < UPLOAD_DAY) diff_mons--; // caused to lhs menu to appear on the rhs
  for (year = curr_year; year >= start_year; year--) {
    for (mon = 11; mon >= 0; mon--) {
      if (year == curr_year && mon >= curr_mon) continue;
      if (year == curr_year && mon == curr_mon-1 && curr_day < UPLOAD_DAY) continue;
      if (year == start_year && mon < start_mon) break;
      mon_str = mon + 1;
      if (mon_str < 10) mon_str = '0' + mon_str;
      yyyymm = '' + year + mon_str;
      period = '' + mons[mon] + ' ' + year;
      url = '/climate/mwr/' + state + '/mwr-' + state + '-' + yyyymm + '.pdf';
      document.form.period[i++] = new Option(period,yyyymm);
    }
  }
  document.form.period.selectedIndex = 0;
}

function showPDF() {
  var state = document.form.state.value;
  var period = document.form.period.value;
  var url = '/climate/mwr/' + state + '/mwr-' + state + '-' + period + '.pdf';
  location.href=url;
}

function isFile(str){
  var PDF = Ajax();

  if(!PDF) return false;
  try {
    PDF.open("HEAD", str, false);
    PDF.send(null);
    return (PDF.status==200) ? true : false;
  }
  catch(er) {
    return false;
  }
}

function Ajax()
{
  var xmlHttp=null;
  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }
  catch (e)
  {
    // Internet Explorer
    try
    {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}


//-->
//]]> 
