XCalendar is a calendar class encapsulated by JavaScript code. You can use it to create one or more cool calendar(s) in a browser (IE/Firefox/Opera/Netscape, etc.).
I have used some calendars written in JavaScript, most of all they are very complex, one or more separated CSS file(s) was bound with that calendar. When I need to customize the calendar, I have to read details of JavaScript code and CSS code, then modify them according to my ideas. On the other hand, the code of those calendars isn't adequately compact, more source code isn't based on OOP(Objective Oriented Programming), and I have often encountered namespace conflicts for my own code, some of which are still an existing compatibility problem.
Thus, I decided to write a calendar class to make it easy to port to any browser, and its code is very compact and extended since it is completely based on OOP.
XCalendar has more advantages that differ from existing solutions such as:
XCalendar XCalendar that might be overridden by some code yourself Here's only a small snippet that tells you how to use the XCalendar class in a Web page:
<input type="text" id="mycalendar" />
<script type="text/javascript">
// We create a new instance of XCalender here.
var c = new XCalendar();
// Before creating calendar, we'd want to customize the calendar.
// c.setDateRange(2008,1,5,2008,2,6); c.setSelDate(2008,2,2); c.setStyle(3);
// it works now.
c.create(document.getElementById("mycalendar"));
</script>
For more details, see the sample - test.html zipped in xcalendar.zip.
create(_textbox, _width, _height, _parent, _id);
create method to create a new calendar. _textbox: Which textbox (i.e. <INPUT />) is bound to the calendar. _parent: If you specified _textbox, _parent is ignored, otherwise, to indicate where the new calendar will be put in. _id: The id of calendar, you can get created calendar via document.getElementById('id of calendar') _width, _height: Indicates the size of calendar, default is (250, 100). setSelDate(_year,_month,_day);
setSelDate method to initialize current selected date of calendar, invoked before the create method. _year, _month, _day: Initial date as number. setDateRange(_startyear,_startmonth,_startday,_endyear,_endmonth,_endday);
setDateRange method to initialize the range of selecting date of calendar, You can't select any date which is out of the range of selecting date. invoked before the create method. _startyear, _startmonth ...: from date 1(start) to date 2(end). setStyle(style);
setStyle to customi the style of the calendar, for now, we only provide three styles invoked before the create method. enableTooltip(ok);
ok = true to enable tooltip with calendar setFormat(format);
create method. It'll specify the display format of date in the calendar. setFormat('%Y-%m-%d') as today is 2/Feb/2008 this calendar will display 2008-2-2.%d-%b-%Y, with the above example, it will be 2-Feb-2008. Q: What's 'class static specification'?
A: You don't need to create a new instance of XCalendar that directly uses some methods of XCalendar.
XCalendar.setValue(oEditor, value);
oEditor: The editor(i.e. textbox, HTML code is <INPUT />) was bound with any instance of XCalendar. value: The date value whose format must look like 2008-2-2(%Y-%m-%d) separated by '-'. If you pass an invalid date value, nothing to do. XCalendar.setValue method: <script type="text/javascript">
function foo()
{
// We created the instance of XCalendar in 'foo' function.
var mycal = new XCalendar;
mycal.create(document.getElementById('input_element'));
}
function foo2()
{
/*
Now, we'd need to change a new date - 2007-12-12 with the
instance 'mycal' created in 'foo' function.
A question is 'mycal' isn't a global variable, How do we get it?
In other hand, you might want to set 'mycal' to be global,
then via like mycql.setNewDate to change the date of the calendar,
it's good idea. A best way that all you only have do is like the below code:
*/
XCalendar.setValue(document.getElementById('input_element'), '2007-12-12');
}
</script>
Similarly with the XCalendar.getValue function, it returns the value of the created calendar, and the format (e.g. %Y/%m/%d) can be specified.
Note: if you pass an invalid format, this will return default value displaying in the calendar.
XCalendar.getValue(oEditor, format);
Utility method for getting days in a month of the year:
XCalendar.getDaysInMonth(year, month);
Utility method for validating date:
XCalendar.isDate(_year,_month,_day);
For preventing namespace conflicts, some variable names shouldn't be called XCalendar, for example:
// XCalendar is re-defined to an integer, so the class - XCalendar is overridden now.
var XCalendar = 1;
// Error! XCalendar has been overridden, so you never create the calendar somewhere.
var mycal = new XCalendar;
XCalendar was first created | You must Sign In to use this message board. | |||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||