<?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>The Not Simple Solutions</title>
	<atom:link href="http://thenotsimple.myfavoritepaintings.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://thenotsimple.myfavoritepaintings.com</link>
	<description>Just not so simple</description>
	<lastBuildDate>Mon, 05 Nov 2007 19:05:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Device Free Icon Set (Cell Phone Icon, Gamepad Icon, Mouse Icon)</title>
		<link>http://thenotsimple.myfavoritepaintings.com/2007/11/05/device-free-icon-set-cell-phone-icon-gamepad-icon-mouse-icon/</link>
		<comments>http://thenotsimple.myfavoritepaintings.com/2007/11/05/device-free-icon-set-cell-phone-icon-gamepad-icon-mouse-icon/#comments</comments>
		<pubDate>Mon, 05 Nov 2007 19:05:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Photoshop Freebies]]></category>

		<guid isPermaLink="false">http://thenotsimple.com/2007/11/05/device-free-icon-set-cell-phone-icon-gamepad-icon-mouse-icon/</guid>
		<description><![CDATA[Another beautiful free icons from me. I saw similar icons used in ads in game magazine and decided to share it. Icon set available in PSD, PNG (256&#215;256).



This fresh set was downloadedtimes.
You may use it anyway you want, backlink will be very appreciated.
Enjoy.






]]></description>
			<content:encoded><![CDATA[<p>Another beautiful free icons from me. I saw similar icons used in ads in game magazine and decided to share it. Icon set available in PSD, PNG (256&#215;256).<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/11/device_free_icons_cellphone_gamepad_mouse.jpg" title="Device Icons Cellphone Gamepad Mouse" alt="Device Icons Cellphone Gamepad Mouse" /><br />
<span id="more-55"></span><br />
<a href="http://thenotsimple.myfavoritepaintings.com/wp-content/plugins/download-monitor/download.php?id=4" class="download"></a><br />
This fresh set was downloaded 2820 times.<br />
You may use it anyway you want, backlink will be very appreciated.<br />
Enjoy.</p>
<div style="width: 100%; text-align: center; padding: 5px;">
<script type="text/javascript"><!--
google_ad_client = "pub-6661595645023959";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
//2007-11-05: free icons
google_ad_channel = "5349688510";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "b63b3b";
google_color_text = "5e5e5e";
google_color_url = "b63b3b";
//-->
</script><br />
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
]]></content:encoded>
			<wfw:commentRss>http://thenotsimple.myfavoritepaintings.com/2007/11/05/device-free-icon-set-cell-phone-icon-gamepad-icon-mouse-icon/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Iconshock Sophistique Inspiration, Part 1</title>
		<link>http://thenotsimple.myfavoritepaintings.com/2007/10/27/iconshock-sophistique-inspiration-part-i/</link>
		<comments>http://thenotsimple.myfavoritepaintings.com/2007/10/27/iconshock-sophistique-inspiration-part-i/#comments</comments>
		<pubDate>Sat, 27 Oct 2007 09:42:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Photoshop Freebies]]></category>

		<guid isPermaLink="false">http://thenotsimple.com/2007/10/27/iconshock-sophistique-inspiration-part-i/</guid>
		<description><![CDATA[We are always looking for some inspiration. Today I&#8217;m looking on iconshock stock icons, on their Sophistique general icons set. This tutorial is the first part of Sophistique set related tutorials.
The final result is the bonus for you &#8211; Free Icon Set (PSD/20 icons)



This PSD was downloadedtimes.





We are starting from the nice symbols from Sophis [...]]]></description>
			<content:encoded><![CDATA[<p>We are always looking for some inspiration. Today I&#8217;m looking on iconshock stock icons, on their <a href="http://www.iconshock.com/icon-sets/sophistique-general-icons.html">Sophistique general icons set</a>. This tutorial is the first part of Sophistique set related tutorials.<br />
The final result is the bonus for you &#8211; Free Icon Set (PSD/20 icons)<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/iconset_preview.jpg" alt="Sophistique Inspiration Icon Set Preview" /><br />
<span id="more-32"></span><br />
<a href="http://thenotsimple.myfavoritepaintings.com/wp-content/plugins/download-monitor/download.php?id=3" class="download"></a><br />
This PSD was downloaded 2657 times.</p>
<div style="float: left; margin-right: 10px;">
<script type="text/javascript"><!--
google_ad_client = "pub-6661595645023959";
//336x280 graphic, free icons
google_ad_slot = "4645116157";
google_ad_width = 336;
google_ad_height = 280;
//--></script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<p>We are starting from the nice symbols from Sophis set.<br />
Here&#8217;s the screenshot of PDF sapmle. So let&#8217;s play with this symbols.<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/original_pdf_screenshot1.jpg" alt="Original Pdf Screehshot" title="Original Pdf Screehshot" /></p>
<div style="width: 100%; text-align: center; padding: 5px;">
<script type="text/javascript"><!--
google_ad_client = "pub-6661595645023959";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
//2007-11-05: free icons
google_ad_channel = "5349688510";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "b63b3b";
google_color_text = "5e5e5e";
google_color_url = "b63b3b";
//-->
</script><br />
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<p>At first, create a blank document (File-&gt;New or Ctrl+N), width &#8211; 200px, height &#8211; 200px. You can set the white background at &#8220;Background Contents&#8221; option or simply fill the default layer.<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/blank_document.gif" alt="Blank document, white filled layer" title="Blank document, white filled layer" /><br />
Next &#8211; create a new layer (Layer-&gt;New-&gt;Layer&#8230; or Ctrl+Shift+N). Pick &#8220;Elliptical Marquee Tool&#8221;, select circle holding Shift, something like that:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/circle_selection.gif" alt="Circle Selection" title="Circle Selection" /><br />
Then you can fill selected area (&#8221;Paint Bucket Tool&#8221;) with some color to play with layer styles.<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/circle_filling.gif" alt="Fill selected area" title="Fill selected area" /><br />
Go to layer styles (Layer-&gt;Layer Style-&gt;Blending Options or doubleclick on layer) and apply &#8220;Inner Shadow&#8221; with such options<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/apply_inner_shadow.jpg" alt="Apply Inner Shadow" title="Apply Inner Shadow" /><br />
Next &#8211; create smaller circle in the center of bigger one. Ctrl+Click on the circle layer icon to select all the layer area. To center the selection simply hold Shift+Alt while modyfiyng selection (Select-&gt;Transform Selection). Something like that:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/transforming_selection.jpg" alt="Transform Selection" title="Transform Selection" /><br />
Now you can create a new layer for the smaller circle, of course you were able to create that layer earlier (when selecting the new area). Fill the layer with some color and go to layer &#8220;Blending Options&#8221;. We&#8217;ll apply &#8220;Inner Shadow&#8221; and &#8220;Color Overlay&#8221; to make a little glass effect. The inner shadow color: #003483 and the color overlay: #dbe0e3.<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/set_inner_shadow_smaller.jpg" alt="Apply Inner Shadow to Smaller Circle" title="Apply Inner Shadow to Smaller Circle" /><br />
Next step &#8211; to improve background circle. Select smaller layer (Ctrl+Click on layer icon), go to Select-&gt;Modify-&gt;Contract and Contract the selection with 1 px. The next &#8211; select background circle layer and hit del to delete unnecessary area. Now you will see<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/border.jpg" alt="Improved Background Circle" title="Improved Background Circle" /><br />
To add glass effect we will add a new gradient layer.<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/select-gradient.jpg" class="left" alt="Gradient Options" title="Gradient Options" /> Create a new layer and select smaller circle area (Ctrl+Click on layer icon), then pick Gradient tool with a white foreground color. Start to drag gradient from the center of the circle.<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/gradient_dragging.jpg" alt="Drag Gradient to top (holding Shift)" title="Drag Gradient to top (holding Shift)" /><br />
The result:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/white_gradient_result.jpg" alt="The Gradient Result (More Glass Effect)" title="The Gradient Result (More Glass Effect)" /><br />
And now, the hardest part &#8211; creating the crystal swirl. Pick the &#8220;Pen Tool&#8221; and select the area to modify:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/pen_selection.jpg" alt="Select Area using Pen Tool" title="Select Area using Pen Tool" /><br />
Click on the center of the bottom border and drag mouse to the bottom-right to make a symmetric swirl:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/pen_selection_modify.jpg" alt="Modify Selected Area" title="Modify Selected Area" /><br />
Now you are able to cut off unnecessary space. Rasterize the layer (Layer-&gt;Rasterize-&gt;Layer or right-click on the layer), select the smaller circle area and invert selection (Select-&gt;Inverse or Ctrl+Shift+I) &#8211; you wil see something like that:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/swirl_selection_invert.jpg" alt="Inverted Selection, swirl" title="Inverted Selection, swirl" /><br />
Hit Del to remove selected part of the layer, and make it a little smaller (Edit-&gt;Free Transform):<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/swirl_little_smaller.jpg" alt="Little Smaller Swirl" title="Little Smaller Swirl" /><br />
After applying the transformation, apply a fade out effect to the swirl. You can do it by adding the layer mask and Gradient Tool. So, add the layer mask (little icon at the layer menu) and select rectangle area around the layer. <img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/add_layer_mask.jpg" class="left" alt="Add Layer Mask Icon" title="Add Layer Mask Icon" />Now pick the Gradient tool (you will notice foreground/background colors switched to white/black, also note the gradient options). <img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/gradient_options_layer_mask.jpg" class="right" alt="Layer Mask Gradient Options" title="Layer Mask Gradient Options" />Now drag the mouse to the top and you will see your swirl fading out, like here:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/mask_applied.jpg" alt="Mask Applied, layer fading out" title="Mask Applied, layer fading out" /><br />
Finally, the last step &#8211; add the &#8220;i&#8221; symbol (place it under the swirl layer, &#8220;Times New Roman&#8221;, 157pt) with the following layer styles (&#8221;Bevel and Emboss&#8221;, &#8220;Gradient Overlay&#8221;, &#8220;Stroke&#8221;):<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/i_symbol_gradient.jpg" alt="“I” symbol gradient options" title="“I” symbol gradient options" /><br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/i_symbol_style.jpg" alt="Bevel and Emboss, “i” symbol" title="Bevel and Emboss, “i” symbol" /><br />
That&#8217;s it. Enjoy.<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/final_result.jpg" alt="Final Result" title="Final Result" /><br />
Don&#8217;t forget to download the icon set. And wait the next part of Sophis tutorial.</p>
]]></content:encoded>
			<wfw:commentRss>http://thenotsimple.myfavoritepaintings.com/2007/10/27/iconshock-sophistique-inspiration-part-i/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Create Vista Buttons Using Styles Only</title>
		<link>http://thenotsimple.myfavoritepaintings.com/2007/10/18/create-vista-buttons-using-styles-only/</link>
		<comments>http://thenotsimple.myfavoritepaintings.com/2007/10/18/create-vista-buttons-using-styles-only/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 11:03:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Photoshop Freebies]]></category>

		<guid isPermaLink="false">http://thenotsimple.com/2007/10/18/create-vista-buttons-using-styles-only/</guid>
		<description><![CDATA[In this tutorial I&#8217;ll show you how to create vista styled buttons using Photoshop layer&#8217;s styles only.


 This PSD was downloadedtimes.





First, we need new document (Ctrl + N) and new layer (Shift + Ctrl + N) to work. I&#8217;ve used 200&#215;100 canvas and 105&#215;29 button layer.

 
 

Apply some (no matter what) color to selected [...]]]></description>
			<content:encoded><![CDATA[<p>In this tutorial I&#8217;ll show you how to create vista styled buttons using Photoshop layer&#8217;s styles only.</p>
<p><img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/vista_buttons_using_styles1.jpg" alt="Vista Buttons Using Styles" title="Vista Buttons Using Styles" /><br />
<span id="more-18"></span><br />
<a href="http://thenotsimple.myfavoritepaintings.com/wp-content/plugins/download-monitor/download.php?id=2" class="download"></a> This PSD was downloaded 14383 times.</p>
<div style="float: left; margin-right: 10px">
<script type="text/javascript"><!--
google_ad_client = "pub-6661595645023959";
//336x280 graphic, free icons
google_ad_slot = "4645116157";
google_ad_width = 336;
google_ad_height = 280;
//--></script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<p>First, we need new document (Ctrl + N) and new layer (Shift + Ctrl + N) to work. I&#8217;ve used 200&#215;100 canvas and 105&#215;29 button layer.</p>
<div style="padding: 5px; width: 100%; text-align: center">
<script type="text/javascript"><!--
google_ad_client = "pub-6661595645023959";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text"; //2007-11-05: free icons
google_ad_channel = "5349688510";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "b63b3b";
google_color_text = "5e5e5e";
google_color_url = "b63b3b"; //--> </script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
</div>
<p>Apply some (no matter what) color to selected area</p>
<p><img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/blank_document.jpg" alt="Blank Button Layer" title="Blank Button Layer" /></p>
<p>Let&#8217;s now work with the styles. First &#8211; select true glass gradient colors.<br />
I&#8217;ve used : #656a6d &#8211; #000000; #434343 &#8211; #dedede;<br />
Something like that:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/black_gradient.jpg" alt="Gradient Options" title="Gradient Options" /><br />
Apply gradient style to layer and you should see:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/gradient_only.jpg" alt="Applied gradient" title="Applied gradient" /><br />
The next &#8211; add some stroke to layer<br />
I&#8217;ve used 1 px dark stroke</p>
<p><img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/stroke.jpg" alt="Stroke Options" title="Stroke Options" /><br />
The result<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/gradient_and_stroke.jpg" alt="Gradient and Stroke Applied" title="Gradient and Stroke Applied" /><br />
The next step &#8211; apply another inner stroke, since it&#8217;s impossible &#8211; we&#8217;ll use &#8220;Inner Glow&#8221;<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/inner_glow_options.jpg" alt="Inner Glow Options" title="Inner Glow Options" /><br />
The result</p>
<p><img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/almost_done.jpg" alt="Button Almost Done" title="Button Almost Done" /><br />
The button is almost done, except one little thing &#8211; tiny rounded corners<br />
I&#8217;ve used rectangle-circle technique to select soft corners (don&#8217;t forget to hold Shift while selecting rectangle)<br />
To understand better what&#8217;s going on &#8211; disable styles<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/selecting_corners.jpg" alt="Selecting Corners" title="Selecting Corners" /><br />
Deselect all corners except left top, then hit del. To select and delete other corners you can transform selection (Select-&gt;Transform selection) or copy the top left corner to another layer and then edit it. The second solution is prefarable cause you&#8217;ll get completely identycal corners<br />
Enable styles and you will see:<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/ready_button.jpg" alt="Ready Button" title="Ready Button" /><br />
That&#8217;s it!</p>
<p>You can compare my result with Vista screenshots<br />
<img src="http://thenotsimple.myfavoritepaintings.com/wp-content/uploads/2007/10/compare.jpg" alt="Compare with Vista Screehshots" title="Compare with Vista Screehshots" /><br />
Save this style to use in future (Blending Options-&gt;New style)<br />
As the bonus &#8211; another 9 buttons for you. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://thenotsimple.myfavoritepaintings.com/2007/10/18/create-vista-buttons-using-styles-only/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Click Tracking or How Do I Track My Links?</title>
		<link>http://thenotsimple.myfavoritepaintings.com/2007/10/18/click-tracking-or-how-do-i-track-my-links/</link>
		<comments>http://thenotsimple.myfavoritepaintings.com/2007/10/18/click-tracking-or-how-do-i-track-my-links/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 07:30:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://thenotsimple.com/2007/10/18/click-tracking-or-how-do-i-track-my-links/</guid>
		<description><![CDATA[In this tutorial you will learn how to track different user actions on the site using AJAX. It&#8217;s no longer the problem to know what the user doing.
Here you can find a few very useful solutions to track link clicking or whatever-action-you-want-to-track.

Basic solutions
 This file was downloadedtimes.
The first solution &#8211; to redeclare global default functions:

document.onclick [...]]]></description>
			<content:encoded><![CDATA[<p>In this tutorial you will learn how to track different user actions on the site using AJAX. It&#8217;s no longer the problem to know what the user doing.</p>
<p>Here you can find a few very useful solutions to track link clicking or whatever-action-you-want-to-track.</p>
<p><span id="more-17"></span></p>
<h2>Basic solutions</h2>
<p><a CLASS="download" HREF="http://thenotsimple.myfavoritepaintings.com/wp-content/plugins/download-monitor/download.php?id=1"></a> This file was downloaded 683 times.</p>
<p>The first solution &#8211; to redeclare global default functions:</p>
<pre CLASS="javascript_code">
document.onclick = function(e) {
	e = e || event;
	var el = e.target || e.srcElement;
	if (el.tagName=='A')
	{
		alert('The link was clicked');
	}
}</pre>
<p>Pretty simple, right?<br />
Let&#8217;s improve it to make useful stats:</p>
<pre CLASS="javascript_code">
document.onclick = function(e) {
	e = e || event;
	var el = e.target || e.srcElement;
	//el - clicked element
	if (el.tagName=='A' &amp;&amp; el.target=='_blank')
	{
		//Here we can send ajax response to our stat
		//script to collect the outbound link anchors
		SendResponse('stat.php', el.innerHTML);
		/*Keep in mind - you can do whatever you want
		with that data -
		store time, referer, page name or other
		details
		You can even build click map of single page
		or entier web-site*/
	}
}</pre>
<p>This solution works great in IE6-7, FF 1.5-2.0 and Opera 9<br />
Another solution &#8211; dynamically add onclick events to target elements<br />
Here&#8217;s the code:</p>
<pre CLASS="javascript_code">
function addEventListener(instance, eventName, listener) {
	var listenerFn = listener;
	if (instance.addEventListener)
	{
		instance.addEventListener(eventName, listenerFn, false);
	} else if (instance.attachEvent)
	{
		listenerFn = function() {listener(window.event);}
		instance.attachEvent("on" + eventName, listenerFn);
	} else
	{
		throw new Error("Event registration not supported");
	}
	return
	{
		instance: instance,
		name: eventName,
		listener: listenerFn ;
	}
}
function AddOnclickToAllLinks() {
	for (i=0; i&lt;document.links.length; i++)
	{
		//Check for outbound parameter - target
		if (document.links[i].target == '_blank')
		addEventListener(document.links[i],
					"click",
		function() {alert("You clicked me!");});
	}
}</pre>
<p>Let&#8217;s add onload=&#8221;AddOnclickToAllLinks();&#8221; to &lt;body&gt; tag.<br />
You see &#8211; now you have onclicks on every outbound link.</p>
<p>Ok, let&#8217;s learn now how to implement this code and solutions in real tasks</p>
<h2>Sample script : Collecting exit-pages</h2>
<p>I&#8217;m sure you have hard-structured web-site, or may be not, anyway &#8211; some template system should be in use.</p>
<h3>So the first step &#8211; is to paste .js library code to your output HTML</h3>
<p>Don&#8217;t forget to save your Javascript code to independent file (in example js-code was saved to /js_library/ directory and named &#8220;tracker.js&#8221;)<br />
It doesn&#8217;t matter what solution will you choose (first with onclick redeclare or second with dynamic onclick declare)</p>
<p>it should look like this:</p>
<p>&#8230;&#8230;</p>
<p>&lt;meta name=&#8221;robots&#8221; content=&#8221;index, follow&#8221; /&gt;</p>
<p>&lt;script src=&#8221;/js_library/tracker.js&#8221; mce_src=&#8221;/js_library/tracker.js&#8221; type=&#8221;"&gt;&lt;/script&gt;</p>
<p>&lt;/head&gt;</p>
<p>&#8230;&#8230;</p>
<p>Here&#8217;s what I&#8217;ve saved to .js file:</p>
<pre CLASS="javascript_code">
document.onclick = function(e){
	e = e || event;
	var el = e.target || e.srcElement;
	if (el.tagName=='A' &amp;&amp; el.target=='_blank')
	{
		makeRequest('stat.php');
	}
}

function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest)
{
	http_request = new XMLHttpRequest();
	if (http_request.overrideMimeType)
	{
		http_request.overrideMimeType('text/xml');
	}
} else if (window.ActiveXObject)
	{
		try
	        {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e)
		{
		try
	        {
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e)
		{}
	}
}
if (!http_request)
{
	return false;
}
	http_request.onreadystatechange = function()
	{};
	http_request.open('GET', url, true);
	http_request.send(null);
}</pre>
<p>I&#8217;ve used the simplest way to send GET HTTP request (function makeRequest) &#8211; you are able to use your favourite AJAX-framework.</p>
<h3>Collecting the stats on the server-side</h3>
<p>The simpliest way &#8211; not to use any frameworks or classes, keep in mind &#8211; the more visitors you have &#8211; the more stats will collect your script. Be aware of server&#8217;s overload.</p>
<h3>Mysql table</h3>
<p>Create &#8220;stats&#8221; table in PhpMyAdmin or whatever you use to manage your MySql server.</p>
<pre CLASS="javascript_code">
CREATE TABLE `stats` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`ip` VARCHAR( 20 ) NOT NULL ,
`page` VARCHAR( 512 ) NOT NULL ,
`time` INT( 11 ) NOT NULL
) ENGINE = MYISAM ;</pre>
<p>Now we have the table.<br />
The next code is just a sample of tiny stats collector written on PHP:</p>
<pre CLASS="javascript_code">
&lt;?php
	//Config
	$db_host = "localhost";
	$db_user = "root";
	$db_password = "";
	$db_basename = "tracker";
	$db_debug = false;

	//Tiny DB-lib
	include('lib_db.php');
	//Connecting to DB
	sql_establish();

	//Current time
	$tracker_time = time();
	//Tracked page
	$tracker_page = mysql_real_escape_string(
	substr(getenv("HTTP_REFERER"), 0, 512));
	//IP of the visitor
	$tracker_ip = getenv("REMOTE_ADDR");

	//Checking for double
	$double_check = sql_first_query(
		"SELECT id FROM stats WHERE ip = '$tracker_ip'
					AND page = '$tracker_page'
					AND time = $tracker_time");

	if (!is_array($double_check) || empty($double_check))
	{
		//Inserting new query
		sql_db_query("INSERT INTO stats
		VALUES('', '$tracker_ip', '$tracker_page', $tracker_time)");
	}
?&gt;</pre>
<p>That&#8217;s it!. You&#8217;ve just created a simple exit-page tracker.</p>
<h2>P.S. For lazy guys</h2>
<p>You can easily track your link by pasting onclick events on every link manually.<br />
<a CLASS="download" HREF="http://thenotsimple.myfavoritepaintings.com/wp-content/plugins/download-monitor/download.php?id=1"></a> This file was downloaded 683 times.</p>
]]></content:encoded>
			<wfw:commentRss>http://thenotsimple.myfavoritepaintings.com/2007/10/18/click-tracking-or-how-do-i-track-my-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
