<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Habiburahman Khālid's blog</title><subtitle type="html">C#,ASP.NET, TDD, ASP.NET MVC, AJAX, JavaScript,...</subtitle><id>http://weblogs.asp.net/khaled/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/khaled/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/khaled/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2008-12-04T10:08:00Z</updated><entry><title>JSCalendar-The Missing Calendar for the Web</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/khaled/archive/2009/01/27/jscalendar-the-missing-calendar-for-the-web.aspx" /><id>http://weblogs.asp.net/khaled/archive/2009/01/27/jscalendar-the-missing-calendar-for-the-web.aspx</id><published>2009-01-27T11:36:00Z</published><updated>2009-01-27T11:36:00Z</updated><content type="html">&lt;p&gt;Virtually all web applications require an easier to use utility for the selection of date and time values. With the increasing popularity of JavaScript as a client-side language for the web, most developers use JavaScript calendars these days for this purpose.&lt;a href="http://weblogs.asp.net/blogs/khaled/clip_image002_6E872A71.jpg" mce_href="http://weblogs.asp.net/blogs/khaled/clip_image002_6E872A71.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/khaled/clip_image002_thumb_533EABA3.jpg" style="border-width: 0px; display: inline; margin-left: 0px; margin-right: 0px;" title="JSCalendar Snapshot" alt="JSCalendar Snapshot" mce_src="http://weblogs.asp.net/blogs/khaled/clip_image002_thumb_533EABA3.jpg" width="210" align="right" border="0" height="186" hspace="12"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Although there are many JavaScript calendars out there that can fulfill your needs, I found JSCalendar, a popular JavaScript library primarily developed by &lt;a href="http://mihai.bazon.net/about" mce_href="http://mihai.bazon.net/about" target="_blank"&gt;Mihai Bazon&lt;/a&gt;, much better compared to the others. It has an eye-catching, easier-to-use and multi-lingual interface, rich documentation, and is compatible across browsers. Of particular note is the set of themes that comes with JSCalendar. &lt;/p&gt;  &lt;p&gt;In this post, you learn how to utilize JSCalendar in your web application. &lt;/p&gt;  &lt;h5&gt;Installation and Configuration&lt;/h5&gt;  &lt;p&gt;Download JSCalendar. Unzip and copy the whole folder into your web application directory. Link the following files in your page’s header section. &lt;/p&gt;    &lt;p&gt;Below the controls on which you want the calendar to appear on, place the following code.&lt;/p&gt;  &lt;div class="csharpcode-wrapper"&gt;   &lt;div class="csharpcode"&gt;     &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:&lt;/span&gt; &lt;span class="rem"&gt;&amp;lt;!-- theme or css file --&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alteven"&gt;&lt;span class="lnum"&gt;   2:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;="stylesheet"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/css"&lt;/span&gt; &lt;span class="attr"&gt;media&lt;/span&gt;&lt;span class="kwrd"&gt;="all"&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:&lt;/span&gt;     &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;="jscalendar-1.0/skins/tiger/theme.css"&lt;/span&gt; &lt;span class="attr"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;="Tiger theme"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alteven"&gt;&lt;span class="lnum"&gt;   4:&lt;/span&gt; &lt;span class="rem"&gt;&amp;lt;!-- core JavaScript file--&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/javascript"&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="jscalendar-1.0/calendar.js"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alteven"&gt;&lt;span class="lnum"&gt;   6:&lt;/span&gt; &lt;span class="rem"&gt;&amp;lt;!--  display langauge --&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/javascript"&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="jscalendar-1.0/lang/calendar-en.js"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alteven"&gt;&lt;span class="lnum"&gt;   8:&lt;/span&gt; &lt;span class="rem"&gt;&amp;lt;!--This defines the helper function Calendar.setup. --&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/javascript"&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="jscalendar-1.0/calendar-setup.js"&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;scrip&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;ASP.NET page:&lt;/p&gt;

&lt;div class="csharpcode-wrapper"&gt;
  &lt;div class="csharpcode"&gt;
    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:&lt;/span&gt; &amp;lt;script type=&lt;span class="str"&gt;"text/javascript"&lt;/span&gt;&amp;gt;  &lt;/pre&gt;

    &lt;pre class="alteven"&gt;&lt;span class="lnum"&gt;   2:&lt;/span&gt; Calendar.setup({&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:&lt;/span&gt;     inputField : &lt;span class="str"&gt;'&amp;lt;%=TextBox1.ClientID%&amp;gt;'&lt;/span&gt;, &lt;span class="rem"&gt;// input field id&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alteven"&gt;&lt;span class="lnum"&gt;   4:&lt;/span&gt;     ifFormat   : &lt;span class="str"&gt;"%m/%d/%Y"&lt;/span&gt;, &lt;span class="rem"&gt;// date format&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:&lt;/span&gt;     showsTime  : &lt;span class="kwrd"&gt;true&lt;/span&gt;, &lt;span class="rem"&gt;//Boolean for time display&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alteven"&gt;&lt;span class="lnum"&gt;   6:&lt;/span&gt;     timeFormat : &lt;span class="str"&gt;"24"&lt;/span&gt;, &lt;span class="rem"&gt;//time format&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:&lt;/span&gt;     align      : &lt;span class="str"&gt;"BR"&lt;/span&gt; &lt;span class="rem"&gt;//Control’s alignment&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alteven"&gt;&lt;span class="lnum"&gt;   8:&lt;/span&gt; });&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:&lt;/span&gt; &amp;lt;/script&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;HTML page: &lt;/p&gt;

&lt;div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: rgb(244, 244, 244); width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;"&gt;
  &lt;div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;
    &lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;&lt;span style="color: rgb(96, 96, 96);"&gt;   1:&lt;/span&gt; &amp;lt;script type=&lt;span style="color: rgb(0, 96, 128);"&gt;"text/javascript"&lt;/span&gt;&amp;gt;  &lt;/pre&gt;

    &lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;&lt;span style="color: rgb(96, 96, 96);"&gt;   2:&lt;/span&gt; Calendar.setup({&lt;/pre&gt;

    &lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;&lt;span style="color: rgb(96, 96, 96);"&gt;   3:&lt;/span&gt;     inputField : &lt;span style="color: rgb(0, 96, 128);"&gt;'Text1'&lt;/span&gt;, &lt;span style="color: rgb(0, 128, 0);"&gt;// input field id&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;&lt;span style="color: rgb(96, 96, 96);"&gt;   4:&lt;/span&gt;     ifFormat   : &lt;span style="color: rgb(0, 96, 128);"&gt;"%m/%d/%Y"&lt;/span&gt;, &lt;span style="color: rgb(0, 128, 0);"&gt;// date format&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;&lt;span style="color: rgb(96, 96, 96);"&gt;   5:&lt;/span&gt;     showsTime  : &lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;, &lt;span style="color: rgb(0, 128, 0);"&gt;//Boolean for time display&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;&lt;span style="color: rgb(96, 96, 96);"&gt;   6:&lt;/span&gt;     timeFormat : &lt;span style="color: rgb(0, 96, 128);"&gt;"24"&lt;/span&gt;, &lt;span style="color: rgb(0, 128, 0);"&gt;//time format&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;&lt;span style="color: rgb(96, 96, 96);"&gt;   7:&lt;/span&gt;     align      : &lt;span style="color: rgb(0, 96, 128);"&gt;"BR"&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;//Control’s alignment&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: rgb(244, 244, 244); width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;&lt;span style="color: rgb(96, 96, 96);"&gt;   8:&lt;/span&gt; });&lt;/pre&gt;

    &lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"&gt;&lt;span style="color: rgb(96, 96, 96);"&gt;   9:&lt;/span&gt; &amp;lt;/script&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="http://www.dynarch.com/static/jscalendar-1.0/doc/reference.pdf" mce_href="http://www.dynarch.com/static/jscalendar-1.0/doc/reference.pdf" target="_blank"&gt;documentation&lt;/a&gt; that comes with JSCalendar; you can do a lot more with this nice tool.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.dynarch.com/static/jscalendar-1.0/index.html" mce_href="http://www.dynarch.com/static/jscalendar-1.0/index.html" target="_blank"&gt;Live demo&lt;/a&gt; | &lt;a href="http://www.dynarch.com/static/jscalendar-1.0.zip" mce_href="http://www.dynarch.com/static/jscalendar-1.0.zip" target="_blank"&gt;Download&lt;/a&gt;&lt;/p&gt;

&lt;div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"&gt;&lt;a href="http://reblog.zemanta.com/zemified/6b771e57-9461-4233-acac-6b372665816d/" class="zemanta-pixie-a" title="Zemified by Zemanta" mce_href="http://reblog.zemanta.com/zemified/6b771e57-9461-4233-acac-6b372665816d/"&gt;&lt;img src="http://img.zemanta.com/reblog_e.png?x-id=6b771e57-9461-4233-acac-6b372665816d" style="border-style: none; float: right;" class="zemanta-pixie-img" alt="Reblog this post [with Zemanta]" mce_src="http://img.zemanta.com/reblog_e.png?x-id=6b771e57-9461-4233-acac-6b372665816d"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6861434" width="1" height="1"&gt;</content><author><name>hkhaled</name><uri>http://weblogs.asp.net/members/hkhaled.aspx</uri></author><category term="JavaScript" scheme="http://weblogs.asp.net/khaled/archive/tags/JavaScript/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/khaled/archive/tags/ASP.NET/default.aspx" /></entry><entry><title>TextMate Parallels for Windows</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/khaled/archive/2008/12/04/TextMate-Parallels-for-Windows.aspx" /><id>http://weblogs.asp.net/khaled/archive/2008/12/04/TextMate-Parallels-for-Windows.aspx</id><published>2008-12-04T06:08:00Z</published><updated>2008-12-04T06:08:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;If you are a Macintosh user you might have come across &lt;A class="" href="http://weblogs.asp.net/controlpanel/blogs/macromates.com" mce_href="http://weblogs.asp.net/controlpanel/blogs/macromates.com"&gt;TextMate&lt;/A&gt;- a cool general purpose Text editor that comes with code coloring, code folding, tabs, code bundles, and themes to name just a few. However, if you are a Windows user, TextMate is most likely not the one that works for you. I thought it would be a good idea to see what alternatives are out there for Windows users.&lt;/P&gt;
&lt;P&gt;Here is a list of Text editors I have used or spent some time with:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.e-texteditor.com/" mce_href="http://www.e-texteditor.com/"&gt;E-Text editor&lt;/A&gt;- If you really want to enjoy the power of TextMate on Windows give E a try. It has almost everything that can be expected from a modern Text editor. Although it has a price tag of 34.95 USD, it's worth paying for.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://intype.info/" mce_href="http://intype.info/"&gt;Intype&lt;/A&gt; - Although it's in its early stages of development, Intype is a powerful text editor for Windows with code coloring, bundles, themes, and tabs. It is free and doesn't cost you a penny.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://notepad-plus.sourceforge.net/uk/site.htm" mce_href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;Notepad ++&lt;/A&gt;&amp;nbsp;- If you want your ugly Notepad to be transformed into a cool, nice and powerful text editor for free, give Notepad++ a try.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6765229" width="1" height="1"&gt;</content><author><name>hkhaled</name><uri>http://weblogs.asp.net/members/hkhaled.aspx</uri></author><category term="General" scheme="http://weblogs.asp.net/khaled/archive/tags/General/default.aspx" /><category term="Tools" scheme="http://weblogs.asp.net/khaled/archive/tags/Tools/default.aspx" /></entry></feed>
