<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pete Tracey &#187; Pete Tracey</title>
	<atom:link href="http://www.petetracey.com/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.petetracey.com</link>
	<description>A blog about music and technology and miscellaneous other things that make up my life</description>
	<lastBuildDate>Fri, 10 Jun 2011 15:53:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JQuery Calendar Code</title>
		<link>http://www.petetracey.com/2011/06/jquery-calendar-code/</link>
		<comments>http://www.petetracey.com/2011/06/jquery-calendar-code/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 15:53:36 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Calendar]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=109</guid>
		<description><![CDATA[Of all the code floating around the web calendar drawing code is usually messy, hard to maintain, and inflexible. A while back I got permission to open-source calendar drawing code that I wrote. It&#8217;s client-side JavaScript code as a JQuery plug-in but I plan to port it to both PHP and C# (the first version [...]]]></description>
			<content:encoded><![CDATA[<p>Of all the code floating around the web calendar drawing code is usually messy, hard to maintain, and inflexible. A while back I got permission to open-source calendar drawing code that I wrote. It&#8217;s client-side JavaScript code as a JQuery plug-in but I plan to port it to both PHP and C# (the first version used Prototype&#8217;s psuedo object oriented framework so porting to classical OO languages will be a cinch).<br />
<br/><br/></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&nbsp;
<span style="color: #009966; font-style: italic;">/*global jQuery: false */</span>
<span style="color: #009966; font-style: italic;">/*jslint undef: true, nomen: true, bitwise: true, regexp: true, strict: true, newcap: true */</span>
<span style="color: #3366CC;">&quot;use strict&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//</span>
<span style="color: #006600; font-style: italic;">// jqCal</span>
<span style="color: #006600; font-style: italic;">//</span>
$.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>options<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// build main options before element iteration</span>
	<span style="color: #003366; font-weight: bold;">var</span> opts <span style="color: #339933;">=</span> $.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">defaults</span><span style="color: #339933;">,</span> options<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> optDateEqual<span style="color: #009900;">&#40;</span>d1<span style="color: #339933;">,</span> d2<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span> d1<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> d2<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span>
				d1<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> d2<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span>
				d1<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> d2<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> dateHasAppts<span style="color: #009900;">&#40;</span>date<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>opts.<span style="color: #660066;">events</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span> <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>optDateEqual<span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span><span style="color: #339933;">,</span> date<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> getDateAppts<span style="color: #009900;">&#40;</span>date<span style="color: #339933;">,</span> baseClasses<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">mode</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">case</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #660066;">Big</span> <span style="color: #339933;">:</span>
			<span style="color: #003366; font-weight: bold;">var</span> apptsHtml <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>opts.<span style="color: #660066;">events</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span> <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>optDateEqual<span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span><span style="color: #339933;">,</span> date<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					apptsHtml <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;a href='&quot;</span> <span style="color: #339933;">+</span> opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">url</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;' class='AppointmentLink' target='_new&quot;</span> <span style="color: #339933;">+</span> opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">key</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;'&gt;&quot;</span> <span style="color: #339933;">+</span>
						<span style="color: #3366CC;">&quot;&lt;div class='Appointment'&gt;&quot;</span> <span style="color: #339933;">+</span>
						opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">desc</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/div&gt;&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">return</span> apptsHtml<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">case</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #000066;">Print</span> <span style="color: #339933;">:</span>
			<span style="color: #003366; font-weight: bold;">var</span> apptsHtml <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;table width='100%'&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>opts.<span style="color: #660066;">events</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span> <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>optDateEqual<span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span><span style="color: #339933;">,</span> date<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					apptsHtml <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;tr&gt;&lt;td&gt;&lt;div class='&quot;</span> <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">CSS_ApptPrint</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;'&gt;&quot;</span> <span style="color: #339933;">+</span> opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">desc</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			apptsHtml <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;/table&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">return</span> apptsHtml<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">case</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #660066;">Tiny</span> <span style="color: #339933;">:</span>
			<span style="color: #003366; font-weight: bold;">var</span> appts <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> toolTipText <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> cssClass <span style="color: #339933;">=</span> baseClasses<span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>opts.<span style="color: #660066;">events</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span> <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>optDateEqual<span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span><span style="color: #339933;">,</span> date<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					appts<span style="color: #339933;">++;</span>
					<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>appts <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> toolTipText <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot; | &quot;</span><span style="color: #339933;">;</span>
					toolTipText <span style="color: #339933;">+=</span> opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">desc</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/&lt;[^&gt;]*&gt;/g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot; &quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/'/g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&amp;apos;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					cssClass <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot; TinyAppointment&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>appts <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> cssClass <span style="color: #339933;">+=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">CSS_MultiA</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot; class='&quot;</span> <span style="color: #339933;">+</span> cssClass <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;' title='&quot;</span> <span style="color: #339933;">+</span> toolTipText <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;' &quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">case</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #660066;">Collective</span> <span style="color: #339933;">:</span>
			<span style="color: #003366; font-weight: bold;">var</span> apptsHtml <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;table width='100%'&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>opts.<span style="color: #660066;">events</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span> <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>optDateEqual<span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span><span style="color: #339933;">,</span> date<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					apptsHtml <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;tr&gt;&lt;td class='&quot;</span> <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">CSS_Appointment</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;'&gt;&quot;</span> <span style="color: #339933;">+</span> opts.<span style="color: #660066;">events</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">desc</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/td&gt;&lt;/tr&gt;&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			apptsHtml <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;/table&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">return</span> apptsHtml<span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> dateIsHoliday<span style="color: #009900;">&#40;</span>date<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>opts.<span style="color: #660066;">holidays</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">holidays</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span> <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>optDateEqual<span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">holidays</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">date</span><span style="color: #339933;">,</span> date<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">// iterate each matched element</span>
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> $this <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #006600; font-style: italic;">// build element specific options</span>
		<span style="color: #006600; font-style: italic;">//var o = $.meta ? $.extend({}, opts, $this.data()) : opts;</span>
		<span style="color: #003366; font-weight: bold;">var</span> o <span style="color: #339933;">=</span> opts<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> date <span style="color: #339933;">=</span> o.<span style="color: #660066;">date</span> <span style="color: #339933;">?</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">date</span>.<span style="color: #660066;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		date.<span style="color: #660066;">setDate</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> currentDate <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> currentDate <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>currentDate.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> currentDate.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> currentDate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> calHtml <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;&lt;table class='&quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">CalClass</span> <span style="color: #339933;">+</span> 
			<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">mode</span> <span style="color: #339933;">===</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #660066;">Tiny</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #3366CC;">&quot; &quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">CalClass</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;Tiny&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;'&gt;&quot;</span> <span style="color: #339933;">+</span>
			<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">monthYear</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #3366CC;">&quot;&lt;tr&gt;&lt;td class='&quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">MonthYear</span> <span style="color: #339933;">+</span> 
				<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">mode</span> <span style="color: #339933;">===</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #660066;">Tiny</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #3366CC;">&quot; &quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">MonthYear</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;Tiny&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;' colspan=7&gt;&quot;</span> <span style="color: #339933;">+</span> 
			o.<span style="color: #660066;">months</span><span style="color: #009900;">&#91;</span>date.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;, &quot;</span> <span style="color: #339933;">+</span> date.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">7</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			calHtml<span style="color: #009900;">&#91;</span>calHtml.<span style="color: #660066;">length</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;td class='&quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">Weekday</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;' align='center'&gt;&quot;</span> <span style="color: #339933;">+</span> 
				<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">mode</span> <span style="color: #339933;">!==</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #660066;">Tiny</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> o.<span style="color: #660066;">days</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> o.<span style="color: #660066;">daysTiny</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/td&gt;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		calHtml<span style="color: #009900;">&#91;</span>calHtml.<span style="color: #660066;">length</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;/tr&gt;&quot;</span><span style="color: #339933;">;</span>
		calHtml<span style="color: #009900;">&#91;</span>calHtml.<span style="color: #660066;">length</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;tr&gt;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> dayClass<span style="color: #339933;">,</span> numClass<span style="color: #339933;">,</span> isHoliday<span style="color: #339933;">,</span> hasAppts<span style="color: #339933;">;</span>
		$.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">calDays</span><span style="color: #009900;">&#40;</span>date<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>iter<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			dayClass <span style="color: #339933;">=</span> iter.<span style="color: #660066;">during</span> <span style="color: #339933;">?</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">DayReg</span> <span style="color: #339933;">:</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">DayEmpty</span><span style="color: #339933;">;</span>
			dayClass <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">mode</span> <span style="color: #339933;">===</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #660066;">Tiny</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #3366CC;">&quot; &quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">Day</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;Tiny&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			dayClass <span style="color: #339933;">+=</span> optDateEqual<span style="color: #009900;">&#40;</span>currentDate<span style="color: #339933;">,</span> iter.<span style="color: #660066;">optDate</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #3366CC;">&quot; today&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
			numClass <span style="color: #339933;">=</span> iter.<span style="color: #660066;">during</span> <span style="color: #339933;">?</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">DayRegNum</span> <span style="color: #339933;">:</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">DayEmptyNum</span><span style="color: #339933;">;</span>
			hasAppts <span style="color: #339933;">=</span> dateHasAppts<span style="color: #009900;">&#40;</span>iter.<span style="color: #660066;">optDate</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			isHoliday <span style="color: #339933;">=</span> dateIsHoliday<span style="color: #009900;">&#40;</span>iter.<span style="color: #660066;">optDate</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>iter.<span style="color: #660066;">newRow</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				calHtml<span style="color: #009900;">&#91;</span>calHtml.<span style="color: #660066;">length</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;tr&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">mode</span> <span style="color: #339933;">!=</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #660066;">Tiny</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				calHtml<span style="color: #009900;">&#91;</span>calHtml.<span style="color: #660066;">length</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> 
					<span style="color: #3366CC;">&quot;&lt;td class='&quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">Day</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; &quot;</span> <span style="color: #339933;">+</span> dayClass <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;' id='&quot;</span> <span style="color: #339933;">+</span> iter.<span style="color: #660066;">idStr</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;' width='14%'&gt;&quot;</span> <span style="color: #339933;">+</span>
<span style="color: #006600; font-style: italic;">//					((isHoliday) ? &quot;&lt;table cellpadding='0' cellspacing='0' width='100%' height='100%'&gt;&quot; +</span>
<span style="color: #006600; font-style: italic;">//					&quot;&lt;tr&gt;&lt;td valign='top'&gt;&quot; : &quot;&quot;) +</span>
					iter.<span style="color: #660066;">dayNum</span> <span style="color: #339933;">+</span>
<span style="color: #006600; font-style: italic;">//					((isHoliday) ? &quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign='bottom'&gt;&quot; + this.getHolidays(iter.curDate) + </span>
<span style="color: #006600; font-style: italic;">//					&quot;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot; : &quot;&quot;) +</span>
					<span style="color: #3366CC;">&quot;&quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>hasAppts<span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> getDateAppts<span style="color: #009900;">&#40;</span>iter.<span style="color: #660066;">optDate</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;&amp;nbsp;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> 
					<span style="color: #3366CC;">&quot;&lt;/td&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				calHtml<span style="color: #009900;">&#91;</span>calHtml.<span style="color: #660066;">length</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> 
					<span style="color: #3366CC;">&quot;&lt;td&quot;</span> <span style="color: #339933;">+</span> getDateAppts<span style="color: #009900;">&#40;</span>iter.<span style="color: #660066;">optDate</span><span style="color: #339933;">,</span> o.<span style="color: #660066;">cssClasses</span>.<span style="color: #660066;">Day</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; &quot;</span> <span style="color: #339933;">+</span> dayClass<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; width='14%'&gt;&quot;</span> <span style="color: #339933;">+</span> iter.<span style="color: #660066;">dayNum</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/td&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>iter.<span style="color: #660066;">endRow</span> <span style="color: #339933;">===</span> <span style="color: #CC0000;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				calHtml<span style="color: #009900;">&#91;</span>calHtml.<span style="color: #660066;">length</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;/tr&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		calHtml<span style="color: #009900;">&#91;</span>calHtml.<span style="color: #660066;">length</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;/tr&gt;&lt;/table&gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		$this.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>calHtml.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
$.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
Tiny <span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
Big <span style="color: #339933;">:</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span>
<span style="color: #000066;">Print</span> <span style="color: #339933;">:</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">,</span>
Collective <span style="color: #339933;">:</span> <span style="color: #CC0000;">3</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//</span>
<span style="color: #006600; font-style: italic;">// plugin defaults</span>
<span style="color: #006600; font-style: italic;">//</span>
$.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">defaults</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
mode <span style="color: #339933;">:</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">modes</span>.<span style="color: #660066;">Tiny</span><span style="color: #339933;">,</span>
events <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
holidays <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
monthYear <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
months <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;January&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;February&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;March&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;April&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;May&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;June&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;July&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;August&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;September&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;October&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;November&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;December&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
monthsTiny <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;Jan&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Feb&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Mar&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Apr&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;May&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Jun&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Jul&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Aug&quot;</span><span style="color: #339933;">,</span>
	<span style="color: #3366CC;">&quot;Sep&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Oct&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Nov&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Dec&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
days <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;Sun&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Mon&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Tues&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Wed&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Thurs&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Fri&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Sat&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
daysTiny <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;S&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;M&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;T&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;W&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;T&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;F&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;S&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
cssClasses <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
	CalClass <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;CalClass&quot;</span><span style="color: #339933;">,</span>
	MonthYear <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;MonthYear&quot;</span><span style="color: #339933;">,</span>
	Weekday <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Weekday&quot;</span><span style="color: #339933;">,</span>
	Day <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;CalDay&quot;</span><span style="color: #339933;">,</span>
	DayEmpty <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;DayEmpty&quot;</span><span style="color: #339933;">,</span>
	DayEmptyNum <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;DayEmptyNum&quot;</span><span style="color: #339933;">,</span>
	Appointment <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Appointment&quot;</span><span style="color: #339933;">,</span>
	ApptDay <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;ApptDay&quot;</span><span style="color: #339933;">,</span>
	ApptDesc <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;ApptDesc&quot;</span><span style="color: #339933;">,</span>
	MultiA <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;MultiAppt&quot;</span><span style="color: #339933;">,</span>
	DayReg <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;DayReg&quot;</span><span style="color: #339933;">,</span>
	DayRegNum <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;DayRegNum&quot;</span><span style="color: #339933;">,</span>
	Holiday <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Holiday&quot;</span><span style="color: #339933;">,</span>
	ApptPrint <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;ApptPrint&quot;</span><span style="color: #339933;">,</span>
	Hover <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;CalDateHover&quot;</span>
		<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
$.<span style="color: #660066;">fn</span>.<span style="color: #660066;">jqCal</span>.<span style="color: #660066;">calDays</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>date<span style="color: #339933;">,</span> callback<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> calendarDate <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>date.<span style="color: #660066;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> calendarDateDay <span style="color: #339933;">=</span> calendarDate.<span style="color: #660066;">getDay</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> curDate <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>date.<span style="color: #660066;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	curDate.<span style="color: #660066;">setDate</span><span style="color: #009900;">&#40;</span>curDate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>curDate.<span style="color: #660066;">getDay</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> calendarMonth <span style="color: #339933;">=</span> calendarDate.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> calendarYear <span style="color: #339933;">=</span> calendarDate.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> beforeMonth <span style="color: #339933;">=</span> curDate.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> calendarMonth<span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> duringMonth <span style="color: #339933;">=</span> curDate.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">===</span> calendarMonth<span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> afterMonth <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> idStrBase <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;cal-&quot;</span> <span style="color: #339933;">+</span> calendarMonth <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;-&quot;</span> <span style="color: #339933;">+</span> calendarYear <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;-&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> dayMs <span style="color: #339933;">=</span> <span style="color: #CC0000;">1000</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">60</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">60</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">24</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> lastDayMs <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>calendarYear<span style="color: #339933;">,</span> calendarMonth <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> dayMs<span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> numDays <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>lastDayMs<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> before<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> day<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> after<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> dayNum<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>duringMonth<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span> day<span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span> curDate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> month<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> ret<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>duringMonth<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			ret <span style="color: #339933;">=</span> calendarMonth<span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>beforeMonth<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			ret <span style="color: #339933;">=</span> calendarMonth <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>ret <span style="color: #339933;">===</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				ret <span style="color: #339933;">=</span> <span style="color: #CC0000;">11</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			ret <span style="color: #339933;">=</span> calendarMonth <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>ret <span style="color: #339933;">===</span> <span style="color: #CC0000;">12</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				ret <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">return</span> ret<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> year<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>duringMonth<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span> calendarYear<span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span> curDate.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> doDay<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> showDay <span style="color: #339933;">=</span> dayNum<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> weekDay <span style="color: #339933;">=</span> curDate.<span style="color: #660066;">getDay</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		callback<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
			day <span style="color: #339933;">:</span> curDate<span style="color: #339933;">,</span> 
			during <span style="color: #339933;">:</span> duringMonth<span style="color: #339933;">,</span>
			before <span style="color: #339933;">:</span> beforeMonth<span style="color: #339933;">,</span> 
			after <span style="color: #339933;">:</span> afterMonth<span style="color: #339933;">,</span>
			dayNum <span style="color: #339933;">:</span> showDay<span style="color: #339933;">,</span>
			idStr <span style="color: #339933;">:</span> idStrBase <span style="color: #339933;">+</span> month<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;-&quot;</span> <span style="color: #339933;">+</span> showDay <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;-&quot;</span> <span style="color: #339933;">+</span> year<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			newRow <span style="color: #339933;">:</span> weekDay <span style="color: #339933;">===</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
			endRow <span style="color: #339933;">:</span> weekDay <span style="color: #339933;">===</span> <span style="color: #CC0000;">6</span><span style="color: #339933;">,</span>
			optDate <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>year<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> month<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> showDay<span style="color: #009900;">&#93;</span>
				<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>beforeMonth<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>before <span style="color: #339933;">&lt;</span> calendarDateDay<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				curDate.<span style="color: #660066;">setDate</span><span style="color: #009900;">&#40;</span>curDate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				before<span style="color: #339933;">++;</span>
				doDay<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				beforeMonth <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
				duringMonth <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>duringMonth<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>day <span style="color: #339933;">&lt;</span> numDays<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				curDate.<span style="color: #660066;">setDate</span><span style="color: #009900;">&#40;</span>curDate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				day<span style="color: #339933;">++;</span>
				doDay<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			after <span style="color: #339933;">=</span> curDate.<span style="color: #660066;">getDay</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>after <span style="color: #339933;">===</span> <span style="color: #CC0000;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				duringMonth <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
				afterMonth <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>afterMonth<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>after <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				curDate.<span style="color: #660066;">setDate</span><span style="color: #009900;">&#40;</span>curDate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				after<span style="color: #339933;">++;</span>
				doDay<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>jQuery<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The PHP and C# versions will be up here soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2011/06/jquery-calendar-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Everything is Amazing &amp; Nobody is Happy</title>
		<link>http://www.petetracey.com/2009/12/everythings-amazing-nobodys-happy/</link>
		<comments>http://www.petetracey.com/2009/12/everythings-amazing-nobodys-happy/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 11:02:00 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=96</guid>
		<description><![CDATA[Must Watch!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.youtube.com/watch?v=8r1CZTLk-Gk">Must Watch!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2009/12/everythings-amazing-nobodys-happy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Caring Labs</title>
		<link>http://www.petetracey.com/2009/12/caring-labs/</link>
		<comments>http://www.petetracey.com/2009/12/caring-labs/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 12:29:46 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[charities]]></category>
		<category><![CDATA[consulting]]></category>
		<category><![CDATA[non-profits]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=92</guid>
		<description><![CDATA[In the process of incorporating Keyring Labs, my company. Also launching a new effort which I thought of during a conversation with someone who works at a non-profit (as I do). Caring Labs is going to be a sister corporation of Keyring Labs, offering pro-bono consulting, products and services to any non-profit needing any of [...]]]></description>
			<content:encoded><![CDATA[<p>In the process of incorporating Keyring Labs, my company. Also launching a new effort which I thought of during a conversation with someone who works at a non-profit (as I do). Caring Labs is going to be a sister corporation of Keyring Labs, offering pro-bono consulting, products and services to any non-profit needing any of that. </p>
<p>The idea is that the non-profit I work for has more resources than most non-profits, and a very good CTO who has gotten the organization ahead of the game technology-wise in most ways, but even for us some of things we do are a little backwards (only in dealing with technology). There are a lot of non-profits fighting for things of great value to this world that have even less resources than the organization I work for. If there was an organization that could come into a place, look at how they are using technology, and either point them in the right direction or do the actual work to get them operating far more efficiently, well, hopefully enough has been said and you all get the picture. Will update on the progress here often. </p>
<p><a href="http://levelthreesolutions.com/caringlabs/">Caring Labs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2009/12/caring-labs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blueprint CSS Framework</title>
		<link>http://www.petetracey.com/2009/12/blueprint-css-framework/</link>
		<comments>http://www.petetracey.com/2009/12/blueprint-css-framework/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 09:30:39 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Keyring Labs]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blueprint CSS Framework]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Framework]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=86</guid>
		<description><![CDATA[I stumbled on the BluePrint CSS framework, seeing it used in another blog&#8217;s template. I had no idea there was such a thing as a CSS framework. So I&#8217;ve been playing around with it this morning.

I first wanted to try it out on a very simple page, and the public end of the bbpointofsale.com site [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled on the BluePrint CSS framework, seeing it used in another blog&#8217;s template. I had no idea there was such a thing as a CSS framework. So I&#8217;ve been playing around with it this morning.<br />
<br/><br />
I first wanted to try it out on a very simple page, and the public end of the bbpointofsale.com site is very simple but uses a lot of floats which are replaced in the framework with the concept of a &#8220;grid.&#8221; It makes things a lot simpler.<br />
<br/><br />
There was one tricky part, the content of bbpointofsale.com is centered ala most Google pages. In screen.css there is a container class that you use when you want to use grid layouts. The default width is 950px so it doesn&#8217;t center at all. I was only using 18 columns in my grid and the math for width of columns is <i>columns * 40 &#8211; 10 = width</i> so I changed it to this:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.container</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">710px</span><span style="color: #00AA00;">;</span>margin<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Viola! Centered content with the magic of grid layouts!<br />
<br/><br />
<img src="http://www.petetracey.com/wp-content/uploads/2009/12/bbpos.gif" alt="bbpos" title="bbpos" width="538" height="462" class="alignnone size-full wp-image-89" /><br />
<br/><br />
My initial impression is that the Blueprint CSS Framework is well worth learning and using for reduced development time and great simplicity and easier maintenance. Two thumbs up!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2009/12/blueprint-css-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>battlerc.com</title>
		<link>http://www.petetracey.com/2009/12/battlerc-com/</link>
		<comments>http://www.petetracey.com/2009/12/battlerc-com/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 10:27:57 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Keyring Labs]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[BattleRC]]></category>
		<category><![CDATA[island]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=80</guid>
		<description><![CDATA[I checked the stats for battlerc.com this morning. Turns out I&#8217;ve actually created a google search:
battle rc
rc plane laser tag
laser tag rc airplanes
jet laser tag
laser tag plane
rc laser aircraft
battlerc
laser tag airplanes
laser remote control
1	real laser tag
1	laser tag remote control
battlerc island
Nobody was searching for these things before, they&#8217;re all directly related to battlerc.com being up. Looks like [...]]]></description>
			<content:encoded><![CDATA[<p>I checked the stats for battlerc.com this morning. Turns out I&#8217;ve actually created a google search:<br />
battle rc<br />
rc plane laser tag<br />
laser tag rc airplanes<br />
jet laser tag<br />
laser tag plane<br />
rc laser aircraft<br />
battlerc<br />
laser tag airplanes<br />
laser remote control<br />
1	real laser tag<br />
1	laser tag remote control<br />
battlerc island</p>
<p>Nobody was searching for these things before, they&#8217;re all directly related to battlerc.com being up. Looks like there is some buzz. It&#8217;s about time for a mailing list send!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2009/12/battlerc-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Card Swipe for BlackBerry</title>
		<link>http://www.petetracey.com/2009/12/card-swipe-for-blackberry/</link>
		<comments>http://www.petetracey.com/2009/12/card-swipe-for-blackberry/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 11:23:20 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Keyring Labs]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[BlackBerry Point of Sale]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Peter Tracey]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=73</guid>
		<description><![CDATA[It&#8217;s been a good morning. I took the code from the manufacturer&#8217;s website and hooked it all in so that a BlackBerry should theoretically connect to the device and read card information. Now that I know the code is, well, sane, I can actually get the device with no worry that it&#8217;ll be a nightmare [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a good morning. I took the code from the manufacturer&#8217;s website and hooked it all in so that a BlackBerry should theoretically connect to the device and read card information. Now that I know the code is, well, sane, I can actually get the device with no worry that it&#8217;ll be a nightmare to interface with it from Java code. When I have it working with the device I&#8217;ll post an update here.</p>
<p>Here&#8217;s what the BlackBerry will show when no P25M is connected:<br />
<img class="alignnone size-full wp-image-74" title="bbpointofsale.com P25M not connected" src="http://www.petetracey.com/wp-content/uploads/2009/12/cantconnect.jpg" alt="bbpointofsale.com P25M not connected" width="243" height="405" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2009/12/card-swipe-for-blackberry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KSoap with PHP Tutorial</title>
		<link>http://www.petetracey.com/2009/11/ksoap-with-php-tutorial/</link>
		<comments>http://www.petetracey.com/2009/11/ksoap-with-php-tutorial/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 09:21:52 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Keyring Labs]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[BlackBerry Point of Sale]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[KSoap]]></category>
		<category><![CDATA[Peter Tracey]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=43</guid>
		<description><![CDATA[This post is for:
You: developing a BlackBerry application in KSoap2 with PHP as the server
If that doesn&#8217;t describe you, don&#8217;t read this post!
If that does describe you, hope you enjoy!
The first step is to preverify your KSoap jar file. Copy ksoap2-j2me-core-2.1.2.jar to C:\Program Files\Eclipse\plugins\net.rim.eide.componentpack4.5.0_4.5.0.16\components\bin
Make sure the JDK is in your PATH environment varaible.
Then run:

preverify -classpath [...]]]></description>
			<content:encoded><![CDATA[<p>This post is for:<br />
You: developing a BlackBerry application in KSoap2 with PHP as the server</p>
<p>If that doesn&#8217;t describe you, don&#8217;t read this post!<br />
If that does describe you, hope you enjoy!</p>
<p>The first step is to preverify your KSoap jar file. Copy ksoap2-j2me-core-2.1.2.jar to C:\Program Files\Eclipse\plugins\net.rim.eide.componentpack4.5.0_4.5.0.16\components\bin</p>
<p>Make sure the JDK is in your PATH environment varaible.</p>
<p>Then run:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">preverify <span style="color: #339933;">-</span>classpath <span style="color: #0000ff;">&quot;JDE_PATH_HERE<span style="color: #000099; font-weight: bold;">\l</span>ib<span style="color: #000099; font-weight: bold;">\n</span>et_rim_api.jar&quot;</span> <span style="color: #0000ff;">&quot;ksoap2-j2me-core-2.1.2.jar&quot;</span></pre></div></div>

<p>Preverify put a new jar into an &#8220;output&#8221; directory in that folder. Copy that to where you put the original jar.</p>
<p>Now add that jar in your eclipse project by clicking on your project properties and going to &#8220;Java Build Path&#8221; &#8211; make sure you click on &#8220;Order and Export&#8221; and check the box that tells it to export it.</p>
<p>Well here&#8217;s where the rubber meets the road, you need KSoap to talk to PHP. I created a &#8220;Service&#8221; class which handles all the communication with the server:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.SoapEnvelope</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.SoapFault</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.serialization.SoapObject</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.serialization.SoapSerializationEnvelope</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.transport.HttpTransport</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xmlpull.v1.XmlPullParserException</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Service <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> action <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://keyringlabs.com/Login&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> namespaceRoot <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;keyringlabs.com&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> webroot <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://192.168.1.2/bbpointofsale.com/&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> errorMessage<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> key<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> transactionID<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> HttpTransport transport<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> SoapSerializationEnvelope envelope<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> Service<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		transport <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HttpTransport<span style="color: #009900;">&#40;</span>webroot <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;bb/service/index.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		transport.<span style="color: #006633;">debug</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		envelope <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SoapSerializationEnvelope<span style="color: #009900;">&#40;</span>SoapEnvelope.<span style="color: #006633;">VER10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		key <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>A request is made by setting parameters and getting back a parameter, getting back more than one parameter is left as an exercise for the reader. Here&#8217;s what I&#8217;ve done:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> ProcessLogin<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> email, <span style="color: #003399;">String</span> password<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003399;">System</span>.<span style="color: #006633;">err</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ProcessLogin&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	errorMessage <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003399;">String</span> namespace <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;urn:&quot;</span> <span style="color: #339933;">+</span> namespaceRoot <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;:login&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	SoapObject message <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SoapObject<span style="color: #009900;">&#40;</span>namespace, <span style="color: #0000ff;">&quot;login&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	message.<span style="color: #006633;">addProperty</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;email&quot;</span>, email<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	message.<span style="color: #006633;">addProperty</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;password&quot;</span>, password<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	envelope.<span style="color: #006633;">bodyOut</span> <span style="color: #339933;">=</span> message<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003399;">String</span> soapAction <span style="color: #339933;">=</span> namespace <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;#login&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		transport.<span style="color: #006633;">call</span><span style="color: #009900;">&#40;</span>soapAction, envelope<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">IOException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;error: &quot;</span><span style="color: #339933;">+</span>e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errorMessage <span style="color: #339933;">=</span> e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;response: &quot;</span><span style="color: #339933;">+</span>transport.<span style="color: #006633;">responseDump</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>XmlPullParserException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errorMessage <span style="color: #339933;">=</span> e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;response: &quot;</span><span style="color: #339933;">+</span>transport.<span style="color: #006633;">responseDump</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		SoapObject result <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>SoapObject<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>SoapObject<span style="color: #009900;">&#41;</span>envelope.<span style="color: #006633;">getResponse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		key <span style="color: #339933;">=</span> hackToGetResponse<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;serviceToken&quot;</span>, result.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>key.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;KEY:&quot;</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>SoapFault e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		errorMessage <span style="color: #339933;">=</span> e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;response: &quot;</span><span style="color: #339933;">+</span>transport.<span style="color: #006633;">responseDump</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		errorMessage <span style="color: #339933;">=</span> e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">err</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;response: &quot;</span><span style="color: #339933;">+</span>transport.<span style="color: #006633;">responseDump</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>hackToGetResponse is necessary because the return of the PHP page the request is sent to is difficult to get at through KSoap. This is hackToGetResponse:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> hackToGetResponse<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> key, <span style="color: #003399;">String</span> response<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;hackToGetResponse:&quot;</span> <span style="color: #339933;">+</span> response<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003399;">String</span> start <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;anyType{key=&quot;</span> <span style="color: #339933;">+</span> key <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;; value=&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #003399;">String</span> end <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;; }&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>response.<span style="color: #006633;">indexOf</span><span style="color: #009900;">&#40;</span>start<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #339933;">||</span>
		response.<span style="color: #006633;">indexOf</span><span style="color: #009900;">&#40;</span>end<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;hackToGetResponse:&quot;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;response.substring(0, &quot;</span> <span style="color: #339933;">+</span> response.<span style="color: #006633;">indexOf</span><span style="color: #009900;">&#40;</span>start<span style="color: #009900;">&#41;</span>  <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;).substring(0, &quot;</span> <span style="color: #339933;">+</span> response.<span style="color: #006633;">indexOf</span><span style="color: #009900;">&#40;</span>end<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;);&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	response <span style="color: #339933;">=</span> response.<span style="color: #006633;">substring</span><span style="color: #009900;">&#40;</span>response.<span style="color: #006633;">indexOf</span><span style="color: #009900;">&#40;</span>start<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> start.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	response <span style="color: #339933;">=</span> response.<span style="color: #006633;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, response.<span style="color: #006633;">indexOf</span><span style="color: #009900;">&#40;</span>end<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>response.<span style="color: #006633;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;anyType{}&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> response<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>And finally, the PHP code:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000088;">$server</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SoapServer<span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;urn:keyringlabs.com&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$server</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addFunction</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;login&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> login<span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pass</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'serviceToken'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pass</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'serviceToken'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$objMerchant</span> <span style="color: #339933;">=</span> Merchant<span style="color: #339933;">::</span><span style="color: #004000;">LoadByEmailPassword</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pass</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$objMerchant</span> <span style="color: #339933;">==</span> <span style="color: #009900; font-weight: bold;">null</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$objMerchant</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Id</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'serviceToken'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$key</span> <span style="color: #339933;">=</span> <span style="color: #990000;">uniqid</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$objSess</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Merchantsessions<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$objSess</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">MerchantID</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$objMerchant</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Id</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$objSess</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ServiceToken</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$key</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$objSess</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Save</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'serviceToken'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$key</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>That&#8217;s it, a BlackBerry application that communicates with a PHP application with very little legwork. I hope this is useful to some people, it was a long journey for me to arrive at this code.</p>
<p>When I have some time I will make the Service class multi-threaded (as it should be being that it does network connections), I will post an update here when I&#8217;ve done that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2009/11/ksoap-with-php-tutorial/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Coming Along Good!</title>
		<link>http://www.petetracey.com/2009/11/coming-along-good/</link>
		<comments>http://www.petetracey.com/2009/11/coming-along-good/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 12:57:16 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Keyring Labs]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[BlackBerry Point of Sale]]></category>
		<category><![CDATA[Peter Tracey]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=32</guid>
		<description><![CDATA[The new version of bbpointofsale.com is almost ready. It is now a java application instead of a web-based application. It integrates with a card swipe and receipt printer machine that doesn&#8217;t cost much. Besides those two things not much has changed.


]]></description>
			<content:encoded><![CDATA[<p>The new version of bbpointofsale.com is almost ready. It is now a java application instead of a web-based application. It integrates with a card swipe and receipt printer machine that doesn&#8217;t cost much. Besides those two things not much has changed.</p>
<p><img class="alignnone size-full wp-image-31" title="cardswipe" src="http://www.petetracey.com/wp-content/uploads/2009/11/cardswipe2.jpg" alt="cardswipe" width="148" height="116" /></p>
<p><img class="alignnone size-full wp-image-33" title="screen1" src="http://www.petetracey.com/wp-content/uploads/2009/11/screen1.jpg" alt="screen1" width="345" height="604" /><img class="alignnone size-full wp-image-34" title="screen2" src="http://www.petetracey.com/wp-content/uploads/2009/11/screen2.jpg" alt="screen2" width="345" height="604" /><img class="alignnone size-full wp-image-35" title="screen3" src="http://www.petetracey.com/wp-content/uploads/2009/11/screen3.jpg" alt="screen3" width="345" height="604" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2009/11/coming-along-good/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Card Swipe</title>
		<link>http://www.petetracey.com/2009/11/card-swipe/</link>
		<comments>http://www.petetracey.com/2009/11/card-swipe/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 12:15:44 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Keyring Labs]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[BlackBerry Point of Sale]]></category>
		<category><![CDATA[Peter Tracey]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=19</guid>
		<description><![CDATA[Hard at work on a new version of the BlackBerry Point of Sale system which will integrate with a mobile card swipe and receipt printer combination machine. Found a supplier that has good machines for a good price. I am thinking about posting a tutorial here on my experience developing a java application for the [...]]]></description>
			<content:encoded><![CDATA[<p>Hard at work on a new version of the BlackBerry Point of Sale system which will integrate with a mobile card swipe and receipt printer combination machine. Found a supplier that has good machines for a good price. I am thinking about posting a tutorial here on my experience developing a java application for the BlackBerry when it is complete.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2009/11/card-swipe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bbpointofsale.com</title>
		<link>http://www.petetracey.com/2009/09/bbpointofsale-com/</link>
		<comments>http://www.petetracey.com/2009/09/bbpointofsale-com/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 10:14:15 +0000</pubDate>
		<dc:creator>Pete Tracey</dc:creator>
				<category><![CDATA[Keyring Labs]]></category>
		<category><![CDATA[BlackBerry Point of Sale]]></category>
		<category><![CDATA[Peter Tracey]]></category>

		<guid isPermaLink="false">http://www.petetracey.com/?p=14</guid>
		<description><![CDATA[I&#8217;ve put the store system with click to chat on the back burner for a while. I developed a system that allows people to take credit card payments on their BlackBerry. I&#8217;ve launched it at www.bbpointofsale.com
The first sign up was last Wednesday, basically just a few days after there was any traffic going to the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve put the store system with click to chat on the back burner for a while. I developed a system that allows people to take credit card payments on their BlackBerry. I&#8217;ve launched it at <a title="BlackBerry Point of Sale" href="http://www.bbpointofsale.com" target="_blank">www.bbpointofsale.com</a></p>
<p>The first sign up was last Wednesday, basically just a few days after there was any traffic going to the site at all. If things keep going this way it could end up being successful.</p>
<p>I&#8217;m still planning to pursue my original strategy but this looked like an opportunity for a service that could have some activity right out of the gates.</p>
<p>I&#8217;ll post updates here as the service grows.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petetracey.com/2009/09/bbpointofsale-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

