<?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>Searchdaily</title>
	<atom:link href="http://searchdaily.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://searchdaily.net</link>
	<description>Find from the ultimate resource :)</description>
	<lastBuildDate>Fri, 24 Feb 2012 10:28:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>CodeIgniter 2 Doctrine 2 Integration</title>
		<link>http://searchdaily.net/codeigniter-2-doctrine-2-integration/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=codeigniter-2-doctrine-2-integration</link>
		<comments>http://searchdaily.net/codeigniter-2-doctrine-2-integration/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 15:30:01 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Framework Integration]]></category>
		<category><![CDATA[CodeIgniter 2 Doctrine 2 Integration]]></category>
		<category><![CDATA[CodeIgniter Doctrine Integration]]></category>
		<category><![CDATA[Integrate Doctrine into CodeIgniter]]></category>

		<guid isPermaLink="false">http://searchdaily.net/?p=2606</guid>
		<description><![CDATA[Doctrine – a very famous and strong ORM library for PHP web app development now can be easily integrated into CodeIgniter. (this post is assumed that you already know about PHP, CodeIgniter, ORM, Doctrine… so I just do the rest: to integrate them together) 1. Create CodeIgniter application ready to integrate Doctrine You will need <a href='http://searchdaily.net/codeigniter-2-doctrine-2-integration/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>Doctrine – a very famous and strong ORM library for PHP web app development now can be easily integrated into CodeIgniter. (this post is assumed that you already know about PHP, CodeIgniter, ORM, Doctrine… so I just do the rest: to integrate them together)</p>
<h5>1. Create CodeIgniter application ready to integrate Doctrine</h5>
<p>You will need a folder name codeigniter-doctrine and copy the codeigniter application, system and index.php file into it. The result should look like this.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-doctrine-integration1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="codeigniter-doctrine-integration" src="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-doctrine-integration_thumb1.png" alt="codeigniter doctrine integration thumb1 CodeIgniter 2 Doctrine 2 Integration" width="223" height="325" border="0" /></a></p>
<h5>2. Download Doctrine library for CodeIgniter</h5>
<p>Just download Doctrine ORM from it homepage, extract it and you will see the following:</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/image7.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://searchdaily.net/wp-content/uploads/2011/10/image_thumb7.png" alt="image thumb7 CodeIgniter 2 Doctrine 2 Integration" width="188" height="78" border="0" /></a></p>
<p>We will need that <strong>Doctrine </strong>lib folder, copy it into CodeIgniter application libraries folder, and create a file name <strong>Doctrine.php </strong>just like this.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-doctrine-integration-21.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="codeigniter-doctrine-integration-2" src="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-doctrine-integration-2_thumb1.png" alt="codeigniter doctrine integration 2 thumb1 CodeIgniter 2 Doctrine 2 Integration" width="238" height="501" border="0" /></a></p>
<h5>3. Doctrine and CodeIgniter Integration</h5>
<p>Now you’re ready to configure the Doctrine library for CodeIgniter, open the file Doctrine.php in your text editor and replace it with the following content:</p>
<pre class="brush: php">&lt;?php
use DoctrineCommonClassLoader,
DoctrineORMConfiguration,
DoctrineORMEntityManager,
DoctrineCommonCacheArrayCache,
DoctrineDBALLoggingEchoSQLLogger;

class Doctrine {

	public $em = null;

	public function __construct()
	{
		// load database configuration from CodeIgniter
		require_once APPPATH.&#039;config/database.php&#039;;	

		// Set up class loading. You could use different autoloaders, provided by your favorite framework,
		// if you want to.
		require_once APPPATH.&#039;libraries/Doctrine/Common/ClassLoader.php&#039;;

		$doctrineClassLoader = new ClassLoader(&#039;Doctrine&#039;,  APPPATH.&#039;libraries&#039;);
		$doctrineClassLoader-&gt;register();
		$entitiesClassLoader = new ClassLoader(&#039;models&#039;, rtrim(APPPATH, &quot;/&quot; ));
		$entitiesClassLoader-&gt;register();
		$proxiesClassLoader = new ClassLoader(&#039;Proxies&#039;, APPPATH.&#039;models/proxies&#039;);
		$proxiesClassLoader-&gt;register();

		// Set up caches
		$config = new Configuration;
		$cache = new ArrayCache;
		$config-&gt;setMetadataCacheImpl($cache);
		$driverImpl = $config-&gt;newDefaultAnnotationDriver(array(APPPATH.&#039;models/Entities&#039;));
		$config-&gt;setMetadataDriverImpl($driverImpl);
		$config-&gt;setQueryCacheImpl($cache);

		$config-&gt;setQueryCacheImpl($cache);

		// Proxy configuration
		$config-&gt;setProxyDir(APPPATH.&#039;/models/proxies&#039;);
		$config-&gt;setProxyNamespace(&#039;Proxies&#039;);

		$config-&gt;setAutoGenerateProxyClasses( TRUE );

		// Database connection information				

		$connectionOptions = array( 
        &#039;driver&#039; =&gt; &#039;pdo_mysql&#039;,		
        &#039;user&#039; =&gt;     &#039;webapp&#039;,
        &#039;password&#039; =&gt; &#039;webapp&#039;,
        &#039;host&#039; =&gt;     &#039;localhost&#039;,
        &#039;dbname&#039; =&gt;   &#039;mydb&#039;
		);

		// Create EntityManager
		$this-&gt;em = EntityManager::create($connectionOptions, $config);
	}
}</pre>
<p>As you can see from the above, we do most Doctrine config in this file, please change the $connectionOptions to the right database information you’re using.</p>
<p><span id="more-2606"></span></p>
<p>You also should change the autoload config of CodeIgniter to load Doctrine library ready for each action. Find /application/config/autoload.php and change as following:</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/image8.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://searchdaily.net/wp-content/uploads/2011/10/image_thumb8.png" alt="image thumb8 CodeIgniter 2 Doctrine 2 Integration" width="689" height="56" border="0" /></a></p>
<p>OK you’re good now.</p>
<h5>4. Testing CodeIgniter-Doctrine Integration</h5>
<p>I will use the blogging example, but just with a simple BLOG table for demonstration with the integration.</p>
<p>Use MySQL workbench to create the following table + data:</p>
<pre class="brush: sql">CREATE TABLE `blog` (
`ID`  int(11) NOT NULL AUTO_INCREMENT ,
`CONTENT`  text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`POSTED_BY`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`POSTED_DATE`  datetime NULL DEFAULT NULL ,
`TITLE`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`ID`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=5

;</pre>
<p>OK so now you got the table. Put some content to it, whatever you want, just give it some dummy content.</p>
<p>We will now make a Doctrine model class, in the models folder of CodeIgniter Doctrine blog application, create a file name: <strong>Blog.php</strong></p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/image9.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://searchdaily.net/wp-content/uploads/2011/10/image_thumb9.png" alt="image thumb9 CodeIgniter 2 Doctrine 2 Integration" width="220" height="361" border="0" /></a></p>
<p>Here is its content:</p>
<pre class="brush: php">&lt;?php
/**
 * @Entity @Table(name=&quot;blog&quot;)
 */
class Blog
{
	/**
	 * @Id @GeneratedValue @Column(type=&quot;integer&quot;)
	 * @var string
	 */
	protected $id;

	/**
	 * @Column(type=&quot;string&quot;)
	 * @var string
	 */
	public $title;

	/**
	 * @Column(type=&quot;string&quot;)
	 * @var string
	 */
	public $content;

	public function getId()
	{
		return $this-&gt;id;
	}

	public function getContent()
	{
		return $this-&gt;content;
	}

	public function setContent($content)
	{
		$this-&gt;content = $content;
	}

	public function getTitle() {
		return $this-&gt;title;
	}

	public function setTitle($title) {
		$this-&gt;title = $title;
	}
}</pre>
<p>Now to do something, we must create a blog controller, create a file name blogcontroller.php in the folder /application/controllers with the following content:</p>
<pre class="brush: php">&lt;?php
require_once APPPATH . &#039;models/Blog.php&#039;;

class blogcontroller extends CI_Controller{
	var $em;
	function __construct() {
		parent::__construct();
		$this-&gt;em = $this-&gt;doctrine-&gt;em;
	}
	public function index()
	{
		$blog = $this-&gt;em-&gt;find(&#039;Blog&#039;, 1);
		echo $blog-&gt;title . &#039;&lt;br/&gt;&#039; . $blog-&gt;content;
	}
}</pre>
<p>Can you see I import the Blog.php file to this controller so we can use the Blog class? Yes, we must do so in order the entity manager can understand which entity class to interact with.</p>
<p>You can also see that when I construct the controller, I also get $this-&gt;doctrine-&gt;em, this is the <strong>entity manager </strong>we’ve configured so far in step 3 just now you use it.</p>
<p>Finally, I just find a Blog object with id = 1 to print out its title and its content. It’s just want to keep it so simple to demonstrate if the integration work.</p>
<p>Can you guess the result? Here it is on my browser:</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-doctrine-blog.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="codeigniter-doctrine-blog" src="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-doctrine-blog_thumb.png" alt="codeigniter doctrine blog thumb CodeIgniter 2 Doctrine 2 Integration" width="527" height="392" border="0" /></a></p>
<h5>5. CodeIgniter Doctrine Integration Zip</h5>
<ul>
<li>sample blog db <a href="http://code.google.com/p/frameworks-integration/downloads/detail?name=blog.sql&amp;can=2&amp;q=" target="_blank">sql file</a></li>
<li><a href="http://code.google.com/p/frameworks-integration/downloads/detail?name=codeigniter2-doctrine2.zip&amp;can=2&amp;q=" target="_blank">codeigniter-doctrine-integration-zip</a></li>
</ul>
<p>That’s it! have a good day!</p>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/codeigniter-2-doctrine-2-integration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CodeIgniter 2 Smarty 3 integration</title>
		<link>http://searchdaily.net/codeigniter-2-smarty-3-integration/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=codeigniter-2-smarty-3-integration</link>
		<comments>http://searchdaily.net/codeigniter-2-smarty-3-integration/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 15:26:10 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Framework Integration]]></category>
		<category><![CDATA[CodeIgniter 2 Smarty 3 Example]]></category>
		<category><![CDATA[CodeIgniter Smarty Integration]]></category>
		<category><![CDATA[Smarty and CodeIgniter together]]></category>

		<guid isPermaLink="false">http://searchdaily.net/?p=2603</guid>
		<description><![CDATA[In this post I will show you how to integrate Smarty 3 (I use the current version Smarty 3.1.3 ) with CodeIgniter 2 (2.0.3). 1. Create CodeIgniter application ready to integrate Smarty Create a folder name codeigniter-smarty and copy codeigniter lib folder to it. You will make something like this. 2. Download Smarty and prepare <a href='http://searchdaily.net/codeigniter-2-smarty-3-integration/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>In this post I will show you how to integrate Smarty 3 (I use the current version Smarty 3.1.3 ) with CodeIgniter 2 (2.0.3).</p>
<h5>1. Create CodeIgniter application ready to integrate Smarty</h5>
<p>Create a folder name <strong>codeigniter-smarty</strong> and copy codeigniter lib folder to it. You will make something like this.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-smarty-integration.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="codeigniter-smarty-integration" src="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-smarty-integration_thumb.png" alt="codeigniter smarty integration thumb CodeIgniter 2 Smarty 3 integration" width="260" height="380" border="0" /></a></p>
<h5>2. Download Smarty and prepare library for CodeIgniter</h5>
<p>Now you will need to download Smarty and copy its libs folder.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/smarty-lib-for-codeigniter.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="smarty-lib-for-codeigniter" src="http://searchdaily.net/wp-content/uploads/2011/10/smarty-lib-for-codeigniter_thumb.png" alt="smarty lib for codeigniter thumb CodeIgniter 2 Smarty 3 integration" width="260" height="68" border="0" /></a></p>
<p>In your CodeIgniter application folder, find the <strong>libraries</strong> folder and create a folder name <strong>&#8220;smarty”</strong> and a file name<strong> smarty.php</strong>. Don’t worry about their content, we will complete it softly, now just paste your libs folder copy from Smarty to<strong> libraries &gt; smarty</strong> folder</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-smarty-integration-folder.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="codeigniter-smarty-integration-folder" src="http://searchdaily.net/wp-content/uploads/2011/10/codeigniter-smarty-integration-folder_thumb.png" alt="codeigniter smarty integration folder thumb CodeIgniter 2 Smarty 3 integration" width="252" height="436" border="0" /></a></p>
<p>You will also need a cache and a config folder, please create them in the <strong>librariessmarty</strong> as following:</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/image3.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://searchdaily.net/wp-content/uploads/2011/10/image_thumb3.png" alt="image thumb3 CodeIgniter 2 Smarty 3 integration" width="170" height="126" border="0" /></a></p>
<p><span id="more-2603"></span></p>
<h5>3. Smarty and CodeIgniter Integration</h5>
<p>Now you will need to fill the smarty.php in the libraries folder with this content. It will extends the Smarty class (Smarty.class.php) of smarty lib and create a CI_Smarty CodeIgniter standard library (ready to use in CodeIgniter control)</p>
<pre class="brush: php">&lt;?php if ( ! defined(&#039;BASEPATH&#039;)) exit(&#039;No direct script access allowed&#039;);

require_once(APPPATH.&#039;libraries/smarty/libs/Smarty.class.php&#039;);

class CI_Smarty extends Smarty {

	function __construct()
	{
		date_default_timezone_set(&#039;America/Phoenix&#039;);

		parent::__construct();
		$this-&gt;setTemplateDir(APPPATH.&#039;views/templates&#039;);
		$this-&gt;setCompileDir(APPPATH.&#039;views/compiled&#039;);
		$this-&gt;setConfigDir(APPPATH.&#039;libraries/smarty/configs&#039;);
		$this-&gt;setCacheDir(APPPATH.&#039;libraries/smarty/cache&#039;);

		$this-&gt;assign( &#039;APPPATH&#039;, APPPATH );
		$this-&gt;assign( &#039;BASEPATH&#039;, BASEPATH );
		// $this-&gt;caching = Smarty::CACHING_LIFETIME_CURRENT; // Does something <img src='http://searchdaily.net/wp-includes/images/smilies/icon_smile.gif' alt="icon smile CodeIgniter 2 Smarty 3 integration" class='wp-smiley' title="CodeIgniter 2 Smarty 3 integration" /> 
		if ( method_exists( $this, &#039;assignByRef&#039;) )
		{
			$ci =&amp; get_instance();
			$this-&gt;assignByRef(&quot;ci&quot;, $ci);
		}
		$this-&gt;force_compile = 1;
		$this-&gt;caching = true;
		$this-&gt;cache_lifetime = 120;

		//log_message(&#039;debug&#039;, &quot;Smarty Class Initialized&quot;);
	}

	function view($template_name) {
		if (strpos($template_name, &#039;.&#039;) === FALSE &amp;&amp; strpos($template_name, &#039;:&#039;) === FALSE) {
			$template_name .= &#039;.tpl&#039;;
		}
		parent::display($template_name);
	}

}

?&gt;</pre>
<p>You will also need to make CodeIgniter autoload the smarty library by changing the autoload.php of CodeIgniter as following</p>
<pre class="brush: php">/*
| -------------------------------------------------------------------
|  Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in the system/libraries folder
| or in your application/libraries folder.
|
| Prototype:
|
|	$autoload[&#039;libraries&#039;] = array(&#039;database&#039;, &#039;session&#039;, &#039;xmlrpc&#039;);
*/

$autoload[&#039;libraries&#039;] = array(&#039;database&#039;, &#039;session&#039;, &#039;pagination&#039;, &#039;smarty&#039;);</pre>
<p>OK. that must be fine now. We will run a test soon.</p>
<h5>4. Test Smarty and CodeIgniter integration.</h5>
<p>Here is the final step, you need to test the correctness of the integration. I won’t reinvent the wheel but use the example of smarty. Please find in the Smartydemo folder a file name index.php, here is its content.</p>
<pre class="brush: php">&lt;?php
 /**
 * Example Application

 * @package Example-application
 */

require(&#039;../libs/Smarty.class.php&#039;);

$smarty = new Smarty;

//$smarty-&gt;force_compile = true;
$smarty-&gt;debugging = true;
$smarty-&gt;caching = true;
$smarty-&gt;cache_lifetime = 120;

$smarty-&gt;assign(&quot;Name&quot;,&quot;Fred Irving Johnathan Bradley Peppergill&quot;,true);
$smarty-&gt;assign(&quot;FirstName&quot;,array(&quot;John&quot;,&quot;Mary&quot;,&quot;James&quot;,&quot;Henry&quot;));
$smarty-&gt;assign(&quot;LastName&quot;,array(&quot;Doe&quot;,&quot;Smith&quot;,&quot;Johnson&quot;,&quot;Case&quot;));
$smarty-&gt;assign(&quot;Class&quot;,array(array(&quot;A&quot;,&quot;B&quot;,&quot;C&quot;,&quot;D&quot;), array(&quot;E&quot;, &quot;F&quot;, &quot;G&quot;, &quot;H&quot;),
	  array(&quot;I&quot;, &quot;J&quot;, &quot;K&quot;, &quot;L&quot;), array(&quot;M&quot;, &quot;N&quot;, &quot;O&quot;, &quot;P&quot;)));

$smarty-&gt;assign(&quot;contacts&quot;, array(array(&quot;phone&quot; =&gt; &quot;1&quot;, &quot;fax&quot; =&gt; &quot;2&quot;, &quot;cell&quot; =&gt; &quot;3&quot;),
	  array(&quot;phone&quot; =&gt; &quot;555-4444&quot;, &quot;fax&quot; =&gt; &quot;555-3333&quot;, &quot;cell&quot; =&gt; &quot;760-1234&quot;)));

$smarty-&gt;assign(&quot;option_values&quot;, array(&quot;NY&quot;,&quot;NE&quot;,&quot;KS&quot;,&quot;IA&quot;,&quot;OK&quot;,&quot;TX&quot;));
$smarty-&gt;assign(&quot;option_output&quot;, array(&quot;New York&quot;,&quot;Nebraska&quot;,&quot;Kansas&quot;,&quot;Iowa&quot;,&quot;Oklahoma&quot;,&quot;Texas&quot;));
$smarty-&gt;assign(&quot;option_selected&quot;, &quot;NE&quot;);

$smarty-&gt;display(&#039;index.tpl&#039;);
?&gt;</pre>
<p>OK I will turn it into a CodeIgniter Controller so you can run it now. In the controller folder of CodeIgniter application folder,  create a file name <strong>testsmarty.php</strong> as following:</p>
<pre class="brush: php">&lt;?php
class Testsmarty extends CI_Controller {

	function __construct() {
		parent::__construct();
	}

	function index() {
		$this-&gt;smarty-&gt;assign(&quot;Name&quot;,&quot;Fred Irving Johnathan Bradley Peppergill&quot;,true);
		$this-&gt;smarty-&gt;assign(&quot;FirstName&quot;,array(&quot;John&quot;,&quot;Mary&quot;,&quot;James&quot;,&quot;Henry&quot;));
		$this-&gt;smarty-&gt;assign(&quot;LastName&quot;,array(&quot;Doe&quot;,&quot;Smith&quot;,&quot;Johnson&quot;,&quot;Case&quot;));
		$this-&gt;smarty-&gt;assign(&quot;Class&quot;,array(array(&quot;A&quot;,&quot;B&quot;,&quot;C&quot;,&quot;D&quot;), array(&quot;E&quot;, &quot;F&quot;, &quot;G&quot;, &quot;H&quot;),
		array(&quot;I&quot;, &quot;J&quot;, &quot;K&quot;, &quot;L&quot;), array(&quot;M&quot;, &quot;N&quot;, &quot;O&quot;, &quot;P&quot;)));

		$this-&gt;smarty-&gt;assign(&quot;contacts&quot;, array(array(&quot;phone&quot; =&gt; &quot;1&quot;, &quot;fax&quot; =&gt; &quot;2&quot;, &quot;cell&quot; =&gt; &quot;3&quot;),
		array(&quot;phone&quot; =&gt; &quot;555-4444&quot;, &quot;fax&quot; =&gt; &quot;555-3333&quot;, &quot;cell&quot; =&gt; &quot;760-1234&quot;)));

		$this-&gt;smarty-&gt;assign(&quot;option_values&quot;, array(&quot;NY&quot;,&quot;NE&quot;,&quot;KS&quot;,&quot;IA&quot;,&quot;OK&quot;,&quot;TX&quot;));
		$this-&gt;smarty-&gt;assign(&quot;option_output&quot;, array(&quot;New York&quot;,&quot;Nebraska&quot;,&quot;Kansas&quot;,&quot;Iowa&quot;,&quot;Oklahoma&quot;,&quot;Texas&quot;));
		$this-&gt;smarty-&gt;assign(&quot;option_selected&quot;, &quot;NE&quot;);	

		$this-&gt;smarty-&gt;view(&#039;index&#039;);

	}
}</pre>
<p><em><strong>And here is the result of the integrating:</strong></em></p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/image4.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://searchdaily.net/wp-content/uploads/2011/10/image_thumb4.png" alt="image thumb4 CodeIgniter 2 Smarty 3 integration" width="680" height="727" border="0" /></a></p>
<h5>5. Download the source code.</h5>
<p>You can download the whole integration then just change some codeigniter config and ready to run. Use svn check out at the following address:</p>
<pre>https://frameworks-integration.googlecode.com/svn/trunk/codeigniter-smarty/codeigniter2-smarty3</pre>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/codeigniter-2-smarty-3-integration/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Struts 2 Hibernate 3 Integration Blogging Example</title>
		<link>http://searchdaily.net/struts-2-hibernate-3-integration-blogging-example/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=struts-2-hibernate-3-integration-blogging-example</link>
		<comments>http://searchdaily.net/struts-2-hibernate-3-integration-blogging-example/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 15:20:50 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Framework Integration]]></category>

		<guid isPermaLink="false">http://searchdaily.net/?p=2589</guid>
		<description><![CDATA[In this tutorial, I will guide you to integrate 2 power frameworks for Java EE application: Struts 2 and Hibernate 3 (I used the latest library version of them to the time I wrote this post). The example we will use is a simple blog, here is how it looks We will develop some main <a href='http://searchdaily.net/struts-2-hibernate-3-integration-blogging-example/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>In this tutorial, I will guide you to integrate 2 power frameworks for Java EE application: <strong>Struts 2 and Hibernate 3</strong> (I used the<strong> latest library version of them</strong> to the time I wrote this post). The example we will use is a simple blog, here is how it looks</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/struts-hibernate-integration-blogging-example.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="struts-hibernate-integration-blogging-example" src="http://searchdaily.net/wp-content/uploads/2011/10/struts-hibernate-integration-blogging-example_thumb.png" alt="struts hibernate integration blogging example thumb Struts 2 Hibernate 3 Integration Blogging Example" width="821" height="616" border="0" /></a></p>
<p>We will develop some main features of a blogging application:</p>
<ul>
<li><strong>To Create New Post</strong></li>
<li><strong>To List All Posts in One Page</strong></li>
<li><strong>To Manage Post: Edit/Remove Posts.</strong></li>
</ul>
<p>Software and Library needed:</p>
<ul>
<li><strong>Eclipse Indigo 3.7</strong></li>
<li><strong>Apache Tomcat 7.0</strong></li>
<li><strong>MySQL 5</strong></li>
<li><strong>MySQL Workbench</strong></li>
<li><strong>Struts 2.2.3.1</strong></li>
<li><strong>Hibernate Core 3.6.7</strong></li>
<li><strong>slf4j-1.6.2</strong></li>
<li><strong>apache-log4j-1.2.16</strong></li>
<li><strong>JSTL 1.2</strong></li>
</ul>
<p><em>Note: All of these are the latest up to October 2011.</em></p>
<h5>1. Setup Eclipse, Tomcat and New Struts-Hibernate Project Lib</h5>
<p>In Eclipse, select Java EE perspective. <a href="http://searchdaily.net/wp-content/uploads/2011/10/image.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://searchdaily.net/wp-content/uploads/2011/10/image_thumb.png" alt="image thumb Struts 2 Hibernate 3 Integration Blogging Example" width="230" height="36" border="0" /></a></p>
<p>In the Server view, right click and select New to create a new Instance of Tomcat 7 (if you don’t have one).</p>
<p>Now from Eclipse, right click in <strong>Project Explorer </strong>then select New &gt; Web &gt; Dynamic Web Project</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/new-struts-hibernate-project.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="new-struts-hibernate-project" src="http://searchdaily.net/wp-content/uploads/2011/10/new-struts-hibernate-project_thumb.png" alt="new struts hibernate project thumb Struts 2 Hibernate 3 Integration Blogging Example" width="525" height="500" border="0" /></a></p>
<p>Enter <strong>struts-hibernate-integration</strong> as the project name, select Tomcat 7 as the Runtime Server and you’ll be ready with a project structure like this.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/image1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://searchdaily.net/wp-content/uploads/2011/10/image_thumb1.png" alt="image thumb1 Struts 2 Hibernate 3 Integration Blogging Example" width="287" height="144" border="0" /></a></p>
<p>Now you need to configure library for the application.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/10/struts-hibernate-library.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="struts-hibernate-library" src="http://searchdaily.net/wp-content/uploads/2011/10/struts-hibernate-library_thumb.png" alt="struts hibernate library thumb Struts 2 Hibernate 3 Integration Blogging Example" width="452" height="353" border="0" /></a></p>
<p>Please find the above jar file in these location:</p>
<ul>
<li><strong>struts-2.2.3.1lib</strong></li>
<li><strong>hibernate-distribution-3.6.7.Final</strong></li>
<li><strong>hibernate-distribution-3.6.7.Finallibrequired</strong></li>
<li><strong>hibernate-distribution-3.6.7.Finallibjpa</strong></li>
<li><strong>slf4j-1.6.2</strong></li>
<li><strong>apache-log4j-1.2.16</strong></li>
<li><strong>jstl-1.2</strong></li>
</ul>
<p>Now if you collect all of the above jar files, please copy them all to the folder <strong>WebContent &gt; WEB-INF &gt; lib</strong></p>
<h5>2. Configure Struts 2 Application</h5>
<p>Your next step is to configure Struts 2 Application and to make sure it will work.</p>
<p>First thing to do is to configure Struts 2 Filter in web.xml file (find this file under <strong>WebContent &gt; WEB-INF </strong>folder. Configure it like this: <strong>web.xml file.</strong></p>
<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5"&gt;
	&lt;display-name&gt;struts-hibernate-integration&lt;/display-name&gt;
	&lt;filter&gt;
		&lt;filter-name&gt;struts2&lt;/filter-name&gt;
		&lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;
	&lt;/filter&gt;
	&lt;filter-mapping&gt;
		&lt;filter-name&gt;struts2&lt;/filter-name&gt;
		&lt;url-pattern&gt;/*&lt;/url-pattern&gt;
	&lt;/filter-mapping&gt;
	&lt;welcome-file-list&gt;
		&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
	&lt;/welcome-file-list&gt;
&lt;/web-app&gt;</pre>
<p>Create an XML file with name: <strong>struts.xml</strong> and put it under your <strong>src</strong> folder (to make sure it will visible in build folder when we deploy), with the following content.</p>
<pre class="brush: xml">&lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"&gt;
&lt;struts&gt;
	&lt;package name="default" extends="struts-default" namespace="/blog"&gt;
		&lt;action name="listBlog" method="listBlog"
			class="com.googlecode.frameworksintegration.action.BlogAction"&gt;
			&lt;result name="success"&gt;/blog_listing.jsp&lt;/result&gt;
		&lt;/action&gt;
		&lt;action name="newBlog" method="renderAddBlog"
			class="com.googlecode.frameworksintegration.action.BlogAction"&gt;
			&lt;result name="success"&gt;/blog_adding.jsp&lt;/result&gt;
		&lt;/action&gt;

		&lt;action name="addBlog" method="addBlog"
			class="com.googlecode.frameworksintegration.action.BlogAction"&gt;
			&lt;result name="success"&gt;/notifications.jsp&lt;/result&gt;
		&lt;/action&gt;

		&lt;action name="manageBlog" method="manageBlog"
			class="com.googlecode.frameworksintegration.action.BlogAction"&gt;
			&lt;result name="success"&gt;/blog_manage.jsp&lt;/result&gt;
		&lt;/action&gt;

		&lt;action name="deleteBlog" method="deleteBlog"
			class="com.googlecode.frameworksintegration.action.BlogAction"&gt;
			&lt;result name="success"&gt;/notifications.jsp&lt;/result&gt;
		&lt;/action&gt;
	&lt;/package&gt;
&lt;/struts&gt;</pre>
<p>You can see in the above struts config file that all the action we use in this example is point to BlogAction class, here is its content:</p>
<pre class="brush: java">package com.googlecode.frameworksintegration.action;

import java.util.List;

import com.googlecode.frameworksintegration.dao.BlogDAO;
import com.googlecode.frameworksintegration.dao.BlogDAOImpl;
import com.googlecode.frameworksintegration.domain.Blog;
import com.opensymphony.xwork2.ActionSupport;

/**
 * Struts 2 Integrated with Hibernate 3 blogging example.
 * http://java.searchdaily.net
 * @author namnvhue
 *
 */
public class BlogAction extends ActionSupport {
	private BlogDAO blogDAO = null;
	private List&lt;Blog&gt; blogs;
	private Blog blog;
	private String message;
	private String blogId;

	/**
	 *
	 */
	public BlogAction() {
		this.blogDAO = new BlogDAOImpl();
	}

	private static final long serialVersionUID = -4901097198092626247L;

	public String listBlog() {
		this.blogs = blogDAO.listBlogs();

		return SUCCESS;
	}

	public String manageBlog() {
		this.blogs = blogDAO.listBlogs();

		return SUCCESS;
	}

	public String renderAddBlog() {
		this.blog = new Blog();
		return SUCCESS;
	}

	public String addBlog() {
		blogDAO.save(this.blog);
		this.message = "Blog has been created successfully.";
		return SUCCESS;
	}

	public String deleteBlog() {
		this.blog = this.blogDAO.find(Integer.parseInt(blogId));
		this.blogDAO.delete(blog);
		this.message = "Blog has been removed successfully.";
		return SUCCESS;
	}

	public String editBlog() {
		return SUCCESS;
	}

	public String detail(String id) {
		return SUCCESS;
	}

	public List&lt;Blog&gt; getBlogs() {
		return blogs;
	}

	public void setBlogs(List&lt;Blog&gt; blogs) {
		this.blogs = blogs;
	}

	public Blog getBlog() {
		return blog;
	}

	public void setBlog(Blog blog) {
		this.blog = blog;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public String getBlogId() {
		return blogId;
	}

	public void setBlogId(String blogId) {
		this.blogId = blogId;
	}

}</pre>
<p>If you enter all the above code now, Eclipse will give you some compiling error, but don’t worry, we will fix it softly.</p>
<h5>3. Prepare MySQL database and Configure JPA persistence unit</h5>
<p>We will use MySQL 5 as the database and JPA over Hibernate 3, first thing to do is to create a new schema named <strong>blog </strong>and create a blog table with the following structure:</p>
<pre class="brush: java">CREATE TABLE `blog` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `CONTENT` text,
  `POSTED_BY` varchar(255) DEFAULT NULL,
  `POSTED_DATE` datetime DEFAULT NULL,
  `TITLE` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;</pre>
<p>Now in the src folder of the project, create a folder name: <strong>META-INF</strong> and create inside it a file name: <strong>persistence.xml.</strong></p>
<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence <a href="http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd&quot;	version=&quot;2.0&quot;&gt;	&lt;persistence-unit">http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"&gt; &lt;persistence-unit</a> name="blogds"&gt;
		&lt;class&gt;com.googlecode.frameworksintegration.domain.Blog&lt;/class&gt;
		&lt;properties&gt;
			&lt;property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/blog" /&gt;
			&lt;property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /&gt;
			&lt;property name="hibernate.connection.password" value="mysql_password" /&gt;
			&lt;property name="hibernate.connection.username" value="mysql_user" /&gt;
			&lt;property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /&gt;
		&lt;/properties&gt;
	&lt;/persistence-unit&gt;
&lt;/persistence&gt;</pre>
<h5>4. Configure Hibernate and DAO layer for Struts Application.</h5>
<p>Now you will see how to configure an entity for using Hibernate. Here is the Blog class you see as the domain object in BlogAction action before.</p>
<pre class="brush: java">package com.googlecode.frameworksintegration.domain;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Struts 2 Integrated with Hibernate 3 blogging example.
 * http://java.searchdaily.net
 * @author namnvhue
 *
 */
@Entity
@Table(name = "BLOG")
public class Blog {

	private Integer id;
	private String title;
	private String content;
	private Date postedDate;
	private String postedBy;

	@Id
	@GeneratedValue
	@Column(name = "ID")
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "CONTENT")
	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	@Column(name = "POSTED_DATE")
	@Temporal(TemporalType.TIMESTAMP)
	public Date getPostedDate() {
		return postedDate;
	}

	public void setPostedDate(Date postedDate) {
		this.postedDate = postedDate;
	}

	@Column(name = "POSTED_BY")
	public String getPostedBy() {
		return postedBy;
	}

	public void setPostedBy(String postedBy) {
		this.postedBy = postedBy;
	}

	@Column(name = "TITLE")
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

}</pre>
<p>The blogDAO interface:</p>
<pre class="brush: java">package com.googlecode.frameworksintegration.dao;

import java.util.List;

import com.googlecode.frameworksintegration.domain.Blog;

/**
 * Struts 2 Integrated with Hibernate 3 blogging example.
 * http://java.searchdaily.net
 *
 * @author namnvhue
 *
 */
public interface BlogDAO {
	public Blog find(Integer id);

	public List listBlogs();

	public void save(Blog blog);

	public void delete(Blog blog);
}</pre>
<p>The implementation of blogDAO using Hibernate</p>
<pre class="brush: java">package com.googlecode.frameworksintegration.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

import com.googlecode.frameworksintegration.domain.Blog;
/**
 * Struts 2 Integrated with Hibernate 3 blogging example.
 * http://java.searchdaily.net
 * @author namnvhue
 *
 */
public class BlogDAOImpl implements BlogDAO {
	private EntityManagerFactory entityManagerFactory;
	private EntityManager entityManager;

	public BlogDAOImpl() {
		this.entityManagerFactory = Persistence
				.createEntityManagerFactory("blogds");
		this.entityManager = entityManagerFactory.createEntityManager();
	}

	@SuppressWarnings("unchecked")
	@Override
	public List listBlogs() {
		Query q = entityManager.createQuery("select blog from Blog blog");
		return q.getResultList();

	}

	@Override
	public void save(Blog blog) {
		entityManager.getTransaction().begin();
		entityManager.persist(blog);
		entityManager.flush();
		entityManager.getTransaction().commit();
	}

	@Override
	public void delete(Blog blog) {
		entityManager.getTransaction().begin();
		entityManager.remove(blog);
		entityManager.flush();
		entityManager.getTransaction().commit();
	}

	public EntityManager getEntityManager() {
		return entityManager;
	}

	@Override
	public Blog find(Integer id) {
		return entityManager.find(Blog.class, id);

	}

}</pre>
<p>You won’t see any import from Hibernate here, because we use Hibernate as a Persistence Provider to JPA and for a standard rule, more and more projects are using it this way.</p>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/struts-2-hibernate-3-integration-blogging-example/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>HTML5 Input Types on Different Browsers</title>
		<link>http://searchdaily.net/html5-input-types-on-different-browsers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=html5-input-types-on-different-browsers</link>
		<comments>http://searchdaily.net/html5-input-types-on-different-browsers/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 09:12:44 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[HTML5 ColorPicker]]></category>
		<category><![CDATA[HTML5 DatePicker]]></category>
		<category><![CDATA[HTML5 DatePicker Opera]]></category>
		<category><![CDATA[HTML5 Email Validation]]></category>
		<category><![CDATA[HTML5 Input Types on Various Browsers]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://searchdaily.net/html5/html5-input-types-on-different-browsers.html</guid>
		<description><![CDATA[Today I do a simple test of new HTML5 Input Types on Different Browsers and here I will show you some interesting results. Firefox, Chrome, Safari, Opera and Internet Explorer are as much major browser as I can get. The test will run on the following input types: No. Type Description 1. tel The input <a href='http://searchdaily.net/html5-input-types-on-different-browsers/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>Today I do a simple test of new HTML5 Input Types on Different Browsers and here I will show you some interesting results.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image34.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image thumb34 HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb34.png" width="374" height="42" /></a></p>
<p>Firefox, Chrome, Safari, Opera and Internet Explorer are as much major browser as I can get. The test will run on the following input types:</p>
<table id="table5" border="1" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<th width="30" align="left">No.</th>
<th width="171" align="left">Type</th>
<th width="890" align="left">Description</th>
</tr>
<tr>
<td>1.</td>
<td>tel</td>
<td>The input value is of type telephone number</td>
</tr>
<tr>
<td>2.</td>
<td>search</td>
<td>The input field is a search field</td>
</tr>
<tr>
<td>3.</td>
<td>url</td>
<td>The input value is a URL</td>
</tr>
<tr>
<td>4.</td>
<td>email</td>
<td>The input value is one or more email addresses</td>
</tr>
<tr>
<td>5.</td>
<td>datetime</td>
<td>The input value is a date and/or time</td>
</tr>
<tr>
<td>6.</td>
<td>date</td>
<td>The input value is a date</td>
</tr>
<tr>
<td>7.</td>
<td>month</td>
<td>The input value is a month</td>
</tr>
<tr>
<td>8.</td>
<td>week</td>
<td>The input value is a week</td>
</tr>
<tr>
<td>9.</td>
<td>time</td>
<td>The input value is of type time</td>
</tr>
<tr>
<td>10.</td>
<td>datetime-local</td>
<td>The input value is a local date/time</td>
</tr>
<tr>
<td>11.</td>
<td>number</td>
<td>The input value is a number</td>
</tr>
<tr>
<td>12.</td>
<td>range</td>
<td>The input value is a number in a given range</td>
</tr>
<tr>
<td>13.</td>
<td>color</td>
<td>The input value is a hexadecimal color, like #FF8800</td>
</tr>
</tbody>
</table>
<p>In the past you will see only &lt;input type=”text”… /&gt; or &lt;input type=”button”…/&gt; Now HTML5 comes with these types new types of input to help you <strong>simplify the process of designing and coding web application</strong>. I only need design a simple source code for the test, here it goes:</p>
<pre class="brush: xhtml">&lt;form action=&quot;input-test.html&quot; method=&quot;get&quot;&gt;
		&lt;table&gt;
			&lt;tr&gt;
				&lt;td&gt;&lt;strong&gt;Input Type&lt;/strong&gt;&lt;/td&gt;
				&lt;td&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td&gt;Telephone&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;tel&quot; name=&quot;tel&quot; value=&quot;12345&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Search&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;search&quot; name=&quot;search&quot; value=&quot;type in keyword&quot; /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;URL&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;URL&quot; name=&quot;url&quot; value=&quot;http://searchdaily.net&quot; /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Email&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;email&quot; name=&quot;email&quot;
					value=&quot;nam@searchdaily.net&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Datetime&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;datetime&quot; name=&quot;datetime&quot; value=&quot;2011-09-17&quot; /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;


			&lt;tr&gt;
				&lt;td&gt;Datetime-Local&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;datetime-local&quot; name=&quot;datetime_local&quot;
					value=&quot;2011-09-17&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Date&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;date&quot; name=&quot;date&quot; value=&quot;2011-09-17&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Time&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;time&quot; name=&quot;time&quot; value=&quot;16:40&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Month&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;month&quot; name=&quot;month&quot; value=&quot;08&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Week&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;week&quot; name=&quot;week&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Number&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;number&quot; name=&quot;number&quot; value=&quot;1234&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Range&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;range&quot; name=&quot;range&quot; min=&quot;1&quot; max=&quot;100&quot;
					value=&quot;70&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;tr&gt;
				&lt;td&gt;Color&lt;/td&gt;
				&lt;td&gt;&lt;input type=&quot;color&quot; name=&quot;color&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	&lt;/form&gt;</pre>
<p>Which eventually should look like this:</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image35.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image thumb35 HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb35.png" width="265" height="382" /></a></p>
<p>Now I will run the test file through various browser to see its result. </p>
<p>First is Chrome (13.0), because I know it best supports HTML5 at the moment.</p>
<h5>HTML5 Input Types support in Google Chrome</h5>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/chrome-html5-input-compatible.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="chrome-html5-input-compatible" border="0" alt="chrome html5 input compatible thumb HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/chrome-html5-input-compatible_thumb.png" width="368" height="424" /></a></p>
<p><strong>Most of input are supported now by Chrome, but datepicker is not visible yet, we can only change date/time by input it manually or to increase/decrease it.</strong></p>
<p>HTML5 Colorpicker is not supported as well, not like what I can see later on Opera.</p>
<p>Now let’s move to the latest Opera (11.50)</p>
<h5>HTML5 Input Types supports in Opera</h5>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/opera-html5-input-compatible.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="opera-html5-input-compatible" border="0" alt="opera html5 input compatible thumb HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/opera-html5-input-compatible_thumb.png" width="454" height="368" /></a></p>
<p>You won’t see Opera can suggest URL like Chrome can do and Opera doesn’t support Search either, but <strong>It can support great Color Picker, let see what I can capture from Opera if I click on the Color</strong>:</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image36.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image thumb36 HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb36.png" width="323" height="110" /></a></p>
<p>And here is what it can give if you want the full color picker.</p>
<p><span id="more-2328"></span>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image37.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image thumb37 HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb37.png" width="467" height="341" /></a></p>
<p>Interesting isn’t it? The value after selecting will be converted into Hex value and submit to server along with the form, so <strong>you won’t need to configure error potential javascript to popup color picker and parse value for your website anymore with HTML5.</strong></p>
<p>Another goodness you can see on Opera right now is the HTML5 DatePicker, it’s totally helpful just like the colorpicker</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image38.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image thumb38 HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb38.png" width="382" height="278" /></a></p>
<p>How about Safari? I’ve tested this on Safari 5.1</p>
<h5>HTML5 Input Types supports on Safari</h5>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/safari-html5-input-compatible.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="safari-html5-input-compatible" border="0" alt="safari html5 input compatible thumb HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/safari-html5-input-compatible_thumb.png" width="360" height="415" /></a></p>
<p>The result is so similar to Opera except that ColorPicker isn’t supported in Safari. And you won’t see DatePicker either, it’s just like Chrome, you can increase and decrease date/time value.</p>
<p>Now you might ask me why didn’t I show Firefox? I’ve tested this demo with Firefox 6 (6.0.2 at the moment) and it gives me nothing, here is the result of Firefox</p>
<h5>HTML5 Input Types supports on Firefox</h5>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/firefox-html5-input-compatible.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="firefox-html5-input-compatible" border="0" alt="firefox html5 input compatible thumb HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/firefox-html5-input-compatible_thumb.png" width="365" height="375" /></a></p>
<p>You can see Firefox can validate if I enter an invalid email or suggest URL, but nothing more, you won’t see anything else support at least yet.</p>
<p>And the last browser we need to test is Internet Explorer, I have the latest version here (IE 9) but just like Firefox, I don’t see anything here yet.</p>
<h5>HTML5 Input Types supports on Internet Explorer </h5>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/ie9-html5-input-compatible.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="ie9-html5-input-compatible" border="0" alt="ie9 html5 input compatible thumb HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/ie9-html5-input-compatible_thumb.png" width="397" height="361" /></a></p>
<p><strong>Internet Explorer must be the less support HTML5 at the moment</strong>, and Internet Explorer 10 is shipped with Windows 8 as I can see on the previous its preview version. </p>
<p>At the moment we can only see the beautiful and simplicity of new HTML5 Input on Opera and Chrome for goodshake. </p>
<p>Here is the history of version these browsers started to support some of the above Input Types:</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image39.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image thumb39 HTML5 Input Types on Different Browsers" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb39.png" width="644" height="214" /></a></p>
<p>If you want to run the test on your own browser, just <a href="http://searchdaily.net/ufiles/html5-browsers-input-test.html" target="_blank">click here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/html5-input-types-on-different-browsers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dropbox – a Good and Free Portable Disk for hitech-er</title>
		<link>http://searchdaily.net/dropbox-a-good-and-free-portable-disk-for-hitech-er/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dropbox-a-good-and-free-portable-disk-for-hitech-er</link>
		<comments>http://searchdaily.net/dropbox-a-good-and-free-portable-disk-for-hitech-er/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 15:47:44 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[BlackBerry. Dropbox]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[File Sync Apps]]></category>
		<category><![CDATA[Good and Free Portable Disk]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Save Valuable Data]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://searchdaily.net/main/dropbox-%e2%80%93-a-good-and-free-portable-disk-for-hitech-er.html</guid>
		<description><![CDATA[Dropbox is a free service that lets you bring your photos, docs, and videos anywhere and share them easily. You&#8217;ll never neend to email yourself a file again! Your files, anywhere Any file you save to Dropbox also instantly saves to your computers, phones, and the Dropbox website. 2GB of Dropbox for free, with subscriptions <a href='http://searchdaily.net/dropbox-a-good-and-free-portable-disk-for-hitech-er/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p><em>Dropbox is</em> a free service that lets you bring your photos, docs, and videos anywhere and share them easily. You&#8217;ll never neend to email yourself a file again!</p>
<p style="background: white;"><span style="font-size: 14pt;"><strong>Your files, anywhere </strong></span></p>
<p style="background: white;"><strong>Any file you save to Dropbox also instantly saves to your computers, phones, and the Dropbox website. </strong></p>
<ul>
<li>
<div style="background: white;"><img src="http://searchdaily.net/wp-content/uploads/2011/09/091411_1547_Dropboxagoo1.png" alt="091411 1547 Dropboxagoo1 Dropbox – a Good and Free Portable Disk for hitech er" align="left" title="Dropbox – a Good and Free Portable Disk for hitech er" />2GB of Dropbox for free, with subscriptions up to 100GB available.</div>
</li>
<li>
<div style="background: white;">Your files are always available from the secure Dropbox website.</div>
</li>
<li>
<div style="background: white;">Dropbox works with <a href="https://www.dropbox.com/downloading?os=win">Windows</a>, <a href="https://www.dropbox.com/downloading?os=mac">Mac</a>, <a href="https://www.dropbox.com/downloading?os=lnx">Linux</a>, <a href="https://www.dropbox.com/ipad">iPad</a>, <a href="https://www.dropbox.com/iphoneapp">iPhone</a>, <a href="https://www.dropbox.com/android">Android</a> and <a href="https://www.dropbox.com/blackberry">BlackBerry</a>.</div>
</li>
<li>
<div style="background: white;">Works even when offline. You always have your files, whether or not you have a connection.</div>
</li>
<li>
<div style="background: white;">Dropbox transfers just the parts of a file that change (not the whole thing).</div>
</li>
<li>
<div style="background: white;">Manually set bandwidth limits &#8212; Dropbox won&#8217;t hog your connection.</div>
</li>
</ul>
<p style="background: white;">
<p style="background: white;">
<p style="background: white;">
<p style="background: white;">
<p style="background: white;"><span style="font-size: 14pt;"><strong>Simple sharing </strong></span></p>
<p style="background: white;"><strong>Shared folders allow people to work together on the same projects and documents. </strong></p>
<ul>
<li>
<div style="background: white;"><img src="http://searchdaily.net/wp-content/uploads/2011/09/091411_1547_Dropboxagoo2.png" alt="091411 1547 Dropboxagoo2 Dropbox – a Good and Free Portable Disk for hitech er" align="left" title="Dropbox – a Good and Free Portable Disk for hitech er" />Invite friends, family or teammates to a folder. It&#8217;ll be as if you saved the folder to their computers.</div>
</li>
<li>
<div style="background: white;">See other people&#8217;s changes instantly.</div>
</li>
<li>
<div style="background: white;">Create photo galleries viewable by anyone you choose.</div>
</li>
<li>
<div style="background: white;">Send a link to any file in your Dropbox using your Public folder.</div>
</li>
</ul>
<p style="background: white;">
<p style="background: white;">
<p style="background: white;"><span style="font-size: 14pt;"><strong><span id="more-2229"></span>Dropbox mobile </strong></span></p>
<p style="background: white;"><strong>Apps for iPhone, iPad, Android, and BlackBerry keep your Dropbox at hand, even on the go.</strong><br />
<img src="http://searchdaily.net/wp-content/uploads/2011/09/091411_1547_Dropboxagoo3.png" alt="091411 1547 Dropboxagoo3 Dropbox – a Good and Free Portable Disk for hitech er" align="left" title="Dropbox – a Good and Free Portable Disk for hitech er" /></p>
<ul>
<li>
<div style="background: white;">Bring your files with you when you&#8217;re on the go.</div>
</li>
<li>
<div style="background: white;">Edit files in your Dropbox from your phone.</div>
</li>
<li>
<div style="background: white;">Easily upload your photos and videos to Dropbox.</div>
</li>
<li>
<div style="background: white;">Share freely with family and friends.</div>
</li>
</ul>
<p style="background: white;">
<p style="background: white;">
<p style="background: white;">
<p style="background: white;">
<p style="background: white;">
<p style="background: white;"><span style="font-size: 14pt;"><strong>Your stuff is safe </strong></span></p>
<p style="background: white;"><strong>Dropbox protects your files without you needing to think about it.</strong></p>
<ul>
<li>
<div style="background: white;"><img src="http://searchdaily.net/wp-content/uploads/2011/09/091411_1547_Dropboxagoo4.png" alt="091411 1547 Dropboxagoo4 Dropbox – a Good and Free Portable Disk for hitech er" align="left" title="Dropbox – a Good and Free Portable Disk for hitech er" />Dropbox keeps a one-month history of your work.</div>
</li>
<li>
<div style="background: white;">Any changes can be undone, and files can be undeleted.</div>
</li>
<li>
<div style="background: white;">Secure Sockets Layer (SSL) and AES-256 bit encryption.</div>
</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>With Dropbox, your files always be synchronized and it&#8217;s all automatic. Dropbox is a perfect alternation for attaching file in your email, using USB to transfer file to another device, more and so more.</p>
<p>All on that, it provide you 2Gb free space and registered easily. You can register free <a href="http://db.tt/bnzmnt0"><span style="color: blue; text-decoration: underline;"><strong>here</strong></span></a><strong><br />
</strong>and download the tiny supporting software for Windows in this <a href="https://www.dropbox.com/downloading?os=win"><span style="color: blue; text-decoration: underline;"><strong>link</strong></span></a><strong>. </strong>You should install this tool to get all feature of Dropbox. Have fun <img src='http://searchdaily.net/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Dropbox – a Good and Free Portable Disk for hitech er" class='wp-smiley' title="Dropbox – a Good and Free Portable Disk for hitech er" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/dropbox-a-good-and-free-portable-disk-for-hitech-er/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canon and Nikon Battery Charger List</title>
		<link>http://searchdaily.net/canon-nikon-battery-charger-list/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=canon-nikon-battery-charger-list</link>
		<comments>http://searchdaily.net/canon-nikon-battery-charger-list/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 10:50:31 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[Lookup]]></category>
		<category><![CDATA[Battery Charger for Canon Powershot camera]]></category>
		<category><![CDATA[CANON Battery Charger]]></category>
		<category><![CDATA[Find canon battery charger]]></category>
		<category><![CDATA[Find Charger for my Canon/Nikon]]></category>
		<category><![CDATA[Nikon and Canon Charger]]></category>
		<category><![CDATA[Nikon Battery Charger]]></category>
		<category><![CDATA[Nikon Battery Charger List]]></category>

		<guid isPermaLink="false">http://searchdaily.net/main/what-the-appropriate-battery-and-charge-for-your-camera.html</guid>
		<description><![CDATA[Model Battery Charger CANON G12 NB-7L CB-2LZE CANON G11 NB-7L CB-2LZE CANON G10 NB-7L CB-2LZE CANON G9 NB-2L / 2LH CB-2LW CANON G7 NB-2L / 2LH CB-2LW CANON G6 BP-511A CG-580 CANON G5 BP-511A CG-580 CANON G3 BP-511A CG-580 CANON G2 BP-511A CG-580 CANON SX30 IS NB-7L CB-2LZE CANON SX20 IS AA AA charger CANON <a href='http://searchdaily.net/canon-nikon-battery-charger-list/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 271px;" />
<col style="width: 101px;" />
<col style="width: 102px;" /></colgroup>
<tbody valign="top">
<tr>
<td style="border: inset 0.75pt; padding: 1px;" valign="middle"><span style="color: blue;"><strong>Model</strong></span></td>
<td style="border-top: inset 0.75pt; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;"><span style="color: blue;"><strong>Battery</strong></span></p>
</td>
<td style="border-top: inset 0.75pt; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;"><span style="color: blue;"><strong>Charger</strong></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON G12</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-7L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LZE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON G11</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-7L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LZE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON G10</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-7L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LZE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON G9</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2L / 2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON G7</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2L / 2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON G6</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON G5</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON G3</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON G2</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX30 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-7L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LZE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX20 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX10 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX1 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX210 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX200 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX100 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX110 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX120 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SX130 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON E1</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON D10</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S95</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S90</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S80</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2L / 2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S70</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2L / 2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S60</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2L / 2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S50</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2L / 2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S45</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2L / 2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S40</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2L / 2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 50S</strong> (IXUS 1000 HS  &#8211; SD4500 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 30S</strong> (IXUS 300 HS &#8211; SD4000 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 10S</strong> (IXUS 210 IS &#8211; SD3500 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 200F</strong> (IXUS 105 IS &#8211; SD1300 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 400F</strong> (IXUS 130 IS &#8211; SD1400 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 220 IS</strong> (IXUS 120 IS &#8211; SD940 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 930 IS</strong> (IXUS 200 IS &#8211; SD980 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 510 IS</strong> (IXUS 110 IS &#8211; SD960 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 210 IS</strong> (IXUS 100 IS &#8211; SD780 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 110 IS</strong> (IXUS 95 IS &#8211; SD1200 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 920 IS</strong> (IXUS 870 IS &#8211; SD880 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 910 IS</strong> (IXUS 860 IS &#8211; SD870 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 900 IS</strong> (IXUS 850 IS &#8211; SD800 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 830 IS</strong> (IXUS 990 IS &#8211; SD970 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 820 IS</strong> (IXUS 970 IS &#8211; SD890 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 810 IS</strong> (IXUS 950 IS &#8211; SD850 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 800 IS</strong> (IXUS 800 IS &#8211; SD700 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 700</strong> (IXUS 750 &#8211; SD550 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-3L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LUE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 600</strong> (IXUS 700 &#8211; SD500 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-3L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LUE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 400</strong> (IXUS 400 &#8211; SD400 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 25 IS</strong> (IXUS 85 IS &#8211; SD770 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-6L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LYE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 20 IS</strong> (IXUS 80 IS &#8211; SD1100 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 10 IS</strong> (IXUS 70 IS &#8211; SD1000 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 95 IS</strong> (IXUS 90 IS &#8211; SD790 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 90 IS</strong> (IXUS 75 &#8211; SD750 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 80 IS</strong> (IXUS 65 &#8211; SD630 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 70 IS</strong> (IXUS 60 &#8211; SD600 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 60</strong> (IXUS 55 &#8211; SD450 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 55</strong> (IXUS 50 &#8211; SD400 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 50</strong> (IXUS 40 &#8211; SD300 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 40</strong> (IXUS 30 &#8211; SD200 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">(IXUS IIs &#8211; SD110 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-3L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LUE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 3000 IS</strong> (IXUS 980 IS &#8211; SD990 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 2000 IS</strong> (IXUS 960 IS &#8211; SD950 IS)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY 1000</strong> (IXUS 900 Ti &#8211; SD900 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-5L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LXE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY L3</strong> (IXUS izoom &#8211; SD30 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY L4</strong> (IXUS I7 zoom &#8211; SD40 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON IXY Wireless</strong> (IXUS wireless &#8211; SD430 )</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S5 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S3 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S2 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A3100 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-8L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LAE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A3000 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-8L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LAE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A2000 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A1100 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A1000 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A495</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A490</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A480</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A470</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A450</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A590 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A580</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A570 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A720 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A710 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A700</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A460</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A430</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A420</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A410</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A400</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A310</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A300</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A200</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A560</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A550</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A540</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A530</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A520</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A510</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON TX1</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A650 IS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A640</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A630</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A620</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A610</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON PRO1</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A100</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A95</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A90</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A85</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A75</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A70</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A60</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A40</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON A30</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SD40</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-4L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LVE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SD20</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-3L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LUE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON SD10</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-3L</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LUE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S500</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-1L / 1LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LSE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S410</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-1L / 1LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LSE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S400</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-1L / 1LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LSE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S330</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-1L / 1LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LSE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S300</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-1L / 1LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LSE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S230</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-1L / 1LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LSE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S200</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-1L / 1LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LSE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S110</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-1L / 1LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LSE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON S100</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-1L / 1LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LSE</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS 10D</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS 20D</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS 30D</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS 40D</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS 50D</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS 60D</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS KISS</strong> (REBEL &#8211; 300D)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">BP-511A</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CG-580</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS KISS N</strong> (REBEL XT &#8211; 350D)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS KISS X</strong> (REBEL XTI &#8211; 400D)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">NB-2LH</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">CB-2LW</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS KISS F</strong> (REBEL XS &#8211; 1000D)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">LP-E5</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">LC-E5E</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS KISS X2</strong> (REBEL XSI &#8211; 450D)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">LP-E5</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">LC-E5E</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS KISS X3</strong> (REBEL T1I &#8211; 500D)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">LP-E5</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">LC-E5E</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>CANON EOS KISS X4</strong> (REBEL T2I &#8211; 550D)</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">LP-E8</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">LC-E8E</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D7000</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL15</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-25</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D3100</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL14</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-24</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D3S</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL4a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D300S</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3e</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18a</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D3000</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL9a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-23</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D5000</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL9a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-23</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D3X</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL4a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D90</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3e</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18a</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D700</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3e</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D60</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL9</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-23</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D300</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3e</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18a</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D3</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL4a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D40X</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL9</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-23</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D40</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL9</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-23</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D80</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3e</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18a</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D2Xs</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL4a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D200</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3e</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18a</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D70S</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18a</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D50</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18a</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D2Hs</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL4</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D2X</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL4</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D70</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18a</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D2H</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL4</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D100</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL3a</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-18a</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D1X</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-4</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D1H</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-4</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON D1</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-4</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-21</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S8100</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S1100pj</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L110</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L22</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L21</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S4000</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S3000</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S8000</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S6000</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S1000pj</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S70</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S640</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S570</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S230</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L20</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L19</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S220</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON P90</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S620</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L100</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S630</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S610</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S60</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S560</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL11</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-64</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S710</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S610c</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL12</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-65</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON P6000</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON P80</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S52</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S52c</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S550</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL11</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-64</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S600</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S520</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L16</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L18</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON P60</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S210</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S510</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON P50</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L15</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L14</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON P5100</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S700</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S51</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S51c</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S200</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S500</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">EN-EL10</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">MH-63</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S50</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON P5000</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L12</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L11</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L10</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S50c</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S10</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S9</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON S7c</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L6</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L5</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L4</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON P3</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON P4</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"></td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L3</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr>
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L2</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
<tr style="height: 23px;">
<td style="border-top: none; border-left: inset 0.75pt; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle"><strong>NIKON L1</strong></td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA</p>
</td>
<td style="border-top: none; border-left: none; border-bottom: inset 0.75pt; border-right: inset 0.75pt; padding: 1px;" valign="middle">
<p style="text-align: center;">AA charger</p>
</td>
</tr>
</tbody>
</table>
</div>
<p><span id="more-2203"></span> Canon and Nikon is the top brand not only in compact camera but also DSLRs. Most of us get a Canon or Nikon camera. And sometimes we need to get a new battery (and a charge also) for your photography friend, and we wonder what battery and charge we should buy, which is the fitting ones for your DRLRs. This is the list of popular camera and its battery combo name for you to search in that case. Is it really useful? Leave a comment if you think so <img src='http://searchdaily.net/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Canon and Nikon Battery Charger List" class='wp-smiley' title="Canon and Nikon Battery Charger List" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/canon-nikon-battery-charger-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Unique iPhone 4 has a Luminous Back Logo</title>
		<link>http://searchdaily.net/the-unique-iphone-4-has-a-luminous-back-logo/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-unique-iphone-4-has-a-luminous-back-logo</link>
		<comments>http://searchdaily.net/the-unique-iphone-4-has-a-luminous-back-logo/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 10:13:43 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[Update]]></category>
		<category><![CDATA[iPhone 4 has Luminous Back Logo]]></category>
		<category><![CDATA[iPhone 4 Mod Back Cover]]></category>
		<category><![CDATA[iPhone 4 Mod Logo]]></category>
		<category><![CDATA[Luminous Battery Cover for iPhone 4]]></category>

		<guid isPermaLink="false">http://searchdaily.net/main/the-unique-iphone-4-has-a-luminous-back-logo.html</guid>
		<description><![CDATA[A Vietnamese man has mod the forth-generation smartphone of Apple with a shiny back logo as in Macbook laptop, and it can be easily switch by vibration button in rear. He says that this logo use energy for vibration feature, so that it doesn&#8217;t make the front screen darker like the mod iPhone 2G, which <a href='http://searchdaily.net/the-unique-iphone-4-has-a-luminous-back-logo/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>A Vietnamese man has mod the forth-generation smartphone of Apple with<strong> a shiny back logo as in Macbook laptop</strong>, and it can be easily switch by vibration button in rear.</p>
<p style="text-align: center;"><img src="http://searchdaily.net/wp-content/uploads/2011/09/091411_1013_TheuniqueiP1.png" alt="091411 1013 TheuniqueiP1 The Unique iPhone 4 has a Luminous Back Logo"  title="The Unique iPhone 4 has a Luminous Back Logo" /></p>
<p>He says that this logo use energy for vibration feature, so that it doesn&#8217;t<strong> make the front screen darker like the mod iPhone 2G</strong>, which also have a bright logo like before. This is the first iPhone 4 have a luminous logo in Vietnam. Surprisingly, the new iPhone still has a thickness of 9.3mm because he keeps the original back.<span id="more-2200"></span></p>
<p style="text-align: center;"><img src="http://searchdaily.net/wp-content/uploads/2011/09/091411_1013_TheuniqueiP2.jpg" alt="091411 1013 TheuniqueiP2 The Unique iPhone 4 has a Luminous Back Logo"  title="The Unique iPhone 4 has a Luminous Back Logo" /><img src="http://searchdaily.net/wp-content/uploads/2011/09/091411_1013_TheuniqueiP3.jpg" alt="091411 1013 TheuniqueiP3 The Unique iPhone 4 has a Luminous Back Logo"  title="The Unique iPhone 4 has a Luminous Back Logo" /><img src="http://searchdaily.net/wp-content/uploads/2011/09/091411_1013_TheuniqueiP4.jpg" alt="091411 1013 TheuniqueiP4 The Unique iPhone 4 has a Luminous Back Logo"  title="The Unique iPhone 4 has a Luminous Back Logo" /><img src="http://searchdaily.net/wp-content/uploads/2011/09/091411_1013_TheuniqueiP5.jpg" alt="091411 1013 TheuniqueiP5 The Unique iPhone 4 has a Luminous Back Logo"  title="The Unique iPhone 4 has a Luminous Back Logo" /></p>
<p>In England, iPatch company will start their service to mod the back logo of Apple smartphone like this in the next month, with the price from $80 to $160 . But not as what this man can do, they will have to change all the back cover of the phone. In charge, you can change the color of logo by choose it in iOS. Is it cool? Let get a new iPhone with luminous logo for yourself <img src='http://searchdaily.net/wp-includes/images/smilies/icon_wink.gif' alt="icon wink The Unique iPhone 4 has a Luminous Back Logo" class='wp-smiley' title="The Unique iPhone 4 has a Luminous Back Logo" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/the-unique-iphone-4-has-a-luminous-back-logo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Common Java Date Time Utils</title>
		<link>http://searchdaily.net/common-java-date-time-utils/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=common-java-date-time-utils</link>
		<comments>http://searchdaily.net/common-java-date-time-utils/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 15:18:05 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[Basic Java]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Common Date Time Utils]]></category>
		<category><![CDATA[Common Use Methods Date Processing]]></category>
		<category><![CDATA[Date Processing Java Methods]]></category>
		<category><![CDATA[DateTime Java Methods]]></category>
		<category><![CDATA[Java Utils for Date Time]]></category>

		<guid isPermaLink="false">http://searchdaily.net/java/common-java-date-time-utils.html</guid>
		<description><![CDATA[In this post I will share some frequently use methods for Date/Time processing. These methods are needed for almost every project or project starters. Feel free to use and add more features to my class. First are some Date Time Formatter like date formatter, 24h time formatter, 24h date time formatter… public static final SimpleDateFormat <a href='http://searchdaily.net/common-java-date-time-utils/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>In this post I will share some frequently use methods for Date/Time processing. These methods are needed for almost every project or project starters. Feel free to use and add more features to my class.</p>
<p>First are some Date Time Formatter like date formatter, 24h time formatter, 24h date time formatter…</p>
<pre class="brush:java">public static final SimpleDateFormat dateFormatter = new SimpleDateFormat(&quot;dd/MM/yyyy&quot;);
public static final SimpleDateFormat monthYearFormater = new SimpleDateFormat(&quot;MM/yyyy&quot;);
public static final SimpleDateFormat timeFormatter = new SimpleDateFormat(&quot;hh:mm:ss&quot;);
public static final SimpleDateFormat datetimeFormatter = new SimpleDateFormat(&quot;dd/MM/yyyy HH:mm:ss&quot;);
public static final SimpleDateFormat datetimeFormatterNoSecond = new SimpleDateFormat(&quot;dd/MM/yyyy HH:mm&quot;);
public static final SimpleDateFormat hourMinuteFormater = new SimpleDateFormat(&quot;HH:mm&quot;);
public static final SimpleDateFormat timeStampFormatter = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss.SSS&quot;);</pre>
<p>You will use these formatters to parse String into Date so that you can use for calculation. Or you can use these formatters to format a Date into String so that you can use it to print out a console or notify user via a message.</p>
<p>Next is <strong>methods needed to get a Calendar instance, to operate with Date object</strong>, you definitely will need Calendar object.</p>
<pre class="brush:java">public static Calendar getCalendar(Date date) {
	Calendar c = Calendar.getInstance();
	c.setTime(date);
	return c;
}

public static Calendar getCalendar() {
	Calendar c = Calendar.getInstance();
	c.setTime(new Date());
	return c;
}</pre>
<p>Now what if you <strong>know date/month/year and want to have a Date object</strong>? The following methods will help you to build Date</p>
<pre class="brush:java">	/**
	 * Build Date from date/month/year. Zero-based for Month (0=January).
	 * 
	 * @return
	 */
	public static Date buildDate(int year, int month, int date) {
		Calendar calendar = getCalendar();
		calendar.set(year, month, date);
		return calendar.getTime();
	}

	/**
	 * Build Datetime from date/month/year/hour/minute/second. Zero-based for
	 * Month (0=January).
	 * 
	 * @param year
	 * @param month
	 * @param date
	 * @param hour
	 * @param minute
	 * @param second
	 * @return
	 */
	public static Date buildDateTime(int year, int month, int date, int hour, int minute, int second) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(year, month, date, hour, minute, second);
		return calendar.getTime();
	}</pre>
<p>Sometime you will also need to <strong>remove the Time part from a Datetime object</strong>, here is the method for that purpose</p>
<pre class="brush:java">	/**
	 * Delete time from Date.
	 * 
	 * @param date
	 * @return
	 */
	public static Date removeTime(Date date) {		
		if (date == null) {
			return null;
		}

		// Obtain an instance of the Calendar.
		Calendar calendar = getCalendar(date);

		// Mark no automatic correction
		calendar.setLenient(false);

		// Remove the hours, minutes, seconds and milliseconds.
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);

		// Return the date again.
		return calendar.getTime();
	}</pre>
<p>And not only to <strong>build a new Date object</strong>, you can use the following methods to adjust date, like get the previous date or get the next date or <strong>get yesterday or get tomorrow date</strong>…</p>
<p><span id="more-2177"></span>
<pre class="brush:java">/**
	 * Adjust date, eg to reduce 10 days from date: adjustDate(date,
	 * Calendar.DAY_OF_YEAR, -10);
	 * 
	 * @param date
	 * @param type
	 * @param amount
	 * @return
	 */
	public static Date adjustDate(Date date, int type, int amount) {
		Calendar calendar = getCalendar(date);
		calendar.add(type, amount);
		return calendar.getTime();
	}

	/**
	 * Get the date before, eg: yesterday
	 * 
	 * @param date
	 * @return
	 */
	public static Date getTheDateBefore(Date date) {
		return adjustDate(date, Calendar.DAY_OF_YEAR, -1);
	}

	/**
	 * Get the date after, eg: tomorrow
	 * 
	 * @param date
	 * @return
	 */
	public static Date getTheDateAfter(Date date) {
		return adjustDate(date, Calendar.DAY_OF_YEAR, -1);
	}</pre>
<p>Now if you need to <strong>compare difference between two dates or time</strong>, these methods are for those purpose: </p>
<pre class="brush:java">/**
	 * Get time different in millisecond.
	 * 
	 * @param date1
	 * @param date2
	 * @return
	 */
	public static long getTimeDiffInMillis(Date date1, Date date2) {
		Calendar gc1 = getCalendar(date1);
		Calendar gc2 = getCalendar(date2);

		return gc2.getTimeInMillis() - gc1.getTimeInMillis();
	}

	/**
	 * Get Day Different between 2 days.
	 * 
	 * @param date1
	 * @param date2
	 * @return
	 */
	public static int getDaysDiff(Date date1, Date date2) {
		Calendar gc1 = getCalendar();
		Calendar gc2 = getCalendar();

		if (date1.before(date2)) {
			gc1.setTime(date1);
			gc2.setTime(date2);
		}

		else {
			gc1.setTime(date2);
			gc2.setTime(date1);
		}

		gc1.clear(Calendar.MILLISECOND);
		gc1.clear(Calendar.SECOND);
		gc1.clear(Calendar.MINUTE);
		gc1.clear(Calendar.HOUR_OF_DAY);

		gc2.clear(Calendar.MILLISECOND);
		gc2.clear(Calendar.SECOND);
		gc2.clear(Calendar.MINUTE);
		gc2.clear(Calendar.HOUR_OF_DAY);

		int daysDiff = 0;
		while (gc1.before(gc2)) {
			gc1.add(Calendar.DATE, 1);
			daysDiff++;
		}
		return daysDiff;
	}</pre>
<p>If you need to <strong>compare date only and ignore the time</strong>, I mean if 25/09/2011 12:30:45 is the same as 25/09/2011 01:12:14 so you need a compareDateOnly method like this.</p>
<pre class="brush:java">/**
	 * Compare date and ignore time
	 * 
	 * @param firstDate
	 * @param secondDate
	 * @return
	 */
	public static int compareDateOnly(Date firstDate, Date secondDate) {

		if (firstDate == null || secondDate == null)
			throw new IllegalArgumentException(&quot;The arguments cannot be null&quot;);

		Calendar firstCalendar = Calendar.getInstance();
		firstCalendar.setTime(firstDate);

		Calendar secondCalendar = Calendar.getInstance();
		secondCalendar.setTime(secondDate);

		int year = secondCalendar.get(Calendar.YEAR);
		int month = secondCalendar.get(Calendar.MONTH);
		int date = secondCalendar.get(Calendar.DATE);

		secondCalendar.setTime(firstDate);
		secondCalendar.set(Calendar.YEAR, year);
		secondCalendar.set(Calendar.MONTH, month);
		secondCalendar.set(Calendar.DATE, date);

		long oneDayInMillis = 24 * 60 * 60 * 1000L;
		return (int) ((firstCalendar.getTimeInMillis() - secondCalendar.getTimeInMillis()) / oneDayInMillis);
	}</pre>
<p>And like above, if you want to <strong>compare time of two datetime object and ignore the date part</strong> of those parameters, method like below will help</p>
<pre class="brush:java">/**
	 * Compare time and ignore date.
	 * 
	 * @param firstTime
	 * @param secondTime
	 * @return
	 */
	public static int compareTimeOnly(Date firstTime, Date secondTime) {

		if (firstTime == null || secondTime == null)
			throw new IllegalArgumentException(&quot;The arguments cannot be null&quot;);

		Calendar firstCalendar = Calendar.getInstance();
		firstCalendar.setTime(firstTime);

		Calendar secondCalendar = Calendar.getInstance();
		secondCalendar.setTime(secondTime);

		secondCalendar.set(Calendar.YEAR, firstCalendar.get(Calendar.YEAR));
		secondCalendar.set(Calendar.MONTH, firstCalendar.get(Calendar.MONTH));
		secondCalendar.set(Calendar.DATE, firstCalendar.get(Calendar.DATE));

		return (int) ((firstCalendar.getTimeInMillis() - secondCalendar.getTimeInMillis()) / 1000);
	}</pre>
<p>How can you <strong>check if a date is in range </strong>of two other days or to check the old famous leap year? Check out these methods: I have methods to check date in range and time in range..</p>
<pre class="brush:java">/**
	 * Check if date is in range of dateFrom and dateTo.
	 * 
	 * @param date
	 * @param dateFrom
	 * @param dateTo
	 * @return
	 */
	public static boolean isDateInRange(Date date, Date dateFrom, Date dateTo) {
		return (date != null &amp;&amp; dateFrom != null &amp;&amp; (date.equals(dateFrom) || date.equals(dateTo) || (date
				.after(dateFrom) &amp;&amp; (dateTo == null || date.before(dateTo)))));
	}

	/**
	 * Check if time is in range of timeFrom and timeTo, ignore date.
	 * 
	 * @param time
	 * @param timeFrom
	 * @param timeTo
	 * @return
	 */
	public static boolean isTimeInRange(Date time, Date timeFrom, Date timeTo) {
		return time != null &amp;&amp; timeFrom != null &amp;&amp; timeTo != null
				&amp;&amp; CommonDateUtils.compareTimeOnly(timeFrom, time) &lt;= 0
				&amp;&amp; CommonDateUtils.compareTimeOnly(time, timeTo) &lt;= 0;
	}

/**
	 * Check if given year is leap year
	 * 
	 * @param year
	 * @return
	 */
	public static boolean isLeapYear(int year) {
		return ((year % 4 == 0 &amp;&amp; year % 100 != 0) || year % 400 == 0);
	}</pre>
<p>Previous I introduce you a way to compare if a date is in range of two date object. What to do if you need to compare something bigger? How to get the first moment of a date and the end moment of a date? These method will help you to decide a good range for dates by <strong>get the upper bound and lower bound of date</strong> for you</p>
<pre class="brush:java">/**
	 * Get the beginning moment of the given date.
	 * 
	 * @param date
	 * @return
	 */
	public static Date getLowerBound(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	/**
	 * Get the ending moment of the given date.
	 * 
	 * @param date
	 * @return
	 */
	public static Date getUpperBound(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.HOUR_OF_DAY, 23);
		calendar.set(Calendar.MINUTE, 59);
		calendar.set(Calendar.SECOND, 59);
		calendar.set(Calendar.MILLISECOND, 999);
		return calendar.getTime();
	}
/**
	 * Check if given year is leap year
	 * 
	 * @param year
	 * @return
	 */
	public static boolean isLeapYear(int year) {
		return ((year % 4 == 0 &amp;&amp; year % 100 != 0) || year % 400 == 0);
	}</pre>
<p>Finally, I will add here the complete source of the above demo</p>
<pre class="brush:java">package net.searchdaily.java.util.datetime;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * Date Utils by http://java.searchdaily.net.
 * 
 * @author namnvhue
 * 
 */
public class CommonDateUtils {

	public static final SimpleDateFormat dateFormatter = new SimpleDateFormat(&quot;dd/MM/yyyy&quot;);
	public static final SimpleDateFormat monthYearFormater = new SimpleDateFormat(&quot;MM/yyyy&quot;);
	public static final SimpleDateFormat timeFormatter = new SimpleDateFormat(&quot;hh:mm:ss&quot;);
	public static final SimpleDateFormat datetimeFormatter = new SimpleDateFormat(&quot;dd/MM/yyyy HH:mm:ss&quot;);
	public static final SimpleDateFormat datetimeFormatterNoSecond = new SimpleDateFormat(&quot;dd/MM/yyyy HH:mm&quot;);
	public static final SimpleDateFormat hourMinuteFormater = new SimpleDateFormat(&quot;HH:mm&quot;);
	public static final SimpleDateFormat timeStampFormatter = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss.SSS&quot;);

	/**
	 * Delete time from Date.
	 * 
	 * @param date
	 * @return
	 */
	public static Date removeTime(Date date) {
		if (date == null) {
			return null;
		}

		// Obtain an instance of the Calendar.
		Calendar calendar = getCalendar(date);

		// Mark no automatic correction
		calendar.setLenient(false);

		// Remove the hours, minutes, seconds and milliseconds.
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);

		// Return the date again.
		return calendar.getTime();
	}

	/**
	 * Build Date from date/month/year. Zero-based for Month (0=January).
	 * 
	 * @return
	 */
	public static Date buildDate(int year, int month, int date) {
		Calendar calendar = getCalendar();
		calendar.set(year, month, date);
		return calendar.getTime();
	}

	/**
	 * Build Datetime from date/month/year/hour/minute/second. Zero-based for
	 * Month (0=January).
	 * 
	 * @param year
	 * @param month
	 * @param date
	 * @param hour
	 * @param minute
	 * @param second
	 * @return
	 */
	public static Date buildDateTime(int year, int month, int date, int hour, int minute, int second) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(year, month, date, hour, minute, second);
		return calendar.getTime();
	}

	/**
	 * Adjust date, eg to reduce 10 days from date: adjustDate(date,
	 * Calendar.DAY_OF_YEAR, -10);
	 * 
	 * @param date
	 * @param type
	 * @param amount
	 * @return
	 */
	public static Date adjustDate(Date date, int type, int amount) {
		Calendar calendar = getCalendar(date);
		calendar.add(type, amount);
		return calendar.getTime();
	}

	/**
	 * Get the date before, eg: yesterday
	 * 
	 * @param date
	 * @return
	 */
	public static Date getTheDateBefore(Date date) {
		return adjustDate(date, Calendar.DAY_OF_YEAR, -1);
	}

	/**
	 * Get the date after, eg: tomorrow
	 * 
	 * @param date
	 * @return
	 */
	public static Date getTheDateAfter(Date date) {
		return adjustDate(date, Calendar.DAY_OF_YEAR, -1);
	}

	/**
	 * Get time different in millisecond.
	 * 
	 * @param date1
	 * @param date2
	 * @return
	 */
	public static long getTimeDiffInMillis(Date date1, Date date2) {
		Calendar gc1 = getCalendar(date1);
		Calendar gc2 = getCalendar(date2);

		return gc2.getTimeInMillis() - gc1.getTimeInMillis();
	}

	/**
	 * Get Day Different between 2 days.
	 * 
	 * @param date1
	 * @param date2
	 * @return
	 */
	public static int getDaysDiff(Date date1, Date date2) {
		Calendar gc1 = getCalendar();
		Calendar gc2 = getCalendar();

		if (date1.before(date2)) {
			gc1.setTime(date1);
			gc2.setTime(date2);
		}

		else {
			gc1.setTime(date2);
			gc2.setTime(date1);
		}

		gc1.clear(Calendar.MILLISECOND);
		gc1.clear(Calendar.SECOND);
		gc1.clear(Calendar.MINUTE);
		gc1.clear(Calendar.HOUR_OF_DAY);

		gc2.clear(Calendar.MILLISECOND);
		gc2.clear(Calendar.SECOND);
		gc2.clear(Calendar.MINUTE);
		gc2.clear(Calendar.HOUR_OF_DAY);

		int daysDiff = 0;
		while (gc1.before(gc2)) {
			gc1.add(Calendar.DATE, 1);
			daysDiff++;
		}
		return daysDiff;
	}

	/**
	 * Check if given year is leap year
	 * 
	 * @param year
	 * @return
	 */
	public static boolean isLeapYear(int year) {
		return ((year % 4 == 0 &amp;&amp; year % 100 != 0) || year % 400 == 0);
	}

	/**
	 * Compare date and ignore time
	 * 
	 * @param firstDate
	 * @param secondDate
	 * @return
	 */
	public static int compareDateOnly(Date firstDate, Date secondDate) {

		if (firstDate == null || secondDate == null)
			throw new IllegalArgumentException(&quot;The arguments cannot be null&quot;);

		Calendar firstCalendar = Calendar.getInstance();
		firstCalendar.setTime(firstDate);

		Calendar secondCalendar = Calendar.getInstance();
		secondCalendar.setTime(secondDate);

		int year = secondCalendar.get(Calendar.YEAR);
		int month = secondCalendar.get(Calendar.MONTH);
		int date = secondCalendar.get(Calendar.DATE);

		secondCalendar.setTime(firstDate);
		secondCalendar.set(Calendar.YEAR, year);
		secondCalendar.set(Calendar.MONTH, month);
		secondCalendar.set(Calendar.DATE, date);

		long oneDayInMillis = 24 * 60 * 60 * 1000L;
		return (int) ((firstCalendar.getTimeInMillis() - secondCalendar.getTimeInMillis()) / oneDayInMillis);
	}

	/**
	 * Compare time and ignore date.
	 * 
	 * @param firstTime
	 * @param secondTime
	 * @return
	 */
	public static int compareTimeOnly(Date firstTime, Date secondTime) {

		if (firstTime == null || secondTime == null)
			throw new IllegalArgumentException(&quot;The arguments cannot be null&quot;);

		Calendar firstCalendar = Calendar.getInstance();
		firstCalendar.setTime(firstTime);

		Calendar secondCalendar = Calendar.getInstance();
		secondCalendar.setTime(secondTime);

		secondCalendar.set(Calendar.YEAR, firstCalendar.get(Calendar.YEAR));
		secondCalendar.set(Calendar.MONTH, firstCalendar.get(Calendar.MONTH));
		secondCalendar.set(Calendar.DATE, firstCalendar.get(Calendar.DATE));

		return (int) ((firstCalendar.getTimeInMillis() - secondCalendar.getTimeInMillis()) / 1000);
	}

	/**
	 * Get the beginning moment of the given date.
	 * 
	 * @param date
	 * @return
	 */
	public static Date getLowerBound(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	/**
	 * Get the ending moment of the given date.
	 * 
	 * @param date
	 * @return
	 */
	public static Date getUpperBound(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.HOUR_OF_DAY, 23);
		calendar.set(Calendar.MINUTE, 59);
		calendar.set(Calendar.SECOND, 59);
		calendar.set(Calendar.MILLISECOND, 999);
		return calendar.getTime();
	}

	/**
	 * Check if date is in range of dateFrom and dateTo.
	 * 
	 * @param date
	 * @param dateFrom
	 * @param dateTo
	 * @return
	 */
	public static boolean isDateInRange(Date date, Date dateFrom, Date dateTo) {
		return (date != null &amp;&amp; dateFrom != null &amp;&amp; (date.equals(dateFrom) || date.equals(dateTo) || (date
				.after(dateFrom) &amp;&amp; (dateTo == null || date.before(dateTo)))));
	}

	/**
	 * Check if time is in range of timeFrom and timeTo, ignore date.
	 * 
	 * @param time
	 * @param timeFrom
	 * @param timeTo
	 * @return
	 */
	public static boolean isTimeInRange(Date time, Date timeFrom, Date timeTo) {
		return time != null &amp;&amp; timeFrom != null &amp;&amp; timeTo != null
				&amp;&amp; CommonDateUtils.compareTimeOnly(timeFrom, time) &lt;= 0
				&amp;&amp; CommonDateUtils.compareTimeOnly(time, timeTo) &lt;= 0;
	}

	public static Calendar getCalendar(Date date) {
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c;
	}

	public static Calendar getCalendar() {
		Calendar c = Calendar.getInstance();
		c.setTime(new Date());
		return c;
	}
}</pre>
<p>Hope it helps you, if you have interesting methods for date time calculation please share in the comments. Thanks for reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/common-java-date-time-utils/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bring Mac OS X Spaces Feature to Windows 7</title>
		<link>http://searchdaily.net/bring-mac-os-x-spaces-feature-to-windows-7/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bring-mac-os-x-spaces-feature-to-windows-7</link>
		<comments>http://searchdaily.net/bring-mac-os-x-spaces-feature-to-windows-7/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 02:26:07 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Best Virtual Desktop Alternative Mac Spaces]]></category>
		<category><![CDATA[Desktop Switch Spaces for Windows]]></category>
		<category><![CDATA[Mac OS Lion Spaces for Windows 7]]></category>
		<category><![CDATA[Mac OS Space Alternative for Windows 7]]></category>
		<category><![CDATA[mac os x spaces for windows 7]]></category>
		<category><![CDATA[Mac Spaces for Windows XP]]></category>
		<category><![CDATA[make more spaces for Windows 7]]></category>
		<category><![CDATA[Microsoft Sysinternals Desktop Review]]></category>
		<category><![CDATA[Virtual Desktop Apps for Windows 7]]></category>
		<category><![CDATA[Windows Desktop Pager]]></category>
		<category><![CDATA[WindowsPager]]></category>

		<guid isPermaLink="false">http://searchdaily.net/software/windows-7/bring-mac-os-x-spaces-feature-to-windows-7.html</guid>
		<description><![CDATA[Like most of Linux OS, Mac OS X has a great feature names Spaces that lets you group applications/opened files and keep your working space uncluttered and organized. Sadly, Windows doesn’t have this feature but there’s good alternative for Windows users to keep their desktop organized and clean. 1. Use WindowsPager as Virtual Desktop to <a href='http://searchdaily.net/bring-mac-os-x-spaces-feature-to-windows-7/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>Like most of Linux OS, Mac OS X has a great feature names Spaces that lets you group applications/opened files and keep your working space uncluttered and organized.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/spaces_mac_7.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="spaces_mac_7" border="0" alt="spaces mac 7 thumb Bring Mac OS X Spaces Feature to Windows 7" src="http://searchdaily.net/wp-content/uploads/2011/09/spaces_mac_7_thumb.jpg" width="394" height="250" /></a>Sadly, Windows doesn’t have this feature but there’s good alternative for Windows users to keep their desktop organized and clean.</p>
<h6>1. Use WindowsPager as Virtual Desktop to make more spaces for Windows 7</h6>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/windowspagerscreenshot2.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="windowspager-screenshot2" border="0" alt="windowspagerscreenshot2 thumb Bring Mac OS X Spaces Feature to Windows 7" src="http://searchdaily.net/wp-content/uploads/2011/09/windowspagerscreenshot2_thumb.jpg" width="476" height="344" /></a> </p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/windowspager.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="windows-pager" border="0" alt="windowspager thumb Bring Mac OS X Spaces Feature to Windows 7" src="http://searchdaily.net/wp-content/uploads/2011/09/windowspager_thumb.jpg" width="481" height="290" /></a> </p>
<p>It lets you manage and group your desktop into multiple desktop spaces for different purpose (like working desktop, entertainment desktop, personal desktop…). This is very useful for advanced Windows users.</p>
<p><span id="more-2039"></span>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/screenshot.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="screenshot" border="0" alt="screenshot thumb Bring Mac OS X Spaces Feature to Windows 7" src="http://searchdaily.net/wp-content/uploads/2011/09/screenshot_thumb.jpg" width="643" height="483" /></a> </p>
<p align="left">You can easily move opened windows between different desktops or copy and paste data as well, because they’re all just virtual desktops.</p>
<p align="left">If you’re interesting, give it a <a href="http://sourceforge.net/projects/windowspager/" target="_blank">try here</a></p>
<h6>2. Use Sysinternals Desktops from Microsoft for to make Spaces like Mac OS X</h6>
<p>This application is tiny (just 60KB) but it can give ultimate features: Multiple Desktops, Separation of Desktops into Processes…</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/SysinternalsDesktopstoMakeMacOSXSpaces2.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Sysinternals-Desktops-to-Make-Mac-OSX-Spaces-2" border="0" alt="SysinternalsDesktopstoMakeMacOSXSpaces2 thumb Bring Mac OS X Spaces Feature to Windows 7" src="http://searchdaily.net/wp-content/uploads/2011/09/SysinternalsDesktopstoMakeMacOSXSpaces2_thumb.png" width="361" height="286" /></a> Because each Desktop is separated into its process, now Windows can know which application is running on what Desktop to show users when they switch Desktops.</p>
<p>However, Sysinternals Desktop cannot support users to move windows from one desktop to another, and there is no way for you to delete Desktop as well, the best way to get out of each Desktop is to Log Off at the right Desktop. </p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/SysinternalsDesktopstoMakeMacOSXSpaces1.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Sysinternals-Desktops-to-Make-Mac-OSX-Spaces-1" border="0" alt="SysinternalsDesktopstoMakeMacOSXSpaces1 thumb Bring Mac OS X Spaces Feature to Windows 7" src="http://searchdaily.net/wp-content/uploads/2011/09/SysinternalsDesktopstoMakeMacOSXSpaces1_thumb.png" width="394" height="298" /></a> If the above restriction doesn’t bother you, give it a try at <a href="http://download.sysinternals.com/Files/Desktops.zip" target="_blank">this address</a>.</p>
<h6>3. Use Finestra Virtual Desktops as equivalent Mac OS Spaces for Windows</h6>
<p>If you’re running Windows 7 and like the Live Preview windows feature, maybe you’ll like this application. </p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/FinestraVirtualDesktop.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Finestra-Virtual-Desktop" border="0" alt="FinestraVirtualDesktop thumb Bring Mac OS X Spaces Feature to Windows 7" src="http://searchdaily.net/wp-content/uploads/2011/09/FinestraVirtualDesktop_thumb.jpg" width="516" height="388" /></a> </p>
<p>While Sysinernals can give you 4 Desktops at the same time, this application can give you as many as you want. You can also customize wallpaper for each desktop like what you can do with Mac Spaces or watch the movement of Windows over Desktops visually.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/FinestraVirtualDesktopvisual.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Finestra-Virtual-Desktop-visual" border="0" alt="FinestraVirtualDesktopvisual thumb Bring Mac OS X Spaces Feature to Windows 7" src="http://searchdaily.net/wp-content/uploads/2011/09/FinestraVirtualDesktopvisual_thumb.jpg" width="634" height="398" /></a> </p>
<p>And for the customization goodness, Finestra Virtual Desktop can give you a lots of configurations.</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/finestrahotkeys.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="finestra-hotkeys" border="0" alt="finestrahotkeys thumb Bring Mac OS X Spaces Feature to Windows 7" src="http://searchdaily.net/wp-content/uploads/2011/09/finestrahotkeys_thumb.png" width="546" height="474" /></a> </p>
<p>Now if you like it, click here to <a href="http://vdm.codeplex.com/" target="_blank">Download</a>.</p>
<p>I also heard of <a href="http://virtuawin.sourceforge.net/news.php" target="_blank">Virtuawin</a> that can help you to run multiple desktop on your Windows, but when I checked its homepage, the latest release was in September, 2010 so I decide not to write about it at the moment. I’ll update later if there’s new release from VirtuaWin because it’s a good application too.</p>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/bring-mac-os-x-spaces-feature-to-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Callback Pattern with RMI Client Callback</title>
		<link>http://searchdaily.net/callback-pattern-with-rmi-client-callback/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=callback-pattern-with-rmi-client-callback</link>
		<comments>http://searchdaily.net/callback-pattern-with-rmi-client-callback/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 11:14:07 +0000</pubDate>
		<dc:creator>nam</dc:creator>
				<category><![CDATA[Architectural Pattern]]></category>
		<category><![CDATA[DesignPattern]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[be calledback pattern]]></category>
		<category><![CDATA[callback example in java]]></category>
		<category><![CDATA[Callback Pattern]]></category>
		<category><![CDATA[Callback Pattern Example]]></category>
		<category><![CDATA[Callback Pattern RMI Example]]></category>
		<category><![CDATA[Client Callback with RMI]]></category>

		<guid isPermaLink="false">http://searchdaily.net/java/callback-pattern-with-rmi-client-callback.html</guid>
		<description><![CDATA[You’ve seen the Observer Pattern where subscriber get notified from publisher about events when something happened. It’s about the Listener/ Observer, how about another famous pattern named “Callback Pattern”? What is Callback Pattern? I can tell you that there’s some similarity about the notification, but the Callback Pattern is very much “Architectural Pattern” and only <a href='http://searchdaily.net/callback-pattern-with-rmi-client-callback/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>You’ve seen the <a href="http://searchdaily.net/java/observer-pattern-java-example.html" target="_blank">Observer Pattern</a> where subscriber get notified from publisher about events when something happened. It’s about the Listener/ Observer, how about another famous pattern named “<strong>Callback Pattern</strong>”?</p>
<h5>What is Callback Pattern?</h5>
<p>I can tell you that there’s some similarity about the notification, but the Callback Pattern is very much “<strong>Architectural Pattern</strong>” and only these diagram and definition can help you to distinguish. </p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image20.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image thumb20 Callback Pattern with RMI Client Callback" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb20.png" width="600" height="280" /></a></p>
<p><strong>Callback Pattern is an Architectural Pattern that allows a client to register with a server for extended operations. This enables the server to notify the client when the operation has been completed.</strong></p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image21.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image thumb21 Callback Pattern with RMI Client Callback" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb21.png" width="424" height="445" /></a></p>
<h5>What can Callback Pattern help you?</h5>
<p>Use the Callback pattern for a client-server system with time-consuming client operations, and when one or both of the following are true: </p>
<ul>
<li>You want to conserve server resources for active communication. </li>
<li>The client can and should continue work until the information becomes available. This can be accomplished with simple threading in the client. </li>
</ul>
<h5>Callback Pattern Example</h5>
<p>This Design Pattern is an architectural pattern and needs a server/client application to apply, so I will use the same example in my previous post about <a href="http://searchdaily.net/tag/proxy-pattern" target="_blank">Proxy Pattern using RMI</a> for the demo. To save your time, I won’t tell the story again but you <a href="http://searchdaily.net/java/proxy-pattern-tutorial-and-rmi-example.html" target="_blank">should read</a> and run the RMI example first before taking the next step.</p>
<p>First, I will define a BankClientCallback interface, which will act as a standardized channel for the server to interact with the client.</p>
<pre class="brush: java">package net.searchdaily.java.design.pattern.callback;

import java.rmi.Remote;
import java.rmi.RemoteException;
/**
 * Callback Pattern with RMI tutorial by http://java.searchdaily.net
 * 
 * @author namnvhue
 * 
 */
public interface BankClientCallback extends Remote {
	public void notifyAction(String action) throws RemoteException;
}</pre>
<p>As you can see to allow the server to interact with the client, the client’s now actually a server, so it’s much like server-to-server conversation. Next is for the Server interface</p>
<p><span id="more-2009"></span>
<pre class="brush: java">package net.searchdaily.java.design.pattern.callback;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * Callback Pattern with RMI tutorial by http://java.searchdaily.net
 * 
 * @author namnvhue
 * 
 */
public interface IBankRMI extends Remote {
	/**
	 * Check account and return current balance
	 * 
	 * @param accountId
	 * @return
	 */
	public double checkBalance(String accountId) throws RemoteException;

	/**
	 * Withdraw amt $ from bank and return new balance if success, if not return
	 * current balance.
	 * 
	 * @param accountId
	 * @param amt
	 * @return
	 */
	public double withDraw(String accountId, double amt) throws RemoteException;

	/**
	 * Deposite $amt into account, if success return new balance, if not return
	 * current balance.
	 * 
	 * @param accountId
	 * @param amt
	 * @return
	 */
	public double deposit(String accountId, double amt) throws RemoteException;

	/**
	 * Allow the client to register itself with the server.
	 * 
	 * @param client
	 * @throws RemoteException
	 */
	public void registerBankClient(BankClientCallback client)
			throws RemoteException;
}</pre>
<p>As you can compare with my previous example, there is a new method now: </p>
<p><font face="Courier New">public void registerBankClient(BankClientCallback client) throws RemoteException;</font></p>
<p>This method will be call by the client to pass the client object itself so that the server can know which <strong>who is the client to callback.</strong></p>
<p>Now let’s see how I will re-define the Central Computer of the Bank</p>
<pre class="brush: java">package net.searchdaily.java.design.pattern.callback;

import java.rmi.RemoteException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * Callback Pattern with RMI tutorial by http://java.searchdaily.net
 * 
 * @author namnvhue
 * 
 */
public class BankCentralComputerRMI implements IBankRMI {
	SimpleDateFormat sdf = new SimpleDateFormat(&quot;MM/dd/yy H:mm:ss&quot;);
	BankClientCallback client = null;
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	Map<string   , double> accounts = new HashMap<string   , double>();

	protected BankCentralComputerRMI() throws RemoteException {
		super();
		accounts.put(&quot;12345&quot;, 20000.0);
		accounts.put(&quot;11223&quot;, 30000.0);
		accounts.put(&quot;33112&quot;, 60000.0);
	}

	@Override
	public double checkBalance(String accountId) throws RemoteException {
		this.log(&quot;check Balance&quot;);
		if (validateAccount(accountId)) {
			return this.accounts.get(accountId);
		} else {
			System.out.println(&quot;Invalid Account&quot;);
			return 0.0;
		}
	}

	@Override
	public double withDraw(String accountId, double amt) throws RemoteException {
		this.log(&quot;WithDraw&quot;);
		if (validateAccount(accountId)) {
			double currentBalance = this.accounts.get(accountId);
			double newBalance = currentBalance - amt;
			if (newBalance &gt;= 0.0) {
				// Save account data
				this.accounts.put(accountId, newBalance);
				return newBalance;
			} else {
				System.out.println(&quot;You don't have enough money&quot;);
				return currentBalance;
			}
		} else {
			System.out.println(&quot;Invalid Account&quot;);
			return 0.0;
		}
	}

	@Override
	public double deposit(String accountId, double amt) throws RemoteException {
		this.log(&quot;Deposit&quot;);
		if (validateAccount(accountId)) {
			double currentBalance = this.accounts.get(accountId);
			double newBalance = currentBalance + amt;
			this.accounts.put(accountId, newBalance);
			return newBalance;
		} else {
			System.out.println(&quot;Invalid Account&quot;);
			return 0.0;
		}
	}

	boolean validateAccount(String accountId) {
		return this.accounts.containsKey(accountId);
	}

	private void log(String action) {

		String logMessage = getLogMessage(action);
		System.out.println(logMessage);
		try {
			client.notifyAction(logMessage);
		} catch (RemoteException e) {
			System.out.println(&quot;Cannot send message to client&quot;);
			e.printStackTrace();
		}
	}

	private String getLogMessage(String action) {
		return &quot;BankCentralComputerRMI: at &quot; + sdf.format(new Date())
				+ &quot; Client call to execute: &quot; + action;
	}

	@Override
	public void registerBankClient(BankClientCallback client)
			throws RemoteException {
		this.client = client;

	}

}</pre>
<p>As you can see the implementation of the method registerBankClient(), nothing special, just the server keep a reference to the remote client (a channel actually). </p>
<p>There is a new method I’ve just added to write a log to the console of the server and it also <strong>send the message back to the client</strong> as you can see in in this method: <font face="Courier New">private void log(String action)</font> </p>
<p>Now let’s implement a Server that will run this Bank Computer:</p>
<pre class="brush: java">package net.searchdaily.java.design.pattern.callback;

import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

/**
 * Callback Pattern with RMI tutorial by http://java.searchdaily.net
 * 
 * @author namnvhue
 * 
 */
public class BankServer {
	public BankServer() {

	}

	public static void main(String[] args) {
		try {
			IBankRMI bank = new BankCentralComputerRMI();
			IBankRMI stub = (IBankRMI) UnicastRemoteObject
					.exportObject(bank, 0);

			// Bind the remote object's stub in the registry
			Registry registry = LocateRegistry.getRegistry();
			registry.bind(&quot;bankService&quot;, stub);
			System.out.println(&quot;The Bank server is running...&quot;);
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (AlreadyBoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}</pre>
<p>Nothing new here compare to the <a href="http://searchdaily.net/java/proxy-pattern-tutorial-and-rmi-example.html" target="_blank">old example</a>. It just helps to make the Bank Central Computer running.</p>
<p>The last thing to change is the Client, here it goes:</p>
<pre class="brush: java">package net.searchdaily.java.design.pattern.callback;

import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

/**
 * Callback Pattern with RMI tutorial by http://java.searchdaily.net
 * 
 * @author namnvhue
 * 
 */
public class BankClient implements BankClientCallback {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			Registry registry = LocateRegistry.getRegistry(&quot;localhost&quot;);
			IBankRMI bank = (IBankRMI) registry.lookup(&quot;bankService&quot;);

			BankClientCallback client = new BankClient();
			BankClientCallback stub = (BankClientCallback) UnicastRemoteObject
					.exportObject(client, 0);
			bank.registerBankClient(stub);
			BankClient clientObj = (BankClient) client;
			clientObj.doClientTasks(bank);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NotBoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	@Override
	public void notifyAction(String action) throws RemoteException {
		System.out.println(&quot;Server send us:&quot; + action);
	}

	public void doClientTasks(IBankRMI bank) {
		try {
			final String myAccountId = &quot;12345&quot;;
			double currentBalance = bank.checkBalance(myAccountId);
			System.out.println(&quot;I have in my bank: $&quot; + currentBalance);

			// Money save after a week
			double newBalance = bank.deposit(myAccountId, 500.5);
			System.out.println(&quot;I deposit $&quot; + 500.5
					+ &quot; after saving for a week. Now I have: $&quot; + newBalance);

			System.out
					.println(&quot;it's weekend, I'll go to Las Vegas to have some fun&quot;);
			bank.withDraw(myAccountId, 20000.0);
			System.out
					.println(&quot;The next Monday morning, I go back and check my account...and the ATM tell me&quot;);
			newBalance = bank.checkBalance(myAccountId);
			System.out.println(&quot;Your current balance: $&quot; + newBalance);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}</pre>
<p>Can you see that I separate the old business about checking balance, withdraw or deposit into a method named doClientTasks()? It’s because I will create only an instance of this class and pass it to the Server, so I want the same instance of this client do the business and be <strong>calledback</strong> by the server.</p>
<p>You should see that the Client now export itself as a remote object (a server for easier to understand) into the RMI Registry, and the Client registers it with the server by using these lines of code.</p>
<pre class="brush: java">Registry registry = LocateRegistry.getRegistry(&quot;localhost&quot;);
IBankRMI bank = (IBankRMI) registry.lookup(&quot;bankService&quot;);

BankClientCallback client = new BankClient();
BankClientCallback stub = (BankClientCallback) UnicastRemoteObject
					.exportObject(client, 0);
bank.registerBankClient(stub);</pre>
<h5>Now it’s time to run the Callback Example </h5>
<p>First thing to do is starting the RMI registry</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image22.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image thumb22 Callback Pattern with RMI Client Callback" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb22.png" width="464" height="112" /></a></p>
<p>Now you can run the BankServer:</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image23.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image thumb23 Callback Pattern with RMI Client Callback" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb23.png" width="440" height="56" /></a></p>
<p>With the BankServer is running, now start the BankClient</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image24.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image thumb24 Callback Pattern with RMI Client Callback" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb24.png" width="685" height="188" /></a></p>
<p>If you check back the BankServer’s console you should see this:</p>
<p><a href="http://searchdaily.net/wp-content/uploads/2011/09/image25.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image thumb25 Callback Pattern with RMI Client Callback" src="http://searchdaily.net/wp-content/uploads/2011/09/image_thumb25.png" width="611" height="130" /></a></p>
<p>If you wonder why in the Client’s console, message from Server is print out first, it is because I implemented the Server to write a log first, and the log callback to the Client before the Server return calculation value. </p>
]]></content:encoded>
			<wfw:commentRss>http://searchdaily.net/callback-pattern-with-rmi-client-callback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
