var winCal;
var dtToday;
var Cal;
var MonthName;
var WeekDayName1;
var WeekDayName2;
var exDateTime;//Existing Date and Time
var selDate;//selected date. version 1.7
var calSpanID = "calBorder"; // span ID
var domStyle=null; // span DOM object with style
var cnLeft="0";//left coordinate of calendar span
var cnTop="0";//top coordinate of calendar span
var xpos=0; // mouse x position
var ypos=0; // mouse y position
var calHeight=0; // calendar height
var CalWidth=208;// calendar width
var CellWidth=30;// width of day cell.
var TimeMode=24;// TimeMode value. 12 or 24
//Configurable parameters
//var WindowTitle="DateTime Picker";//Date Time Picker title.
var SpanBorderColor = "#cdcdcd";//span border color
var SpanBgColor = "#cdcdcd";//span background color
var WeekChar=2;//number of character for week day. if 2 then Mo,Tu,We. if 3 then Mon,Tue,Wed.
var DateSeparator="-";//Date Separator, you can change it to "-" if you want.
var ShowLongMonth=true;//Show long month name in Calendar header. example: "January".
var ShowMonthYear=true;//Show Month and Year in Calendar header.
var MonthYearColor="#cc0033";//Font Color of Month and Year in Calendar header.
var WeekHeadColor="#18861B";//Background Color in Week header.
var SundayColor="#C0F64F";//Background color of Sunday.
var SaturdayColor="#C0F64F";//Background color of Saturday.
var WeekDayColor="white";//Background color of weekdays.
var FontColor="blue";//color of font in Calendar day cell.
var TodayColor="#FFFF33";//Background color of today.
var SelDateColor="#8DD53C";//Backgrond color of selected date in textbox.
var YrSelColor="#cc0033";//color of font of Year selector.
var MthSelColor="#cc0033";//color of font of Month selector if "MonthSelector" is "arrow".
var ThemeBg="";//Background image of Calendar window.
var CalBgColor="";//Backgroud color of Calendar window.
var PrecedeZero=true;//Preceding zero [true|false]
var MondayFirstDay=false;//true:Use Monday as first day; false:Sunday as first day. [true|false] //added in version 1.7
var UseImageFiles = true;//Use image files with "arrows" and "close" button
//use the Month and Weekday in your preferred language.
var MonthName=["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน","กรกฎาคม","สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"];
var WeekDayName1=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var WeekDayName2=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
//end Configurable parameters
//end Global variable
// Default events configuration
document.onmousedown = pickIt;
document.onmousemove = dragIt;
document.onmouseup = dropIt;
function NewCssCal(pCtrl,pFormat,pScroller,pShowTime,pTimeMode,pHideSeconds) {
// get current date and time
dtToday = new Date();
Cal=new Calendar(dtToday);
if ((pShowTime!=null) && (pShowTime)) {
Cal.ShowTime=true;
if ((pTimeMode!=null) &&((pTimeMode=='12')||(pTimeMode=='24'))) {
TimeMode=pTimeMode;
}
else TimeMode='24';
if (pHideSeconds!=null)
{
if (pHideSeconds)
{Cal.ShowSeconds=false;}
else
{Cal.ShowSeconds=true;}
}
else
{
Cal.ShowSeconds=false;
}
}
if (pCtrl!=null)
Cal.Ctrl=pCtrl;
if (pFormat!=null)
Cal.Format=pFormat.toUpperCase();
else
Cal.Format="MMDDYYYY";
if (pScroller!=null) {
if (pScroller.toUpperCase()=="ARROW") {
Cal.Scroller="ARROW";
}
else {
Cal.Scroller="DROPDOWN";
}
}
exDateTime=document.getElementById(pCtrl).value;
if (exDateTime!="") { //Parse existing Date String
var Sp1;//Index of Date Separator 1
var Sp2;//Index of Date Separator 2
var tSp1;//Index of Time Separator 1
var tSp1;//Index of Time Separator 2
var strMonth;
var strDate;
var strYear;
var intMonth;
var YearPattern;
var strHour;
var strMinute;
var strSecond;
var winHeight;
//parse month
Sp1=exDateTime.indexOf(DateSeparator,0)
Sp2=exDateTime.indexOf(DateSeparator,(parseInt(Sp1)+1));
var offset=parseInt(Cal.Format.toUpperCase().lastIndexOf("M"))-parseInt(Cal.Format.toUpperCase().indexOf("M"))-1;
if ((Cal.Format.toUpperCase()=="DDMMYYYY") || (Cal.Format.toUpperCase()=="DDMMMYYYY")) {
if (DateSeparator=="") {
strMonth=exDateTime.substring(2,4+offset);
strDate=exDateTime.substring(0,2);
strYear=exDateTime.substring(4+offset,8+offset);
}
else {
strMonth=exDateTime.substring(Sp1+1,Sp2);
strDate=exDateTime.substring(0,Sp1);
strYear=exDateTime.substring(Sp2+1,Sp2+10);
}
}
else if ((Cal.Format.toUpperCase()=="MMDDYYYY") || (Cal.Format.toUpperCase()=="MMMDDYYYY")) {
if (DateSeparator=="") {
strMonth=exDateTime.substring(0,2+offset);
strDate=exDateTime.substring(2+offset,4+offset);
strYear=exDateTime.substring(4+offset,8+offset);
}
else {
strMonth=exDateTime.substring(0,Sp1);
strDate=exDateTime.substring(Sp1+1,Sp2);
strYear=exDateTime.substring(Sp2+1,Sp2+10);
}
}
else if ((Cal.Format.toUpperCase()=="YYYYMMDD") || (Cal.Format.toUpperCase()=="YYYYMMMDD")) {
if (DateSeparator=="") {
strMonth=exDateTime.substring(4,6+offset);
strDate=exDateTime.substring(6+offset,8+offset);
strYear=exDateTime.substring(0,4);
}
else {
strMonth=exDateTime.substring(Sp1+1,Sp2);
strDate=exDateTime.substring(Sp2+1,Sp2+3);
strYear=exDateTime.substring(0,Sp1);
}
}
if (isNaN(strMonth))
intMonth=Cal.GetMonthIndex(strMonth);
else
intMonth=parseInt(strMonth,10)-1;
if ((parseInt(intMonth,10)>=0) && (parseInt(intMonth,10)<12))
Cal.Month=intMonth;
//end parse month
//parse Date
if ((parseInt(strDate,10)<=Cal.GetMonDays()) && (parseInt(strDate,10)>=1))
Cal.Date=strDate;
//end parse Date
//parse year
YearPattern=/^\d{4}$/;
if (YearPattern.test(strYear))
Cal.Year=parseInt(strYear,10);
//end parse year
//parse time
if (Cal.ShowTime==true) {
//parse AM or PM
if (TimeMode==12) {
strAMPM=exDateTime.substring(exDateTime.length-2,exDateTime.length)
Cal.AMorPM=strAMPM;
}
tSp1=exDateTime.indexOf(":",0)
tSp2=exDateTime.indexOf(":",(parseInt(tSp1)+1));
if (tSp1>0) {
strHour=exDateTime.substring(tSp1,(tSp1)-2);
Cal.SetHour(strHour);
strMinute=exDateTime.substring(tSp1+1,tSp1+3);
Cal.SetMinute(strMinute);
strSecond=exDateTime.substring(tSp2+1,tSp2+3);
Cal.SetSecond(strSecond);
}
}
}
selDate=new Date(Cal.Year,Cal.Month,Cal.Date);//version 1.7
RenderCssCal(true);
}