// script by Josh Fraser (http://www.onlineaspect.com)

function calculate_time_zone() {
  var rightNow = new Date();
  var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);  // jan 1st
  var june1 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0); // june 1st
  var temp = jan1.toGMTString();
  var jan2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
  temp = june1.toGMTString();
  var june2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
  var std_time_offset = (jan1 - jan2) / (1000 * 60 * 60);
  var daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
  var dst;
  if (std_time_offset == daylight_time_offset) {
    dst = '0'; // daylight savings time is NOT observed
  } else {
    // positive is southern, negative is northern hemisphere
    var hemisphere = std_time_offset - daylight_time_offset;
    if (hemisphere >= 0)
    std_time_offset = daylight_time_offset;
    dst = '1'; // daylight savings time is observed
  }
  
  return {offset: std_time_offset, dst: dst};
}
