function util_convert_string_to_int(str) {
  str = String(str);
  str = str.replace(/^0*/, "");
  if(str.length == 0) str = "0";
  return parseInt(str);
}

function util_get_num_monthdays(year, month) {
  // Get month length (0th date of next month, hack)
  var dd = new Date(year, month, 0);
	return dd.getDate();
}

function util_create_date_num(year, month, day) {
  var str = "";
  str += year*1;
  if(month < 10) str += "0";
  str += month*1;
  if(day < 10) str += "0";
  str += day*1;
  return str;
}

function util_create_time_num(hour, minute, second) {
  var str = "";
  if(hour < 10) str += "0";
  str += parseInt(hour);
  if(minute < 10) str += "0";
  str += parseInt(minute);
  if(second < 10) str += "0";
  str += parseInt(second);
  return str;
}

function util_create_date_str(year, month, day) {
  year*=1;
  month*=1;
  day*=1;
  var str = "";
  str += util_month_to_string(month) + " " + (day*1) + ", "+year;
  return str;
}

function util_create_datetime_num(year, month, day, hour, minute) {
  var str = "";
  str = util_create_date_num(year, month, day);
  if(hour < 10) str += "0";
  str += hour*1;
  if(minute < 10) str += "0";
  str += minute*1;
  return str;
}

function util_create_datetime_str(year, month, day, hour, minute) {
  hour*=1;
  minute*=1;
  
  var str = util_create_date_str(year, month, day)+" ";
  
  hour *= 1;
  ampm = "am";
  if(hour >= 12) {
    ampm = "pm";
    if(hour != 12)
      hour -= 12;
  }
  else if(hour == 0)
    hour = 12;
  
  str += hour+":";
  if(minute < 10) str += "0";
  str += minute+ampm;
  return str;
}

function util_create_24hour(hour, ampm) {
  if(hour == 12) {
    if(ampm == "pm" || ampm == "PM")
      return 12;
    else
      return 0;
  }
  else if(ampm == "am" || ampm == "AM") {
    return hour;
  }
  else {
    return (hour + 12);
  }
}

function util_breakdown_24hour(hour) {
  var hash = new Array();
  if(hour == 12) {
    hash['hour'] = 12;
    hash['ampm'] = 'pm';
  }
  else if(hour == 0) {
    hash['hour'] = 12;
    hash['ampm'] = 'am';
  }
  else if(hour < 12) {
    hash['hour'] = hour;
    hash['ampm'] = 'am';
  }
  else {
    hash['hour'] = hour - 12;
    hash['ampm'] = 'pm';
  }
  return hash;
}

function util_breakdown_datetime(date) {
  var timehash = new Array();
  timehash['year'] = date.substr(0,4);
  timehash['month'] = date.substr(4,2);
  timehash['day'] = date.substr(6,2);
  timehash['hour'] = date.substr(8,2);
  timehash['min'] = date.substr(10,2);
  return timehash;
}

function util_day_to_string(day) {
  var day_num = parseInt(day);
  switch(day_num) {
    case 1: return "Sunday";
    case 2: return "Monday";
    case 3: return "Tuesday";
    case 4: return "Wednesday";
    case 5: return "Thursday";
    case 6: return "Friday";
    case 7: return "Saturday";
  }
  return "";
}

function util_day_to_abbrstring(day) {
  var day_num = parseInt(day);
  var str = "";
  switch(day_num) {
    case 1: str = "Sun";
    case 2: str = "Mon";
    case 3: str = "Tue";
    case 4: str = "Wed";
    case 5: str = "Thu";
    case 6: str = "Fri";
    case 7: str = "Sat";
  }
  return str;
}


function util_day_to_shortstring(day) {
  var day_num = parseInt(day);
  switch(day_num) {
    case 1: return "S";
    case 2: return "M";
    case 3: return "T";
    case 4: return "W";
    case 5: return "T";
    case 6: return "F";
    case 7: return "S";
  }
  return "";
}

function util_month_to_string(month) {
  var month_num = parseInt(month);
  switch(month_num) {
    case 1: return "January";
    case 2: return "February";
    case 3: return "March";
    case 4: return "April";
    case 5: return "May";
    case 6: return "June";
    case 7: return "July";
    case 8: return "August";
    case 9: return "September";
    case 10: return "October";
    case 11: return "November";
    case 12: return "December";
  }
  return "";
}

function util_month_to_shortstring(month) {
  var month_num = parseInt(month);
  switch(month_num) {
    case 1: return "Jan";
    case 2: return "Feb";
    case 3: return "Mar";
    case 4: return "Apr";
    case 5: return "May";
    case 6: return "Jun";
    case 7: return "Jul";
    case 8: return "Aug";
    case 9: return "Sep";
    case 10: return "Oct";
    case 11: return "Nov";
    case 12: return "Dec";
  }
  return "";
}
