vbGeneralDate=0;vbLongDate=1;vbShortDate=2;vbLongTime=3;vbShortTime=4;vbSQLDate=5;vbUseSystemDayOfWeek=0;vbSunday=1;vbMonday=2;vbTuesday=3;vbWednesday=4;vbThursday=5;vbFriday=6;vbSaturday=7;vbUseSystem=0;vbFirstJan1=1;vbFirstFourDays=2;vbFirstFullWeek=3;Date.MonthNames=[null,'January','February','March','April','May','June','July','August','September','October','November','December'];Date.WeekdayNames=[null,'Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];Date.GetServerTime=function(){var time=null;$.ajax({url:'../Components/Server/GetSeverTime.ashx',async:false,dataType:'text',success:function(text){time=new Date(text);},error:function(http,message,exc){time=new Date();}});return time;};Date.ToJSDate=function(strDate){DateParts=strDate.split("/");sDay=DateParts[0];iMonth=RemoveLeadingZeros(DateParts[1]);sYear=DateParts[2];return iMonth+" "+sDay+" "+sYear+" 00:00:00";};Date.IsDate=function(p_Expression){return!isNaN(new Date(p_Expression));};Date.CDate=function(p_Date){if(Date.IsDate(p_Date)){return new Date(p_Date);}var strTry=p_Date.replace(/\-/g,'/').replace(/\./g,'/').replace(/ /g,'/');strTry=strTry.replace(/pm$/i," pm").replace(/am$/i," am");if(Date.IsDate(strTry)){return new Date(strTry);}var strTryYear=strTry+'/'+new Date().getFullYear();if(Date.IsDate(strTryYear)){return new Date(strTryYear);}if(strTry.indexOf(":")){var strTryYear2=strTry.replace(/ /,'/'+new Date().getFullYear()+' ');if(Date.IsDate(strTryYear2)){return new Date(strTryYear2);}var strTryDate=new Date().toDateString()+' '+p_Date;if(Date.IsDate(strTryDate)){return new Date(strTryDate);}}return false;};Date.DateAdd=function(p_Interval,p_Number,p_Date){if(!Date.CDate(p_Date)){return "invalid date: '"+p_Date+"'";}if(isNaN(p_Number)){return "invalid number: '"+p_Number+"'";}p_Number=new Number(p_Number);var dt=Date.CDate(p_Date);switch(p_Interval.toLowerCase()){case "yyyy":{dt.setFullYear(dt.getFullYear()+p_Number);break;}case "q":{dt.setMonth(dt.getMonth()+(p_Number*3));break;}case "m":{dt.setMonth(dt.getMonth()+p_Number);break;}case "y":case "d":case "w":{dt.setDate(dt.getDate()+p_Number);break;}case "ww":{dt.setDate(dt.getDate()+(p_Number*7));break;}case "h":{dt.setHours(dt.getHours()+p_Number);break;}case "n":{dt.setMinutes(dt.getMinutes()+p_Number);break;}case "s":{dt.setSeconds(dt.getSeconds()+p_Number);break;}case "ms":{dt.setMilliseconds(dt.getMilliseconds()+p_Number);break;}default:{return "invalid interval: '"+p_Interval+"'";}}return dt;};Date.DateDiff=function(p_Interval,p_Date1,p_Date2,p_FirstDayOfWeek){if(!Date.CDate(p_Date1)){return "invalid date: '"+p_Date1+"'";}if(!Date.CDate(p_Date2)){return "invalid date: '"+p_Date2+"'";}p_FirstDayOfWeek=(isNaN(p_FirstDayOfWeek)||p_FirstDayOfWeek==0)?vbSunday:parseInt(p_FirstDayOfWeek);var dt1=Date.CDate(p_Date1);var dt2=Date.CDate(p_Date2);if("h,n,s,ms".indexOf(p_Interval.toLowerCase())== -1){if(p_Date1.toString().indexOf(":")== -1){dt1.setUTCHours(0,0,0,0)};if(p_Date2.toString().indexOf(":")== -1){dt2.setUTCHours(0,0,0,0)};}var iDiffMS=dt2.valueOf()-dt1.valueOf();var dtDiff=new Date(iDiffMS);var nYears=dt2.getUTCFullYear()-dt1.getUTCFullYear();var nMonths=dt2.getUTCMonth()-dt1.getUTCMonth()+(nYears!=0?nYears*12:0);var nQuarters=parseInt(nMonths/3);var nMilliseconds=iDiffMS;var nSeconds=parseInt(iDiffMS/1000);var nMinutes=parseInt(nSeconds/60);var nHours=parseInt(nMinutes/60);var nDays=parseInt(nHours/24);var nWeeks=parseInt(nDays/7);if(p_Interval.toLowerCase()=='ww'){var offset=Date.DatePart("w",dt1,p_FirstDayOfWeek)-1;if(offset){dt1.setDate(dt1.getDate()+7-offset);}var offset=Date.DatePart("w",dt2,p_FirstDayOfWeek)-1;if(offset){dt2.setDate(dt2.getDate()-offset);}var nCalWeeks=Date.DateDiff("w",dt1,dt2)+1;}switch(p_Interval.toLowerCase()){case "yyyy":return nYears;case "q":return nQuarters;case "m":return nMonths;case "y":case "d":return nDays;case "w":return nWeeks;case "ww":return nCalWeeks;case "h":return nHours;case "n":return nMinutes;case "s":return nSeconds;case "ms":return nMilliseconds;default:return "invalid interval: '"+p_Interval+"'";}};Date.DatePart=function(p_Interval,p_Date,p_FirstDayOfWeek){if(!Date.CDate(p_Date)){return "invalid date: '"+p_Date+"'";}var dtPart=Date.CDate(p_Date);switch(p_Interval.toLowerCase()){case "yyyy":return dtPart.getFullYear();case "q":return parseInt(dtPart.getMonth()/3)+1;case "m":return dtPart.getMonth()+1;case "y":return Date.DateDiff("y","1/1/"+dtPart.getFullYear(),dtPart)+1;case "d":return dtPart.getDate();case "w":return Date.Weekday(dtPart.getDay()+1,p_FirstDayOfWeek);case "ww":return Date.DateDiff("ww","1/1/"+dtPart.getFullYear(),dtPart,p_FirstDayOfWeek)+1;case "h":return dtPart.getHours();case "n":return dtPart.getMinutes();case "s":return dtPart.getSeconds();case "ms":return dtPart.getMilliseconds();default:return "invalid interval: '"+p_Interval+"'";}};Date.CheckInRange=function(start_date,end_date,check_date){start_date=Date.CDate(start_date);end_date=Date.CDate(end_date);check_date=Date.CDate(check_date);start_ts=start_date.getTime();end_ts=end_date.getTime();check_date_ts=check_date.getTime();return((check_date_ts>=start_ts)&&(check_date_ts<=end_ts));};Date.MonthName=function(p_Month,p_Abbreviate){if(isNaN(p_Month)){if(!Date.CDate(p_Month)){return "invalid month: '"+p_Month+"'";}p_Month=DatePart("m",Date.CDate(p_Month));}var retVal=Date.MonthNames[p_Month];if(p_Abbreviate==true){retVal=retVal.substring(0,3)}return retVal;};Date.WeekdayName=function(p_Weekday,p_Abbreviate,p_FirstDayOfWeek){if(isNaN(p_Weekday)){if(!Date.CDate(p_Weekday)){return "invalid weekday: '"+p_Weekday+"'";}p_Weekday=DatePart("w",Date.CDate(p_Weekday));}p_FirstDayOfWeek=(isNaN(p_FirstDayOfWeek)||p_FirstDayOfWeek==0)?vbSunday:parseInt(p_FirstDayOfWeek);var nWeekdayNameIdx=((p_FirstDayOfWeek-1+parseInt(p_Weekday)-1+7)%7)+1;var retVal=Date.WeekdayNames[nWeekdayNameIdx];if(p_Abbreviate==true){retVal=retVal.substring(0,3)}return retVal;};Date.Weekday=function(p_Weekday,p_FirstDayOfWeek){p_FirstDayOfWeek=(isNaN(p_FirstDayOfWeek)||p_FirstDayOfWeek==0)?vbSunday:parseInt(p_FirstDayOfWeek);return((parseInt(p_Weekday)-p_FirstDayOfWeek+7)%7)+1;};Date.FormatDateTime=function(p_Date,p_NamedFormat){if(p_Date.toUpperCase().substring(0,3)=="NOW"){p_Date=new Date()};if(!Date.CDate(p_Date)){return "invalid date: '"+p_Date+"'";}if(isNaN(p_NamedFormat)){p_NamedFormat=vbGeneralDate};var dt=Date.CDate(p_Date);switch(parseInt(p_NamedFormat)){case vbGeneralDate:return dt.toString();case vbLongDate:return Format(p_Date,'DDDD, D MMMM YYYY');case vbShortDate:return Format(p_Date,'DD/MM/YYYY');case vbLongTime:return dt.toLocaleTimeString();case vbShortTime:return Format(p_Date,'HH:MM:SS');case vbSQLDate:return Format(p_Date,'D MMMM YYYY');default:return "invalid NamedFormat: '"+p_NamedFormat+"'";}};Date.Format=function(p_Date,p_Format,p_FirstDayOfWeek,p_firstweekofyear){if(!Date.CDate(p_Date)){return "invalid date: '"+p_Date+"'";}if(!p_Format||p_Format==''){return dt.toString()};var dt=Date.CDate(p_Date);this.pad=function(p_str){if(p_str.toString().length==1){p_str='0'+p_str}return p_str;};var ampm=dt.getHours()>=12?'PM':'AM';var hr=dt.getHours();if(hr==0){hr=12};if(hr>12){hr-=12};var strShortTime=hr+':'+this.pad(dt.getMinutes())+':'+this.pad(dt.getSeconds())+' '+ampm;var strShortDate=(dt.getMonth()+1)+'/'+dt.getDate()+'/'+new String(dt.getFullYear()).substring(2,4);var strLongDate=Date.MonthName(dt.getMonth()+1)+' '+dt.getDate()+', '+dt.getFullYear();var retVal=p_Format;retVal=retVal.replace(new RegExp('C','gi'),'CCCC');retVal=retVal.replace(new RegExp('mmmm','gi'),'XXXX');retVal=retVal.replace(new RegExp('mmm','gi'),'XXX');retVal=retVal.replace(new RegExp('dddddd','gi'),'AAAAAA');retVal=retVal.replace(new RegExp('ddddd','gi'),'AAAAA');retVal=retVal.replace(new RegExp('dddd','gi'),'AAAA');retVal=retVal.replace(new RegExp('ddd','gi'),'AAA');retVal=retVal.replace(new RegExp('timezone','gi'),'ZZZZ');retVal=retVal.replace(new RegExp('time24','gi'),'TTTT');retVal=retVal.replace(new RegExp('time','gi'),'TTT');retVal=retVal.replace(new RegExp('yyyy','gi'),dt.getFullYear());retVal=retVal.replace(new RegExp('yy','gi'),new String(dt.getFullYear()).substring(2,4));retVal=retVal.replace(new RegExp('y','gi'),Date.DatePart("y",dt));retVal=retVal.replace(new RegExp('q','gi'),Date.DatePart("q",dt));retVal=retVal.replace(new RegExp('mm','gi'),(dt.getMonth()+1));retVal=retVal.replace(new RegExp('m','gi'),(dt.getMonth()+1));retVal=retVal.replace(new RegExp('dd','gi'),this.pad(dt.getDate()));retVal=retVal.replace(new RegExp('d','gi'),dt.getDate());retVal=retVal.replace(new RegExp('hh','gi'),this.pad(dt.getHours()));retVal=retVal.replace(new RegExp('h','gi'),dt.getHours());retVal=retVal.replace(new RegExp('nn','gi'),this.pad(dt.getMinutes()));retVal=retVal.replace(new RegExp('n','gi'),dt.getMinutes());retVal=retVal.replace(new RegExp('ss','gi'),this.pad(dt.getSeconds()));retVal=retVal.replace(new RegExp('s','gi'),dt.getSeconds());retVal=retVal.replace(new RegExp('t t t t t','gi'),strShortTime);retVal=retVal.replace(new RegExp('am/pm','g'),dt.getHours()>=12?'pm':'am');retVal=retVal.replace(new RegExp('AM/PM','g'),dt.getHours()>=12?'PM':'AM');retVal=retVal.replace(new RegExp('a/p','g'),dt.getHours()>=12?'p':'a');retVal=retVal.replace(new RegExp('A/P','g'),dt.getHours()>=12?'P':'A');retVal=retVal.replace(new RegExp('AMPM','g'),dt.getHours()>=12?'pm':'am');retVal=retVal.replace(new RegExp('XXXX','gi'),Date.MonthName(dt.getMonth()+1,false));retVal=retVal.replace(new RegExp('XXX','gi'),Date.MonthName(dt.getMonth()+1,true));retVal=retVal.replace(new RegExp('AAAAAA','gi'),strLongDate);retVal=retVal.replace(new RegExp('AAAAA','gi'),strShortDate);retVal=retVal.replace(new RegExp('AAAA','gi'),Date.WeekdayName(dt.getDay()+1,false,p_FirstDayOfWeek));retVal=retVal.replace(new RegExp('AAA','gi'),Date.WeekdayName(dt.getDay()+1,true,p_FirstDayOfWeek));retVal=retVal.replace(new RegExp('TTTT','gi'),dt.getHours()+':'+this.pad(dt.getMinutes()));retVal=retVal.replace(new RegExp('TTT','gi'),hr+':'+this.pad(dt.getMinutes())+' '+ampm);retVal=retVal.replace(new RegExp('CCCC','gi'),strShortDate+' '+strShortTime);tz=dt.getTimezoneOffset();timezone=(tz<0)?('GMT-'+tz/60):(tz==0)?('GMT'):('GMT+'+tz/60);retVal=retVal.replace(new RegExp('ZZZZ','gi'),timezone);return retVal;};IsDate=Date.IsDate;CDate=Date.CDate;DateAdd=Date.DateAdd;DateDiff=Date.DateDiff;DatePart=Date.DatePart;MonthName=Date.MonthName;WeekdayName=Date.WeekdayName;Weekday=Date.Weekday;FormatDateTime=Date.FormatDateTime;Format=Date.Format;
