From: <Saved by Microsoft Internet Explorer 5>
Subject: Tex2Me Offers Free Messaging at MobHappy
Date: Sat, 6 May 2006 07:37:31 +0100
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0022_01C670DF.EECDCB00"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869

This is a multi-part message in MIME format.

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-messaging/

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD=20
profile=3Dhttp://gmpg.org/xfn/11><TITLE>Tex2Me Offers Free Messaging at =
MobHappy</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3DUTF-8">
<META content=3D"MSHTML 6.00.2900.2873" name=3DGENERATOR>
<META content=3D"K2 Beta Two r156" name=3Dtemplate>
<META content=3D"Russell Buckley and Carlo Longino on mobile =
technology."=20
name=3Ddescription><LINK media=3Dscreen=20
href=3D"http://mobhappy.com/blog1/wp-content/themes/k2/style.css" =
type=3Dtext/css=20
rel=3Dstylesheet><LINK media=3Dscreen=20
href=3D"http://mobhappy.com/blog1/wp-content/themes/k2/styles/MIna2.css" =

type=3Dtext/css rel=3Dstylesheet><LINK title=3D"RSS 2.0"=20
href=3D"http://feeds.feedburner.com/Mobhappy" type=3Dapplication/rss+xml =

rel=3Dalternate><LINK title=3D"RSS .92" =
href=3D"http://feeds.feedburner.com/Mobhappy"=20
type=3Dtext/xml rel=3Dalternate><LINK title=3D"Atom 0.3"=20
href=3D"http://feeds.feedburner.com/Mobhappy" =
type=3Dapplication/atom+xml=20
rel=3Dalternate><LINK href=3D"http://mobhappy.com/blog1/xmlrpc.php" =
rel=3Dpingback>
<SCRIPT =
src=3D"http://mobhappy.com/blog1/wp-content/themes/k2/js/prototype.js.php=
"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT =
src=3D"http://mobhappy.com/blog1/wp-content/themes/k2/js/effects.js.php" =

type=3Dtext/javascript></SCRIPT>

<SCRIPT =
src=3D"http://mobhappy.com/blog1/wp-content/themes/k2/js/ajax_comments.js=
"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT =
src=3D"http://mobhappy.com/blog1/wp-content/themes/k2/js/k2functions.js" =

type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript>//<![CDATA[=0A=
		//  Copyright (c) 2004 Bitflux GmbH                                    =
  =0A=
=0A=
//  Licensed under the Apache License, Version 2.0 (the "License");      =0A=
//  you may not use this file except in compliance with the License.     =0A=
//  You may obtain a copy of the License at                              =0A=
//  http://www.apache.org/licenses/LICENSE-2.0                           =0A=
//  Unless required by applicable law or agreed to in writing, software  =0A=
//  distributed under the License is distributed on an "AS IS" BASIS,    =0A=
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or      =0A=
//  implied. See the License for the specific language governing         =0A=
//  permissions and limitations under the License.                       =0A=
=0A=
//  Author: Bitflux GmbH                             =0A=
=0A=
=0A=
=0A=
var liveSearchReq =3D false;=0A=
var t =3D null;=0A=
var liveSearchLast =3D "";=0A=
var isIE =3D false;=0A=
// on !IE we only have to initialize it once=0A=
if (window.XMLHttpRequest) {=0A=
	liveSearchReq =3D new XMLHttpRequest();=0A=
}=0A=
=0A=
function liveSearchInit() {=0A=
	=0A=
	if (navigator.userAgent.indexOf("Safari") > 0) {=0A=
		$('livesearch').addEventListener("keydown",liveSearchKeyPress,false);=0A=
		$('livesearch').setAttribute("autocomplete","off");=0A=
	} else if (navigator.product =3D=3D "Gecko") {=0A=
		$('livesearch').addEventListener("keypress",liveSearchKeyPress,false);=0A=
		$('livesearch').setAttribute("autocomplete","off");=0A=
	} else {=0A=
		$('livesearch').attachEvent('onkeydown',liveSearchKeyPress);=0A=
		isIE =3D true;=0A=
		$('livesearch').setAttribute("autocomplete","off");=0A=
	}=0A=
}=0A=
=0A=
function liveSearchKeyPress(event) {=0A=
	if (event.keyCode =3D=3D 40 )=0A=
	//KEY DOWN=0A=
	{=0A=
		highlight =3D $("LSHighlight");=0A=
		if (!highlight) {=0A=
			highlight =3D =
$("LSResult").firstChild.firstChild.nextSibling.firstChild;=0A=
		} else {=0A=
			highlight.removeAttribute("id");=0A=
			highlight =3D highlight.nextSibling;=0A=
		}=0A=
		if (highlight) {=0A=
			highlight.setAttribute("id","LSHighlight");=0A=
		} =0A=
		if (!isIE) { event.preventDefault(); }=0A=
	} =0A=
	//KEY UP=0A=
	else if (event.keyCode =3D=3D 38 ) {=0A=
		highlight =3D $("LSHighlight");=0A=
		if (!highlight) {=0A=
			highlight =3D =
$("LSResult").firstChild.firstChild.nextSibling.nextSibling.lastChild;=0A=
		} =0A=
		else {=0A=
			highlight.removeAttribute("id");=0A=
			highlight =3D highlight.previousSibling;=0A=
		}=0A=
		if (highlight) {=0A=
				highlight.setAttribute("id","LSHighlight");=0A=
		}=0A=
		if (!isIE) { event.preventDefault(); }=0A=
	} =0A=
	//ESC=0A=
	else if (event.keyCode =3D=3D 27) {=0A=
		highlight =3D $("LSHighlight");=0A=
		if (highlight) {=0A=
			highlight.removeAttribute("id");=0A=
		}=0A=
		$("LSResult").style.display =3D "none";=0A=
		document.forms.searchform.s.value =3D '';=0A=
	} =0A=
}=0A=
function liveSearchStart() {=0A=
	if (t) {=0A=
		window.clearTimeout(t);=0A=
	}=0A=
	t =3D window.setTimeout("liveSearchDoSearch()",200);=0A=
}=0A=
=0A=
function liveSearchDoSearch() {=0A=
	if (liveSearchLast !=3D document.forms.searchform.s.value) {=0A=
	if (liveSearchReq && liveSearchReq.readyState < 4) {=0A=
		liveSearchReq.abort();=0A=
		// Fade the background of the results box=0A=
	}=0A=
	if ( document.forms.searchform.s.value =3D=3D "") {=0A=
		$("LSResult").style.display =3D "none";=0A=
		highlight =3D $("LSHighlight");=0A=
		if (highlight) {=0A=
			highlight.removeAttribute("id");=0A=
		}=0A=
		return false;=0A=
	}=0A=
	if (window.XMLHttpRequest) {=0A=
	// branch for IE/Windows ActiveX version=0A=
	} else if (window.ActiveXObject) {=0A=
		liveSearchReq =3D new ActiveXObject("Microsoft.XMLHTTP");=0A=
	}=0A=
	liveSearchReq.onreadystatechange=3D liveSearchProcessReqChange;=0A=
	liveSearchReq.open("GET", =
"http://mobhappy.com/blog1/wp-content/themes/k2/livesearch.php?s=3D" + =
document.forms.searchform.s.value);=0A=
	liveSearchLast =3D document.forms.searchform.s.value;=0A=
	liveSearchReq.send(null);=0A=
	}=0A=
}=0A=
=0A=
function liveSearchProcessReqChange() {=0A=
	=0A=
	if (liveSearchReq.readyState =3D=3D 4) {=0A=
		var  res =3D $("LSResult");=0A=
		res.style.display =3D "block";=0A=
		/* res.firstChild.innerHTML =3D liveSearchReq.responseText; */=0A=
		res.firstChild.innerHTML =3D '<div id=3D"searchcontrols"><small>Arrow =
keys, enter & <a href=3D"javascript://" title=3D"Close results" =
onclick=3D"closeResults()">escape</a></small><br =
/></div>'+liveSearchReq.responseText;=0A=
	}=0A=
	=0A=
	//getDDSize();=0A=
	//setListenLinks();=0A=
}=0A=
=0A=
function liveSearchSubmit() {=0A=
	var highlight =3D $("LSHighlight");=0A=
	if (highlight && highlight.firstChild) {=0A=
		window.location =3D highlight.firstChild.getAttribute("href");=0A=
		return false;=0A=
	} =0A=
	else {=0A=
		return true;=0A=
	}=0A=
}=0A=
=0A=
function closeResults() {=0A=
    $("LSResult").style.display =3D "none";=0A=
}=0A=
		window.onload =3D liveSearchInit;=0A=
	//]]></SCRIPT>
<RDF:RDF =
xmlns:trackback=3D"http://madskills.com/public/xml/rss/module/trackback/"=
=20
xmlns:dc=3D"http://purl.org/dc/elements/1.1/"=20
xmlns:rdf=3D"http://www.w3.org/1999/02/22-rdf-syntax-ns#"><RDF:DESCRIPTIO=
N=20
trackback:ping=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free=
-messaging/trackback/"=20
dc:title=3D"Tex2Me Offers Free Messaging"=20
dc:identifier=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-=
messaging/"=20
rdf:about=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-mess=
aging/"=20
/></RDF:RDF><LINK title=3D"May 2006" =
href=3D"http://mobhappy.com/blog1/2006/05/"=20
rel=3Darchives><LINK title=3D"April 2006" =
href=3D"http://mobhappy.com/blog1/2006/04/"=20
rel=3Darchives><LINK title=3D"March 2006" =
href=3D"http://mobhappy.com/blog1/2006/03/"=20
rel=3Darchives><LINK title=3D"February 2006"=20
href=3D"http://mobhappy.com/blog1/2006/02/" rel=3Darchives><LINK=20
title=3D"January 2006" href=3D"http://mobhappy.com/blog1/2006/01/"=20
rel=3Darchives><LINK title=3D"December 2005"=20
href=3D"http://mobhappy.com/blog1/2005/12/" rel=3Darchives><LINK=20
title=3D"November 2005" href=3D"http://mobhappy.com/blog1/2005/11/"=20
rel=3Darchives><LINK title=3D"October 2005"=20
href=3D"http://mobhappy.com/blog1/2005/10/" rel=3Darchives><LINK=20
title=3D"September 2005" href=3D"http://mobhappy.com/blog1/2005/09/"=20
rel=3Darchives><LINK title=3D"August 2005" =
href=3D"http://mobhappy.com/blog1/2005/08/"=20
rel=3Darchives><LINK title=3D"July 2005" =
href=3D"http://mobhappy.com/blog1/2005/07/"=20
rel=3Darchives><LINK title=3D"June 2005" =
href=3D"http://mobhappy.com/blog1/2005/06/"=20
rel=3Darchives><LINK title=3D"May 2005" =
href=3D"http://mobhappy.com/blog1/2005/05/"=20
rel=3Darchives><LINK title=3D"April 2005" =
href=3D"http://mobhappy.com/blog1/2005/04/"=20
rel=3Darchives><LINK title=3D"March 2005" =
href=3D"http://mobhappy.com/blog1/2005/03/"=20
rel=3Darchives><LINK title=3D"February 2005"=20
href=3D"http://mobhappy.com/blog1/2005/02/" rel=3Darchives><LINK=20
title=3D"January 2005" href=3D"http://mobhappy.com/blog1/2005/01/"=20
rel=3Darchives><LINK title=3D"December 2004"=20
href=3D"http://mobhappy.com/blog1/2004/12/" rel=3Darchives><LINK=20
title=3D"November 2004" href=3D"http://mobhappy.com/blog1/2004/11/"=20
rel=3Darchives><LINK title=3D"October 2004"=20
href=3D"http://mobhappy.com/blog1/2004/10/" rel=3Darchives><LINK=20
title=3D"September 2004" href=3D"http://mobhappy.com/blog1/2004/09/"=20
rel=3Darchives><LINK title=3D"August 2004" =
href=3D"http://mobhappy.com/blog1/2004/08/"=20
rel=3Darchives><LINK title=3D"July 2004" =
href=3D"http://mobhappy.com/blog1/2004/07/"=20
rel=3Darchives><LINK title=3D"June 2004" =
href=3D"http://mobhappy.com/blog1/2004/06/"=20
rel=3Darchives><LINK title=3D"May 2004" =
href=3D"http://mobhappy.com/blog1/2004/05/"=20
rel=3Darchives><LINK title=3D"April 2004" =
href=3D"http://mobhappy.com/blog1/2004/04/"=20
rel=3Darchives><LINK title=3DRSD =
href=3D"http://mobhappy.com/blog1/xmlrpc.php?rsd"=20
type=3Dapplication/rsd+xml rel=3DEditURI></HEAD>
<BODY class=3D" permalink">
<DIV id=3Dpage>
<DIV id=3Dheader>
<H1><A href=3D"http://mobhappy.com/blog1">MobHappy</A></H1>
<P class=3Ddescription>Russell Buckley and Carlo Longino on mobile =
technology.</P>
<UL class=3Dmenu>
  <LI class=3Dcurrent_page_item><A =
href=3D"http://mobhappy.com/blog1">Blog</A>=20
  <LI class=3Dpage_item><A title=3DAbout=20
  href=3D"http://mobhappy.com/blog1/about/">About</A>=20
  <LI class=3Dpage_item><A title=3DArchives=20
  href=3D"http://mobhappy.com/blog1/archives/">Archives</A>=20
  <LI class=3Dpage_item><A title=3DBlogroll=20
  href=3D"http://mobhappy.com/blog1/blogroll/">Blogroll</A> =
</LI></UL></DIV>
<HR>

<DIV class=3Dprimary>
<P>
<SCRIPT language=3DJavaScript>=0A=
<!--=0A=
ctxt_ad_partner =3D "5104772830";=0A=
ctxt_ad_section =3D "17313";=0A=
ctxt_ad_bg =3D "";=0A=
ctxt_ad_width =3D 468;=0A=
ctxt_ad_height =3D 60;=0A=
ctxt_ad_bc =3D "FFFFFF";=0A=
ctxt_ad_cc =3D "FFFFFF";=0A=
ctxt_ad_lc =3D "666666";=0A=
ctxt_ad_tc =3D "666666";=0A=
ctxt_ad_uc =3D "666666";=0A=
// -->=0A=
</SCRIPT>

<SCRIPT language=3DJavaScript=20
src=3D"http://ypn-js.overture.com/partner/js/ypn.js">=0A=
</SCRIPT>
</P>
<HR>

<DIV class=3Dnavigation>
<DIV class=3Dleft>=C2=AB <A=20
href=3D"http://mobhappy.com/blog1/2006/04/24/is-hotxt-hot/">Is Hotxt=20
Hot?</A></DIV>
<DIV class=3Dright><A=20
href=3D"http://mobhappy.com/blog1/2006/04/24/links-for-april-24/">Links =
for April=20
24</A> =C2=BB</DIV>
<DIV class=3Dclear></DIV></DIV>
<HR>

<DIV class=3D"item entry" id=3Dpost-1705>
<DIV class=3Ditemhead>
<H3><A title=3D'Permanent Link to "Tex2Me Offers Free Messaging"'=20
href=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-messaging=
/"=20
rel=3Dbookmark>Tex2Me Offers Free Messaging</A></H3><!-- The following =
two sections are for a noteworthy plugin currently in alpha. They'll get =
cleaned up and integrated better --><SMALL=20
class=3Dmetadata><SPAN class=3Dchronodata>by<STRONG> <A=20
title=3D"Posts by Russell Buckley"=20
href=3D"http://mobhappy.com/blog1/author/russell/">Russell Buckley</A> =
</STRONG>on=20
April 24th, 2006 in <A title=3D"View all posts in Analysis"=20
href=3D"http://mobhappy.com/blog1/category/analysis/"=20
rel=3D"category tag">Analysis</A>, <A title=3D"View all posts in New =
launches"=20
href=3D"http://mobhappy.com/blog1/category/new-launches/" =
rel=3D"category tag">New=20
launches</A></SPAN> </SMALL></DIV>
<DIV class=3Ditemtext>
<P><IMG src=3D"http://www.tex2me.com/images/Tex2logo.gif" =
align=3Dright></P>
<P>Earlier today, I wrote about <A=20
href=3D"http://mobhappy.com/blog1/2006/04/24/is-hotxt-hot/">Hotxt</A>, =
which=20
offers cheap messaging via a Java application over GPRS. I concluded =
that I was=20
a little luke warm about it, despite their high profile investor, and =
that it=20
had usability issues and would be more ballsy if it were free.</P>
<P><A href=3D"http://feeds.feedburner.com/SmsTextNews?m=3D661">SMS Text =
News</A>=20
linked to the story and MobHappy reader (and Tex2me founder), Stuart =
McWilliam=20
left a comment, both pointing in the direction of <A=20
href=3D"http://www.tex2me.com/">Tex2Me</A>. </P>
<P>Tex2Me has been launched on a shoe stringn in December 2005. It =
actually=20
overcomes all my criticisms of Hotxt, in that it offers a free service =
(apart=20
from operator data charges, of course) and it=E2=80=99s very clear and =
simply explained.=20
They don=E2=80=99t have an equivalent to Hotxt=E2=80=99s Out service, =
which means it=E2=80=99s easy to=20
understand - both parties need to install the app and then they get free =

messaging. End of story.</P>
<P>I spoke to Phil Jones, one of the founders of Tex2Me and he says that =
the=20
basic service will always be free and that they plan on introducing =
premium=20
services in the future. This was the formulae that worked for Skype and =
I think=20
it stands a good chance of succeeding here too.</P>
<P>Bearing in mind that Tex2Me have (unwittingly) overcome all my issues =
with=20
their richer rival, I think it=E2=80=99s only fair to give them the red =
hot accolade I=20
was withholding from Hotxt. I expect they=E2=80=99ll be getting a few =
calls from some=20
likely investors pretty soon. </P></DIV><!--=0A=
				<rdf:RDF xmlns:rdf=3D"http://www.w3.org/1999/02/22-rdf-syntax-ns#" =0A=
	    xmlns:dc=3D"http://purl.org/dc/elements/1.1/"=0A=
	    =
xmlns:trackback=3D"http://madskills.com/public/xml/rss/module/trackback/"=
>=0A=
		<rdf:Description =
rdf:about=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-mess=
aging/"=0A=
    =
dc:identifier=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-=
messaging/"=0A=
    dc:title=3D"Tex2Me Offers Free Messaging"=0A=
    =
trackback:ping=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free=
-messaging/trackback/" />=0A=
</rdf:RDF>				--></DIV><!-- You can start editing here. -->
<HR>

<DIV class=3Dcomments id=3Dcomments>
<H4><A name=3Dcomments></A><A=20
href=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-messaging=
/#comments">7=20
Responses to =E2=80=9CTex2Me Offers Free Messaging=E2=80=9D =
&nbsp;</A></H4>
<DIV class=3Dmetalinks><SPAN class=3Dcommentsrsslink><A=20
href=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-messaging=
/feed/">Feed=20
for this Entry</A></SPAN> <SPAN class=3Dtrackbacklink><A=20
title=3D"Copy this URI to trackback this entry."=20
href=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-messaging=
/trackback/">Trackback=20
Address</A></SPAN> </DIV>
<OL class=3Dcommentlist id=3Dcommentlist>
  <LI class=3D" item" id=3Dcomment-3543><A name=3Dcomment-3543></A><A =
class=3Dcounter=20
  title=3D"Permanent Link to this Comment"=20
  =
href=3D"http://mobhappy.com/blog1/2006/04/24/tex2me-offers-free-messaging=
  </P></DIV></LI></OL><!-- Reply Form -->
<DIV id=3Dloading style=3D"DISPLAY: none">Posting Your Comment<BR>Please =
Wait </DIV>
<H4>Leave a Reply</H4>
<FORM id=3Dcommentform=20
onsubmit=3D"new Ajax.Updater({success: 'commentlist'}, =
'http://mobhappy.com/blog1/wp-content/themes/k2/comments-ajax.php', =
{asynchronous: true, evalScripts: true, insertion: Insertion.Bottom, =
onComplete: function(request){complete(request)}, onFailure: =
function(request){failure(request)}, onLoading: =
function(request){loading()}, parameters: Form.serialize(this)}); return =
false;"=20
action=3Dhttp://mobhappy.com/blog1/wp-comments-post.php method=3Dpost>
<DIV id=3Derror style=3D"DISPLAY: none">There was an error with your =
comment, please=20
try again. </DIV>
<DIV id=3Dauthorinfo>
<P><INPUT id=3Dauthor tabIndex=3D1 size=3D22 name=3Dauthor> <LABEL=20
for=3Dauthor><SMALL><STRONG>Name</STRONG> (required)</SMALL></LABEL></P>
<P><INPUT id=3Demail tabIndex=3D2 size=3D22 name=3Demail> <LABEL=20
for=3Demail><SMALL><STRONG>Mail</STRONG> (will not be published)=20
(required)</SMALL></LABEL></P>
<P><INPUT id=3Durl tabIndex=3D3 size=3D22 name=3Durl> <LABEL=20
for=3Durl><SMALL><STRONG>Website</STRONG></SMALL></LABEL></P></DIV><!--<p=
><small><strong>XHTML:</strong> You can use these tags: &lt;a =
href=3D&quot;&quot; title=3D&quot;&quot;&gt; &lt;abbr =
title=3D&quot;&quot;&gt; &lt;acronym title=3D&quot;&quot;&gt; &lt;b&gt; =
&lt;blockquote cite=3D&quot;&quot;&gt; &lt;code&gt; &lt;em&gt; &lt;i&gt; =
&lt;strike&gt; &lt;strong&gt; </small></p>-->
<P><TEXTAREA id=3Dcomment tabIndex=3D4 name=3Dcomment rows=3D10 =
cols=3D100></TEXTAREA></P>
<P><INPUT id=3Dsubmit tabIndex=3D5 type=3Dsubmit value=3DSubmit =
name=3Dsubmit> <INPUT=20
type=3Dhidden value=3D1705 name=3Dcomment_post_ID> <BR =
class=3Dclear></P></FORM></DIV><!-- Close .comments container -->
<SCRIPT language=3DJavaScript>=0A=
<!--=0A=
ctxt_ad_partner =3D "5104772830";=0A=
ctxt_ad_section =3D "17314";=0A=
ctxt_ad_bg =3D "";=0A=
ctxt_ad_width =3D 336;=0A=
ctxt_ad_height =3D 280;=0A=
ctxt_ad_bc =3D "FFFFFF";=0A=
ctxt_ad_cc =3D "FFFFFF";=0A=
ctxt_ad_lc =3D "666666";=0A=
ctxt_ad_tc =3D "666666";=0A=
ctxt_ad_uc =3D "666666";=0A=
// -->=0A=
</SCRIPT>

<SCRIPT language=3DJavaScript=20
src=3D"http://ypn-js.overture.com/partner/js/ypn.js">=0A=
</SCRIPT>
</DIV>
<HR>

<DIV class=3Dsecondary>
<DIV class=3Dsb-search>
<H2>Search</H2>
<DIV class=3Dlivesearchform>
<FORM id=3Dsearchform name=3Dsearchform onsubmit=3D"return =
liveSearchSubmit()"=20
action=3D/blog1/index.php method=3Dget><INPUT =
onkeypress=3DliveSearchStart()=20
id=3Dlivesearch=20
onblur=3D"setTimeout('closeResults()',2000); if (this.value =3D=3D '') =
{this.value =3D 'search blog archives';}"=20
onfocus=3D"if (this.value =3D=3D 'search blog archives') {this.value =3D =
'';}"=20
value=3D"search blog archives" name=3Ds> <INPUT id=3Dsearchsubmit =
style=3D"DISPLAY: none" type=3Dsubmit value=3DSearch><!--[if IE]>=20

<DIV><![endif]-->
<DIV id=3DLSResult style=3D"DISPLAY: none">
<DIV=20
id=3DLSShadow></DIV></DIV><!--[if =
IE]></DIV><BR><![endif]--></FORM></DIV></DIV>
<P><A title=3D"Subscribe to my feed, MobHappy"=20
href=3D"http://feeds.feedburner.com/Mobhappy" type=3Dapplication/rss+xml =

rel=3Dalternate><IMG=20
style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
alt=3D"" =
src=3D"http://www.feedburner.com/fb/images/pub/feed-icon16x16.png">=20
Subscribe to RSS</A></P><A=20
href=3D"http://www.bloglines.com/sub/http://feeds.feedburner.com/Mobhappy=
"><IMG=20
alt=3D"Subscribe with Bloglines"=20
src=3D"http://www.bloglines.com/images/sub_modern8.gif" border=3D0> =
</A><BR><A=20
href=3D"http://add.my.yahoo.com/content?.intl=3Dus&amp;url=3Dhttp%3A//fee=
ds.feedburner.com/Mobhappy"><IMG=20
height=3D17 alt=3D"Add to My Yahoo!"=20
src=3D"http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif" =
width=3D91=20
align=3Dmiddle border=3D0></A>=20
<P>
<FORM action=3Dhttp://www.feedblitz.com/feedblitz.exe?AddNewUserDirect=20
method=3Dpost>Enter your address here to subscribe via e-mail:<BR><INPUT =

style=3D"WIDTH: 95px" maxLength=3D255 name=3DEMAIL><BR><INPUT =
type=3Dhidden value=3D499=20
name=3DFEEDID> <INPUT type=3Dsubmit value=3DSubmit> <BR>Powered by <A=20
href=3D"http://www.feedblitz.com/">FeedBlitz</A></FORM></P>
<P><A href=3D"http://mobhappy.com/blog1/?p=3D163"><IMG=20
src=3D"http://mobhappy.com/images/carnival.gif" border=3D0></A></P><A=20
href=3D"mailto:mobhappy@mobhappy.com">Email Us</A> for a copy of =
Russell's free=20
white paper on mobile marketing<BR><A =
href=3D"mailto:carlo@mobhappy.com">Email=20
Carlo</A><BR><A href=3D"mailto:russell@mobhappy.com">Email =
Russell</A><BR>
<P>
<SCRIPT language=3Djavascript=20
src=3D"http://proxy.blogads.com/svttfmmcvdlmfzhnbjmdpn/mobhappy/feed.js">=
</SCRIPT>
</P>
<SCRIPT language=3DJavaScript>=0A=
<!--=0A=
ctxt_ad_partner =3D "5104772830";=0A=
ctxt_ad_section =3D "17294";=0A=
ctxt_ad_bg =3D "";=0A=
ctxt_ad_width =3D 120;=0A=
ctxt_ad_height =3D 240;=0A=
ctxt_ad_bc =3D "FFFFFF";=0A=
ctxt_ad_cc =3D "FFFFFF";=0A=
ctxt_ad_lc =3D "666666";=0A=
ctxt_ad_tc =3D "666666";=0A=
ctxt_ad_uc =3D "666666";=0A=
// -->=0A=
</SCRIPT>

<SCRIPT language=3DJavaScript=20
src=3D"http://ypn-js.overture.com/partner/js/ypn.js">=0A=
</SCRIPT>

<DIV class=3Dsb-comments>
<H2>Comments</H2><A class=3Dfeedlink title=3D"RSS Feed for all Comments" =

href=3D"http://mobhappy.com/blog1/comments/feed/"><IMG alt=3DRSS=20
src=3D"http://mobhappy.com/blog1/wp-content/themes/k2/images/feed.png"></=
A>=20
<UL>
  <LI class=3Dalternate><A class=3Dactivityentry=20
  href=3D"http://mobhappy.com/blog1/2006/05/03/java-magazines/">Java=20
  Magazines</A>&nbsp;&nbsp;<A title=3D"Go to the comments of this entry" =

  =
href=3D"http://mobhappy.com/blog1/2006/05/03/java-magazines/#comments">4<=
/A><BR><SMALL><A=20
  style=3D"COLOR: #4a4a4a"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/03/java-magazines/#comment-4626=
">Anders=20
  Borg</A>, <A style=3D"COLOR: #595959"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/03/java-magazines/#comment-4587=
">C.=20
  Enrique Ortiz</A>, <A style=3D"COLOR: #5d5d5d"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/03/java-magazines/#comment-4582=
">Russell=20
  Buckley</A> <A title=3D"Go to the comments of this entry"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/03/java-magazines/#comments">[.=
..]</A></SMALL>=20

  <LI class=3Dalternate><A class=3Dactivityentry=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/04/soonr-adds-mobile-browser-ba=
sed-skype-support-with-voice/">SoonR=20
  Adds Mobile Browser-Based Skype Support -- With =
Voice</A>&nbsp;&nbsp;<A=20
  title=3D"Go to the comments of this entry"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/04/soonr-adds-mobile-browser-ba=
sed-skype-support-with-voice/#comments">9</A><BR><SMALL><A=20
  style=3D"COLOR: #4b4b4b"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/04/soonr-adds-mobile-browser-ba=
sed-skype-support-with-voice/#comment-4625">Carlo=20
  Longino</A>, <A style=3D"COLOR: #4b4b4b"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/04/soonr-adds-mobile-browser-ba=
sed-skype-support-with-voice/#comment-4624">Tomi=20
  T Ahonen</A>, <A style=3D"COLOR: #515151"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/04/soonr-adds-mobile-browser-ba=
sed-skype-support-with-voice/#comment-4604">Song=20
  Huang</A> <A title=3D"Go to the comments of this entry"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/04/soonr-adds-mobile-browser-ba=
sed-skype-support-with-voice/#comments">[...]</A></SMALL>=20

  <LI class=3Dalternate><A class=3Dactivityentry=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/04/telia-offers-all-you-can-eat=
-sms-price/">Telia=20
  Offers All You Can Eat SMS Price</A>&nbsp;&nbsp;<A=20
  title=3D"Go to the comments of this entry"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/04/telia-offers-all-you-can-eat=
-sms-price/#comments">1</A><BR><SMALL><A=20
  style=3D"COLOR: #4b4b4b"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/04/telia-offers-all-you-can-eat=
-sms-price/#comment-4623">Tomi=20
  T Ahonen</A></SMALL>=20
  <LI class=3Dalternate><A class=3Dactivityentry=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/02/sexual-predator-zones/">Sexu=
al=20
  Predator Zones</A>&nbsp;&nbsp;<A title=3D"Go to the comments of this =
entry"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/02/sexual-predator-zones/#comme=
nts">4</A><BR><SMALL><A=20
  style=3D"COLOR: #515151"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/02/sexual-predator-zones/#comme=
nt-4606">Laurel=20
  Papworth</A>, <A style=3D"COLOR: #737373"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/02/sexual-predator-zones/#comme=
nt-4538">C.=20
  Enrique Ortiz</A>, <A style=3D"COLOR: #747474"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/02/sexual-predator-zones/#comme=
nt-4535">Tim=20
  Hibbard</A> <A title=3D"Go to the comments of this entry"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/02/sexual-predator-zones/#comme=
nts">[...]</A></SMALL>=20

  <LI class=3Dalternate><A class=3Dactivityentry=20
  =
href=3D"http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/">T=
he=20
  Frustrations of Java</A>&nbsp;&nbsp;<A=20
  title=3D"Go to the comments of this entry"=20
  =
href=3D"http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#co=
mments">20</A><BR><SMALL><A=20
  style=3D"COLOR: #636363"=20
  =
href=3D"http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#co=
mment-4575">Allen=20
  Lau</A>, <A style=3D"COLOR: #717171"=20
  =
href=3D"http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#co=
mment-4541">Charlie=20
  Sierra</A>, <A style=3D"COLOR: #717171"=20
  =
href=3D"http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#co=
mment-4540">Matt=20
  Volpi</A> <A title=3D"Go to the comments of this entry"=20
  =
href=3D"http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#co=
mments">[...]</A></SMALL>=20

  <LI class=3Dalternate><A class=3Dactivityentry=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/03/opera-mini-goes-20/">Opera =
Mini=20
  Goes 2.0</A>&nbsp;&nbsp;<A title=3D"Go to the comments of this entry"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/03/opera-mini-goes-20/#comments=
">2</A><BR><SMALL><A=20
  style=3D"COLOR: #646464"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/03/opera-mini-goes-20/#comment-=
4572">Carlo=20
  Longino</A>, <A style=3D"COLOR: #646464"=20
  =
href=3D"http://mobhappy.com/blog1/2006/05/03/opera-mini-goes-20/#comment-=
4571">Gideon=20
  Marken</A></SMALL> </LI></UL></DIV>
<DIV class=3Dsb-categories>
<H2>Categories</H2>
<UL>
  <LI><A title=3D"View all posts filed under 3GSM"=20
  href=3D"http://mobhappy.com/blog1/category/3gsm/">3GSM</A> (13)=20
  <LI><A title=3D"View all posts filed under Advice to Operators"=20
  =
href=3D"http://mobhappy.com/blog1/category/advice-to-operators/">Advice =
to=20
  Operators</A> (34)=20
  <LI><A title=3D"View all posts filed under Analysis"=20
  href=3D"http://mobhappy.com/blog1/category/analysis/">Analysis</A> =
(418)=20
  <LI><A title=3D"View all posts filed under Announcements"=20
  =
href=3D"http://mobhappy.com/blog1/category/announcements/">Announcements<=
/A>=20
  (370)=20
  <LI><A title=3D"View all posts filed under Art"=20
  href=3D"http://mobhappy.com/blog1/category/art/">Art</A> (1)=20
  <LI><A title=3D"View all posts filed under Blogging"=20
  href=3D"http://mobhappy.com/blog1/category/blogging/">Blogging</A> =
(11)=20
  <LI><A title=3D"View all posts filed under Bluetooth"=20
  href=3D"http://mobhappy.com/blog1/category/bluetooth/">Bluetooth</A> =
(6)=20
  <LI><A title=3D"View all posts filed under Carnival of the =
Capitalists"=20
  =
href=3D"http://mobhappy.com/blog1/category/carnival-of-the-capitalists/">=
Carnival=20
  of the Capitalists</A> (2)=20
  <LI><A title=3D"View all posts filed under Carnival of the Mobilists"=20
  =
href=3D"http://mobhappy.com/blog1/category/carnival-of-the-mobilists/">Ca=
rnival=20
  of the Mobilists</A> (31)=20
  <LI><A title=3D"View all posts filed under Comment of the Week"=20
  =
href=3D"http://mobhappy.com/blog1/category/comment-of-the-week/">Comment =
of the=20
  Week</A> (5)=20
  <LI><A title=3D"View all posts filed under Community Power"=20
  href=3D"http://mobhappy.com/blog1/category/community-power/">Community =
Power</A>=20
  (22)=20
  <LI><A title=3D"View all posts filed under Content Providers"=20
  href=3D"http://mobhappy.com/blog1/category/content-providers/">Content =

  Providers</A> (12)=20
  <LI><A title=3D"View all posts filed under CTIA"=20
  href=3D"http://mobhappy.com/blog1/category/ctia/">CTIA</A> (10)=20
  <LI><A title=3D"View all posts filed under Devices"=20
  href=3D"http://mobhappy.com/blog1/category/devices/">Devices</A> (47)=20
  <LI><A title=3D"View all posts filed under DRM"=20
  href=3D"http://mobhappy.com/blog1/category/drm/">DRM</A> (9)=20
  <LI><A title=3D"View all posts filed under Fun"=20
  href=3D"http://mobhappy.com/blog1/category/fun/">Fun</A> (38)=20
  <LI><A title=3D"View all posts filed under Gaming"=20
  href=3D"http://mobhappy.com/blog1/category/gaming/">Gaming</A> (13)=20
  <LI><A title=3D"View all posts filed under Gizmondo"=20
  href=3D"http://mobhappy.com/blog1/category/gizmondo/">Gizmondo</A> (1) =

  <LI><A title=3D"View all posts filed under Links"=20
  href=3D"http://mobhappy.com/blog1/category/links/">Links</A> (83)=20
  <LI><A title=3D"View all posts filed under Location Based Services"=20
  =
href=3D"http://mobhappy.com/blog1/category/location-based-services/">Loca=
tion=20
  Based Services</A> (45)=20
  <LI><A title=3D"View all posts filed under Marketing"=20
  href=3D"http://mobhappy.com/blog1/category/marketing/">Marketing</A> =
(45)=20
  <LI><A title=3D"View all posts filed under Mobile Content"=20
  href=3D"http://mobhappy.com/blog1/category/mobile-content/">Mobile =
Content</A>=20
  (5)=20
  <LI><A title=3D"View all posts filed under Mobile Operators"=20
  href=3D"http://mobhappy.com/blog1/category/mobile-operators/">Mobile=20
  Operators</A> (32)=20
  <LI><A title=3D"View all posts filed under Mobile Payments"=20
  href=3D"http://mobhappy.com/blog1/category/mobile-payments/">Mobile =
Payments</A>=20
  (7)=20
  <LI><A title=3D"View all posts filed under Mobile Phone Evolution"=20
  =
href=3D"http://mobhappy.com/blog1/category/mobile-phone-evolution/">Mobil=
e Phone=20
  Evolution</A> (43)=20
  <LI><A title=3D"View all posts filed under Mobile Society"=20
  href=3D"http://mobhappy.com/blog1/category/mobile-society/">Mobile =
Society</A>=20
  (169)=20
  <LI><A title=3D"View all posts filed under Mobile techie stuff"=20
  =
href=3D"http://mobhappy.com/blog1/category/mobile-techie-stuff/">Mobile =
techie=20
  stuff</A> (33)=20
  <LI><A title=3D"View all posts filed under Music"=20
  href=3D"http://mobhappy.com/blog1/category/music/">Music</A> (7)=20
  <LI><A title=3D"View all posts filed under New Journalism"=20
  href=3D"http://mobhappy.com/blog1/category/new-journalism/">New =
Journalism</A>=20
  (8)=20
  <LI><A title=3D"View all posts filed under New launches"=20
  href=3D"http://mobhappy.com/blog1/category/new-launches/">New =
launches</A> (73)=20
  <LI><A title=3D"View all posts filed under P2P"=20
  href=3D"http://mobhappy.com/blog1/category/p2p/">P2P</A> (2)=20
  <LI><A title=3D"View all posts filed under Personal"=20
  href=3D"http://mobhappy.com/blog1/category/personal/">Personal</A> =
(24)=20
  <LI><A title=3D"View all posts filed under Predictions"=20
  =
href=3D"http://mobhappy.com/blog1/category/predictions/">Predictions</A> =
(32)=20
  <LI><A title=3D"View all posts filed under Reading List"=20
  href=3D"http://mobhappy.com/blog1/category/reading-list/">Reading =
List</A> (2)=20
  <LI><A title=3D"View all posts filed under Ringtones"=20
  href=3D"http://mobhappy.com/blog1/category/ringtones/">Ringtones</A> =
(9)=20
  <LI><A title=3D"View all posts filed under Services"=20
  href=3D"http://mobhappy.com/blog1/category/services/">Services</A> =
(27)=20
  <LI><A title=3D"View all posts filed under Stats"=20
  href=3D"http://mobhappy.com/blog1/category/stats/">Stats</A> (18)=20
  <LI><A title=3D"View all posts filed under Uncategorized"=20
  =
href=3D"http://mobhappy.com/blog1/category/uncategorized/">Uncategorized<=
/A>=20
  (30) </LI></UL></DIV>
<CENTER>
<P><A href=3D"http://mobhappy.com/blog1/?p=3D478"><IMG=20
src=3D"http://mobhappy.com/images/amber.gif" =
border=3D0></A></P></CENTER><!--- start gadget network --->
<CENTER><A =
href=3D"http://www.blogads.com/advertise/blogads_gadget__network/order"=20
target=3D_blank><IMG alt=3D"BlogAds.com Gadget Network" hspace=3D0=20
src=3D"http://mobhappy.typepad.com/russell_buckleys_mobhappy//gadgetnetlo=
go.jpg"=20
border=3D0></A> </CENTER><!--- end gadget network ---><!--WEBBOT =
bot=3D"Script" startspan PREVIEW=3D"Site Meter" -->
<SCRIPT language=3DJavaScript type=3Dtext/javascript>var =
site=3D"s16mobhappy"</SCRIPT>

<SCRIPT language=3DJavaScript1.2=20
src=3D"http://s16.sitemeter.com/js/counter.js?site=3Ds16mobhappy"=20
type=3Dtext/javascript></SCRIPT>
<NOSCRIPT><A =
href=3D"http://s16.sitemeter.com/stats.asp?site=3Ds16mobhappy"=20
target=3D_top><IMG alt=3D"Site Meter"=20
src=3D"http://s16.sitemeter.com/meter.asp?site=3Ds16mobhappy"=20
border=3D0></A></NOSCRIPT><!-- Copyright (c)2005 Site Meter =
--><!--WEBBOT bot=3D"Script" Endspan -->=20
</DIV><BR class=3Dclear></DIV><!-- Close Page -->
<HR>

<P id=3Dfooter><SMALL>MobHappy is powered by <A=20
title=3D"Where children sing songs of binary bliss"=20
href=3D"http://wordpress.org/">WordPress 2.0.2</A> and <A=20
title=3D"Is to WordPress what math is to reality; hard to understand."=20
href=3D"http://binarybonsai.com/wordpress/k2/">K2 Beta Two r156</A> by =
<A=20
title=3D"Michael Heilemann" =
href=3D"http://binarybonsai.com/">Michael</A> and <A=20
title=3D"Chris J Davis" href=3D"http://chrisjdavis.org/">Chris</A><BR><A =

href=3D"http://feeds.feedburner.com/Mobhappy">RSS Entries</A> and <A=20
href=3D"http://mobhappy.com/blog1/comments/feed/">RSS Comments</A> This =
is the new=20
site. <!-- 34 queries. 0.531 seconds. --></SMALL></P><!-- Dynamic Page =
Served (once) in 0.531 seconds --></BODY></HTML>

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.tex2me.com/images/Tex2logo.gif

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
+xnV81U1DbNQUMcKwIKuzrWud32QgAAAOw==

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://mobhappy.com/blog1/wp-includes/images/smilies/icon_smile.gif

R0lGODlhDwAPALMOAP/qAEVFRQAAAP/OAP/JAP+0AP6dAP/+k//9E///////xzMzM///6//lAAAA
AAAAACH5BAEAAA4ALAAAAAAPAA8AAARb0EkZap3YVabOGRcWcAgCnIMRTEEnCCfwpqt2mHEOagoO
nz+CKnADxoKFyiHHBBCSAdOiCVg8KwPZa7sVrgJZQWI8FhB2msGgwTXTWGqCXP4WBQr4wjDDstQm
EQA7

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.feedburner.com/fb/images/pub/feed-icon16x16.png

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKOSURBVHjadJNNSFRRGIbfc+6dO6OOOplD
ykSZaRCtnKRc+ANRUBFEm0gicxG0bGoVhERRYIvIjRAtW+UmW5QQQS6qRWQSWJRaUcjkT0LiVWfm
/pzTd869M5LShe+eufC973m+n2Fj55KJymTt9ZgVy3AGMHoxvvEs/qZgDL4AlhbsAfv34g1TiRPx
RMZbWwU3GQzO9clNhGcYBpkY4UlGiWRd5scnMvx5tUWano9IMoXy1pOUBPgz4xC/xv8r1hSexNKi
B1Nhq6RIbQoVhy6i+MiCDffDEPyJITBvZZPYLwiQFFzVZ0Q45Moc8q8fwP34FGJ5FixaCevgBZT1
DMNs7Nok9iikL8GyfWkZ3VgvhbljP6yOy2BbmzWR/+o2vM/PSmLfkchTaAIlsHa1ourSS5Sfvg8r
3Q38mYb7+DzE9Ig2MDquAan2kth3AgKu0JSBapLCNranEWnPIHp2GDzZDEE3+1OBiXW4D4LHtViZ
CB/rBHJuHPmHp+CO3oK0Zyk7DvP4IGR1EwrPb673JX0mELslgvVRYW0O8usIvCe9AboyOdIPn1Ug
9+Kupihr69ZiZSJFsYRwztbRO4icGARv6IT3ZkCTsKp68J2dyE2MQuZtsFgllbZHTyMsAVqsaldC
Vt8CtvsYPHsZzvtH+tZIc5e+sfBtLOhFYytRFAlYuGGED2clGNn8lO62m53U37y6XmM7M8E3onEI
IpCSLp/vPyC31Bp6SUSsjmIbnO9jpVEZqbROzn15F5RDZs5CFs58FmaNBTZ5Ze+9hn11Genl/1mS
0qjChumaCVvo2iViNXHkuD1g9Daxt7lVEQPMNpcSdah1pQb5kqho4yVXQc2iacHiMMpNFPia/jv/
FWAAUTVTOunExzkAAAAASUVORK5CYII=

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.bloglines.com/images/sub_modern8.gif

R0lGODlhTAARAPcAAOXl5fONAPGFAP6oAOmya/qaAP2XAPmVAPyWAP78+PKSDuhyAeNhCONiAv3/
/+ViCfiPAPCAC/aQAPaTAPygAOh0C/WUDvWXDfGOHe+hS/KMGPTHgP6nAPnZrPOXC/iiCuh1DOyr
Qvv37v/77/ny4vv07N5cDfC5cPqWAP+oAPGoQveqMO+UFuujOvOqRu+HCOhtAOaQGt99Gfrz5+t+
DPXhwPmbFP2jAOt6AO/GfvefEPCYFvaDAPjv2vueGPGeSf79+O2eIuuPA/CNDvqbAP2nAPCFAPvJ
Z/aVDPvbqPr7/P2mAPz7+fOUBvexL/369/6kAO+ZDel3A/747O+0S+RxCfCiY/O2ZPqlJuBfDe6G
DPqoCvfkx+yoZeqFDO17APyjAOp9Be6uR/3v0eWZO/mmE/vJaPC3bOp1CPidFOugQ+pzAfqmDf/7
9fqIAPSKBvOtRvapLe+OHOd1Gu2CC/6YAPmZAPOTD/mLAPv27PeNAOZtDPudAPWaEOx+B/qOAP7x
2Pn9///99ul1CHp+bMzMzGZmZv///4mOeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABMABEA
AAj/AA8ZGkiwoMGDCBMqXMgw4SEAhg5JnEixosWLGDNq3GjRUCGIEkEskOJHy5A7fXSUkYiopcuX
MGPKnEmzZkuBHyNWqNIlgxwBeuxQgJJiyyGbSJMqlYkT5CAZSg496bCiwI0lA9gchUnRpURCNr/e
XEqzaUQaYdSc4HIIyBEwRTh82MqVEKGtd8GG1YuIL9mXZg/R8XIGThQqeQ6ZMYBgAl3AYA/plXyT
LsubkbdOBPz4MlePIF/ECHRojJMgM9pgcRPgsdeJkyPbPSo5LyLKt2XfHbs7t92YgRU0cbHBgaA4
IQ4l4WHENebZmHPnpkw9tnTqsMcyBR3RAh4kF8QwqgEkpEYCDTicS78ue3p73NXZ2+WrPjAEFiRG
eMhxSAWBQz/A4FxFv132VWbYRZfgbQbWBhx3h6CwQw9T2NCCCFeQUYIVDag3328tgQhiX7iJ2Jde
Iqa4XU6H8FFHGj788QYGEawxxwNZqEfWgX8lFdghRBwgQQACfIHGHgyY4FmPLo3IZFkQciTllFRW
aVZDWGap5ZYEFSJRIWCGKeaYZJZp5ploplnmIQEBADs=

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif

R0lGODlhWwARANUAAAAAmd/f3/wZIYmJibS0tF5eXkpz7f1aYAAzzFRUVKPP//w8Q/6fov///w0m
mqmpqfx2e/7FyA9C23R0dP/w8fwrMv6NkdTU1Clc5v/l5v7X2P6xs/1uc/1KUczMzJmZmfT09P1/
g2ZmZn5+furq6v9mZhgypf/29v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUUACgALAAAAABbABEAAAb/wI9w
SCwaj8ikcslkoj6NqHRKrVqv2Kx2m/2IoIiweEwGcM/oNNcLNrgNmLhkTneY1fh8mt1AGMYOgQ6A
d3olhxAQFhRnJ4yMWBQZk1EZAgIbU3x+gA0Kg2J2UwQJE1EXCSOoBSANHgkPUREclx2MDCUHHQcR
UhkavxkWFQIhURoRERlRFB2XlxWMl8tSm38Igp6CYaJSDwkJBA0TqQ0fCR8gBaZTGpe9FMQLEAwa
Gg0WlxCyAg0UC88EMGhwKVODDMQsdaCyCQO3KqC6RfmWoMC5ciBEJBiQIEAVBtM2CLDg79KBKBAE
WrDQYaGAClJEOjNYaaSAfZq+9HGITYEC7E8+IxZq8I0junKuwEGxEuJZrwYaKlTAmZLDgRILOkQQ
8DSKAIALpRzgWoFmlE0SuAXSFojb0G8XRogAgXRcglZX3kmpcFUAo4RRmubDlAzgCZE3ORDLRJKh
TgRpQ2kjNAUuCQ8N6o5IkIUYM4CZBHCI0KFCiGQhOGzIwGFXy3tQORwKsQxkCcdgIqttG+ptggtS
NHNmSuxlBwYhFm29eQKLI0iRONzrd/axCUHYs0tsQAK4lAskpATwaCWZ+WR68mwCwL69+/fp48vH
Pb++/TVfmujfz7+/fhEoiCDggAQWaOCBCCao4IIMMhgEADs=

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://mobhappy.com/images/carnival.gif

R0lGODlhZAAlAKIAAP/////MzP+Zmf9mZv8zM/8AAAAAAAAAACH5BAAAAAAALAAAAABkACUAAAP/
WLrc/jDKSau9OOvNu/9gqAFCRwCDqHakia5wLJ2pbN/0PQRATxIKgsAHCNQKw4EvUFAOhj3jguRk
nEo7ogBYyMmuC0KAiXwphtxhAHhVts4AbmvMUALH3AK9a47ZGUMKb0FmaAsBAkolYWYtfwp0Xgp/
kjA8GG+BDVWMNS1elXUvoQ9gh3kQlxBZPopwDpyEi297j6xFSXxHEU+TKWsTqg9FgJkAsH18s4t/
tYN6o8lhPCRRJ0RFQj2LkMeiBLGCi5qiu6ZvNF7kk9G7C700zL8pid7AcKho4QXGyOZvg8Y8MvSu
3YNe/BAO+AWkno88J8h0QSRIoph+m8y4Acht/2Mcfj2AEElBqkmJeL4MJZK4iVqPIxejuCrjj902
cYwegsT2UlcpaomYWUPyROcNUc8c6Fwa8qjTgkklGMVAzd1TC264UZh6oepVDVkvcLXgdUNWbTK7
QCmyqygRKTa3rO3D9KNOtyPB8WxlkucAVG5cjhTcs8zeHjYJRxHUtK7ew0YOo/CIjeXGey4x+2A8
KGaKy1w2imxMOg41i3zLHlpMqHCTzVA/to5zzRtULFyhlHC8s3a+nqo5/+4T2ArsKSGLI2WifIHu
3tAfBm8wfTqyZ9dYQovTvDVz1lCZ8H4410ciLtPLb/uLVGt26snBe39NbHn00gRq7/3levb+25/G
1bcad/LxQUx39ImHH3RNLLRQZttZ1aCDEMYVoHbUPKZdcQg+N15TBy1WFhSrgBdWThiGVFsDz23E
Yk8fxsGVi1DUQBhgx504HwMZ7sRNbZ+ZF9toduEnZBBAGcaEfjch2SR97hXYI2VvxbXXLAuSJ9lH
TL6kHhF56GhgirLhlVZcaLGFXJFsAmEmWxCtBdebRqDy1Z145qnnnnxSkAAAOw==

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://mobhappy.com/blog1/wp-content/themes/k2/images/feed.png

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKYSURBVHjaYvz//z8DJQAggFjAZCsjN4Om
rj+DmMVSBlY+Boa/fyCy/35D2P/+QjGQ/fMLA8PLSzMYku9mgpQABBDEAC2jXAaVeFsGaWcGBkZm
BobfP0C6GRhArvvzHWoYlA8ygP90BsNEER6G/DexAAEEMUDYoJ1B3IaB4cNtBoYvLxgYvj8D2vwb
qglo818Q/gdxAYcEA4OQLgMDt1IMUGcsQABBDPjPDFH46gwDg3kj0IC3DAyf7jMwvLnKwPDiPMT5
IK+ADPn5kIGBVwnIBkIgAAggiAG/f0IU/PoJ8QKXGASLmwJpaQaGO9uAGr9CXPKfEagO6K3vEK8B
BBDEgJ9AP397D5QA0keALuBXZGAQ1WFgkDBiYFByB1oA9M6NzUB17yAG/PwM0QMEAAEEMeDXN4jt
IAO+A534+h4Dw+3dDAzKQM3qvkDsAwxMoAtPzwd65z/ENd9+grUCBBDEgO9Ajb+Bgj+BgjaVoEBh
YLi5nYHh8jqgONDZJvHAmPJjYHgGDJN7RxkYfgBd8ANiAEAAQQ34BnEFyABRTUi0gQLsF9DWC2uA
saTCwKBozcAgDfTS9YMQF/z5ywhSBhBATGDFP75DBH/9YmDYVsXAcP8I0P/AMNDwgnjt/kmIoRLa
EK+A1ILCBQgAAgjqgp/QcAAa8PgCRFLRBpqQgF54chligIAUJCZAFv7+BxYCCCCIAZ/fMDB8/QhJ
D39BhlxkYJjkCjEAhN88YGDodYQkLCaglh+gQPwCdj1AAEEMuPJqEYP8TXMGPnF1SLKFpr7//xBJ
GAbevWRgeAQMzHMMs0BcgABihOdGd8a5DCrsiQzsXP/BUQUWBkb6fygbFKggzpevTAzHGbIZbv+f
BlIBEECMlGZngAADAB59HbQpnYoFAAAAAElFTkSuQmCC

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://mobhappy.com/images/amber.gif

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

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://mobhappy.typepad.com/russell_buckleys_mobhappy//gadgetnetlogo.jpg

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

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://s16.sitemeter.com/meter.asp?site=s16mobhappy

R0lGODdhFAAUAPcAAAAAADMAAGYAAJkAAMwAAP8AAAAzADMzAGYzAJkzAMwzAP8zAABmADNmAGZm
AJlmAMxmAP9mAACZADOZAGaZAJmZAMyZAP+ZAADMADPMAGbMAJnMAMzMAP/MAAD/ADP/AGb/AJn/
AMz/AP//AAAAMzMAM2YAM5kAM8wAM/8AMwAzMzMzM2YzM5kzM8wzM/8zMwBmMzNmM2ZmM5lmM8xm
M/9mMwCZMzOZM2aZM5mZM8yZM/+ZMwDMMzPMM2bMM5nMM8zMM//MMwD/MzP/M2b/M5n/M8z/M///
MwAAZjMAZmYAZpkAZswAZv8AZgAzZjMzZmYzZpkzZswzZv8zZgBmZjNmZmZmZplmZsxmZv9mZgCZ
ZjOZZmaZZpmZZsyZZv+ZZgDMZjPMZmbMZpnMZszMZv/MZgD/ZjP/Zmb/Zpn/Zsz/Zv//ZgAAmTMA
mWYAmZkAmcwAmf8AmQAzmTMzmWYzmZkzmcwzmf8zmQBmmTNmmWZmmZlmmcxmmf9mmQCZmTOZmWaZ
mZmZmcyZmf+ZmQDMmTPMmWbMmZnMmczMmf/MmQD/mTP/mWb/mZn/mcz/mf//mQAAzDMAzGYAzJkA
zMwAzP8AzAAzzDMzzGYzzJkzzMwzzP8zzABmzDNmzGZmzJlmzMxmzP9mzACZzDOZzGaZzJmZzMyZ
zP+ZzADMzDPMzGbMzJnMzMzMzP/MzAD/zDP/zGb/zJn/zMz/zP//zAAA/zMA/2YA/5kA/8wA//8A
/wAz/zMz/2Yz/5kz/8wz//8z/wBm/zNm/2Zm/5lm/8xm//9m/wCZ/zOZ/2aZ/5mZ/8yZ//+Z/wDM
/zPM/2bM/5nM/8zM///M/wD//zP//2b//5n//8z//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUABQA
AAj/AFkJHEiwoEEdOrwo9CJIECKHrASxMoXIFCsArHQA8UKGDCKPiEK2QkRQFkYgKIF05CiITCBE
hwQdehkI4wYKGzRU0EChZ08HQBscMGAAIwgNGnxomOCDwg0cN27EkBojxgqMPXyEEcP1kJhDM8Ee
YoVolSmMYQqJMSQWrKNDsgxiXFSokCFDdg2RMhToEN+wNVmhGozKT2E/iLX4ocKYigoVGEWJ8iPZ
DyfEeDLjYazCCWRWnTqR8kSqdKnTpQKZNSsQY7BOnkh/Qr2qFLRSBTFi2u3pE+nYpfakPh0oNcZJ
yCVNcvPGjXPnSZQkKZEkAEZKmSi9mbS9zps6SporOpFeggRGTXZAqedjCpSp96YkWmzNSoodPnwG
8WkoKP7E3KxMIQUWA2KBHxb8BdKQgoEB4OCDEEYIYUAAOw==

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://mobhappy.com/blog1/wp-content/themes/k2/style.css

BODY {
	BACKGROUND: #ededed; MARGIN: 0px 0px 30px; FONT: 62.5% 'Lucida Grande', =
Verdana, Arial, Sans-Serif; COLOR: #444; TEXT-ALIGN: center
}
#page {
	BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px; =
PADDING-LEFT: 0px; BACKGROUND: white; PADDING-BOTTOM: 10px; MARGIN: 0px =
auto; BORDER-LEFT: #ddd 1px solid; WIDTH: 740px; PADDING-TOP: 20px; =
BORDER-BOTTOM: #ddd 1px solid; POSITION: relative; TEXT-ALIGN: left
}
BODY.flex #page {
	WIDTH: 80%; min-width: 780px; max-width: 1000px
}
#header {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #3371a3; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; POSITION: relative; =
HEIGHT: 200px
}
.primary {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
10px; MARGIN: 0px 0px 0px 30px; WIDTH: 530px; PADDING-TOP: 20px
}
.secondary {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; MARGIN: =
0px -3% 20px 0%; FONT: 1em/1.5em 'Lucida Grande', Verdana, Arial, =
Sans-Serif; WIDTH: 28%; COLOR: #666; PADDING-TOP: 10px; POSITION: =
relative
}
.comments {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 30px; POSITION: relative; TEXT-ALIGN: left
}
UL.menu {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LEFT: 20px; PADDING-BOTTOM: 0px; =
MARGIN: 0px; WIDTH: 90%; BOTTOM: 0px; PADDING-TOP: 0px; POSITION: =
absolute
}
UL.menu LI {
	DISPLAY: inline; MARGIN: 0px
}
UL.menu {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; PADDING-BOTTOM: 6px; =
PADDING-TOP: 5px
}
UL.menu LI A {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; PADDING-BOTTOM: 6px; =
PADDING-TOP: 5px
}
UL.menu LI A {
	MARGIN: 0px; FONT: 1em Verdana, Helvetica, Arial, Sans-Serif; COLOR: =
white
}
UL.menu LI A:hover {
	BACKGROUND: #333; COLOR: #eee! important; TEXT-DECORATION: none
}
UL.menu LI.current_page_item A {
	BACKGROUND: white; COLOR: #333! important; TEXT-DECORATION: none
}
UL.menu LI.current_page_item A:hover {
	BACKGROUND: white; COLOR: #333! important; TEXT-DECORATION: none
}
.admintab {
	RIGHT: 20px; POSITION: absolute
}
.sb-pagemenu UL {
	MARGIN-LEFT: 10px
}
.sb-pagemenu UL UL {
	MARGIN-TOP: 2px
}
.sb-pagemenu UL UL .page_item {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
MARGIN-LEFT: 10px; PADDING-TOP: 0px
}
.sb-pagemenu .current_page_item {
=09
}
H1 {
	FONT-FAMILY: 'Trebuchet MS', Verdana, Sans-Serif
}
H2 {
	FONT-FAMILY: 'Trebuchet MS', Verdana, Sans-Serif
}
H3 {
	FONT-FAMILY: 'Trebuchet MS', Verdana, Sans-Serif
}
H4 {
	FONT-FAMILY: 'Trebuchet MS', Verdana, Sans-Serif
}
H1 {
	FONT-WEIGHT: bold; FONT-SIZE: 3em; MARGIN: 0px 0px 0px 40px; WIDTH: =
100%; PADDING-TOP: 75px; LETTER-SPACING: -1px
}
H1 {
	COLOR: white; TEXT-DECORATION: none
}
H1 A {
	COLOR: white; TEXT-DECORATION: none
}
H1 A:hover {
	COLOR: white; TEXT-DECORATION: none
}
H1 A:visited {
	COLOR: white; TEXT-DECORATION: none
}
#header .description {
	COLOR: white; TEXT-DECORATION: none
}
H1:hover {
	TEXT-DECORATION: underline
}
#header .description {
	DISPLAY: inline; FONT-SIZE: 1em; MARGIN: 0px 0px 0px 40px
}
.pagetitle {
	MARGIN: 15px 0px; TEXT-ALIGN: center
}
.pagetitle H2 {
	DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 2.4em; LETTER-SPACING: =
-1px; TEXT-ALIGN: center
}
.secondary H2 {
	PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-WEIGHT: =
normal; FONT-SIZE: 1.5em; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
.primary H3 {
	DISPLAY: inline; FONT-WEIGHT: normal; FONT-SIZE: 2.2em; LETTER-SPACING: =
-1px
}
.primary H4 {
	DISPLAY: inline; FONT-WEIGHT: normal; FONT-SIZE: 2.2em; LETTER-SPACING: =
-1px
}
.permalink .primary .aside H3 {
	DISPLAY: inline; FONT-WEIGHT: normal; FONT-SIZE: 2.2em; LETTER-SPACING: =
-1px
}
.primary .aside H3 {
	FONT-WEIGHT: normal; FONT-SIZE: 1.6em
}
.itemhead {
	MARGIN-TOP: 10px
}
.itemtext H3 {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: =
1.7em; PADDING-BOTTOM: 0px; PADDING-TOP: 15px
}
.itemtext H4 {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: =
1.5em; PADDING-BOTTOM: 0px; PADDING-TOP: 15px
}
UNKNOWN {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
20px 0px 0px; PADDING-TOP: 0px
}
.primary .metalink A {
	FONT-WEIGHT: normal; COLOR: #999
}
.primary .metalink A:visited {
	FONT-WEIGHT: normal; COLOR: #999
}
.secondary .metalink A {
	FONT-WEIGHT: normal; COLOR: #999
}
.secondary .metalink A:visited {
	FONT-WEIGHT: normal; COLOR: #999
}
.secondary SPAN A {
	FONT-WEIGHT: normal; COLOR: #999
}
.secondary SPAN A:visited {
	FONT-WEIGHT: normal; COLOR: #999
}
.primary .item .itemhead .metalink {
	FONT-SIZE: 1.8em; MARGIN-LEFT: 15px; TEXT-TRANSFORM: lowercase; =
LETTER-SPACING: -1px
}
.comments .primary .metalink {
	FONT-SIZE: 1.8em; MARGIN-LEFT: 15px; TEXT-TRANSFORM: lowercase; =
LETTER-SPACING: -1px
}
.primary .aside .itemhead .metalink {
	FONT-SIZE: 1.4em
}
.permalink .primary .aside .itemtext {
	FONT-SIZE: 1.4em; COLOR: #999
}
.comments .primary .metalink {
	FLOAT: none; MARGIN: 0px 15px 0px 0px
}
.feedicon {
	BORDER-TOP-WIDTH: 0px! important; PADDING-RIGHT: 0px! important; =
PADDING-LEFT: 0px! important; BORDER-LEFT-WIDTH: 0px! important; =
BORDER-BOTTOM-WIDTH: 0px! important; PADDING-BOTTOM: 0px! important; =
PADDING-TOP: 0px! important; BORDER-RIGHT-WIDTH: 0px! important
}
.feedlink IMG {
	RIGHT: 0px; WIDTH: 16px; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: =
none; BORDER-LEFT-STYLE: none; POSITION: absolute; HEIGHT: 16px; =
BORDER-BOTTOM-STYLE: none
}
.primary .aside {
	PADDING-RIGHT: 8px; PADDING-LEFT: 8px; PADDING-BOTTOM: 8px; MARGIN: 0px =
4%; PADDING-TOP: 8px
}
.secondary .aside {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; MARGIN: =
0px; WORD-SPACING: -1px; PADDING-TOP: 0px
}
.secondary .aside .metalink {
	PADDING-LEFT: 0px
}
.secondary SPAN A {
	MARGIN-LEFT: 10px
}
.editlink IMG {
	PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; RIGHT: =
0px; PADDING-BOTTOM: 0px! important; MARGIN: 4px 0px 0px; WIDTH: 16px; =
BORDER-TOP-STYLE: none! important; PADDING-TOP: 0px! important; =
BORDER-RIGHT-STYLE: none! important; BORDER-LEFT-STYLE: none! important; =
POSITION: absolute; HEIGHT: 16px; BORDER-BOTTOM-STYLE: none! important
}
.aside .editlink IMG {
	TOP: 9px
}
.commentseditlink {
	PADDING-RIGHT: 2px; PADDING-LEFT: 10px; PADDING-BOTTOM: 2px; =
PADDING-TOP: 2px
}
.metalink A SPAN {
	DISPLAY: none
}
UNKNOWN {
	DISPLAY: inline
}
H2 {
	COLOR: #444
}
H2 A {
	COLOR: #444
}
H2 A:visited {
	COLOR: #444
}
H3 {
	COLOR: #444
}
H3 A {
	COLOR: #444
}
H3 A:visited {
	COLOR: #444
}
H4 {
	COLOR: #444
}
H4 A {
	COLOR: #444
}
H4 A:visited {
	COLOR: #444
}
H2 {
	TEXT-DECORATION: none
}
H2 A {
	TEXT-DECORATION: none
}
H2 A:hover {
	TEXT-DECORATION: none
}
H2 A:visited {
	TEXT-DECORATION: none
}
H3 {
	TEXT-DECORATION: none
}
H3 A {
	TEXT-DECORATION: none
}
H3 A:hover {
	TEXT-DECORATION: none
}
H3 A:visited {
	TEXT-DECORATION: none
}
H4 {
	TEXT-DECORATION: none
}
H4 A {
	TEXT-DECORATION: none
}
H4 A:hover {
	TEXT-DECORATION: none
}
H4 A:visited {
	TEXT-DECORATION: none
}
.metadata {
	MARGIN-TOP: 2px; DISPLAY: block; FONT-SIZE: 1em; COLOR: #bbb
}
.metadata A {
	COLOR: #777
}
.commentslink {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: =
url(images/comment.png) no-repeat left center; PADDING-BOTTOM: 2px; =
MARGIN-RIGHT: 10px; PADDING-TOP: 2px
}
.chronodata {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: =
url(images/time.png) no-repeat left center; PADDING-BOTTOM: 2px; =
PADDING-TOP: 2px
}
.chronodata:unknown {
	content: "."
}
.tagdata {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 20px; BACKGROUND: =
url(images/tag_blue.png) no-repeat left center; PADDING-BOTTOM: 2px; =
PADDING-TOP: 2px
}
.primary .item {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 15px; MARGIN: =
0px; PADDING-TOP: 5px; POSITION: relative
}
.primary .item .itemtext {
	FONT: 1.1em/1.5em 'Lucida Grande', Verdana, Arial, Sans-Serif; COLOR: =
#444; TEXT-ALIGN: justify
}
.primary .item .itemtext P {
	MARGIN: 13px 0px
}
.primary .item .itemtext UL {
	MARGIN: 13px 0px
}
.primary .item .itemtext OL {
	MARGIN: 13px 0px
}
.primary .item .itemtext DIV {
	MARGIN: 13px 0px
}
.primary .item .itemtext BLOCKQUOTE {
	MARGIN: 13px 0px
}
.primary .aside .itemtext P {
	MARGIN: 5px 0px
}
.primary .aside .itemtext UL {
	MARGIN: 5px 0px
}
.primary .aside .itemtext OL {
	MARGIN: 5px 0px
}
.primary .aside .itemtext DIV {
	MARGIN: 5px 0px
}
.primary .aside .itemtext BLOCKQUOTE {
	MARGIN: 5px 0px
}
.permalink .primary .aside .itemtext P {
	MARGIN: 13px 0px
}
.permalink .primary .aside .itemtext UL {
	MARGIN: 13px 0px
}
.permalink .primary .aside .itemtext OL {
	MARGIN: 13px 0px
}
.permalink .primary .aside .itemtext DIV {
	MARGIN: 13px 0px
}
.permalink .primary .aside .itemtext BLOCKQUOTE {
	MARGIN: 13px 0px
}
.metalinks {
	MARGIN-TOP: 3px
}
.commentsrsslink {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: =
url(images/feed.png) no-repeat left top; PADDING-BOTTOM: 2px; =
MARGIN-RIGHT: 10px; PADDING-TOP: 2px; HEIGHT: 16px
}
.trackbacklink {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: =
url(images/arrow_refresh.png) no-repeat left top; PADDING-BOTTOM: 2px; =
PADDING-TOP: 2px; HEIGHT: 16px
}
.commentsrsslink A {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; COLOR: =
#999; PADDING-TOP: 2px
}
.trackbacklink A {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; COLOR: =
#999; PADDING-TOP: 2px
}
.comments .commentlist {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 20px; MARGIN: =
0px; WIDTH: 100%; PADDING-TOP: 20px
}
.comments .commentlist LI {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 5px; MARGIN: =
10px 0px; PADDING-TOP: 10px; LIST-STYLE-TYPE: none
}
.comments .commentlist .commentmetadata {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 20px; BACKGROUND: =
url(images/time.png) no-repeat left center; PADDING-BOTTOM: 2px; =
PADDING-TOP: 2px
}
.comments .commentlist LI IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
.comments .commentlist LI IMG.gravatar {
	FLOAT: right; MARGIN: -5px 0px 0px
}
.comments .commentlist LI .commentauthor {
	FONT-WEIGHT: bold; FONT-SIZE: 1.5em; LETTER-SPACING: -1px
}
.comments .commentlist LI .counter {
	DISPLAY: none; FLOAT: left; FONT: 1.5em 'Century Gothic', 'Lucida =
Grande', Arial, Helvetica, Sans-Serif; WIDTH: 35px; COLOR: #999
}
.comments .commentlist LI.authorcomment {
	BACKGROUND: #f6f7f8
}
.comments .pinglist {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 1.2em; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px
}
.comments .pinglist LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 7px; =
MARGIN-LEFT: 40px; PADDING-TOP: 7px; LIST-STYLE-TYPE: none
}
.comments .pinglist LI .commentauthor {
	DISPLAY: block; FONT-WEIGHT: bold
}
.comments .pinglist LI SMALL {
	DISPLAY: block; FONT: 0.8em Arial, Sans-Serif
}
.comments .pinglist LI .counter {
	DISPLAY: none
}
.comments .pinglist LI SPAN.favatar IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN-LEFT: -25px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; =
BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: =
none
}
.comments .leavecomment {
	FONT-SIZE: 2em; MARGIN-BOTTOM: 40px; COLOR: #ddd; LETTER-SPACING: -2px; =
TEXT-ALIGN: center
}
.comments #loading {
	MARGIN-TOP: 40px; FONT-SIZE: 2em; MARGIN-BOTTOM: 40px; COLOR: #ddd; =
LETTER-SPACING: -1px; TEXT-ALIGN: center
}
.comments FORM {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
30px; MARGIN: 0px; PADDING-TOP: 1px
}
UNKNOWN {
	PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; FONT: 1em =
Verdana, Arial, Helvetica, Sans-Serif; COLOR: #777; PADDING-TOP: 3px
}
UNKNOWN {
	BORDER-LEFT-COLOR: #666; BACKGROUND: #fff; BORDER-BOTTOM-COLOR: #666; =
COLOR: #333; BORDER-TOP-COLOR: #666; BORDER-RIGHT-COLOR: #666
}
UNKNOWN {
	MARGIN: 5px 5px 1px 0px; WIDTH: 45%
}
.comments FORM TEXTAREA {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; WIDTH: =
100%; PADDING-TOP: 2px; HEIGHT: 250px
}
.comments FORM #submit {
	FLOAT: right; MARGIN: 0px
}
#footer {
	TEXT-ALIGN: center
}
#footer A {
	FONT-WEIGHT: bold; COLOR: #888; BORDER-BOTTOM: #ccc 1px solid
}
#footer A:hover {
	COLOR: black; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: =
none
}
.primary A:hover {
	TEXT-DECORATION: underline
}
.primary A:hover {
	TEXT-DECORATION: underline
}
.secondary A:hover {
	TEXT-DECORATION: underline
}
.secondary A:hover {
	TEXT-DECORATION: underline
}
H2 A:hover {
	COLOR: #27d! important
}
H2 SPAN A:hover {
	COLOR: #27d! important
}
A {
	COLOR: #27d; TEXT-DECORATION: none
}
.itemtext A:visited {
	COLOR: #b41
}
.itemtext A {
	FONT-WEIGHT: bold; COLOR: #363636
}
.clear {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; PADDING-TOP: 0px
}
.primary IMG {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
MARGIN-LEFT: 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 10px; =
BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: =
none; max-width: 100%
}
.center {
	TEXT-ALIGN: center
}
.alignright {
	FLOAT: right
}
.alignleft {
	FLOAT: left
}
UNKNOWN {
	DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto
}
UNKNOWN {
	PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; PADDING-BOTTOM: =
4px; MARGIN: 0px 0px 2px 7px; PADDING-TOP: 4px
}
UNKNOWN {
	PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; PADDING-BOTTOM: =
4px; MARGIN: 0px 7px 2px 0px; PADDING-TOP: 4px
}
IMG.noborder {
	BORDER-TOP-STYLE: none! important; BORDER-RIGHT-STYLE: none! important; =
BORDER-LEFT-STYLE: none! important; BORDER-BOTTOM-STYLE: none! important
}
.favorite IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
SMALL {
	FONT-SIZE: 0.9em; LINE-HEIGHT: 1.5em
}
SMALL {
	COLOR: #777
}
STRIKE {
	COLOR: #777
}
CODE {
	FONT: 1.1em 'Courier New', Courier, Fixed
}
ACRONYM {
	FONT-SIZE: 0.9em; CURSOR: help; BORDER-BOTTOM: #999 1px dashed; =
LETTER-SPACING: 0.07em
}
abbr {
	FONT-SIZE: 0.9em; CURSOR: help; BORDER-BOTTOM: #999 1px dashed; =
LETTER-SPACING: 0.07em
}
BLOCKQUOTE {
	PADDING-RIGHT: 20px; PADDING-LEFT: 50px; BACKGROUND: =
url(images/quote.png) no-repeat 10px top; PADDING-BOTTOM: 0px; MARGIN: =
20px 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: =
none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
HR {
	DISPLAY: none
}
.navigation {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
10px 0px; WIDTH: 100%; PADDING-TOP: 0px; TEXT-ALIGN: center
}
.navigation .left {
	FLOAT: left; WIDTH: 50%; TEXT-ALIGN: left
}
.navigation .right {
	FLOAT: right; WIDTH: 50%; TEXT-ALIGN: right
}
.navigation P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
.navigation A {
	COLOR: #999
}
.alert {
	PADDING-RIGHT: 20px; BORDER-TOP: #ffd324 2px solid; PADDING-LEFT: 20px; =
BACKGROUND: #fff6bf; PADDING-BOTTOM: 5px; MARGIN: 10px auto; =
PADDING-TOP: 5px; BORDER-BOTTOM: #ffd324 2px solid; TEXT-ALIGN: center
}
IMG.wp-smiley {
	PADDING-RIGHT: 0px! important; PADDING-LEFT: 5px! important; =
PADDING-BOTTOM: 0px! important; BORDER-TOP-STYLE: none! important; =
PADDING-TOP: 0px! important; BORDER-RIGHT-STYLE: none! important; =
BORDER-LEFT-STYLE: none! important; BORDER-BOTTOM-STYLE: none! important
}
.itemtext OL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 35px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
.itemtext UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 35px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
.itemtext OL LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 3px; PADDING-TOP: 0px
}
.itemtext UL LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 3px; PADDING-TOP: 0px
}
UNKNOWN {
	PADDING-LEFT: 0px; MARGIN: 5px 0px 0px
}
.secondary UL {
	MARGIN-LEFT: 0px
}
.secondary OL {
	MARGIN-LEFT: 15px
}
.secondary UL LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; MARGIN: =
0px; PADDING-TOP: 1px
}
.secondary OL LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; MARGIN: =
0px; PADDING-TOP: 1px
}
.secondary UL LI {
	LIST-STYLE-IMAGE: none; LIST-STYLE-TYPE: none
}
OL LI {
	LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: decimal
}
.sb-search {
	MARGIN-TOP: 20px
}
.sb-search H2 {
	DISPLAY: none
}
UNKNOWN {
	PADDING-RIGHT: 0px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: =
0px; COLOR: #444; PADDING-TOP: 2px
}
INPUT#livesearch {
	WIDTH: 100%
}
INPUT#s {
	WIDTH: 75%
}
UNKNOWN {
	MARGIN: 0px
}
#LSResult {
	Z-INDEX: 100; BACKGROUND: url(images/livesearchbg.jpg) #eee repeat-y =
center 50%; MARGIN: 0px; WIDTH: 200px; BORDER-BOTTOM: #eee 1px solid; =
POSITION: absolute
}
#searchcontrols {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND: =
url(images/livesearchbgdark.jpg) #ddd repeat-y center 50%; =
PADDING-BOTTOM: 1px; PADDING-TOP: 1px; TEXT-ALIGN: center
}
#searchcontrols SMALL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
.LSRow:hover {
	BACKGROUND: url(images/livesearchbghilight.jpg) #ffffcc repeat-y center =
50%
}
#LSHighlight {
	BACKGROUND: url(images/livesearchbghilight.jpg) #ffffcc repeat-y center =
50%
}
#LSHighlight:hover {
	BACKGROUND: url(images/livesearchbghilight.jpg) #ffffcc repeat-y center =
50%
}
#LSResult:hover #LSHighlight {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: none transparent =
scroll repeat 0% 0%; PADDING-BOTTOM: 5px; BORDER-TOP-STYLE: none; =
PADDING-TOP: 5px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; =
BORDER-BOTTOM-STYLE: none
}
#LSHighlight SMALL {
	COLOR: #999
}
#LSHighlight SMALL SPAN A {
	COLOR: #999
}
.LSRow {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 5px
}
.LSRow SPAN A {
	FONT-WEIGHT: normal; WORD-SPACING: -1px; COLOR: #bbb; LINE-HEIGHT: =
1.3em
}
.LSRow SPAN A:visited {
	FONT-WEIGHT: normal; WORD-SPACING: -1px; COLOR: #bbb; LINE-HEIGHT: =
1.3em
}
.secondary DIV.sb-comments UL LI SPAN A {
	FONT-WEIGHT: normal; WORD-SPACING: -1px; COLOR: #999
}
DIV.sb-comments UL LI SMALL A {
	FONT-WEIGHT: normal; WORD-SPACING: -1px; COLOR: #999
}
.secondary DIV.sb-comments UL LI {
	MARGIN-BOTTOM: 6px
}
.activityentry {
	FONT-SIZE: 1.1em
}
DIV.sb-comments SMALL {
	DISPLAY: block; FONT-WEIGHT: normal; MARGIN: 0px; LINE-HEIGHT: 1em
}
.sb-flickr IMG {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 5px; PADDING-LEFT: 5px; =
BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 5px; BORDER-RIGHT-WIDTH: 0px
}
#poststuff FIELDSET {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
#poststuff #title {
	WIDTH: 470px
}
#poststuff #excerpt {
	WIDTH: 470px
}
#poststuff #tags {
	WIDTH: 470px
}
#poststuff #title {
	FONT-SIZE: 2em
}
.localtags {
	DISPLAY: none
}
.technoratitags {
	DISPLAY: none
}
.contactform {
	WIDTH: 100%; POSITION: relative
}
.contactleft {
	CLEAR: both; PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; =
FLOAT: left; PADDING-BOTTOM: 4px; MARGIN: 5px 0px; WIDTH: 15%; =
PADDING-TOP: 4px; TEXT-ALIGN: right
}
.contactright {
	PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; FLOAT: right; =
PADDING-BOTTOM: 4px; MARGIN: 5px 0px; WIDTH: 70%; PADDING-TOP: 4px; =
TEXT-ALIGN: left
}
.contacterror {
	BORDER-RIGHT: #ff0000 1px solid; BORDER-TOP: #ff0000 1px solid; =
BORDER-LEFT: #ff0000 1px solid; BORDER-BOTTOM: #ff0000 1px solid
}

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://mobhappy.com/blog1/wp-content/themes/k2/styles/MIna2.css

BODY {
	FONT-SIZE: 70%; MARGIN: 20px 0px 30px; COLOR: #363636; FONT-FAMILY: =
'Lucida Grande' Myriad Apple, Verdana, Arial, Sans-Serif; =
BACKGROUND-COLOR: #dde1e4; TEXT-ALIGN: center
}
#page {
	BORDER-RIGHT: #dedede 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: =
#dedede 1px solid; PADDING-LEFT: 10px; BACKGROUND: #ffffff; =
PADDING-BOTTOM: 10px; MARGIN: 0px auto; BORDER-LEFT: #dedede 1px solid; =
WIDTH: 720px; PADDING-TOP: 10px; BORDER-BOTTOM: #dedede 1px solid; =
POSITION: relative; TEXT-ALIGN: left
}
#header {
	BACKGROUND: url(mhbanner.jpg) center center
}
UL.menu LI A {
	MARGIN: 0px; FONT: 1em Verdana, Helvetica, Arial, Sans-Serif; =
TEXT-TRANSFORM: lowercase; COLOR: #000000; BACKGROUND-COLOR: #777777; =
opacity: .50
}
UL.menu LI A:hover {
	BACKGROUND: #000000; COLOR: #777777! important; TEXT-DECORATION: none; =
opacity: .70
}
UL.menu LI.current_page_item A {
	BACKGROUND: #000000; COLOR: #777777! important; TEXT-DECORATION: none; =
opacity: .70
}
UL.menu LI.current_page_item A:hover {
	BACKGROUND: #000000; COLOR: #777777! important; TEXT-DECORATION: none; =
opacity: .70
}
.primary IMG {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 10px; PADDING-LEFT: 10px; =
BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 10px; =
MARGIN-LEFT: 0px; PADDING-TOP: 10px; BORDER-RIGHT-WIDTH: 0px; max-width: =
100%
}
IMG.center {
	DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto
}
IMG.alignright {
	PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; PADDING-BOTTOM: =
4px; MARGIN: 0px 0px 2px 7px; PADDING-TOP: 4px
}
IMG.alignleft {
	PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; PADDING-BOTTOM: =
4px; MARGIN: 0px 7px 2px 0px; PADDING-TOP: 4px
}
IMG.noborder {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
.primary .item {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 15px; MARGIN: =
0px; PADDING-TOP: 5px; POSITION: relative
}
.primary .item .itemtext {
	FONT: 1.1em/1.5em 'Lucida Grande', Verdana, Arial, Sans-Serif; COLOR: =
#666666; TEXT-ALIGN: justify
}
.primary .item .itemtext P {
	MARGIN: 13px 0px
}
.primary .item .itemtext UL {
	MARGIN: 13px 0px
}
.primary .item .itemtext OL {
	MARGIN: 13px 0px
}
.primary .item .itemtext DIV {
	MARGIN: 13px 0px
}
.primary .item .itemtext BLOCKQUOTE {
	MARGIN: 13px 0px
}
.primary .aside .itemtext P {
	MARGIN: 5px 0px
}
.primary .aside .itemtext UL {
	MARGIN: 5px 0px
}
.primary .aside .itemtext OL {
	MARGIN: 5px 0px
}
.primary .aside .itemtext DIV {
	MARGIN: 5px 0px
}
.primary .aside .itemtext BLOCKQUOTE {
	MARGIN: 5px 0px
}
.permalink .primary .aside .itemtext P {
	MARGIN: 13px 0px
}
.permalink .primary .aside .itemtext UL {
	MARGIN: 13px 0px
}
.permalink .primary .aside .itemtext OL {
	MARGIN: 13px 0px
}
.permalink .primary .aside .itemtext DIV {
	MARGIN: 13px 0px
}
.permalink .primary .aside .itemtext BLOCKQUOTE {
	MARGIN: 13px 0px
}
.secondary {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; MARGIN: =
0px -3% 20px 0%; FONT: 1em/1.5em ' Lucida Grande' Verdana, Arial, =
Sans-Serif; WIDTH: 28%; COLOR: #555; PADDING-TOP: 10px
}
H1 {
	FONT-FAMILY: Lucida Grande, Verdana, Sans-Serif
}
H2 {
	FONT-FAMILY: Lucida Grande, Verdana, Sans-Serif
}
H3 {
	FONT-FAMILY: Lucida Grande, Verdana, Sans-Serif
}
H4 {
	FONT-FAMILY: Lucida Grande, Verdana, Sans-Serif
}
H1 {
	COLOR: #ffffff; TEXT-DECORATION: none
}
H1 A {
	COLOR: #ffffff; TEXT-DECORATION: none
}
H1 A:hover {
	COLOR: #ffffff; TEXT-DECORATION: none
}
H1 A:visited {
	COLOR: #ffffff; TEXT-DECORATION: none
}
#header .description {
	COLOR: #ffffff; TEXT-DECORATION: none
}
H2 {
	COLOR: #444
}
H2 A {
	COLOR: #444
}
H2 A:visited {
	COLOR: #444
}
H3 {
	COLOR: #444
}
H3 A {
	COLOR: #444
}
H3 A:visited {
	COLOR: #444
}
H4 {
	COLOR: #444
}
H4 A {
	COLOR: #444
}
H4 A:visited {
	COLOR: #444
}
#header .description {
	FONT-SIZE: 1em; MARGIN: 0px 0px 0px 40px; COLOR: #ffffff
}
.metadata {
	DISPLAY: block; COLOR: #707070
}
A:hover {
	TEXT-DECORATION: underline
}
A:hover {
	TEXT-DECORATION: underline
}
H2 A:hover {
	COLOR: #2b2b2b! important
}
H2 SPAN A:hover {
	COLOR: #2b2b2b! important
}
A {
	COLOR: #2b2b2b; TEXT-DECORATION: none
}
.itemtext A:visited {
	COLOR: #2b2b2b
}

------=_NextPart_000_0022_01C670DF.EECDCB00
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://mobhappy.com/blog1/wp-content/themes/k2/js/prototype.js.php

/*  Prototype JavaScript framework, version 1.4.0=0A=
 *  (c) 2005 Sam Stephenson <sam@conio.net>=0A=
 *=0A=
 *  THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please =
diff=0A=
 *  against the source tree, available from the Prototype darcs =
repository.=0A=
 *=0A=
 *  Prototype is freely distributable under the terms of an MIT-style =
license.=0A=
 *=0A=
 *  For details, see the Prototype web site: http://prototype.conio.net/=0A=
 *=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Prototype =3D {=0A=
  Version: '1.4.0',=0A=
  ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',=0A=
=0A=
  emptyFunction: function() {},=0A=
  K: function(x) {return x}=0A=
}=0A=
=0A=
var Class =3D {=0A=
  create: function() {=0A=
    return function() {=0A=
      this.initialize.apply(this, arguments);=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
var Abstract =3D new Object();=0A=
=0A=
Object.extend =3D function(destination, source) {=0A=
  for (property in source) {=0A=
    destination[property] =3D source[property];=0A=
  }=0A=
  return destination;=0A=
}=0A=
=0A=
Object.inspect =3D function(object) {=0A=
  try {=0A=
    if (object =3D=3D undefined) return 'undefined';=0A=
    if (object =3D=3D null) return 'null';=0A=
    return object.inspect ? object.inspect() : object.toString();=0A=
  } catch (e) {=0A=
    if (e instanceof RangeError) return '...';=0A=
    throw e;=0A=
  }=0A=
}=0A=
=0A=
Function.prototype.bind =3D function() {=0A=
  var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A=
  return function() {=0A=
    return __method.apply(object, args.concat($A(arguments)));=0A=
  }=0A=
}=0A=
=0A=
Function.prototype.bindAsEventListener =3D function(object) {=0A=
  var __method =3D this;=0A=
  return function(event) {=0A=
    return __method.call(object, event || window.event);=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Number.prototype, {=0A=
  toColorPart: function() {=0A=
    var digits =3D this.toString(16);=0A=
    if (this < 16) return '0' + digits;=0A=
    return digits;=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this + 1;=0A=
  },=0A=
=0A=
  times: function(iterator) {=0A=
    $R(0, this, true).each(iterator);=0A=
    return this;=0A=
  }=0A=
});=0A=
=0A=
var Try =3D {=0A=
  these: function() {=0A=
    var returnValue;=0A=
=0A=
    for (var i =3D 0; i < arguments.length; i++) {=0A=
      var lambda =3D arguments[i];=0A=
      try {=0A=
        returnValue =3D lambda();=0A=
        break;=0A=
      } catch (e) {}=0A=
    }=0A=
=0A=
    return returnValue;=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var PeriodicalExecuter =3D Class.create();=0A=
PeriodicalExecuter.prototype =3D {=0A=
  initialize: function(callback, frequency) {=0A=
    this.callback =3D callback;=0A=
    this.frequency =3D frequency;=0A=
    this.currentlyExecuting =3D false;=0A=
=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    if (!this.currentlyExecuting) {=0A=
      try {=0A=
        this.currentlyExecuting =3D true;=0A=
        this.callback();=0A=
      } finally {=0A=
        this.currentlyExecuting =3D false;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
function $() {=0A=
  var elements =3D new Array();=0A=
=0A=
  for (var i =3D 0; i < arguments.length; i++) {=0A=
    var element =3D arguments[i];=0A=
    if (typeof element =3D=3D 'string')=0A=
      element =3D document.getElementById(element);=0A=
=0A=
    if (arguments.length =3D=3D 1)=0A=
      return element;=0A=
=0A=
    elements.push(element);=0A=
  }=0A=
=0A=
  return elements;=0A=
}=0A=
Object.extend(String.prototype, {=0A=
  stripTags: function() {=0A=
    return this.replace(/<\/?[^>]+>/gi, '');=0A=
  },=0A=
=0A=
  stripScripts: function() {=0A=
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A=
  },=0A=
=0A=
  extractScripts: function() {=0A=
    var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A=
    var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A=
    return (this.match(matchAll) || []).map(function(scriptTag) {=0A=
      return (scriptTag.match(matchOne) || ['', ''])[1];=0A=
    });=0A=
  },=0A=
=0A=
  evalScripts: function() {=0A=
    return this.extractScripts().map(eval);=0A=
  },=0A=
=0A=
  escapeHTML: function() {=0A=
    var div =3D document.createElement('div');=0A=
    var text =3D document.createTextNode(this);=0A=
    div.appendChild(text);=0A=
    return div.innerHTML;=0A=
  },=0A=
=0A=
  unescapeHTML: function() {=0A=
    var div =3D document.createElement('div');=0A=
    div.innerHTML =3D this.stripTags();=0A=
    return div.childNodes[0] ? div.childNodes[0].nodeValue : '';=0A=
  },=0A=
=0A=
  toQueryParams: function() {=0A=
    var pairs =3D this.match(/^\??(.*)$/)[1].split('&');=0A=
    return pairs.inject({}, function(params, pairString) {=0A=
      var pair =3D pairString.split('=3D');=0A=
      params[pair[0]] =3D pair[1];=0A=
      return params;=0A=
    });=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.split('');=0A=
  },=0A=
=0A=
  camelize: function() {=0A=
    var oStringList =3D this.split('-');=0A=
    if (oStringList.length =3D=3D 1) return oStringList[0];=0A=
=0A=
    var camelizedString =3D this.indexOf('-') =3D=3D 0=0A=
      ? oStringList[0].charAt(0).toUpperCase() + =
oStringList[0].substring(1)=0A=
      : oStringList[0];=0A=
=0A=
    for (var i =3D 1, len =3D oStringList.length; i < len; i++) {=0A=
      var s =3D oStringList[i];=0A=
      camelizedString +=3D s.charAt(0).toUpperCase() + s.substring(1);=0A=
    }=0A=
=0A=
    return camelizedString;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'";=0A=
  }=0A=
});=0A=
=0A=
String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A=
=0A=
var $break    =3D new Object();=0A=
var $continue =3D new Object();=0A=
=0A=
var Enumerable =3D {=0A=
  each: function(iterator) {=0A=
    var index =3D 0;=0A=
    try {=0A=
      this._each(function(value) {=0A=
        try {=0A=
          iterator(value, index++);=0A=
        } catch (e) {=0A=
          if (e !=3D $continue) throw e;=0A=
        }=0A=
      });=0A=
    } catch (e) {=0A=
      if (e !=3D $break) throw e;=0A=
    }=0A=
  },=0A=
=0A=
  all: function(iterator) {=0A=
    var result =3D true;=0A=
    this.each(function(value, index) {=0A=
      result =3D result && !!(iterator || Prototype.K)(value, index);=0A=
      if (!result) throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  any: function(iterator) {=0A=
    var result =3D true;=0A=
    this.each(function(value, index) {=0A=
      if (result =3D !!(iterator || Prototype.K)(value, index))=0A=
        throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  collect: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push(iterator(value, index));=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  detect: function (iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index)) {=0A=
        result =3D value;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  findAll: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  grep: function(pattern, iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      var stringValue =3D value.toString();=0A=
      if (stringValue.match(pattern))=0A=
        results.push((iterator || Prototype.K)(value, index));=0A=
    })=0A=
    return results;=0A=
  },=0A=
=0A=
  include: function(object) {=0A=
    var found =3D false;=0A=
    this.each(function(value) {=0A=
      if (value =3D=3D object) {=0A=
        found =3D true;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return found;=0A=
  },=0A=
=0A=
  inject: function(memo, iterator) {=0A=
    this.each(function(value, index) {=0A=
      memo =3D iterator(memo, value, index);=0A=
    });=0A=
    return memo;=0A=
  },=0A=
=0A=
  invoke: function(method) {=0A=
    var args =3D $A(arguments).slice(1);=0A=
    return this.collect(function(value) {=0A=
      return value[method].apply(value, args);=0A=
    });=0A=
  },=0A=
=0A=
  max: function(iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D (iterator || Prototype.K)(value, index);=0A=
      if (value >=3D (result || value))=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  min: function(iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D (iterator || Prototype.K)(value, index);=0A=
      if (value <=3D (result || value))=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  partition: function(iterator) {=0A=
    var trues =3D [], falses =3D [];=0A=
    this.each(function(value, index) {=0A=
      ((iterator || Prototype.K)(value, index) ?=0A=
        trues : falses).push(value);=0A=
    });=0A=
    return [trues, falses];=0A=
  },=0A=
=0A=
  pluck: function(property) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push(value[property]);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  reject: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (!iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  sortBy: function(iterator) {=0A=
    return this.collect(function(value, index) {=0A=
      return {value: value, criteria: iterator(value, index)};=0A=
    }).sort(function(left, right) {=0A=
      var a =3D left.criteria, b =3D right.criteria;=0A=
      return a < b ? -1 : a > b ? 1 : 0;=0A=
    }).pluck('value');=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.collect(Prototype.K);=0A=
  },=0A=
=0A=
  zip: function() {=0A=
    var iterator =3D Prototype.K, args =3D $A(arguments);=0A=
    if (typeof args.last() =3D=3D 'function')=0A=
      iterator =3D args.pop();=0A=
=0A=
    var collections =3D [this].concat(args).map($A);=0A=
    return this.map(function(value, index) {=0A=
      iterator(value =3D collections.pluck(index));=0A=
      return value;=0A=
    });=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Enumerable:' + this.toArray().inspect() + '>';=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Enumerable, {=0A=
  map:     Enumerable.collect,=0A=
  find:    Enumerable.detect,=0A=
  select:  Enumerable.findAll,=0A=
  member:  Enumerable.include,=0A=
  entries: Enumerable.toArray=0A=
});=0A=
var $A =3D Array.from =3D function(iterable) {=0A=
  if (!iterable) return [];=0A=
  if (iterable.toArray) {=0A=
    return iterable.toArray();=0A=
  } else {=0A=
    var results =3D [];=0A=
    for (var i =3D 0; i < iterable.length; i++)=0A=
      results.push(iterable[i]);=0A=
    return results;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Array.prototype, Enumerable);=0A=
=0A=
Array.prototype._reverse =3D Array.prototype.reverse;=0A=
=0A=
Object.extend(Array.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var i =3D 0; i < this.length; i++)=0A=
      iterator(this[i]);=0A=
  },=0A=
=0A=
  clear: function() {=0A=
    this.length =3D 0;=0A=
    return this;=0A=
  },=0A=
=0A=
  first: function() {=0A=
    return this[0];=0A=
  },=0A=
=0A=
  last: function() {=0A=
    return this[this.length - 1];=0A=
  },=0A=
=0A=
  compact: function() {=0A=
    return this.select(function(value) {=0A=
      return value !=3D undefined || value !=3D null;=0A=
    });=0A=
  },=0A=
=0A=
  flatten: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.concat(value.constructor =3D=3D Array ?=0A=
        value.flatten() : [value]);=0A=
    });=0A=
  },=0A=
=0A=
  without: function() {=0A=
    var values =3D $A(arguments);=0A=
    return this.select(function(value) {=0A=
      return !values.include(value);=0A=
    });=0A=
  },=0A=
=0A=
  indexOf: function(object) {=0A=
    for (var i =3D 0; i < this.length; i++)=0A=
      if (this[i] =3D=3D object) return i;=0A=
    return -1;=0A=
  },=0A=
=0A=
  reverse: function(inline) {=0A=
    return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A=
  },=0A=
=0A=
  shift: function() {=0A=
    var result =3D this[0];=0A=
    for (var i =3D 0; i < this.length - 1; i++)=0A=
      this[i] =3D this[i + 1];=0A=
    this.length--;=0A=
    return result;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '[' + this.map(Object.inspect).join(', ') + ']';=0A=
  }=0A=
});=0A=
var Hash =3D {=0A=
  _each: function(iterator) {=0A=
    for (key in this) {=0A=
      var value =3D this[key];=0A=
      if (typeof value =3D=3D 'function') continue;=0A=
=0A=
      var pair =3D [key, value];=0A=
      pair.key =3D key;=0A=
      pair.value =3D value;=0A=
      iterator(pair);=0A=
    }=0A=
  },=0A=
=0A=
  keys: function() {=0A=
    return this.pluck('key');=0A=
  },=0A=
=0A=
  values: function() {=0A=
    return this.pluck('value');=0A=
  },=0A=
=0A=
  merge: function(hash) {=0A=
    return $H(hash).inject($H(this), function(mergedHash, pair) {=0A=
      mergedHash[pair.key] =3D pair.value;=0A=
      return mergedHash;=0A=
    });=0A=
  },=0A=
=0A=
  toQueryString: function() {=0A=
    return this.map(function(pair) {=0A=
      return pair.map(encodeURIComponent).join('=3D');=0A=
    }).join('&');=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Hash:{' + this.map(function(pair) {=0A=
      return pair.map(Object.inspect).join(': ');=0A=
    }).join(', ') + '}>';=0A=
  }=0A=
}=0A=
=0A=
function $H(object) {=0A=
  var hash =3D Object.extend({}, object || {});=0A=
  Object.extend(hash, Enumerable);=0A=
  Object.extend(hash, Hash);=0A=
  return hash;=0A=
}=0A=
ObjectRange =3D Class.create();=0A=
Object.extend(ObjectRange.prototype, Enumerable);=0A=
Object.extend(ObjectRange.prototype, {=0A=
  initialize: function(start, end, exclusive) {=0A=
    this.start =3D start;=0A=
    this.end =3D end;=0A=
    this.exclusive =3D exclusive;=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    var value =3D this.start;=0A=
    do {=0A=
      iterator(value);=0A=
      value =3D value.succ();=0A=
    } while (this.include(value));=0A=
  },=0A=
=0A=
  include: function(value) {=0A=
    if (value < this.start)=0A=
      return false;=0A=
    if (this.exclusive)=0A=
      return value < this.end;=0A=
    return value <=3D this.end;=0A=
  }=0A=
});=0A=
=0A=
var $R =3D function(start, end, exclusive) {=0A=
  return new ObjectRange(start, end, exclusive);=0A=
}=0A=
=0A=
var Ajax =3D {=0A=
  getTransport: function() {=0A=
    return Try.these(=0A=
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A=
      function() {return new ActiveXObject('Microsoft.XMLHTTP')},=0A=
      function() {return new XMLHttpRequest()}=0A=
    ) || false;=0A=
  },=0A=
=0A=
  activeRequestCount: 0=0A=
}=0A=
=0A=
Ajax.Responders =3D {=0A=
  responders: [],=0A=
=0A=
  _each: function(iterator) {=0A=
    this.responders._each(iterator);=0A=
  },=0A=
=0A=
  register: function(responderToAdd) {=0A=
    if (!this.include(responderToAdd))=0A=
      this.responders.push(responderToAdd);=0A=
  },=0A=
=0A=
  unregister: function(responderToRemove) {=0A=
    this.responders =3D this.responders.without(responderToRemove);=0A=
  },=0A=
=0A=
  dispatch: function(callback, request, transport, json) {=0A=
    this.each(function(responder) {=0A=
      if (responder[callback] && typeof responder[callback] =3D=3D =
'function') {=0A=
        try {=0A=
          responder[callback].apply(responder, [request, transport, =
json]);=0A=
        } catch (e) {}=0A=
      }=0A=
    });=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Ajax.Responders, Enumerable);=0A=
=0A=
Ajax.Responders.register({=0A=
  onCreate: function() {=0A=
    Ajax.activeRequestCount++;=0A=
  },=0A=
=0A=
  onComplete: function() {=0A=
    Ajax.activeRequestCount--;=0A=
  }=0A=
});=0A=
=0A=
Ajax.Base =3D function() {};=0A=
Ajax.Base.prototype =3D {=0A=
  setOptions: function(options) {=0A=
    this.options =3D {=0A=
      method:       'post',=0A=
      asynchronous: true,=0A=
      parameters:   ''=0A=
    }=0A=
    Object.extend(this.options, options || {});=0A=
  },=0A=
=0A=
  responseIsSuccess: function() {=0A=
    return this.transport.status =3D=3D undefined=0A=
        || this.transport.status =3D=3D 0=0A=
        || (this.transport.status >=3D 200 && this.transport.status < =
300);=0A=
  },=0A=
=0A=
  responseIsFailure: function() {=0A=
    return !this.responseIsSuccess();=0A=
  }=0A=
}=0A=
=0A=
Ajax.Request =3D Class.create();=0A=
Ajax.Request.Events =3D=0A=
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A=
=0A=
Ajax.Request.prototype =3D Object.extend(new Ajax.Base(), {=0A=
  initialize: function(url, options) {=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.setOptions(options);=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  request: function(url) {=0A=
    var parameters =3D this.options.parameters || '';=0A=
    if (parameters.length > 0) parameters +=3D '&_=3D';=0A=
=0A=
    try {=0A=
      this.url =3D url;=0A=
      if (this.options.method =3D=3D 'get' && parameters.length > 0)=0A=
        this.url +=3D (this.url.match(/\?/) ? '&' : '?') + parameters;=0A=
=0A=
      Ajax.Responders.dispatch('onCreate', this, this.transport);=0A=
=0A=
      this.transport.open(this.options.method, this.url,=0A=
        this.options.asynchronous);=0A=
=0A=
      if (this.options.asynchronous) {=0A=
        this.transport.onreadystatechange =3D =
this.onStateChange.bind(this);=0A=
        setTimeout((function() =
{this.respondToReadyState(1)}).bind(this), 10);=0A=
      }=0A=
=0A=
      this.setRequestHeaders();=0A=
=0A=
      var body =3D this.options.postBody ? this.options.postBody : =
parameters;=0A=
      this.transport.send(this.options.method =3D=3D 'post' ? body : =
null);=0A=
=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  setRequestHeaders: function() {=0A=
    var requestHeaders =3D=0A=
      ['X-Requested-With', 'XMLHttpRequest',=0A=
       'X-Prototype-Version', Prototype.Version];=0A=
=0A=
    if (this.options.method =3D=3D 'post') {=0A=
      requestHeaders.push('Content-type',=0A=
        'application/x-www-form-urlencoded');=0A=
=0A=
      /* Force "Connection: close" for Mozilla browsers to work around=0A=
       * a bug where XMLHttpReqeuest sends an incorrect Content-length=0A=
       * header. See Mozilla Bugzilla #246651.=0A=
       */=0A=
      if (this.transport.overrideMimeType)=0A=
        requestHeaders.push('Connection', 'close');=0A=
    }=0A=
=0A=
    if (this.options.requestHeaders)=0A=
      requestHeaders.push.apply(requestHeaders, =
this.options.requestHeaders);=0A=
=0A=
    for (var i =3D 0; i < requestHeaders.length; i +=3D 2)=0A=
      this.transport.setRequestHeader(requestHeaders[i], =
requestHeaders[i+1]);=0A=
  },=0A=
=0A=
  onStateChange: function() {=0A=
    var readyState =3D this.transport.readyState;=0A=
    if (readyState !=3D 1)=0A=
      this.respondToReadyState(this.transport.readyState);=0A=
  },=0A=
=0A=
  header: function(name) {=0A=
    try {=0A=
      return this.transport.getResponseHeader(name);=0A=
    } catch (e) {}=0A=
  },=0A=
=0A=
  evalJSON: function() {=0A=
    try {=0A=
      return eval(this.header('X-JSON'));=0A=
    } catch (e) {}=0A=
  },=0A=
=0A=
  evalResponse: function() {=0A=
    try {=0A=
      return eval(this.transport.responseText);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  respondToReadyState: function(readyState) {=0A=
    var event =3D Ajax.Request.Events[readyState];=0A=
    var transport =3D this.transport, json =3D this.evalJSON();=0A=
=0A=
    if (event =3D=3D 'Complete') {=0A=
      try {=0A=
        (this.options['on' + this.transport.status]=0A=
         || this.options['on' + (this.responseIsSuccess() ? 'Success' : =
'Failure')]=0A=
         || Prototype.emptyFunction)(transport, json);=0A=
      } catch (e) {=0A=
        this.dispatchException(e);=0A=
      }=0A=
=0A=
      if ((this.header('Content-type') || =
'').match(/^text\/javascript/i))=0A=
        this.evalResponse();=0A=
    }=0A=
=0A=
    try {=0A=
      (this.options['on' + event] || Prototype.emptyFunction)(transport, =
json);=0A=
      Ajax.Responders.dispatch('on' + event, this, transport, json);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
=0A=
    /* Avoid memory leak in MSIE: clean up the oncomplete event handler =
*/=0A=
    if (event =3D=3D 'Complete')=0A=
      this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A=
  },=0A=
=0A=
  dispatchException: function(exception) {=0A=
    (this.options.onException || Prototype.emptyFunction)(this, =
exception);=0A=
    Ajax.Responders.dispatch('onException', this, exception);=0A=
  }=0A=
});=0A=
=0A=
Ajax.Updater =3D Class.create();=0A=
=0A=
Object.extend(Object.extend(Ajax.Updater.prototype, =
Ajax.Request.prototype), {=0A=
  initialize: function(container, url, options) {=0A=
    this.containers =3D {=0A=
      success: container.success ? $(container.success) : $(container),=0A=
      failure: container.failure ? $(container.failure) :=0A=
        (container.success ? null : $(container))=0A=
    }=0A=
=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.setOptions(options);=0A=
=0A=
    var onComplete =3D this.options.onComplete || =
Prototype.emptyFunction;=0A=
    this.options.onComplete =3D (function(transport, object) {=0A=
      this.updateContent();=0A=
      onComplete(transport, object);=0A=
    }).bind(this);=0A=
=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  updateContent: function() {=0A=
    var receiver =3D this.responseIsSuccess() ?=0A=
      this.containers.success : this.containers.failure;=0A=
    var response =3D this.transport.responseText;=0A=
=0A=
    if (!this.options.evalScripts)=0A=
      response =3D response.stripScripts();=0A=
=0A=
    if (receiver) {=0A=
      if (this.options.insertion) {=0A=
        new this.options.insertion(receiver, response);=0A=
      } else {=0A=
        Element.update(receiver, response);=0A=
      }=0A=
    }=0A=
=0A=
    if (this.responseIsSuccess()) {=0A=
      if (this.onComplete)=0A=
        setTimeout(this.onComplete.bind(this), 10);=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Ajax.PeriodicalUpdater =3D Class.create();=0A=
Ajax.PeriodicalUpdater.prototype =3D Object.extend(new Ajax.Base(), {=0A=
  initialize: function(container, url, options) {=0A=
    this.setOptions(options);=0A=
    this.onComplete =3D this.options.onComplete;=0A=
=0A=
    this.frequency =3D (this.options.frequency || 2);=0A=
    this.decay =3D (this.options.decay || 1);=0A=
=0A=
    this.updater =3D {};=0A=
    this.container =3D container;=0A=
    this.url =3D url;=0A=
=0A=
    this.start();=0A=
  },=0A=
=0A=
  start: function() {=0A=
    this.options.onComplete =3D this.updateComplete.bind(this);=0A=
    this.onTimerEvent();=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    this.updater.onComplete =3D undefined;=0A=
    clearTimeout(this.timer);=0A=
    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A=
  },=0A=
=0A=
  updateComplete: function(request) {=0A=
    if (this.options.decay) {=0A=
      this.decay =3D (request.responseText =3D=3D this.lastText ?=0A=
        this.decay * this.options.decay : 1);=0A=
=0A=
      this.lastText =3D request.responseText;=0A=
    }=0A=
    this.timer =3D setTimeout(this.onTimerEvent.bind(this),=0A=
      this.decay * this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    this.updater =3D new Ajax.Updater(this.container, this.url, =
this.options);=0A=
  }=0A=
});=0A=
document.getElementsByClassName =3D function(className, parentElement) {=0A=
  var children =3D ($(parentElement) || =
document.body).getElementsByTagName('*');=0A=
  return $A(children).inject([], function(elements, child) {=0A=
    if (child.className.match(new RegExp("(^|\\s)" + className + =
"(\\s|$)")))=0A=
      elements.push(child);=0A=
    return elements;=0A=
  });=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!window.Element) {=0A=
  var Element =3D new Object();=0A=
}=0A=
=0A=
Object.extend(Element, {=0A=
  visible: function(element) {=0A=
    return $(element).style.display !=3D 'none';=0A=
  },=0A=
=0A=
  toggle: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++) {=0A=
      var element =3D $(arguments[i]);=0A=
      Element[Element.visible(element) ? 'hide' : 'show'](element);=0A=
    }=0A=
  },=0A=
=0A=
  hide: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++) {=0A=
      var element =3D $(arguments[i]);=0A=
      element.style.display =3D 'none';=0A=
    }=0A=
  },=0A=
=0A=
  show: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++) {=0A=
      var element =3D $(arguments[i]);=0A=
      element.style.display =3D '';=0A=
    }=0A=
  },=0A=
=0A=
  remove: function(element) {=0A=
    element =3D $(element);=0A=
    element.parentNode.removeChild(element);=0A=
  },=0A=
=0A=
  update: function(element, html) {=0A=
    $(element).innerHTML =3D html.stripScripts();=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
  },=0A=
=0A=
  getHeight: function(element) {=0A=
    element =3D $(element);=0A=
    return element.offsetHeight;=0A=
  },=0A=
=0A=
  classNames: function(element) {=0A=
    return new Element.ClassNames(element);=0A=
  },=0A=
=0A=
  hasClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    return Element.classNames(element).include(className);=0A=
  },=0A=
=0A=
  addClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    return Element.classNames(element).add(className);=0A=
  },=0A=
=0A=
  removeClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    return Element.classNames(element).remove(className);=0A=
  },=0A=
=0A=
  // removes whitespace-only text node children=0A=
  cleanWhitespace: function(element) {=0A=
    element =3D $(element);=0A=
    for (var i =3D 0; i < element.childNodes.length; i++) {=0A=
      var node =3D element.childNodes[i];=0A=
      if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A=
        Element.remove(node);=0A=
    }=0A=
  },=0A=
=0A=
  empty: function(element) {=0A=
    return $(element).innerHTML.match(/^\s*$/);=0A=
  },=0A=
=0A=
  scrollTo: function(element) {=0A=
    element =3D $(element);=0A=
    var x =3D element.x ? element.x : element.offsetLeft,=0A=
        y =3D element.y ? element.y : element.offsetTop;=0A=
    window.scrollTo(x, y);=0A=
  },=0A=
=0A=
  getStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    var value =3D element.style[style.camelize()];=0A=
    if (!value) {=0A=
      if (document.defaultView && document.defaultView.getComputedStyle) =
{=0A=
        var css =3D document.defaultView.getComputedStyle(element, null);=0A=
        value =3D css ? css.getPropertyValue(style) : null;=0A=
      } else if (element.currentStyle) {=0A=
        value =3D element.currentStyle[style.camelize()];=0A=
      }=0A=
    }=0A=
=0A=
    if (window.opera && ['left', 'top', 'right', =
'bottom'].include(style))=0A=
      if (Element.getStyle(element, 'position') =3D=3D 'static') value =
=3D 'auto';=0A=
=0A=
    return value =3D=3D 'auto' ? null : value;=0A=
  },=0A=
=0A=
  setStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    for (name in style)=0A=
      element.style[name.camelize()] =3D style[name];=0A=
  },=0A=
=0A=
  getDimensions: function(element) {=0A=
    element =3D $(element);=0A=
    if (Element.getStyle(element, 'display') !=3D 'none')=0A=
      return {width: element.offsetWidth, height: element.offsetHeight};=0A=
=0A=
    // All *Width and *Height properties give 0 on elements with display =
none,=0A=
    // so enable the element temporarily=0A=
    var els =3D element.style;=0A=
    var originalVisibility =3D els.visibility;=0A=
    var originalPosition =3D els.position;=0A=
    els.visibility =3D 'hidden';=0A=
    els.position =3D 'absolute';=0A=
    els.display =3D '';=0A=
    var originalWidth =3D element.clientWidth;=0A=
    var originalHeight =3D element.clientHeight;=0A=
    els.display =3D 'none';=0A=
    els.position =3D originalPosition;=0A=
    els.visibility =3D originalVisibility;=0A=
    return {width: originalWidth, height: originalHeight};=0A=
  },=0A=
=0A=
  makePositioned: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D Element.getStyle(element, 'position');=0A=
    if (pos =3D=3D 'static' || !pos) {=0A=
      element._madePositioned =3D true;=0A=
      element.style.position =3D 'relative';=0A=
      // Opera returns the offset relative to the positioning context, =
when an=0A=
      // element is position relative but top and left have not been =
defined=0A=
      if (window.opera) {=0A=
        element.style.top =3D 0;=0A=
        element.style.left =3D 0;=0A=
      }=0A=
    }=0A=
  },=0A=
=0A=
  undoPositioned: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._madePositioned) {=0A=
      element._madePositioned =3D undefined;=0A=
      element.style.position =3D=0A=
        element.style.top =3D=0A=
        element.style.left =3D=0A=
        element.style.bottom =3D=0A=
        element.style.right =3D '';=0A=
    }=0A=
  },=0A=
=0A=
  makeClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._overflow) return;=0A=
    element._overflow =3D element.style.overflow;=0A=
    if ((Element.getStyle(element, 'overflow') || 'visible') !=3D =
'hidden')=0A=
      element.style.overflow =3D 'hidden';=0A=
  },=0A=
=0A=
  undoClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._overflow) return;=0A=
    element.style.overflow =3D element._overflow;=0A=
    element._overflow =3D undefined;=0A=
  }=0A=
});=0A=
=0A=
var Toggle =3D new Object();=0A=
Toggle.display =3D Element.toggle;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.Insertion =3D function(adjacency) {=0A=
  this.adjacency =3D adjacency;=0A=
}=0A=
=0A=
Abstract.Insertion.prototype =3D {=0A=
  initialize: function(element, content) {=0A=
    this.element =3D $(element);=0A=
    this.content =3D content.stripScripts();=0A=
=0A=
    if (this.adjacency && this.element.insertAdjacentHTML) {=0A=
      try {=0A=
        this.element.insertAdjacentHTML(this.adjacency, this.content);=0A=
      } catch (e) {=0A=
        if (this.element.tagName.toLowerCase() =3D=3D 'tbody') {=0A=
          this.insertContent(this.contentFromAnonymousTable());=0A=
        } else {=0A=
          throw e;=0A=
        }=0A=
      }=0A=
    } else {=0A=
      this.range =3D this.element.ownerDocument.createRange();=0A=
      if (this.initializeRange) this.initializeRange();=0A=
      =
this.insertContent([this.range.createContextualFragment(this.content)]);=0A=
    }=0A=
=0A=
    setTimeout(function() {content.evalScripts()}, 10);=0A=
  },=0A=
=0A=
  contentFromAnonymousTable: function() {=0A=
    var div =3D document.createElement('div');=0A=
    div.innerHTML =3D '<table><tbody>' + this.content + =
'</tbody></table>';=0A=
    return $A(div.childNodes[0].childNodes[0].childNodes);=0A=
  }=0A=
}=0A=
=0A=
var Insertion =3D new Object();=0A=
=0A=
Insertion.Before =3D Class.create();=0A=
Insertion.Before.prototype =3D Object.extend(new =
Abstract.Insertion('beforeBegin'), {=0A=
  initializeRange: function() {=0A=
    this.range.setStartBefore(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.parentNode.insertBefore(fragment, this.element);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.Top =3D Class.create();=0A=
Insertion.Top.prototype =3D Object.extend(new =
Abstract.Insertion('afterBegin'), {=0A=
  initializeRange: function() {=0A=
    this.range.selectNodeContents(this.element);=0A=
    this.range.collapse(true);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.reverse(false).each((function(fragment) {=0A=
      this.element.insertBefore(fragment, this.element.firstChild);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.Bottom =3D Class.create();=0A=
Insertion.Bottom.prototype =3D Object.extend(new =
Abstract.Insertion('beforeEnd'), {=0A=
  initializeRange: function() {=0A=
    this.range.selectNodeContents(this.element);=0A=
    this.range.collapse(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.appendChild(fragment);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.After =3D Class.create();=0A=
Insertion.After.prototype =3D Object.extend(new =
Abstract.Insertion('afterEnd'), {=0A=
  initializeRange: function() {=0A=
    this.range.setStartAfter(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.parentNode.insertBefore(fragment,=0A=
        this.element.nextSibling);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.ClassNames =3D Class.create();=0A=
Element.ClassNames.prototype =3D {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    this.element.className.split(/\s+/).select(function(name) {=0A=
      return name.length > 0;=0A=
    })._each(iterator);=0A=
  },=0A=
=0A=
  set: function(className) {=0A=
    this.element.className =3D className;=0A=
  },=0A=
=0A=
  add: function(classNameToAdd) {=0A=
    if (this.include(classNameToAdd)) return;=0A=
    this.set(this.toArray().concat(classNameToAdd).join(' '));=0A=
  },=0A=
=0A=
  remove: function(classNameToRemove) {=0A=
    if (!this.include(classNameToRemove)) return;=0A=
    this.set(this.select(function(className) {=0A=
      return className !=3D classNameToRemove;=0A=
    }).join(' '));=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return this.toArray().join(' ');=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Element.ClassNames.prototype, Enumerable);=0A=
var Field =3D {=0A=
  clear: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++)=0A=
      $(arguments[i]).value =3D '';=0A=
  },=0A=
=0A=
  focus: function(element) {=0A=
    $(element).focus();=0A=
  },=0A=
=0A=
  present: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++)=0A=
      if ($(arguments[i]).value =3D=3D '') return false;=0A=
    return true;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    $(element).select();=0A=
  },=0A=
=0A=
  activate: function(element) {=0A=
    element =3D $(element);=0A=
    element.focus();=0A=
    if (element.select)=0A=
      element.select();=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Form =3D {=0A=
  serialize: function(form) {=0A=
    var elements =3D Form.getElements($(form));=0A=
    var queryComponents =3D new Array();=0A=
=0A=
    for (var i =3D 0; i < elements.length; i++) {=0A=
      var queryComponent =3D Form.Element.serialize(elements[i]);=0A=
      if (queryComponent)=0A=
        queryComponents.push(queryComponent);=0A=
    }=0A=
=0A=
    return queryComponents.join('&');=0A=
  },=0A=
=0A=
  getElements: function(form) {=0A=
    form =3D $(form);=0A=
    var elements =3D new Array();=0A=
=0A=
    for (tagName in Form.Element.Serializers) {=0A=
      var tagElements =3D form.getElementsByTagName(tagName);=0A=
      for (var j =3D 0; j < tagElements.length; j++)=0A=
        elements.push(tagElements[j]);=0A=
    }=0A=
    return elements;=0A=
  },=0A=
=0A=
  getInputs: function(form, typeName, name) {=0A=
    form =3D $(form);=0A=
    var inputs =3D form.getElementsByTagName('input');=0A=
=0A=
    if (!typeName && !name)=0A=
      return inputs;=0A=
=0A=
    var matchingInputs =3D new Array();=0A=
    for (var i =3D 0; i < inputs.length; i++) {=0A=
      var input =3D inputs[i];=0A=
      if ((typeName && input.type !=3D typeName) ||=0A=
          (name && input.name !=3D name))=0A=
        continue;=0A=
      matchingInputs.push(input);=0A=
    }=0A=
=0A=
    return matchingInputs;=0A=
  },=0A=
=0A=
  disable: function(form) {=0A=
    var elements =3D Form.getElements(form);=0A=
    for (var i =3D 0; i < elements.length; i++) {=0A=
      var element =3D elements[i];=0A=
      element.blur();=0A=
      element.disabled =3D 'true';=0A=
    }=0A=
  },=0A=
=0A=
  enable: function(form) {=0A=
    var elements =3D Form.getElements(form);=0A=
    for (var i =3D 0; i < elements.length; i++) {=0A=
      var element =3D elements[i];=0A=
      element.disabled =3D '';=0A=
    }=0A=
  },=0A=
=0A=
  findFirstElement: function(form) {=0A=
    return Form.getElements(form).find(function(element) {=0A=
      return element.type !=3D 'hidden' && !element.disabled &&=0A=
        ['input', 'select', =
'textarea'].include(element.tagName.toLowerCase());=0A=
    });=0A=
  },=0A=
=0A=
  focusFirstElement: function(form) {=0A=
    Field.activate(Form.findFirstElement(form));=0A=
  },=0A=
=0A=
  reset: function(form) {=0A=
    $(form).reset();=0A=
  }=0A=
}=0A=
=0A=
Form.Element =3D {=0A=
  serialize: function(element) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    var parameter =3D Form.Element.Serializers[method](element);=0A=
=0A=
    if (parameter) {=0A=
      var key =3D encodeURIComponent(parameter[0]);=0A=
      if (key.length =3D=3D 0) return;=0A=
=0A=
      if (parameter[1].constructor !=3D Array)=0A=
        parameter[1] =3D [parameter[1]];=0A=
=0A=
      return parameter[1].map(function(value) {=0A=
        return key + '=3D' + encodeURIComponent(value);=0A=
      }).join('&');=0A=
    }=0A=
  },=0A=
=0A=
  getValue: function(element) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    var parameter =3D Form.Element.Serializers[method](element);=0A=
=0A=
    if (parameter)=0A=
      return parameter[1];=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Serializers =3D {=0A=
  input: function(element) {=0A=
    switch (element.type.toLowerCase()) {=0A=
      case 'submit':=0A=
      case 'hidden':=0A=
      case 'password':=0A=
      case 'text':=0A=
        return Form.Element.Serializers.textarea(element);=0A=
      case 'checkbox':=0A=
      case 'radio':=0A=
        return Form.Element.Serializers.inputSelector(element);=0A=
    }=0A=
    return false;=0A=
  },=0A=
=0A=
  inputSelector: function(element) {=0A=
    if (element.checked)=0A=
      return [element.name, element.value];=0A=
  },=0A=
=0A=
  textarea: function(element) {=0A=
    return [element.name, element.value];=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    return Form.Element.Serializers[element.type =3D=3D 'select-one' ?=0A=
      'selectOne' : 'selectMany'](element);=0A=
  },=0A=
=0A=
  selectOne: function(element) {=0A=
    var value =3D '', opt, index =3D element.selectedIndex;=0A=
    if (index >=3D 0) {=0A=
      opt =3D element.options[index];=0A=
      value =3D opt.value;=0A=
      if (!value && !('value' in opt))=0A=
        value =3D opt.text;=0A=
    }=0A=
    return [element.name, value];=0A=
  },=0A=
=0A=
  selectMany: function(element) {=0A=
    var value =3D new Array();=0A=
    for (var i =3D 0; i < element.length; i++) {=0A=
      var opt =3D element.options[i];=0A=
      if (opt.selected) {=0A=
        var optValue =3D opt.value;=0A=
        if (!optValue && !('value' in opt))=0A=
          optValue =3D opt.text;=0A=
        value.push(optValue);=0A=
      }=0A=
    }=0A=
    return [element.name, value];=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var $F =3D Form.Element.getValue;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.TimedObserver =3D function() {}=0A=
Abstract.TimedObserver.prototype =3D {=0A=
  initialize: function(element, frequency, callback) {=0A=
    this.frequency =3D frequency;=0A=
    this.element   =3D $(element);=0A=
    this.callback  =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    if (this.lastValue !=3D value) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Observer =3D Class.create();=0A=
Form.Element.Observer.prototype =3D Object.extend(new =
Abstract.TimedObserver(), {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.Observer =3D Class.create();=0A=
Form.Observer.prototype =3D Object.extend(new Abstract.TimedObserver(), {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.EventObserver =3D function() {}=0A=
Abstract.EventObserver.prototype =3D {=0A=
  initialize: function(element, callback) {=0A=
    this.element  =3D $(element);=0A=
    this.callback =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A=
      this.registerFormCallbacks();=0A=
    else=0A=
      this.registerCallback(this.element);=0A=
  },=0A=
=0A=
  onElementEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    if (this.lastValue !=3D value) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  },=0A=
=0A=
  registerFormCallbacks: function() {=0A=
    var elements =3D Form.getElements(this.element);=0A=
    for (var i =3D 0; i < elements.length; i++)=0A=
      this.registerCallback(elements[i]);=0A=
  },=0A=
=0A=
  registerCallback: function(element) {=0A=
    if (element.type) {=0A=
      switch (element.type.toLowerCase()) {=0A=
        case 'checkbox':=0A=
        case 'radio':=0A=
          Event.observe(element, 'click', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
        case 'password':=0A=
        case 'text':=0A=
        case 'textarea':=0A=
        case 'select-one':=0A=
        case 'select-multiple':=0A=
          Event.observe(element, 'change', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Form.Element.EventObserver =3D Class.create();=0A=
Form.Element.EventObserver.prototype =3D Object.extend(new =
Abstract.EventObserver(), {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.EventObserver =3D Class.create();=0A=
Form.EventObserver.prototype =3D Object.extend(new =
Abstract.EventObserver(), {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
if (!window.Event) {=0A=
  var Event =3D new Object();=0A=
}=0A=
=0A=
Object.extend(Event, {=0A=
  KEY_BACKSPACE: 8,=0A=
  KEY_TAB:       9,=0A=
  KEY_RETURN:   13,=0A=
  KEY_ESC:      27,=0A=
  KEY_LEFT:     37,=0A=
  KEY_UP:       38,=0A=
  KEY_RIGHT:    39,=0A=
  KEY_DOWN:     40,=0A=
  KEY_DELETE:   46,=0A=
=0A=
  element: function(event) {=0A=
    return event.target || event.srcElement;=0A=
  },=0A=
=0A=
  isLeftClick: function(event) {=0A=
    return (((event.which) && (event.which =3D=3D 1)) ||=0A=
            ((event.button) && (event.button =3D=3D 1)));=0A=
  },=0A=
=0A=
  pointerX: function(event) {=0A=
    return event.pageX || (event.clientX +=0A=
      (document.documentElement.scrollLeft || document.body.scrollLeft));=0A=
  },=0A=
=0A=
  pointerY: function(event) {=0A=
    return event.pageY || (event.clientY +=0A=
      (document.documentElement.scrollTop || document.body.scrollTop));=0A=
  },=0A=
=0A=
  stop: function(event) {=0A=
    if (event.preventDefault) {=0A=
      event.preventDefault();=0A=
      event.stopPropagation();=0A=
    } else {=0A=
      event.returnValue =3D false;=0A=
      event.cancelBubble =3D true;=0A=
    }=0A=
  },=0A=
=0A=
  // find the first node with the given tagName, starting from the=0A=
  // node the event was triggered on; traverses the DOM upwards=0A=
  findElement: function(event, tagName) {=0A=
    var element =3D Event.element(event);=0A=
    while (element.parentNode && (!element.tagName ||=0A=
        (element.tagName.toUpperCase() !=3D tagName.toUpperCase())))=0A=
      element =3D element.parentNode;=0A=
    return element;=0A=
  },=0A=
=0A=
  observers: false,=0A=
=0A=
  _observeAndCache: function(element, name, observer, useCapture) {=0A=
    if (!this.observers) this.observers =3D [];=0A=
    if (element.addEventListener) {=0A=
      this.observers.push([element, name, observer, useCapture]);=0A=
      element.addEventListener(name, observer, useCapture);=0A=
    } else if (element.attachEvent) {=0A=
      this.observers.push([element, name, observer, useCapture]);=0A=
      element.attachEvent('on' + name, observer);=0A=
    }=0A=
  },=0A=
=0A=
  unloadCache: function