//***************************************
// THESE FUNCTIONS DEPEND ON THIS LIBRARY:
// fe/fsi/js/libraries/date_handler.js
//***************************************

//---------------------------------------------------------------------------
// NAME:    _dateUtilsFormatDateTextHeader(yyyymmdd,lang)
// PURPOSE: Formats a date in yyyymmdd format into a customized readable format.
// PARAM:   yyyymmdd: date to format
//          lang: en, us, etc. 
//          showYear: show year in the formatted text
// RESULT:  Lunes, 21 de Noviembre, 2009 (es) or Monday, November 21, 2009 (en) (showYear = true)
//          Lunes, 21 de Noviembre (es) or Monday, November 21 (en) (showYear = false)
//----------------------------------------------------------------------------
function _dateUtilsFormatDateTextHeader(yyyymmdd,lang,showYear){
  var result = null;
  var myDate = new Date;
  var thisYear = yyyymmdd.substring(0,4);
  var thisMonth = yyyymmdd.substring(4,6);
  var thisDay = yyyymmdd.substring(6,8);
  myDate.setDate(thisDay);
  myDate.setMonth(thisMonth-1); // January = 0
  myDate.setFullYear(thisYear);
  var formattedWeekDay = _dateUtilsFormatWeekDay(myDate.getDay(),lang);
  var formattedMonth   = _dateUtilsFormatMonth(myDate.getMonth(),lang);

  if(lang=='es'){ //output: Lunes, 21 de Noviembre
      result = formattedWeekDay+", "+thisDay+" de "+formattedMonth;/*+", "+thisYear;*/
    }
  else{//lang = english, therefore output: Monday, November 21
      result = formattedWeekDay+", "+formattedMonth+" "+thisDay;/*+", "+thisYear;*/
  }
  if(showYear=='true'){result += ", "+thisYear;}
  return result;
}


//---------------------------------------------------------------------------
// NAME:    _dateUtilsFormatWeekDay(anyWeekDayNumber,lang)
// PURPOSE: Formats a week day.
// PARAM:   anyWeekDayNumber: number of the weekday to format (from 0-6, 0=Sunday)
//          lang: en, us, etc. 
// RESULT:  a weekday name  
//----------------------------------------------------------------------------
function _dateUtilsFormatWeekDay(anyWeekDayNumber,lang){
 var result = null;
 if(lang=='es'){ //ex. output: Lunes
   switch (anyWeekDayNumber){
   case 1: result="Lunes";break;
   case 2: result="Martes";break;
   case 3: result="Mi&eacute;rcoles";break;
   case 4: result="Jueves";break;
   case 5: result="Viernes";break;
   case 6: result="S&aacute;bado";break;
   case 0: result="Domingo";break;
   }
  }
  else{//lang = en, therefore output: Monday
   switch (anyWeekDayNumber){
   case 1: result="Monday";break;
   case 2: result="Tuesday";break;
   case 3: result="Wednesday";break;
   case 4: result="Thursday";break;
   case 5: result="Friday";break;
   case 6: result="Saturday";break;
   case 0: result="Sunday";break;
   }
  }
  return result;
}

//---------------------------------------------------------------------------
// NAME:    _dateUtilsFormatMonth(anyMonthNumber,lang)
// PURPOSE: Formats a month. ex: input = 0, output = January
// PARAM:   anyMonthNumber: number of the month to format (from 0-11, 0=January)
//          lang: en, us, etc. 
// RESULT:  a month name  
//----------------------------------------------------------------------------
function _dateUtilsFormatMonth(anyMonthNumber,lang){
 var result = null;
 if(lang=='es'){ //ex. output: Lunes
   switch (anyMonthNumber){
   case 0: result="Enero";break;
   case 1: result="Febrero";break;
   case 2: result="Marzo";break;
   case 3: result="Abril";break;
   case 4: result="Mayo";break;
   case 5: result="Junio";break;
   case 6: result="Julio";break;
   case 7: result="Agosto";break;
   case 8: result="Septiembre";break;
   case 9: result="Octubre";break;
   case 10: result="Noviembre";break;
   case 11: result="Diciembre";break;
   }
  }
  else{//lang = en, therefore output: Monday
   switch (anyMonthNumber){
   case 0: result="January";break;
   case 1: result="February";break;
   case 2: result="March";break;
   case 3: result="April";break;
   case 4: result="May";break;
   case 5: result="June";break;
   case 6: result="July";break;
   case 7: result="August";break;
   case 8: result="September";break;
   case 9: result="October";break;
   case 10: result="November";break;
   case 11: result="December";break;
   }
  }
  return result;
}