var client_date_info={};client_date_info.tz_region=getClientTimeZoneRegion();function getClientTimeZoneRegion(){var date=new Date();var date_string=date.toString();var tzs=[{"patterns":["PST","PDT","Pacific Standard Time","Pacific Daylight Time"],"region":"US/Pacific"},{"patterns":["MST","MDT","Mountain Standard Time","Mountain Daylight Time"],"region":"US/Mountain"},{"patterns":["CST","CDT","Central Standard Time","Central Daylight Time"],"region":"US/Central"},{"patterns":["EST","EDT","Eastern Standard Time","Eastern Daylight Time"],"region":"US/Eastern"},{"patterns":["HST","HDT","Hawaii Standard Time","Hawaii Daylight Time"],"region":"US/Hawaii"},{"patterns":["AKST","AKDT","Alaska Standard Time","Alaska Daylight Time"],"region":"US/Alaska"}];var tz_region="US/Unknown";tz_loop:for(var i in tzs){for(var j in tzs[i].patterns){if(date_string.indexOf(tzs[i].patterns[j])>=0){tz_region=tzs[i].region;break tz_loop;}}}
return tz_region;}
function timeZoneFromOffsetHours(offset_hours){var tz_region=(client_date_info.tz_region)?client_date_info.tz_region:getClientTimeZoneRegion();var tzs={4:{"US/Eastern":"EDT"},5:{"US/Eastern":"EST","US/Central":"CDT"},6:{"US/Central":"CST","US/Mountain":"MDT"},7:{"US/Mountain":"MST","US/Pacific":"PDT"},8:{"US/Pacific":"PST","US/Alaska":"AKDT"},9:{"US/Alaska":"AKST","US/Hawaii":"HDT"},10:{"US/Hawaii":"HST"}};var tz_abbrev="N/A";if(offset_hours>=4&&offset_hours<=10){if(tz_region in tzs[offset_hours])tz_abbrev=tzs[offset_hours][tz_region];}
return tz_abbrev;}
function verifyDateValid(year,month,day,hours,mins,secs){var valDate=new Date(year,(parseInt(month)-1),day,hours,mins,secs,0);var isValidDate=(valDate.getFullYear()==parseInt(year)&&valDate.getMonth()==(parseInt(month)-1)&&valDate.getDate()==parseInt(day)&&valDate.getHours()==parseInt(hours)&&valDate.getMinutes()==parseInt(mins)&&valDate.getSeconds()==parseInt(secs))?true:false;return isValidDate;}
function getNumDaysInMonth(month,year){var numDaysArr=new Array(31,28,31,30,31,30,31,31,30,31,30,31);var numDays=numDaysArr[month-1];if(month==2&&isLeapYear(year))numDays=29;return numDays;}
function isLeapYear(year){if((year%4)==0){if((year%100)==0){var result=((year%400)==0);}else{var result=1;}}else{var result=0;}
return result;}
function intToMonth(intVal,mode){intVal=(1*intVal)-1;var monthArr=new Array("January","February","March","April","May","June","July","August","September","October","November","December");var monthShortArr=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");if(mode=="short"){return monthShortArr[intVal];}else{return monthArr[intVal];}}
function monthToInt(monthString,mode){var monthInt;switch(monthString){case"Jan":case"January":monthInt=1;break;case"Feb":case"February":monthInt=2;break;case"Mar":case"March":monthInt=3;break;case"Apr":case"April":monthInt=4;break;case"May":monthInt=5;break;case"Jun":case"June":monthInt=6;break;case"Jul":case"July":monthInt=7;break;case"Aug":case"August":monthInt=8;break;case"Sep":case"September":monthInt=9;break;case"Oct":case"October":monthInt=10;break;case"Nov":case"November":monthInt=11;break;case"Dec":case"December":monthInt=12;break;}
if(mode=="padZero")monthInt=calPad(monthInt);return monthInt;}
function abbrevMonthToLongMonth(month_abbrev){month_abbrev=month_abbrev.toLowerCase();var month_long="Unknown-Month";switch(month_abbrev){case"jan":month_long="January";break;case"feb":month_long="February";break;case"mar":month_long="March";break;case"apr":month_long="April";break;case"may":month_long="May";break;case"jun":month_long="June";break;case"jul":month_long="July";break;case"aug":month_long="August";break;case"sep":month_long="September";break;case"oct":month_long="October";break;case"nov":month_long="November";break;case"dec":month_long="December";break;}
return month_long;}
function getDateFormat(date,format){var date_string="";if(format=="default"||isEmpty(format)){date_string=date.getDate()+" "+intToMonth(date.getMonth()+1,"short")+" "+date.getFullYear()+" "+calPad(date.getHours())+":"+calPad(date.getMinutes())+" "+timeZoneFromOffsetHours(date.getTimezoneOffset()/60);}
return date_string;}
function createDateISO8601(iso_string){var year=iso_string.substr(0,4);var month=parseFloat(iso_string.substr(5,2))-1;var day=iso_string.substr(8,2);var hours=iso_string.substr(11,2);var minutes=iso_string.substr(14,2);var has_seconds=(iso_string.substr(16,1)==":")?true:false;var seconds=(has_seconds)?iso_string.substr(17,2):0;var date=new Date(year,month,day,hours,minutes,seconds);var offset_indicator_index=(has_seconds)?19:16;var offset_indicator=iso_string.substr(offset_indicator_index,1);if(offset_indicator=="-"||offset_indicator=="+"){var offset_mins_from_utc=(parseFloat(iso_string.substr((offset_indicator_index+1),2))*60)+parseFloat(iso_string.substr((offset_indicator_index+3),2));if(offset_indicator=="-")offset_mins_from_utc=offset_mins_from_utc*-1;}else{var offset_mins_from_utc=0;}
var local_offset_mins=date.getTimezoneOffset()*-1;var offset_mills=(local_offset_mins+(offset_mins_from_utc*-1))*60*1000;return new Date(date.getTime()+offset_mills);}
