
function formatDatePart(value)
  {
    var v = String(value);
    return v.length==1 ? "0"+v : v;
  }

function formatDate(date)
  {
    return date.getFullYear() + "-" + formatDatePart(date.getMonth()+1) +
      "-" + formatDatePart(date.getDate());
  }

function addDaysToDate(date, numOfDays)
  {
    return new Date(date.getFullYear(), date.getMonth(), date.getDate()+numOfDays);
  }

function parseDate(dateString)
  {
    var str = new String(dateString);
    var array = str.split('-');
    if (array.length!=3)
      return null;
    var year = array[0];
    var month = array[1].charAt(0)=='0' ? parseInt(array[1].substr(1, 1)) : parseInt(array[1]);
    var day = array[2].charAt(0)=='0' ? parseInt(array[2].substr(1, 1)) : parseInt(array[2]);
    var date = new Date(year, month-1, day);
    if (isNaN(date))
      return null;
    date.setHours(0);
    date.setMinutes(0);
    date.setSeconds(0);
    date.setMilliseconds(0);
    return date;
  }