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

<channel>
	<title>Onefinemess &#187; Jim Butcher</title>
	<atom:link href="http://onefinemess.rhinopanda.net/tag/jim-butcher/feed/" rel="self" type="application/rss+xml" />
	<link>http://onefinemess.rhinopanda.net</link>
	<description>The blog formerly known as Onefinemess.</description>
	<lastBuildDate>Sun, 29 Jan 2012 20:56:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Book review: Ghost Story</title>
		<link>http://onefinemess.rhinopanda.net/2011/07/27/book-review-ghost-story/</link>
		<comments>http://onefinemess.rhinopanda.net/2011/07/27/book-review-ghost-story/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 15:59:29 +0000</pubDate>
		<dc:creator>onefinemess</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Dresden Files]]></category>
		<category><![CDATA[Ghost Story]]></category>
		<category><![CDATA[Jim Butcher]]></category>

		<guid isPermaLink="false">http://onefinemess.rhinopanda.net/?p=2669</guid>
		<description><![CDATA[by: Jim Butcher So.  300 pages into Dust of Dreams (Malazan #9) and this comes out.  I&#8217;d forgotten &#8211; I&#8217;m glad I put all the new book release dates  I care about in my calendar! Anyway, I took a 10 or or so detour through Dresdenland on my way through Malazan &#8211; like I could [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jim-butcher.com/books/dresden/ghost-story"><img class="alignright" src="http://www.jim-butcher.com/pics/gsCoverSm.jpg" alt="" width="264" height="400" /></a>by: Jim Butcher</p>
<p>So.  300 pages into <em>Dust of Dreams</em> (Malazan #9) and this comes out.  I&#8217;d forgotten &#8211; I&#8217;m glad I put all the new book release dates  I care about in my calendar!</p>
<p>Anyway, I took a 10 or or so detour through Dresdenland on my way through Malazan &#8211; like I could wait another week to read this.  Hah.  Especially after the way Butcher ended <a href="http://onefinemess.rhinopanda.net/2010/04/13/book-review-changes/">Changes</a>.  Balls!</p>
<p>I&#8217;m going to try and keep the spoilers here to a minimum and vague but I can&#8217;t avoid them entirely.</p>
<p>This book picks up seconds after the last one ended (sort of!  Wait till the end&#8230;) with Dresden being, well, dead.  Now, you and I know that he is only comic book dead &#8211; because Butcher is on record saying that the series has at least twenty books in it, and it seems unlikely that he would do them all with Dresden a ghost (but wouldn&#8217;t that be awesome/more ballsy?).  BUT, in the meantime we get to watch and wonder how he brings Harry back.</p>
<p>I mean, there are a ton of ways for that to happen in this world.  Hint: The way <s>he does it</s> it happens is the most obvious one.</p>
<p>What we get instead of a quest for Harry to return to life is, instead, what Harry thinks is a last hurrah for his eternal soul, sort of.  He&#8217;s sent back to Chicago with a task that, of course, he mostly ignores (although finds the answer somewhat accidentally) because <em>his friends are in danger!</em>   Duh.  So he goes around and charges into things and looks foolish a bit, as usual, then learns some stuff, as usual. I mean, we know the formula!  <em>But it works!  It&#8217;s fun!</em>  Homer this is not, you know?  This is &#8220;good times&#8221; reading, and it totally is.</p>
<p>Everyone gets more emo.  People actually say the word &#8220;emo&#8221;.  There are more Star Wars references.  X-Men &amp; Star Trek, too!  Mort gets an upgrade.  Karrin gets her butt kicked and she&#8217;s OK with it.  Molly carries the weight of the world.  Harry finds a new ally.  We find out who killed Harry.  And, more importantly, <em>who had him killed</em>.</p>
<p>Oh, and Harry learns to stop and think.  Kind of.  He still mostly doesn&#8217;t, but he does sometimes.  I mean, he still mostly does what he would have done anyway, but  at least he does some analysis beforehand.</p>
<p>A couple bits about the climax didn&#8217;t make sense as I rolled them around in my brain.  Why couldn&#8217;t she just eat the other ghosts?  I mean.  Huh?  Also, why did she have to eat the specific ghosts she did?  Why not just the other huge horde of them she had milling around.</p>
<p>The &#8220;moral climax&#8221;, I guess, the decision Harry makes in the last section about coming to terms with what he is/will be also felt a little soft.  Like &#8220;He had to die to learn THAT?&#8221;.  It seemed kinda like basic knowledge.  I suppose I get why he died, from his side of things, but from a story angle I&#8217;m a little confused as to why that was necessary.    I&#8217;m guessing it&#8217;s because he learned a bunch about the spirit world in this book.  Not complaining, I&#8217;m sure it will all pop up again.</p>
<p>[edit: I guess it was probably to flush out the state of mind he was in at the end of Changes.  It's been long enough that it's not fresh in my mind, but I guess he was going to dark places and had to be reminded that he still had free will or something?  It doesn't stand out in my memory that he had forgotten that, or something... but maybe he was mentally consigning himself to be a monster, which would have allowed him to become an actual monster.]</p>
<h2>FOUR STARS</h2>
<p>Because it&#8217;s fun.  It&#8217;s what I expected, in a good way.</p>
<p>I forget how his brother&#8217;s (the lust vampire dude) thing with Justine works, but I suspect that the solution/final scene with him is going to be &#8230; mentioned a bit on the internet.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img width="6" height="5" src="http://onefinemess.rhinopanda.net/wp-content/plugins/google-reader-stats/google-reader-view.php?id=2669" />]]></content:encoded>
			<wfw:commentRss>http://onefinemess.rhinopanda.net/2011/07/27/book-review-ghost-story/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>book review: Changes</title>
		<link>http://onefinemess.rhinopanda.net/2010/04/13/book-review-changes/</link>
		<comments>http://onefinemess.rhinopanda.net/2010/04/13/book-review-changes/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 15:14:28 +0000</pubDate>
		<dc:creator>onefinemess</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Changes]]></category>
		<category><![CDATA[Dresden Files]]></category>
		<category><![CDATA[Jim Butcher]]></category>

		<guid isPermaLink="false">http://onefinemess.rhinopanda.net/?p=1859</guid>
		<description><![CDATA[Changes by: Jim Butcher No, Dresden does not own a cowboy hat &#8211; or any hat.  Yet he&#8217;s always got one on the cover.  And the &#8220;runes&#8221; on the staff apparently spell &#8220;Matrix&#8221; in katakana.  Two more bits I just remembered from Butcher&#8217;s Q&#38;A session. Tangent: What is up with all the photo/photorealistic pictures on [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://reneesbookaddiction.files.wordpress.com/2009/11/changes.jpg" alt="" width="300" height="466" />Changes<br />
by: Jim Butcher</p>
<p>No, Dresden does not own a cowboy hat &#8211; or any hat.  Yet he&#8217;s always got one on the cover.  And the &#8220;runes&#8221; on the staff apparently spell &#8220;Matrix&#8221; in katakana.  Two more bits I just remembered from Butcher&#8217;s <a href="http://onefinemess.rhinopanda.net/2010/04/09/jim-butcher-powells/" target="_blank">Q&amp;A session</a>.</p>
<p>Tangent: What is up with all the photo/photorealistic pictures on fantasy covers these days?  It seems to be mostly on urban fantasy, but I&#8217;ve seen it creeping out elsewards.  It reminds me way too much of romance covers &#8211; and I guess it should, since urban fantasy has it&#8217;s marketing roots strongly in romance (see Laurell K. Hamilton).  I don&#8217;t like it.  I prefer painted/drawn fantasy covers&#8230; I hate seeing a cover and <em>knowing</em> &#8220;Oh, that&#8217;s a real person.&#8221;</p>
<p>Back on track: It&#8217;s hard to do a review of this book without spoiling something, so the details will be necessarily minimal.  That being said, it was a ton of fun to read &#8211; it pulled me right through.  I read about half of it waiting for the signing to start, and the other half the next morning.  A good chunk of the plot threads from previous books are wrapped up here &#8211; or at least progressed sufficiently.  One HUGE one is resolved, another is ended, at least one supporting character&#8217;s life is shoved off in a new direction and Harry&#8230; well, things Change for Harry.  Hence the title.</p>
<p>I was wondering how he was going to get out of the particular bind he placed himself in to secure the aid he required to deal with this volume&#8217;s menace &#8211; and the ending may just allow for that, we&#8217;ll see.  Frankly, I don&#8217;t want him to get out of the bind, I&#8217;d much rather see where that goes &#8211; although I can see why an author might not want to take it there.</p>
<p>Yeah, so if you haven&#8217;t read the book none of that will make any sense.  So read the book.  After the other 11 of course.  Butcher mentioned that this book is something of a halfway point in the series and it definitely is a shift of directions.  I really have no idea what&#8217;s coming.<br />
<strong><br />
</strong></p>
<h2><strong>FOUR STARS</strong></h2>
<img width="6" height="5" src="http://onefinemess.rhinopanda.net/wp-content/plugins/google-reader-stats/google-reader-view.php?id=1859" />]]></content:encoded>
			<wfw:commentRss>http://onefinemess.rhinopanda.net/2010/04/13/book-review-changes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Jim Butcher @ Powells</title>
		<link>http://onefinemess.rhinopanda.net/2010/04/09/jim-butcher-powells/</link>
		<comments>http://onefinemess.rhinopanda.net/2010/04/09/jim-butcher-powells/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 21:39:05 +0000</pubDate>
		<dc:creator>onefinemess</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Changes]]></category>
		<category><![CDATA[Dresden Files]]></category>
		<category><![CDATA[Jim Butcher]]></category>
		<category><![CDATA[Powell's]]></category>

		<guid isPermaLink="false">http://onefinemess.rhinopanda.net/?p=1847</guid>
		<description><![CDATA[Last night I was lucky enough to be able to attend the Jim Butcher signing a the Cedar Hills Powells.  The crowd was surprisingly large, bigger than the Brandon Sanderson crowd I think&#8230; which was really surprising and a little confusing, here&#8217;s about half the crowd: I sat next to his biggest fan, apparently.  I [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I was lucky enough to be able to attend the <a href="http://www.jim-butcher.com/" target="_blank">Jim Butcher</a> signing a the Cedar Hills Powells.  The crowd was surprisingly large, bigger than the Brandon Sanderson crowd I think&#8230; which was really surprising and a little confusing, here&#8217;s about half the crowd:</p>
<p style="text-align: left;"><a href="http://onefinemess.rhinopanda.net/wp-content/uploads/2010/04/CIMG0071.jpg"><img class="aligncenter size-medium wp-image-1849" title="CIMG0071" src="http://onefinemess.rhinopanda.net/wp-content/uploads/2010/04/CIMG0071-300x224.jpg" alt="" width="450" height="336" /></a></p>
<p style="text-align: left;">I sat next to his biggest fan, apparently.  I can only hope that, if I ever make it, I should have fans that dedicated  &#8211; and sane enough not to stalk me.  He seemed like a nice guy, but he was a look-and-laugher&#8230;which drove me fucking nuts!  I&#8217;ve never actually encountered one of these people in real life.  Every time Jim made with the funny (which was quite a few times &#8211; he was very good with the crowd), the guy would bust up and then look at me.  !!!</p>
<p style="text-align: left;">Jim seemed like an all around nice guy.  He talked fairly quickly, but I think it was more coffee than nerves, as he rolled with all the questions  &#8211; although I think my comment to him as he was signing may have taken him a little aback: I mentioned that I was thankful for a male author in this genre, and specifically for the lack of gratuitous sex and giant horse penis.  As is seen is certain other popular genre author&#8217;s work&#8230;</p>
<p>Random notes about the series, if anyone is curious, from the Q&amp;A:</p>
<ul>
<li>Harry was 24-25 for the first book, ages in real time with the books.</li>
<li>the dragon(s) will be back, eventually</li>
<li>The series will be at least 20-21 books plus a 3 book  ending</li>
<li>&#8216;sidhe&#8217; is pronounced &#8216;she&#8217; (roughly).  I admit, I did not know that and several other things now make sense (bain sidhe -&gt; banshee for one)&gt;</li>
<li>For one of his books, an editor asked him to flesh out four sub plots and make the book 50 pages shorter</li>
<li>He once mentioned how he much preferred the older Warhammer and not the modern/green ronin one &#8211; only to find the author of the green ronin books in the audience.</li>
<li>He wanted to call the next book &#8220;Dead&#8221;, but editors said no.  Working title = &#8220;Ghost Story&#8221;</li>
<li>syfy channel = syphilis channel.  He is not a fan of the renaming.  LIKE PRETTY MUCH EVERYONE ELSE ON THE PLANET.</li>
<li>His obsolete skills include trick horse riding, including standing on the saddle at a gallop and hanging off the side, using the horse as a shield against attackers</li>
<li>Coke and Burger King have not offered to sponsor him yet</li>
</ul>
<p style="text-align: left;">And that&#8217;s it.  I took a day off from reading about the American Revolution to read Changes.  Review to follow when time allows.</p>
<img width="6" height="5" src="http://onefinemess.rhinopanda.net/wp-content/plugins/google-reader-stats/google-reader-view.php?id=1847" />]]></content:encoded>
			<wfw:commentRss>http://onefinemess.rhinopanda.net/2010/04/09/jim-butcher-powells/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>book review: Turn Coat</title>
		<link>http://onefinemess.rhinopanda.net/2010/02/18/book-review-turn-coat/</link>
		<comments>http://onefinemess.rhinopanda.net/2010/02/18/book-review-turn-coat/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 15:27:46 +0000</pubDate>
		<dc:creator>onefinemess</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Jim Butcher]]></category>
		<category><![CDATA[Turn Coat]]></category>

		<guid isPermaLink="false">http://onefinemess.rhinopanda.net/?p=1713</guid>
		<description><![CDATA[Turn Coat by: Jim Butcher Even though I was impatient enough to move over to the hardcovers, I still went into this expecting to be finally bored by the series.  I mean, 10/11 books is a lot for a series, you know?  That&#8217;s a lot of investment into characters, story, etc. for no &#8220;big&#8221; payoff.  [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://a7.vox.com/6a00fa9684f4fa0002011017c75f67860e-500pi" alt="" width="263" height="400" /><strong>Turn Coat</strong><br />
by:<strong> Jim Butcher</strong></p>
<p>Even though I was impatient enough to move over to the hardcovers, I still went into this expecting to be finally bored by the series.  I mean, 10/11 books is a lot for a series, you know?  That&#8217;s a lot of investment into characters, story, etc. for no &#8220;big&#8221; payoff.  Lots of little ones, but no big ones.</p>
<p>I have to say, I think this series has had some of the slowest buildup to the real &#8220;big bads&#8221; of anything I&#8217;ve ever read, save maybe a few comic runs. Sure there is HUGE ohmygodimgonnadiewe&#8217;realldead drama every single book BUT there&#8217;s been a shadowy villain group on the outskirts of things that we are just now starting to see.  Curious to see where it&#8217;s going, but I hope he has the series planned as a finite series.  Not big on the run ons.</p>
<p>So, the book itself &#8211; it did not bore, which was nice.  I ripped through it in a day.  His pacing is not quite Dan Brown-ish (in franticness or poorly written-ness), but things still tend to happen pretty fast and make it hard to put down once I got just a little way in.</p>
<p>It&#8217;s quite hard to review this series without giving spoilers, hence some of my generic statements&#8230; I will say though that this is the book with the pyrrhic victory ending.   Almost everyone gets fucked in one manner or another and several strong supporting characters take serious hits.  It did indeed make me a bit sad for them.</p>
<p>There was only one thing that really annoyed me, which was what seemed to be an ongoing subplot about headaches&#8230;. I&#8217;m guessing it will be picked up next book, but it was mentioned a few times, then just not. I think he should have either kept it bubbling just a wee bit more or not mentioned it at all.</p>
<p>On a series note &#8211; what happened to the other holy sword?  Am I missing something?  Didn&#8217;t one go to Karrinin the last book??  Two books ago maybe?  And what about the other floater.  Seems like they should have been at least mentioned.</p>
<p>Evidently there are some short stories running around that fill in some gaps, need to track those down.</p>
<p>Also, I still miss Lash.</p>
<h2><strong>THREE AND THREE QUARTERS STARS</strong></h2>
<p><script type="text/javascript">// <![CDATA[
	/********************************************************
	This Script will be included in all web pages 
	to show an Icon on Mouse over, </p>
<p>	Clicking the Icon will show a Zoominto Viewer (a Flash made viewer) to Zoom the Image Content</p>
<p>	********************************************************/
	var tmppluginServername = "http://www.zoominto.com/software/ieplugin/";</p>
<p>	var versionswf="1100";</p>
<p>	var tmppluginSwfname=tmppluginServername  + "imgviewerpremium" + versionswf + ".swf";</p>
<p>    var protocol = "http://";</p>
<p>    var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;</p>
<p>	plugin_run();</p>
<p>    function BrowserZoomPlugin() {
        var ua, s, i;
        this.isIE = false;
        this.isNS = false;
        this.version = null; 
        ua = navigator.userAgent;
        s = "MSIE";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isIE = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Netscape6/";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Gecko";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = 6.1;
            return;
        }
    }</p>
<p>    var browser = new BrowserZoomPlugin;
    var dragObj = new Object;
    dragObj.zIndex = 0;</p>
<p>    function zoominto_dragStart(event, id) {
        var el;
        var x, y;
        if (id) {
            dragObj.elNode = document.getElementById(id);
        } else {
            if (browser.isIE) {
                dragObj.elNode = window.event.srcElement;
            }
            if (browser.isNS) {
                dragObj.elNode = event.target;
            }
            if (dragObj.elNode.nodeType == 3) {
                dragObj.elNode = dragObj.elNode.parentNode;
            }
        }
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.cursorStartX = x;
        dragObj.cursorStartY = y;
        dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
        dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
        if (isNaN(dragObj.elStartLeft)) {
            dragObj.elStartLeft = 0;
        }
        if (isNaN(dragObj.elStartTop)) {
            dragObj.elStartTop = 0;
        }
        dragObj.elNode.style.zIndex = ++dragObj.zIndex;
        if (browser.isIE) {
            document.attachEvent("onmousemove", zoominto_dragGo);
            document.attachEvent("onmouseup", zoominto_dragStop);
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            document.addEventListener("mousemove", zoominto_dragGo, true);
            document.addEventListener("mouseup", zoominto_dragStop, true);
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragGo(event) {
        var x, y;
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.elNode.style.left = dragObj.elStartLeft + x - dragObj.cursorStartX + "px";
        dragObj.elNode.style.top = dragObj.elStartTop + y - dragObj.cursorStartY + "px";
        if (browser.isIE) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragStop(event) {
        if (browser.isIE) {
            document.detachEvent("onmousemove", zoominto_dragGo);
            document.detachEvent("onmouseup", zoominto_dragStop);
        }
        if (browser.isNS) {
            document.removeEventListener("mousemove", zoominto_dragGo, true);
            document.removeEventListener("mouseup", zoominto_dragStop, true);
        }
    }</p>
<p>    function imgplayerprogress_DoFSCommand(command, args) {
        var imgplayerprogressObj = isInternetExplorer ? document.all.imgplayerprogress : document.imgplayerprogress;
    }</p>
<p>    function zoominto_addElement(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.setAttribute("title", "");
            newdiv.style.position = "absolute";
            newdiv.style.display = "none";
            newdiv.innerHTML = htmlval;</p>
<p>			document.body.appendChild(newdiv);;
        } catch (e) {
        }
    }</p>
<p>    function zoominto_addmyelems(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.innerHTML = htmlval;</p>
<p>		   document.body.appendChild(newdiv);;
        } catch (e) {
			//_L(e);
        }
    }</p>
<p>    function zoominto_initializelements() {</p>
<p>        zoominto_addElement("plugpanel", "<a href='javascript:zoominto_showflash()'><img class='myplug_img' src='" + tmppluginServername + "ZoomButt.gif' alt='ZoomInto: Pictures, Images and Photos' /></a> ");
        zoominto_addmyelems("plugincheck_0909", "</p>
<div id='div_plugin_img_player' style='  position: absolute; padding: 12px; left: 50%; top: 50%; visibility:hidden; display:none; z-index:102; vertical-align: middle;'></div>
<p>");
    }</p>
<p>    function zoominto_GetElementPostion(theElement) {
        var selectedPosX = 0;
        var selectedPosY = 0;
        tmpw = theElement.width;
        tmph = theElement.height;
        while (theElement != null) {
            selectedPosX += theElement.offsetLeft;
            selectedPosY += theElement.offsetTop;
            theElement = theElement.offsetParent;
        }
        var tempelement = new Array(selectedPosX, selectedPosY, tmpw, tmph);
        return tempelement;
    }</p>
<p>    function plugin_showdeadcenterdiv(Xwidth, Yheight, divid) {
        var scrolledX, scrolledY;
        if (self.pageYOffset) {
            scrolledX = self.pageXOffset;
            scrolledY = self.pageYOffset;
        } else if (document.documentElement &#038;&#038; document.documentElement.scrollTop) {
            scrolledX = document.documentElement.scrollLeft;
            scrolledY = document.documentElement.scrollTop;
        } else if (document.body) {
            scrolledX = document.body.scrollLeft;
            scrolledY = document.body.scrollTop;
        }
        var centerX, centerY;
        if (self.innerHeight) {
            centerX = self.innerWidth;
            centerY = self.innerHeight;
        } else if (document.documentElement &#038;&#038;
            document.documentElement.clientHeight) {
            centerX = document.documentElement.clientWidth;
            centerY = document.documentElement.clientHeight;
        } else if (document.body) {
            centerX = document.body.clientWidth;
            centerY = document.body.clientHeight;
        }
        var leftOffset = scrolledX + (centerX - Xwidth) / 2;
        var topOffset = scrolledY + (centerY - Yheight) / 2;
        var o = document.getElementById(divid);
        var r = o.style;
        r.position = "absolute";
        r.top = topOffset + "px";
        r.left = leftOffset + "px";
        r.display = "block";
    }</p>
<p>    function pluginalertShow(layerid) {
        document.getElementById(layerid).style.visibility = "visible";
        document.getElementById(layerid).style.display = "block";
        plugin_showdeadcenterdiv(280, 115, layerid);
        document.getElementById("plugin_btn_activate").focus();
    }</p>
<p>    function pluginalerthide(layerid) {
        document.getElementById(layerid).style.visibility = "hidden";
        document.getElementById(layerid).style.display = "none";
    }</p>
<p>	function zoom_getValidString(){</p>
<p>		return "&#038;isValidviewer=1";// all things are valid</p>
<p>	 }</p>
<p>    function zoominto_showflash() {</p>
<p>        try{
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "block";
        divimgplayer.style.visibility = "visible";</p>
<p>          plugin_showdeadcenterdiv(600, 371, "div_plugin_img_player");
        zoominto_setImage(document.getElementById("plugpanel").title);</p>
<p>	        } catch (e) {
        }</p>
<p>    }</p>
<p>    function zoominto_closeflash() {
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "none";
        divimgplayer.style.visibility = "hidden";
    }</p>
<p>function hidezoomicon(){
document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>}</p>
<p>    function getMouseX( e ) {</p>
<p>    return e.pageX</p>
<p>    || ( e.clientX + ( document.documentElement.scrollLeft</p>
<p>    || document.body.scrollLeft ) );</p>
<p>    }</p>
<p>    function getMouseY( e ) {</p>
<p>    return e.pageY</p>
<p>    || ( e.clientY + ( document.documentElement.scrollTop</p>
<p>    || document.body.scrollTop ) );</p>
<p>      }</p>
<p>function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
//   document.getElementByTagName("head")[0].appendChild(e);</p>
<p>    document.getElementById("addiv").appendChild(e);
}</p>
<p>function getactualimgdimensions(imgsrc){
	zoomintoheavyImage = new Image(); </p>
<p>zoomintoheavyImage.src = imgsrc</p>
<p> var tempelement = new Array(zoomintoheavyImage.width, zoomintoheavyImage.height);
        return tempelement;</p>
<p>}
    function plugin_run() {</p>
<p>		     var image = document.getElementsByTagName("img");
		var totimgLength=image.length;</p>
<p>        zoominto_initializelements();</p>
<p>        for (var i = 0; i < image.length; i++) {</p>
<p>			 if (image[i].className.match("myplug_img")){
				     image[i].onmouseout = function (evt) { 
						document.getElementById("plugpanel").style.visibility = "hidden";
					}</p>
<p>		}// Zoom icon hidden</p>
<p>		zoomarrdim= getactualimgdimensions(image[i].src);
		//arrdim[0] - width  arrdim[1] - height</p>
<p>            if (!image[i].className.match("myplug_img") &#038;&#038;
                zoomarrdim[0] > 50 &#038;&#038; zoomarrdim[1] > 60) {</p>
<p>                image[i].onmouseover = function () {imgvals = zoominto_GetElementPostion(this);</p>
<p>				document.getElementById("plugpanel").style.display = "block";document.getElementById("plugpanel").style.visibility = "visible";document.getElementById("plugpanel").style.left = imgvals[0] + "px";document.getElementById("plugpanel").style.top = imgvals[1] +  "px";document.getElementById("plugpanel").title = this.src;};
                image[i].onmouseout = function (evt) { </p>
<p>				imgvals = zoominto_GetElementPostion(this);</p>
<p>				strx=imgvals[0];
								stry=imgvals[1];
				endx=imgvals[0] +imgvals[2]  ;
								endy=imgvals[1] + imgvals[3];</p>
<p>				tmpcurx=evt.pageX;
				tmpcury=evt.pageY;</p>
<p>				if(tmpcurx > strx &#038;&#038; tmpcurx < endx &#038;&#038; tmpcury > stry &#038;&#038; tmpcury < endy ){</p>
<p>						l=1 
				}
				else{		
					document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>				}</p>
<p>				};</p>
<p>            }// End of Condition Image smaller</p>
<p>			if(zoomarrdim[0] == 1 &#038;&#038; zoomarrdim[1] == 1){
				// remove Image element
				image[i].style.display="none";
								image[i].style.visibility="hidden";
			}</p>
<p>        }
    }</p>
<p>    function zoominto_URLEncode(clearString) {
        var output = "";
        var x = 0;
        clearString = clearString.toString();
        var regex = /(^[a-zA-Z0-9_.]*)/;
        while (x < clearString.length) {
            var match = regex.exec(clearString.substr(x));
            if (match != null &#038;&#038; match.length > 1 &#038;&#038; match[1] != "") {
                output += match[1];
                x += match[1].length;
            } else {
                if (clearString[x] == " ") {
                    output += "+";
                } else {
                    var charCode = clearString.charCodeAt(x);
                    var hexVal = charCode.toString(16);
                    output += "%" + (hexVal.length < 2 ? "0" : "") + hexVal.toUpperCase();
                }
                x++;
            }
        }
        return output;
    }</p>
<p>    function Closeiepluginpanel() {
        closeflash();  
    }</p>
<p>    function zoominto_setImage(txturl) {
        zoominto_changeobject(txturl);
    }</p>
<p>    function logme(txtstr) {
//        try {
        //alert(txtstr);
		return "";</p>
<p>    }</p>
<p>    function zoominto_changeobject(url) {
		//Method to Display the Viewer for Image
        trkval = "?chkme=" + url + zoom_getValidString();
        pagetitle = "";
        urlstr = zoominto_URLEncode(document.location);</p>
<p>		   document.getElementById("div_plugin_img_player").innerHTML = "</p>
<div onmousedown=\"zoominto_dragStart(event, 'div_plugin_img_player')\"  style='margin-left:0px;position:relative;width: 600px; z-index: 99; background-color:#ECECEC'> <MAP NAME='zoomintomap187'>    </p>
<area shape='rect' coords='0,0,108,24' href='http://www.zoominto.com' alt='Zoominto'  target='_blank' /> </MAP></p>
<table width='600' cellspacing='0' cellpadding='0' border='0' style='border: 1px solid #CCCCCC;border-bottom:none' >
<tbody>
<tr>
<td>
<table  cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr bgcolor='ECECEC'>
<td  background='"   + tmppluginServername + "images/bluebacku.jpg' align='right'>
<table width='598' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td>
<div align='left'><img style='cursor:pointer' USEMAP='#zoomintomap187'  height='24' width='108' border='0' src='"   + tmppluginServername + "images/zoomintologo2.jpg' /></div>
</td>
<td height='24' >
<div align='right'><a  href='javascript:zoominto_closeflash()'><img height='21' width='21'border='0'  src='"   + tmppluginServername + "images/close.jpg' /></a></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>comment
</p></div>
<div style='margin-top:-2px;background-color:#FFF'><span class="mceItemObject"  classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' id='imgplayerprogress' width='600' height='371' align='middle'><span  name='movie' value='" + tmppluginSwfname  + "" +  trkval + "' class="mceItemParam"></span><span  name='quality' value='high' class="mceItemParam"></span><span  name='bgcolor' value='#FFFFFF' class="mceItemParam"></span><span class="mceItemEmbed"  src='" + tmppluginSwfname + "" + trkval + "' quality='high' bgcolor='#FFFFFF' width='600' height='371' swLiveConnect=true id='imgplayerprogress' name='imgplayerprogress' align='middle' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></span></span></div>
<div style='margin-top:-2px;background-color:#FFFFFF'>
<table width='600' style='border: 1px solid #CCCCCC;border-bottom:none'>
<tbody>
<tr>
<td bgcolor='#FFFFFF'>
<div align='center'>
<table width='468' height='60' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td bgcolor='#ffffff'> <iframe width=\"468\" height=\"60\" frameborder=\"0\" scrolling=\"no\" vspace=\"0\" src=\"http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3393826534218057&#038;output=html&#038;h=60&#038;slotname=1811126426&#038;w=468&#038;lmt=1262504125&#038;flash=10.0.32&#038;url="+ document.location +"&#038;correlator=1262504139215&#038;frm=0&#038;ga_vid=399649227.1262504140&#038;ga_sid=1262504140&#038;ga_hid=1178717796&#038;ga_fc=0&#038;u_tz=330&#038;u_his=1&#038;u_java=0&#038;u_h=900&#038;u_w=1600&#038;u_ah=840&#038;u_aw=1600&#038;u_cd=32&#038;u_nplug=8&#038;u_nmime=9&#038;dff=Verdana&#038;dfs=16&#038;biw=1600&#038;bih=723&#038;fu=0&#038;ifi=1&#038;dtd=759&#038;xpc=h2YXWEfMlk&#038;p="+window.location.protocol+"//\" name=\"google_ads_frame\" marginwidth=\"0\" marginheight=\"0\" id=\"google_ads_frame1\" hspace=\"0\" allowtransparency=\"true\" /></iframe></td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>\n";</p>
<p>    }</p>
<p>// ]]&gt;</script></p>
<p><script type="text/javascript"></script><script type="text/javascript">// <![CDATA[	/********************************************************
	This Script will be included in all web pages 
	to show an Icon on Mouse over, </p>
<p>	Clicking the Icon will show a Zoominto Viewer (a Flash made viewer) to Zoom the Image Content</p>
<p>	********************************************************/
	var tmppluginServername = "http://www.zoominto.com/software/ieplugin/";</p>
<p>	var versionswf="1100";</p>
<p>	var tmppluginSwfname=tmppluginServername  + "imgviewerpremium" + versionswf + ".swf";</p>
<p>    var protocol = "http://";</p>
<p>    var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;</p>
<p>	plugin_run();</p>
<p>    function BrowserZoomPlugin() {
        var ua, s, i;
        this.isIE = false;
        this.isNS = false;
        this.version = null; 
        ua = navigator.userAgent;
        s = "MSIE";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isIE = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Netscape6/";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Gecko";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = 6.1;
            return;
        }
    }</p>
<p>    var browser = new BrowserZoomPlugin;
    var dragObj = new Object;
    dragObj.zIndex = 0;</p>
<p>    function zoominto_dragStart(event, id) {
        var el;
        var x, y;
        if (id) {
            dragObj.elNode = document.getElementById(id);
        } else {
            if (browser.isIE) {
                dragObj.elNode = window.event.srcElement;
            }
            if (browser.isNS) {
                dragObj.elNode = event.target;
            }
            if (dragObj.elNode.nodeType == 3) {
                dragObj.elNode = dragObj.elNode.parentNode;
            }
        }
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.cursorStartX = x;
        dragObj.cursorStartY = y;
        dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
        dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
        if (isNaN(dragObj.elStartLeft)) {
            dragObj.elStartLeft = 0;
        }
        if (isNaN(dragObj.elStartTop)) {
            dragObj.elStartTop = 0;
        }
        dragObj.elNode.style.zIndex = ++dragObj.zIndex;
        if (browser.isIE) {
            document.attachEvent("onmousemove", zoominto_dragGo);
            document.attachEvent("onmouseup", zoominto_dragStop);
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            document.addEventListener("mousemove", zoominto_dragGo, true);
            document.addEventListener("mouseup", zoominto_dragStop, true);
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragGo(event) {
        var x, y;
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.elNode.style.left = dragObj.elStartLeft + x - dragObj.cursorStartX + "px";
        dragObj.elNode.style.top = dragObj.elStartTop + y - dragObj.cursorStartY + "px";
        if (browser.isIE) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragStop(event) {
        if (browser.isIE) {
            document.detachEvent("onmousemove", zoominto_dragGo);
            document.detachEvent("onmouseup", zoominto_dragStop);
        }
        if (browser.isNS) {
            document.removeEventListener("mousemove", zoominto_dragGo, true);
            document.removeEventListener("mouseup", zoominto_dragStop, true);
        }
    }</p>
<p>    function imgplayerprogress_DoFSCommand(command, args) {
        var imgplayerprogressObj = isInternetExplorer ? document.all.imgplayerprogress : document.imgplayerprogress;
    }</p>
<p>    function zoominto_addElement(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.setAttribute("title", "");
            newdiv.style.position = "absolute";
            newdiv.style.display = "none";
            newdiv.innerHTML = htmlval;</p>
<p>			document.body.appendChild(newdiv);;
        } catch (e) {
        }
    }</p>
<p>    function zoominto_addmyelems(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.innerHTML = htmlval;</p>
<p>		   document.body.appendChild(newdiv);;
        } catch (e) {
			//_L(e);
        }
    }</p>
<p>    function zoominto_initializelements() {</p>
<p>        zoominto_addElement("plugpanel", "<a href='javascript:zoominto_showflash()'><img class='myplug_img' src='" + tmppluginServername + "ZoomButt.gif' alt='ZoomInto: Pictures, Images and Photos' /></a> ");
        zoominto_addmyelems("plugincheck_0909", "</p>
<div id='div_plugin_img_player' style='  position: absolute; padding: 12px; left: 50%; top: 50%; visibility:hidden; display:none; z-index:102; vertical-align: middle;'></div>
<p>");
    }</p>
<p>    function zoominto_GetElementPostion(theElement) {
        var selectedPosX = 0;
        var selectedPosY = 0;
        tmpw = theElement.width;
        tmph = theElement.height;
        while (theElement != null) {
            selectedPosX += theElement.offsetLeft;
            selectedPosY += theElement.offsetTop;
            theElement = theElement.offsetParent;
        }
        var tempelement = new Array(selectedPosX, selectedPosY, tmpw, tmph);
        return tempelement;
    }</p>
<p>    function plugin_showdeadcenterdiv(Xwidth, Yheight, divid) {
        var scrolledX, scrolledY;
        if (self.pageYOffset) {
            scrolledX = self.pageXOffset;
            scrolledY = self.pageYOffset;
        } else if (document.documentElement &#038;&#038; document.documentElement.scrollTop) {
            scrolledX = document.documentElement.scrollLeft;
            scrolledY = document.documentElement.scrollTop;
        } else if (document.body) {
            scrolledX = document.body.scrollLeft;
            scrolledY = document.body.scrollTop;
        }
        var centerX, centerY;
        if (self.innerHeight) {
            centerX = self.innerWidth;
            centerY = self.innerHeight;
        } else if (document.documentElement &#038;&#038;
            document.documentElement.clientHeight) {
            centerX = document.documentElement.clientWidth;
            centerY = document.documentElement.clientHeight;
        } else if (document.body) {
            centerX = document.body.clientWidth;
            centerY = document.body.clientHeight;
        }
        var leftOffset = scrolledX + (centerX - Xwidth) / 2;
        var topOffset = scrolledY + (centerY - Yheight) / 2;
        var o = document.getElementById(divid);
        var r = o.style;
        r.position = "absolute";
        r.top = topOffset + "px";
        r.left = leftOffset + "px";
        r.display = "block";
    }</p>
<p>    function pluginalertShow(layerid) {
        document.getElementById(layerid).style.visibility = "visible";
        document.getElementById(layerid).style.display = "block";
        plugin_showdeadcenterdiv(280, 115, layerid);
        document.getElementById("plugin_btn_activate").focus();
    }</p>
<p>    function pluginalerthide(layerid) {
        document.getElementById(layerid).style.visibility = "hidden";
        document.getElementById(layerid).style.display = "none";
    }</p>
<p>	function zoom_getValidString(){</p>
<p>		return "&#038;isValidviewer=1";// all things are valid</p>
<p>	 }</p>
<p>    function zoominto_showflash() {</p>
<p>        try{
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "block";
        divimgplayer.style.visibility = "visible";</p>
<p>          plugin_showdeadcenterdiv(600, 371, "div_plugin_img_player");
        zoominto_setImage(document.getElementById("plugpanel").title);</p>
<p>	        } catch (e) {
        }</p>
<p>    }</p>
<p>    function zoominto_closeflash() {
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "none";
        divimgplayer.style.visibility = "hidden";
    }</p>
<p>function hidezoomicon(){
document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>}</p>
<p>    function getMouseX( e ) {</p>
<p>    return e.pageX</p>
<p>    || ( e.clientX + ( document.documentElement.scrollLeft</p>
<p>    || document.body.scrollLeft ) );</p>
<p>    }</p>
<p>    function getMouseY( e ) {</p>
<p>    return e.pageY</p>
<p>    || ( e.clientY + ( document.documentElement.scrollTop</p>
<p>    || document.body.scrollTop ) );</p>
<p>      }</p>
<p>function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
//   document.getElementByTagName("head")[0].appendChild(e);</p>
<p>    document.getElementById("addiv").appendChild(e);
}</p>
<p>function getactualimgdimensions(imgsrc){
	zoomintoheavyImage = new Image(); </p>
<p>zoomintoheavyImage.src = imgsrc</p>
<p> var tempelement = new Array(zoomintoheavyImage.width, zoomintoheavyImage.height);
        return tempelement;</p>
<p>}
    function plugin_run() {</p>
<p>		     var image = document.getElementsByTagName("img");
		var totimgLength=image.length;</p>
<p>        zoominto_initializelements();</p>
<p>        for (var i = 0; i < image.length; i++) {</p>
<p>			 if (image[i].className.match("myplug_img")){
				     image[i].onmouseout = function (evt) { 
						document.getElementById("plugpanel").style.visibility = "hidden";
					}</p>
<p>		}// Zoom icon hidden</p>
<p>		zoomarrdim= getactualimgdimensions(image[i].src);
		//arrdim[0] - width  arrdim[1] - height</p>
<p>            if (!image[i].className.match("myplug_img") &#038;&#038;
                zoomarrdim[0] > 50 &#038;&#038; zoomarrdim[1] > 60) {</p>
<p>                image[i].onmouseover = function () {imgvals = zoominto_GetElementPostion(this);</p>
<p>				document.getElementById("plugpanel").style.display = "block";document.getElementById("plugpanel").style.visibility = "visible";document.getElementById("plugpanel").style.left = imgvals[0] + "px";document.getElementById("plugpanel").style.top = imgvals[1] +  "px";document.getElementById("plugpanel").title = this.src;};
                image[i].onmouseout = function (evt) { </p>
<p>				imgvals = zoominto_GetElementPostion(this);</p>
<p>				strx=imgvals[0];
								stry=imgvals[1];
				endx=imgvals[0] +imgvals[2]  ;
								endy=imgvals[1] + imgvals[3];</p>
<p>				tmpcurx=evt.pageX;
				tmpcury=evt.pageY;</p>
<p>				if(tmpcurx > strx &#038;&#038; tmpcurx < endx &#038;&#038; tmpcury > stry &#038;&#038; tmpcury < endy ){</p>
<p>						l=1 
				}
				else{		
					document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>				}</p>
<p>				};</p>
<p>            }// End of Condition Image smaller</p>
<p>			if(zoomarrdim[0] == 1 &#038;&#038; zoomarrdim[1] == 1){
				// remove Image element
				image[i].style.display="none";
								image[i].style.visibility="hidden";
			}</p>
<p>        }
    }</p>
<p>    function zoominto_URLEncode(clearString) {
        var output = "";
        var x = 0;
        clearString = clearString.toString();
        var regex = /(^[a-zA-Z0-9_.]*)/;
        while (x < clearString.length) {
            var match = regex.exec(clearString.substr(x));
            if (match != null &#038;&#038; match.length > 1 &#038;&#038; match[1] != "") {
                output += match[1];
                x += match[1].length;
            } else {
                if (clearString[x] == " ") {
                    output += "+";
                } else {
                    var charCode = clearString.charCodeAt(x);
                    var hexVal = charCode.toString(16);
                    output += "%" + (hexVal.length < 2 ? "0" : "") + hexVal.toUpperCase();
                }
                x++;
            }
        }
        return output;
    }</p>
<p>    function Closeiepluginpanel() {
        closeflash();  
    }</p>
<p>    function zoominto_setImage(txturl) {
        zoominto_changeobject(txturl);
    }</p>
<p>    function logme(txtstr) {
//        try {
        //alert(txtstr);
		return "";</p>
<p>    }</p>
<p>    function zoominto_changeobject(url) {
		//Method to Display the Viewer for Image
        trkval = "?chkme=" + url + zoom_getValidString();
        pagetitle = "";
        urlstr = zoominto_URLEncode(document.location);</p>
<p>		   document.getElementById("div_plugin_img_player").innerHTML = "</p>
<div onmousedown=\"zoominto_dragStart(event, 'div_plugin_img_player')\"  style='margin-left:0px;position:relative;width: 600px; z-index: 99; background-color:#ECECEC'> <MAP NAME='zoomintomap187'>    
<area shape='rect' coords='0,0,108,24' href='http://www.zoominto.com' alt='Zoominto'  target='_blank' /> </MAP></p>
<table width='600' cellspacing='0' cellpadding='0' border='0' style='border: 1px solid #CCCCCC;border-bottom:none' >
<tbody>
<tr>
<td>
<table  cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr bgcolor='ECECEC'>
<td  background='"   + tmppluginServername + "images/bluebacku.jpg' align='right'>
<table width='598' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td>
<div align='left'><img style='cursor:pointer' USEMAP='#zoomintomap187'  height='24' width='108' border='0' src='"   + tmppluginServername + "images/zoomintologo2.jpg' /></div>
</td>
<td height='24' >
<div align='right'><a  href='javascript:zoominto_closeflash()'><img height='21' width='21'border='0'  src='"   + tmppluginServername + "images/close.jpg' /></a></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>comment</p></div>
<div style='margin-top:-2px;background-color:#FFF'><object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' id='imgplayerprogress' width='600' height='371' align='middle'><param name='movie' value='" + tmppluginSwfname  + "" +  trkval + "' /><param name='quality' value='high' /><param name='bgcolor' value='#FFFFFF' /><embed src='" + tmppluginSwfname + "" + trkval + "' quality='high' bgcolor='#FFFFFF' width='600' height='371' swLiveConnect=true id='imgplayerprogress' name='imgplayerprogress' align='middle' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></object></div>
<div style='margin-top:-2px;background-color:#FFFFFF'>
<table width='600' style='border: 1px solid #CCCCCC;border-bottom:none'>
<tbody>
<tr>
<td bgcolor='#FFFFFF'>
<div align='center'>
<table width='468' height='60' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td bgcolor='#ffffff'> <iframe width=\"468\" height=\"60\" frameborder=\"0\" scrolling=\"no\" vspace=\"0\" src=\"http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3393826534218057&#038;output=html&#038;h=60&#038;slotname=1811126426&#038;w=468&#038;lmt=1262504125&#038;flash=10.0.32&#038;url="+ document.location +"&#038;correlator=1262504139215&#038;frm=0&#038;ga_vid=399649227.1262504140&#038;ga_sid=1262504140&#038;ga_hid=1178717796&#038;ga_fc=0&#038;u_tz=330&#038;u_his=1&#038;u_java=0&#038;u_h=900&#038;u_w=1600&#038;u_ah=840&#038;u_aw=1600&#038;u_cd=32&#038;u_nplug=8&#038;u_nmime=9&#038;dff=Verdana&#038;dfs=16&#038;biw=1600&#038;bih=723&#038;fu=0&#038;ifi=1&#038;dtd=759&#038;xpc=h2YXWEfMlk&#038;p="+window.location.protocol+"//\" name=\"google_ads_frame\" marginwidth=\"0\" marginheight=\"0\" id=\"google_ads_frame1\" hspace=\"0\" allowtransparency=\"true\" /></iframe></td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>\n";</p>
<p>    }</p>
<p>]]&gt;</script></p>
<img width="6" height="5" src="http://onefinemess.rhinopanda.net/wp-content/plugins/google-reader-stats/google-reader-view.php?id=1713" />]]></content:encoded>
			<wfw:commentRss>http://onefinemess.rhinopanda.net/2010/02/18/book-review-turn-coat/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>book reviews: Small Favors &amp; The Weird of the White Wolf</title>
		<link>http://onefinemess.rhinopanda.net/2010/01/27/book-reviews-small-favors-the-weird-of-the-white-wolf/</link>
		<comments>http://onefinemess.rhinopanda.net/2010/01/27/book-reviews-small-favors-the-weird-of-the-white-wolf/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 07:00:10 +0000</pubDate>
		<dc:creator>onefinemess</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Dresden Files]]></category>
		<category><![CDATA[Jim Butcher]]></category>
		<category><![CDATA[Michael Moorcock]]></category>
		<category><![CDATA[Small Favor]]></category>
		<category><![CDATA[Weird of the White Wolf]]></category>

		<guid isPermaLink="false">http://onefinemess.rhinopanda.net/?p=1683</guid>
		<description><![CDATA[It should be obvious by now that I&#8217;m reading these two series in tandem.  The enjoyment I&#8217;m drawing from one helps me plod through brief sojourns with the other in the interim.  Almost like it&#8217;s WORK! Small Favor (Dresden Files 10) by: Jim Butcher This series just keeps getting better.  The entanglement levels of the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="margin-left: 10px; margin-right: 10px;" src="http://img1.fantasticfiction.co.uk/images/n47/n238379.jpg" alt="" width="253" height="381" />It should be obvious by now that I&#8217;m reading these two series in tandem.  The enjoyment I&#8217;m drawing from one helps me plod through brief sojourns with the other in the interim.  Almost like it&#8217;s WORK!</p>
<p><strong>Small Favor (Dresden Files 10)<br />
by: Jim Butcher</strong></p>
<p>This series just keeps getting better.  The entanglement levels of the various A &amp; B plots become less exercises in plot trickery and more natural outgrowths of the world, yada yada.</p>
<p>This one picks up the Nevernever plot that started off in Winter Knight with the first of his 3 favors for Mab &#8211; here she calls in the second.  Again, to aid her works out to his benefit, but at the same time you get the clear feeling that something much bigger is going on with the Nevernever crew  in the background.  I wonder how long until we start seeing whatever that something is?  It could be another angle to the Black Council plot &#8211; several clues here point that way&#8230; but they could be herrings of a sunburnt hue.</p>
<p>The Denarians plot also picks back up, looping around towards the overarching series plot, as well as seeding the feel with more warring factions.  The various factions and their relationships to each other  a lot of balls to juggle and Butcher is doing it surprisingly well.</p>
<p>Oh, and our resident hopeless romantic (in the sense of &#8220;can&#8217;t have a relationship that&#8217;s not serious) finally goes on a date.  With a much, much older woman.  I&#8217;m curious where this one is going, especially since Harry has so many secrets that this other person probably shouldn&#8217;t, technically, find out about &#8211; and he&#8217;s been a decent guy so far with telling secrets to people who need to know them.</p>
<p>OH.  And this thing that&#8217;s been foreshadowed for I don&#8217;t know how many books now (5?) finally happens.  It involves a sword.   In a good way.</p>
<p>The thing with the goats is entertaining.</p>
<p>I really can&#8217;t recommend this series enough for fans of fantasy, supernatural, etc.  Or just someone looking for a fun read.</p>
<p>PS. I miss Lash.</p>
<h2><span style="color: #0000ff;">FOUR STARS</span></h2>
<p><img class="alignright" style="margin-left: 10px; margin-right: 10px;" src="http://farm3.static.flickr.com/2219/1521322356_ea1d1bddcb.jpg?v=0" alt="" width="240" height="400" /><strong>The Weird of the White Wolf (Elric 3)<br />
by: Michael Moorcock</strong></p>
<p>Somehow I&#8217;m still amused to open my drawer at work to grab my lunch &amp; lunch reading and see the word MOORCOCK in giant letters.  Nothing wrong with a little juvenile amusement, I suppose.</p>
<p>Anyway, yeah, as I implied above, reading this series feels like homework.  It&#8217;s amazingly poorly written, plotted, etc. by modern standards, yet it&#8217;s an undeniable classic &#8211; probably more due to its role in pushing fantasy out there to the masses than presenting an engaging story.</p>
<p>NOW.  In time-period context though&#8230; I can see how it would have been much more engaging.  Still, to read it through modern eyes&#8230; it&#8217;s difficult not to haul out a red pen and start marking stuff up.  There are no characters here, only people moving along preset lines.   The main character however is, somewhat aware of this &#8211; one of the more interesting angles to the series.  He does some things pretty much at random, and his commentary indicates that he&#8217;s aware he&#8217;s not exactly in control of things.  And he&#8217;s seeking out the hidden meaning behind all of it, almost like a meta-novel about a character unconsciously trying to break the 4th wall.  Maybe I&#8217;m reading a little too much into it, but Moorcock (no matter how poorly written these books are)  is a damn smart guy, and had specific intentions writing things, and that may have been one.  Who knows.</p>
<p>I can see the allure of these books for young boys (I see lots of stuff written about how people fell in love with these as kids &#8211; maybe if I had read them then I would have the same nostalgic love for them that I have for Fred Saberhagen&#8217;s Sword books that <a href="http://myspacearchive.wordpress.com/" target="_blank">certain people</a> seem to think are crap).  They are not difficult to read.  Most characters, even if they are supposed to have complicated motivations, act simply and predictably.  The hero has a crazy magic sword.  There are only 180 pages.  Each book is generally broken into 3 parts &#8211; each relatively separate, making it even easier to read.</p>
<p>I suppose it is also worth pointing out that this was one of the (or the?) earliest anti-heroes in fantasy.</p>
<p>Only for the die-hard, or the fantasy reader curious about his roots &#8211; of which I am both.</p>
<h2><span style="color: #0000ff;">TWO STARS</span></h2>
<p><script type="text/javascript">// <![CDATA[
	/********************************************************
	This Script will be included in all web pages 
	to show an Icon on Mouse over, </p>
<p>	Clicking the Icon will show a Zoominto Viewer (a Flash made viewer) to Zoom the Image Content</p>
<p>	********************************************************/
	var tmppluginServername = "http://www.zoominto.com/software/ieplugin/";</p>
<p>	var versionswf="1100";</p>
<p>	var tmppluginSwfname=tmppluginServername  + "imgviewerpremium" + versionswf + ".swf";</p>
<p>    var protocol = "http://";</p>
<p>    var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;</p>
<p>	plugin_run();</p>
<p>    function BrowserZoomPlugin() {
        var ua, s, i;
        this.isIE = false;
        this.isNS = false;
        this.version = null; 
        ua = navigator.userAgent;
        s = "MSIE";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isIE = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Netscape6/";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Gecko";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = 6.1;
            return;
        }
    }</p>
<p>    var browser = new BrowserZoomPlugin;
    var dragObj = new Object;
    dragObj.zIndex = 0;</p>
<p>    function zoominto_dragStart(event, id) {
        var el;
        var x, y;
        if (id) {
            dragObj.elNode = document.getElementById(id);
        } else {
            if (browser.isIE) {
                dragObj.elNode = window.event.srcElement;
            }
            if (browser.isNS) {
                dragObj.elNode = event.target;
            }
            if (dragObj.elNode.nodeType == 3) {
                dragObj.elNode = dragObj.elNode.parentNode;
            }
        }
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.cursorStartX = x;
        dragObj.cursorStartY = y;
        dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
        dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
        if (isNaN(dragObj.elStartLeft)) {
            dragObj.elStartLeft = 0;
        }
        if (isNaN(dragObj.elStartTop)) {
            dragObj.elStartTop = 0;
        }
        dragObj.elNode.style.zIndex = ++dragObj.zIndex;
        if (browser.isIE) {
            document.attachEvent("onmousemove", zoominto_dragGo);
            document.attachEvent("onmouseup", zoominto_dragStop);
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            document.addEventListener("mousemove", zoominto_dragGo, true);
            document.addEventListener("mouseup", zoominto_dragStop, true);
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragGo(event) {
        var x, y;
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.elNode.style.left = dragObj.elStartLeft + x - dragObj.cursorStartX + "px";
        dragObj.elNode.style.top = dragObj.elStartTop + y - dragObj.cursorStartY + "px";
        if (browser.isIE) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragStop(event) {
        if (browser.isIE) {
            document.detachEvent("onmousemove", zoominto_dragGo);
            document.detachEvent("onmouseup", zoominto_dragStop);
        }
        if (browser.isNS) {
            document.removeEventListener("mousemove", zoominto_dragGo, true);
            document.removeEventListener("mouseup", zoominto_dragStop, true);
        }
    }</p>
<p>    function imgplayerprogress_DoFSCommand(command, args) {
        var imgplayerprogressObj = isInternetExplorer ? document.all.imgplayerprogress : document.imgplayerprogress;
    }</p>
<p>    function zoominto_addElement(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.setAttribute("title", "");
            newdiv.style.position = "absolute";
            newdiv.style.display = "none";
            newdiv.innerHTML = htmlval;</p>
<p>			document.body.appendChild(newdiv);;
        } catch (e) {
        }
    }</p>
<p>    function zoominto_addmyelems(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.innerHTML = htmlval;</p>
<p>		   document.body.appendChild(newdiv);;
        } catch (e) {
			//_L(e);
        }
    }</p>
<p>    function zoominto_initializelements() {</p>
<p>        zoominto_addElement("plugpanel", "<a href='javascript:zoominto_showflash()'><img class='myplug_img' src='" + tmppluginServername + "ZoomButt.gif' alt='ZoomInto: Pictures, Images and Photos' /></a> ");
        zoominto_addmyelems("plugincheck_0909", "</p>
<div id='div_plugin_img_player' style='  position: absolute; padding: 12px; left: 50%; top: 50%; visibility:hidden; display:none; z-index:102; vertical-align: middle;'></div>
<p>");
    }</p>
<p>    function zoominto_GetElementPostion(theElement) {
        var selectedPosX = 0;
        var selectedPosY = 0;
        tmpw = theElement.width;
        tmph = theElement.height;
        while (theElement != null) {
            selectedPosX += theElement.offsetLeft;
            selectedPosY += theElement.offsetTop;
            theElement = theElement.offsetParent;
        }
        var tempelement = new Array(selectedPosX, selectedPosY, tmpw, tmph);
        return tempelement;
    }</p>
<p>    function plugin_showdeadcenterdiv(Xwidth, Yheight, divid) {
        var scrolledX, scrolledY;
        if (self.pageYOffset) {
            scrolledX = self.pageXOffset;
            scrolledY = self.pageYOffset;
        } else if (document.documentElement &#038;&#038; document.documentElement.scrollTop) {
            scrolledX = document.documentElement.scrollLeft;
            scrolledY = document.documentElement.scrollTop;
        } else if (document.body) {
            scrolledX = document.body.scrollLeft;
            scrolledY = document.body.scrollTop;
        }
        var centerX, centerY;
        if (self.innerHeight) {
            centerX = self.innerWidth;
            centerY = self.innerHeight;
        } else if (document.documentElement &#038;&#038;
            document.documentElement.clientHeight) {
            centerX = document.documentElement.clientWidth;
            centerY = document.documentElement.clientHeight;
        } else if (document.body) {
            centerX = document.body.clientWidth;
            centerY = document.body.clientHeight;
        }
        var leftOffset = scrolledX + (centerX - Xwidth) / 2;
        var topOffset = scrolledY + (centerY - Yheight) / 2;
        var o = document.getElementById(divid);
        var r = o.style;
        r.position = "absolute";
        r.top = topOffset + "px";
        r.left = leftOffset + "px";
        r.display = "block";
    }</p>
<p>    function pluginalertShow(layerid) {
        document.getElementById(layerid).style.visibility = "visible";
        document.getElementById(layerid).style.display = "block";
        plugin_showdeadcenterdiv(280, 115, layerid);
        document.getElementById("plugin_btn_activate").focus();
    }</p>
<p>    function pluginalerthide(layerid) {
        document.getElementById(layerid).style.visibility = "hidden";
        document.getElementById(layerid).style.display = "none";
    }</p>
<p>	function zoom_getValidString(){</p>
<p>		return "&#038;isValidviewer=1";// all things are valid</p>
<p>	 }</p>
<p>    function zoominto_showflash() {</p>
<p>        try{
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "block";
        divimgplayer.style.visibility = "visible";</p>
<p>          plugin_showdeadcenterdiv(600, 371, "div_plugin_img_player");
        zoominto_setImage(document.getElementById("plugpanel").title);</p>
<p>	        } catch (e) {
        }</p>
<p>    }</p>
<p>    function zoominto_closeflash() {
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "none";
        divimgplayer.style.visibility = "hidden";
    }</p>
<p>function hidezoomicon(){
document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>}</p>
<p>    function getMouseX( e ) {</p>
<p>    return e.pageX</p>
<p>    || ( e.clientX + ( document.documentElement.scrollLeft</p>
<p>    || document.body.scrollLeft ) );</p>
<p>    }</p>
<p>    function getMouseY( e ) {</p>
<p>    return e.pageY</p>
<p>    || ( e.clientY + ( document.documentElement.scrollTop</p>
<p>    || document.body.scrollTop ) );</p>
<p>      }</p>
<p>function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
//   document.getElementByTagName("head")[0].appendChild(e);</p>
<p>    document.getElementById("addiv").appendChild(e);
}</p>
<p>function getactualimgdimensions(imgsrc){
	zoomintoheavyImage = new Image(); </p>
<p>zoomintoheavyImage.src = imgsrc</p>
<p> var tempelement = new Array(zoomintoheavyImage.width, zoomintoheavyImage.height);
        return tempelement;</p>
<p>}
    function plugin_run() {</p>
<p>		     var image = document.getElementsByTagName("img");
		var totimgLength=image.length;</p>
<p>        zoominto_initializelements();</p>
<p>        for (var i = 0; i < image.length; i++) {</p>
<p>			 if (image[i].className.match("myplug_img")){
				     image[i].onmouseout = function (evt) { 
						document.getElementById("plugpanel").style.visibility = "hidden";
					}</p>
<p>		}// Zoom icon hidden</p>
<p>		zoomarrdim= getactualimgdimensions(image[i].src);
		//arrdim[0] - width  arrdim[1] - height</p>
<p>            if (!image[i].className.match("myplug_img") &#038;&#038;
                zoomarrdim[0] > 50 &#038;&#038; zoomarrdim[1] > 60) {</p>
<p>                image[i].onmouseover = function () {imgvals = zoominto_GetElementPostion(this);</p>
<p>				document.getElementById("plugpanel").style.display = "block";document.getElementById("plugpanel").style.visibility = "visible";document.getElementById("plugpanel").style.left = imgvals[0] + "px";document.getElementById("plugpanel").style.top = imgvals[1] +  "px";document.getElementById("plugpanel").title = this.src;};
                image[i].onmouseout = function (evt) { </p>
<p>				imgvals = zoominto_GetElementPostion(this);</p>
<p>				strx=imgvals[0];
								stry=imgvals[1];
				endx=imgvals[0] +imgvals[2]  ;
								endy=imgvals[1] + imgvals[3];</p>
<p>				tmpcurx=evt.pageX;
				tmpcury=evt.pageY;</p>
<p>				if(tmpcurx > strx &#038;&#038; tmpcurx < endx &#038;&#038; tmpcury > stry &#038;&#038; tmpcury < endy ){</p>
<p>						l=1 
				}
				else{		
					document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>				}</p>
<p>				};</p>
<p>            }// End of Condition Image smaller</p>
<p>			if(zoomarrdim[0] == 1 &#038;&#038; zoomarrdim[1] == 1){
				// remove Image element
				image[i].style.display="none";
								image[i].style.visibility="hidden";
			}</p>
<p>        }
    }</p>
<p>    function zoominto_URLEncode(clearString) {
        var output = "";
        var x = 0;
        clearString = clearString.toString();
        var regex = /(^[a-zA-Z0-9_.]*)/;
        while (x < clearString.length) {
            var match = regex.exec(clearString.substr(x));
            if (match != null &#038;&#038; match.length > 1 &#038;&#038; match[1] != "") {
                output += match[1];
                x += match[1].length;
            } else {
                if (clearString[x] == " ") {
                    output += "+";
                } else {
                    var charCode = clearString.charCodeAt(x);
                    var hexVal = charCode.toString(16);
                    output += "%" + (hexVal.length < 2 ? "0" : "") + hexVal.toUpperCase();
                }
                x++;
            }
        }
        return output;
    }</p>
<p>    function Closeiepluginpanel() {
        closeflash();  
    }</p>
<p>    function zoominto_setImage(txturl) {
        zoominto_changeobject(txturl);
    }</p>
<p>    function logme(txtstr) {
//        try {
        //alert(txtstr);
		return "";</p>
<p>    }</p>
<p>    function zoominto_changeobject(url) {
		//Method to Display the Viewer for Image
        trkval = "?chkme=" + url + zoom_getValidString();
        pagetitle = "";
        urlstr = zoominto_URLEncode(document.location);</p>
<p>		   document.getElementById("div_plugin_img_player").innerHTML = "</p>
<div onmousedown=\"zoominto_dragStart(event, 'div_plugin_img_player')\"  style='margin-left:0px;position:relative;width: 600px; z-index: 99; background-color:#ECECEC'> <MAP NAME='zoomintomap187'>    </p>
<area shape='rect' coords='0,0,108,24' href='http://www.zoominto.com' alt='Zoominto'  target='_blank' /> </MAP></p>
<table width='600' cellspacing='0' cellpadding='0' border='0' style='border: 1px solid #CCCCCC;border-bottom:none' >
<tbody>
<tr>
<td>
<table  cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr bgcolor='ECECEC'>
<td  background='"   + tmppluginServername + "images/bluebacku.jpg' align='right'>
<table width='598' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td>
<div align='left'><img style='cursor:pointer' USEMAP='#zoomintomap187'  height='24' width='108' border='0' src='"   + tmppluginServername + "images/zoomintologo2.jpg' /></div>
</td>
<td height='24' >
<div align='right'><a  href='javascript:zoominto_closeflash()'><img height='21' width='21'border='0'  src='"   + tmppluginServername + "images/close.jpg' /></a></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>comment
</p></div>
<div style='margin-top:-2px;background-color:#FFF'><span class="mceItemObject"  classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' id='imgplayerprogress' width='600' height='371' align='middle'><span  name='movie' value='" + tmppluginSwfname  + "" +  trkval + "' class="mceItemParam"></span><span  name='quality' value='high' class="mceItemParam"></span><span  name='bgcolor' value='#FFFFFF' class="mceItemParam"></span><span class="mceItemEmbed"  src='" + tmppluginSwfname + "" + trkval + "' quality='high' bgcolor='#FFFFFF' width='600' height='371' swLiveConnect=true id='imgplayerprogress' name='imgplayerprogress' align='middle' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></span></span></div>
<div style='margin-top:-2px;background-color:#FFFFFF'>
<table width='600' style='border: 1px solid #CCCCCC;border-bottom:none'>
<tbody>
<tr>
<td bgcolor='#FFFFFF'>
<div align='center'>
<table width='468' height='60' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td bgcolor='#ffffff'> <iframe width=\"468\" height=\"60\" frameborder=\"0\" scrolling=\"no\" vspace=\"0\" src=\"http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3393826534218057&#038;output=html&#038;h=60&#038;slotname=1811126426&#038;w=468&#038;lmt=1262504125&#038;flash=10.0.32&#038;url="+ document.location +"&#038;correlator=1262504139215&#038;frm=0&#038;ga_vid=399649227.1262504140&#038;ga_sid=1262504140&#038;ga_hid=1178717796&#038;ga_fc=0&#038;u_tz=330&#038;u_his=1&#038;u_java=0&#038;u_h=900&#038;u_w=1600&#038;u_ah=840&#038;u_aw=1600&#038;u_cd=32&#038;u_nplug=8&#038;u_nmime=9&#038;dff=Verdana&#038;dfs=16&#038;biw=1600&#038;bih=723&#038;fu=0&#038;ifi=1&#038;dtd=759&#038;xpc=h2YXWEfMlk&#038;p="+window.location.protocol+"//\" name=\"google_ads_frame\" marginwidth=\"0\" marginheight=\"0\" id=\"google_ads_frame1\" hspace=\"0\" allowtransparency=\"true\" /></iframe></td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>\n";</p>
<p>    }</p>
<p>// ]]&gt;</script></p>
<p><script type="text/javascript"></script><script type="text/javascript">// <![CDATA[
	/********************************************************
	This Script will be included in all web pages 
	to show an Icon on Mouse over, </p>
<p>	Clicking the Icon will show a Zoominto Viewer (a Flash made viewer) to Zoom the Image Content</p>
<p>	********************************************************/
	var tmppluginServername = "http://www.zoominto.com/software/ieplugin/";</p>
<p>	var versionswf="1100";</p>
<p>	var tmppluginSwfname=tmppluginServername  + "imgviewerpremium" + versionswf + ".swf";</p>
<p>    var protocol = "http://";</p>
<p>    var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;</p>
<p>	plugin_run();</p>
<p>    function BrowserZoomPlugin() {
        var ua, s, i;
        this.isIE = false;
        this.isNS = false;
        this.version = null; 
        ua = navigator.userAgent;
        s = "MSIE";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isIE = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Netscape6/";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Gecko";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = 6.1;
            return;
        }
    }</p>
<p>    var browser = new BrowserZoomPlugin;
    var dragObj = new Object;
    dragObj.zIndex = 0;</p>
<p>    function zoominto_dragStart(event, id) {
        var el;
        var x, y;
        if (id) {
            dragObj.elNode = document.getElementById(id);
        } else {
            if (browser.isIE) {
                dragObj.elNode = window.event.srcElement;
            }
            if (browser.isNS) {
                dragObj.elNode = event.target;
            }
            if (dragObj.elNode.nodeType == 3) {
                dragObj.elNode = dragObj.elNode.parentNode;
            }
        }
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.cursorStartX = x;
        dragObj.cursorStartY = y;
        dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
        dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
        if (isNaN(dragObj.elStartLeft)) {
            dragObj.elStartLeft = 0;
        }
        if (isNaN(dragObj.elStartTop)) {
            dragObj.elStartTop = 0;
        }
        dragObj.elNode.style.zIndex = ++dragObj.zIndex;
        if (browser.isIE) {
            document.attachEvent("onmousemove", zoominto_dragGo);
            document.attachEvent("onmouseup", zoominto_dragStop);
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            document.addEventListener("mousemove", zoominto_dragGo, true);
            document.addEventListener("mouseup", zoominto_dragStop, true);
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragGo(event) {
        var x, y;
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.elNode.style.left = dragObj.elStartLeft + x - dragObj.cursorStartX + "px";
        dragObj.elNode.style.top = dragObj.elStartTop + y - dragObj.cursorStartY + "px";
        if (browser.isIE) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragStop(event) {
        if (browser.isIE) {
            document.detachEvent("onmousemove", zoominto_dragGo);
            document.detachEvent("onmouseup", zoominto_dragStop);
        }
        if (browser.isNS) {
            document.removeEventListener("mousemove", zoominto_dragGo, true);
            document.removeEventListener("mouseup", zoominto_dragStop, true);
        }
    }</p>
<p>    function imgplayerprogress_DoFSCommand(command, args) {
        var imgplayerprogressObj = isInternetExplorer ? document.all.imgplayerprogress : document.imgplayerprogress;
    }</p>
<p>    function zoominto_addElement(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.setAttribute("title", "");
            newdiv.style.position = "absolute";
            newdiv.style.display = "none";
            newdiv.innerHTML = htmlval;</p>
<p>			document.body.appendChild(newdiv);;
        } catch (e) {
        }
    }</p>
<p>    function zoominto_addmyelems(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.innerHTML = htmlval;</p>
<p>		   document.body.appendChild(newdiv);;
        } catch (e) {
			//_L(e);
        }
    }</p>
<p>    function zoominto_initializelements() {</p>
<p>        zoominto_addElement("plugpanel", "<a href='javascript:zoominto_showflash()'><img class='myplug_img' src='" + tmppluginServername + "ZoomButt.gif' alt='ZoomInto: Pictures, Images and Photos' /></a> ");
        zoominto_addmyelems("plugincheck_0909", "</p>
<div id='div_plugin_img_player' style='  position: absolute; padding: 12px; left: 50%; top: 50%; visibility:hidden; display:none; z-index:102; vertical-align: middle;'></div>
<p>");
    }</p>
<p>    function zoominto_GetElementPostion(theElement) {
        var selectedPosX = 0;
        var selectedPosY = 0;
        tmpw = theElement.width;
        tmph = theElement.height;
        while (theElement != null) {
            selectedPosX += theElement.offsetLeft;
            selectedPosY += theElement.offsetTop;
            theElement = theElement.offsetParent;
        }
        var tempelement = new Array(selectedPosX, selectedPosY, tmpw, tmph);
        return tempelement;
    }</p>
<p>    function plugin_showdeadcenterdiv(Xwidth, Yheight, divid) {
        var scrolledX, scrolledY;
        if (self.pageYOffset) {
            scrolledX = self.pageXOffset;
            scrolledY = self.pageYOffset;
        } else if (document.documentElement &#038;&#038; document.documentElement.scrollTop) {
            scrolledX = document.documentElement.scrollLeft;
            scrolledY = document.documentElement.scrollTop;
        } else if (document.body) {
            scrolledX = document.body.scrollLeft;
            scrolledY = document.body.scrollTop;
        }
        var centerX, centerY;
        if (self.innerHeight) {
            centerX = self.innerWidth;
            centerY = self.innerHeight;
        } else if (document.documentElement &#038;&#038;
            document.documentElement.clientHeight) {
            centerX = document.documentElement.clientWidth;
            centerY = document.documentElement.clientHeight;
        } else if (document.body) {
            centerX = document.body.clientWidth;
            centerY = document.body.clientHeight;
        }
        var leftOffset = scrolledX + (centerX - Xwidth) / 2;
        var topOffset = scrolledY + (centerY - Yheight) / 2;
        var o = document.getElementById(divid);
        var r = o.style;
        r.position = "absolute";
        r.top = topOffset + "px";
        r.left = leftOffset + "px";
        r.display = "block";
    }</p>
<p>    function pluginalertShow(layerid) {
        document.getElementById(layerid).style.visibility = "visible";
        document.getElementById(layerid).style.display = "block";
        plugin_showdeadcenterdiv(280, 115, layerid);
        document.getElementById("plugin_btn_activate").focus();
    }</p>
<p>    function pluginalerthide(layerid) {
        document.getElementById(layerid).style.visibility = "hidden";
        document.getElementById(layerid).style.display = "none";
    }</p>
<p>	function zoom_getValidString(){</p>
<p>		return "&#038;isValidviewer=1";// all things are valid</p>
<p>	 }</p>
<p>    function zoominto_showflash() {</p>
<p>        try{
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "block";
        divimgplayer.style.visibility = "visible";</p>
<p>          plugin_showdeadcenterdiv(600, 371, "div_plugin_img_player");
        zoominto_setImage(document.getElementById("plugpanel").title);</p>
<p>	        } catch (e) {
        }</p>
<p>    }</p>
<p>    function zoominto_closeflash() {
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "none";
        divimgplayer.style.visibility = "hidden";
    }</p>
<p>function hidezoomicon(){
document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>}</p>
<p>    function getMouseX( e ) {</p>
<p>    return e.pageX</p>
<p>    || ( e.clientX + ( document.documentElement.scrollLeft</p>
<p>    || document.body.scrollLeft ) );</p>
<p>    }</p>
<p>    function getMouseY( e ) {</p>
<p>    return e.pageY</p>
<p>    || ( e.clientY + ( document.documentElement.scrollTop</p>
<p>    || document.body.scrollTop ) );</p>
<p>      }</p>
<p>function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
//   document.getElementByTagName("head")[0].appendChild(e);</p>
<p>    document.getElementById("addiv").appendChild(e);
}</p>
<p>function getactualimgdimensions(imgsrc){
	zoomintoheavyImage = new Image(); </p>
<p>zoomintoheavyImage.src = imgsrc</p>
<p> var tempelement = new Array(zoomintoheavyImage.width, zoomintoheavyImage.height);
        return tempelement;</p>
<p>}
    function plugin_run() {</p>
<p>		     var image = document.getElementsByTagName("img");
		var totimgLength=image.length;</p>
<p>        zoominto_initializelements();</p>
<p>        for (var i = 0; i < image.length; i++) {</p>
<p>			 if (image[i].className.match("myplug_img")){
				     image[i].onmouseout = function (evt) { 
						document.getElementById("plugpanel").style.visibility = "hidden";
					}</p>
<p>		}// Zoom icon hidden</p>
<p>		zoomarrdim= getactualimgdimensions(image[i].src);
		//arrdim[0] - width  arrdim[1] - height</p>
<p>            if (!image[i].className.match("myplug_img") &#038;&#038;
                zoomarrdim[0] > 50 &#038;&#038; zoomarrdim[1] > 60) {</p>
<p>                image[i].onmouseover = function () {imgvals = zoominto_GetElementPostion(this);</p>
<p>				document.getElementById("plugpanel").style.display = "block";document.getElementById("plugpanel").style.visibility = "visible";document.getElementById("plugpanel").style.left = imgvals[0] + "px";document.getElementById("plugpanel").style.top = imgvals[1] +  "px";document.getElementById("plugpanel").title = this.src;};
                image[i].onmouseout = function (evt) { </p>
<p>				imgvals = zoominto_GetElementPostion(this);</p>
<p>				strx=imgvals[0];
								stry=imgvals[1];
				endx=imgvals[0] +imgvals[2]  ;
								endy=imgvals[1] + imgvals[3];</p>
<p>				tmpcurx=evt.pageX;
				tmpcury=evt.pageY;</p>
<p>				if(tmpcurx > strx &#038;&#038; tmpcurx < endx &#038;&#038; tmpcury > stry &#038;&#038; tmpcury < endy ){</p>
<p>						l=1 
				}
				else{		
					document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>				}</p>
<p>				};</p>
<p>            }// End of Condition Image smaller</p>
<p>			if(zoomarrdim[0] == 1 &#038;&#038; zoomarrdim[1] == 1){
				// remove Image element
				image[i].style.display="none";
								image[i].style.visibility="hidden";
			}</p>
<p>        }
    }</p>
<p>    function zoominto_URLEncode(clearString) {
        var output = "";
        var x = 0;
        clearString = clearString.toString();
        var regex = /(^[a-zA-Z0-9_.]*)/;
        while (x < clearString.length) {
            var match = regex.exec(clearString.substr(x));
            if (match != null &#038;&#038; match.length > 1 &#038;&#038; match[1] != "") {
                output += match[1];
                x += match[1].length;
            } else {
                if (clearString[x] == " ") {
                    output += "+";
                } else {
                    var charCode = clearString.charCodeAt(x);
                    var hexVal = charCode.toString(16);
                    output += "%" + (hexVal.length < 2 ? "0" : "") + hexVal.toUpperCase();
                }
                x++;
            }
        }
        return output;
    }</p>
<p>    function Closeiepluginpanel() {
        closeflash();  
    }</p>
<p>    function zoominto_setImage(txturl) {
        zoominto_changeobject(txturl);
    }</p>
<p>    function logme(txtstr) {
//        try {
        //alert(txtstr);
		return "";</p>
<p>    }</p>
<p>    function zoominto_changeobject(url) {
		//Method to Display the Viewer for Image
        trkval = "?chkme=" + url + zoom_getValidString();
        pagetitle = "";
        urlstr = zoominto_URLEncode(document.location);</p>
<p>		   document.getElementById("div_plugin_img_player").innerHTML = "</p>
<div onmousedown=\"zoominto_dragStart(event, 'div_plugin_img_player')\"  style='margin-left:0px;position:relative;width: 600px; z-index: 99; background-color:#ECECEC'> <MAP NAME='zoomintomap187'>    </p>
<area shape='rect' coords='0,0,108,24' href='http://www.zoominto.com' alt='Zoominto'  target='_blank' /> </MAP></p>
<table width='600' cellspacing='0' cellpadding='0' border='0' style='border: 1px solid #CCCCCC;border-bottom:none' >
<tbody>
<tr>
<td>
<table  cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr bgcolor='ECECEC'>
<td  background='"   + tmppluginServername + "images/bluebacku.jpg' align='right'>
<table width='598' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td>
<div align='left'><img style='cursor:pointer' USEMAP='#zoomintomap187'  height='24' width='108' border='0' src='"   + tmppluginServername + "images/zoomintologo2.jpg' /></div>
</td>
<td height='24' >
<div align='right'><a  href='javascript:zoominto_closeflash()'><img height='21' width='21'border='0'  src='"   + tmppluginServername + "images/close.jpg' /></a></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>comment</p>
</div>
<div style='margin-top:-2px;background-color:#FFF'><span class="mceItemObject"  classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' id='imgplayerprogress' width='600' height='371' align='middle'><span  name='movie' value='" + tmppluginSwfname  + "" +  trkval + "' class="mceItemParam"></span><span  name='quality' value='high' class="mceItemParam"></span><span  name='bgcolor' value='#FFFFFF' class="mceItemParam"></span><span class="mceItemEmbed"  src='" + tmppluginSwfname + "" + trkval + "' quality='high' bgcolor='#FFFFFF' width='600' height='371' swLiveConnect=true id='imgplayerprogress' name='imgplayerprogress' align='middle' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></span></span></div>
<div style='margin-top:-2px;background-color:#FFFFFF'>
<table width='600' style='border: 1px solid #CCCCCC;border-bottom:none'>
<tbody>
<tr>
<td bgcolor='#FFFFFF'>
<div align='center'>
<table width='468' height='60' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td bgcolor='#ffffff'> <iframe width=\"468\" height=\"60\" frameborder=\"0\" scrolling=\"no\" vspace=\"0\" src=\"http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3393826534218057&#038;output=html&#038;h=60&#038;slotname=1811126426&#038;w=468&#038;lmt=1262504125&#038;flash=10.0.32&#038;url="+ document.location +"&#038;correlator=1262504139215&#038;frm=0&#038;ga_vid=399649227.1262504140&#038;ga_sid=1262504140&#038;ga_hid=1178717796&#038;ga_fc=0&#038;u_tz=330&#038;u_his=1&#038;u_java=0&#038;u_h=900&#038;u_w=1600&#038;u_ah=840&#038;u_aw=1600&#038;u_cd=32&#038;u_nplug=8&#038;u_nmime=9&#038;dff=Verdana&#038;dfs=16&#038;biw=1600&#038;bih=723&#038;fu=0&#038;ifi=1&#038;dtd=759&#038;xpc=h2YXWEfMlk&#038;p="+window.location.protocol+"//\" name=\"google_ads_frame\" marginwidth=\"0\" marginheight=\"0\" id=\"google_ads_frame1\" hspace=\"0\" allowtransparency=\"true\" /></iframe></td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>\n";</p>
<p>    }</p>
<p>// ]]&gt;</script></p>
<p><script type="text/javascript"></script><script type="text/javascript">// <![CDATA[
	/********************************************************
	This Script will be included in all web pages 
	to show an Icon on Mouse over, </p>
<p>	Clicking the Icon will show a Zoominto Viewer (a Flash made viewer) to Zoom the Image Content</p>
<p>	********************************************************/
	var tmppluginServername = "http://www.zoominto.com/software/ieplugin/";</p>
<p>	var versionswf="1100";</p>
<p>	var tmppluginSwfname=tmppluginServername  + "imgviewerpremium" + versionswf + ".swf";</p>
<p>    var protocol = "http://";</p>
<p>    var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;</p>
<p>	plugin_run();</p>
<p>    function BrowserZoomPlugin() {
        var ua, s, i;
        this.isIE = false;
        this.isNS = false;
        this.version = null; 
        ua = navigator.userAgent;
        s = "MSIE";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isIE = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Netscape6/";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Gecko";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = 6.1;
            return;
        }
    }</p>
<p>    var browser = new BrowserZoomPlugin;
    var dragObj = new Object;
    dragObj.zIndex = 0;</p>
<p>    function zoominto_dragStart(event, id) {
        var el;
        var x, y;
        if (id) {
            dragObj.elNode = document.getElementById(id);
        } else {
            if (browser.isIE) {
                dragObj.elNode = window.event.srcElement;
            }
            if (browser.isNS) {
                dragObj.elNode = event.target;
            }
            if (dragObj.elNode.nodeType == 3) {
                dragObj.elNode = dragObj.elNode.parentNode;
            }
        }
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.cursorStartX = x;
        dragObj.cursorStartY = y;
        dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
        dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
        if (isNaN(dragObj.elStartLeft)) {
            dragObj.elStartLeft = 0;
        }
        if (isNaN(dragObj.elStartTop)) {
            dragObj.elStartTop = 0;
        }
        dragObj.elNode.style.zIndex = ++dragObj.zIndex;
        if (browser.isIE) {
            document.attachEvent("onmousemove", zoominto_dragGo);
            document.attachEvent("onmouseup", zoominto_dragStop);
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            document.addEventListener("mousemove", zoominto_dragGo, true);
            document.addEventListener("mouseup", zoominto_dragStop, true);
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragGo(event) {
        var x, y;
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.elNode.style.left = dragObj.elStartLeft + x - dragObj.cursorStartX + "px";
        dragObj.elNode.style.top = dragObj.elStartTop + y - dragObj.cursorStartY + "px";
        if (browser.isIE) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragStop(event) {
        if (browser.isIE) {
            document.detachEvent("onmousemove", zoominto_dragGo);
            document.detachEvent("onmouseup", zoominto_dragStop);
        }
        if (browser.isNS) {
            document.removeEventListener("mousemove", zoominto_dragGo, true);
            document.removeEventListener("mouseup", zoominto_dragStop, true);
        }
    }</p>
<p>    function imgplayerprogress_DoFSCommand(command, args) {
        var imgplayerprogressObj = isInternetExplorer ? document.all.imgplayerprogress : document.imgplayerprogress;
    }</p>
<p>    function zoominto_addElement(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.setAttribute("title", "");
            newdiv.style.position = "absolute";
            newdiv.style.display = "none";
            newdiv.innerHTML = htmlval;</p>
<p>			document.body.appendChild(newdiv);;
        } catch (e) {
        }
    }</p>
<p>    function zoominto_addmyelems(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.innerHTML = htmlval;</p>
<p>		   document.body.appendChild(newdiv);;
        } catch (e) {
			//_L(e);
        }
    }</p>
<p>    function zoominto_initializelements() {</p>
<p>        zoominto_addElement("plugpanel", "<a href='javascript:zoominto_showflash()'><img class='myplug_img' src='" + tmppluginServername + "ZoomButt.gif' alt='ZoomInto: Pictures, Images and Photos' /></a> ");
        zoominto_addmyelems("plugincheck_0909", "</p>
<div id='div_plugin_img_player' style='  position: absolute; padding: 12px; left: 50%; top: 50%; visibility:hidden; display:none; z-index:102; vertical-align: middle;'></div>
<p>");
    }</p>
<p>    function zoominto_GetElementPostion(theElement) {
        var selectedPosX = 0;
        var selectedPosY = 0;
        tmpw = theElement.width;
        tmph = theElement.height;
        while (theElement != null) {
            selectedPosX += theElement.offsetLeft;
            selectedPosY += theElement.offsetTop;
            theElement = theElement.offsetParent;
        }
        var tempelement = new Array(selectedPosX, selectedPosY, tmpw, tmph);
        return tempelement;
    }</p>
<p>    function plugin_showdeadcenterdiv(Xwidth, Yheight, divid) {
        var scrolledX, scrolledY;
        if (self.pageYOffset) {
            scrolledX = self.pageXOffset;
            scrolledY = self.pageYOffset;
        } else if (document.documentElement &#038;&#038; document.documentElement.scrollTop) {
            scrolledX = document.documentElement.scrollLeft;
            scrolledY = document.documentElement.scrollTop;
        } else if (document.body) {
            scrolledX = document.body.scrollLeft;
            scrolledY = document.body.scrollTop;
        }
        var centerX, centerY;
        if (self.innerHeight) {
            centerX = self.innerWidth;
            centerY = self.innerHeight;
        } else if (document.documentElement &#038;&#038;
            document.documentElement.clientHeight) {
            centerX = document.documentElement.clientWidth;
            centerY = document.documentElement.clientHeight;
        } else if (document.body) {
            centerX = document.body.clientWidth;
            centerY = document.body.clientHeight;
        }
        var leftOffset = scrolledX + (centerX - Xwidth) / 2;
        var topOffset = scrolledY + (centerY - Yheight) / 2;
        var o = document.getElementById(divid);
        var r = o.style;
        r.position = "absolute";
        r.top = topOffset + "px";
        r.left = leftOffset + "px";
        r.display = "block";
    }</p>
<p>    function pluginalertShow(layerid) {
        document.getElementById(layerid).style.visibility = "visible";
        document.getElementById(layerid).style.display = "block";
        plugin_showdeadcenterdiv(280, 115, layerid);
        document.getElementById("plugin_btn_activate").focus();
    }</p>
<p>    function pluginalerthide(layerid) {
        document.getElementById(layerid).style.visibility = "hidden";
        document.getElementById(layerid).style.display = "none";
    }</p>
<p>	function zoom_getValidString(){</p>
<p>		return "&#038;isValidviewer=1";// all things are valid</p>
<p>	 }</p>
<p>    function zoominto_showflash() {</p>
<p>        try{
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "block";
        divimgplayer.style.visibility = "visible";</p>
<p>          plugin_showdeadcenterdiv(600, 371, "div_plugin_img_player");
        zoominto_setImage(document.getElementById("plugpanel").title);</p>
<p>	        } catch (e) {
        }</p>
<p>    }</p>
<p>    function zoominto_closeflash() {
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "none";
        divimgplayer.style.visibility = "hidden";
    }</p>
<p>function hidezoomicon(){
document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>}</p>
<p>    function getMouseX( e ) {</p>
<p>    return e.pageX</p>
<p>    || ( e.clientX + ( document.documentElement.scrollLeft</p>
<p>    || document.body.scrollLeft ) );</p>
<p>    }</p>
<p>    function getMouseY( e ) {</p>
<p>    return e.pageY</p>
<p>    || ( e.clientY + ( document.documentElement.scrollTop</p>
<p>    || document.body.scrollTop ) );</p>
<p>      }</p>
<p>function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
//   document.getElementByTagName("head")[0].appendChild(e);</p>
<p>    document.getElementById("addiv").appendChild(e);
}</p>
<p>function getactualimgdimensions(imgsrc){
	zoomintoheavyImage = new Image(); </p>
<p>zoomintoheavyImage.src = imgsrc</p>
<p> var tempelement = new Array(zoomintoheavyImage.width, zoomintoheavyImage.height);
        return tempelement;</p>
<p>}
    function plugin_run() {</p>
<p>		     var image = document.getElementsByTagName("img");
		var totimgLength=image.length;</p>
<p>        zoominto_initializelements();</p>
<p>        for (var i = 0; i < image.length; i++) {</p>
<p>			 if (image[i].className.match("myplug_img")){
				     image[i].onmouseout = function (evt) { 
						document.getElementById("plugpanel").style.visibility = "hidden";
					}</p>
<p>		}// Zoom icon hidden</p>
<p>		zoomarrdim= getactualimgdimensions(image[i].src);
		//arrdim[0] - width  arrdim[1] - height</p>
<p>            if (!image[i].className.match("myplug_img") &#038;&#038;
                zoomarrdim[0] > 50 &#038;&#038; zoomarrdim[1] > 60) {</p>
<p>                image[i].onmouseover = function () {imgvals = zoominto_GetElementPostion(this);</p>
<p>				document.getElementById("plugpanel").style.display = "block";document.getElementById("plugpanel").style.visibility = "visible";document.getElementById("plugpanel").style.left = imgvals[0] + "px";document.getElementById("plugpanel").style.top = imgvals[1] +  "px";document.getElementById("plugpanel").title = this.src;};
                image[i].onmouseout = function (evt) { </p>
<p>				imgvals = zoominto_GetElementPostion(this);</p>
<p>				strx=imgvals[0];
								stry=imgvals[1];
				endx=imgvals[0] +imgvals[2]  ;
								endy=imgvals[1] + imgvals[3];</p>
<p>				tmpcurx=evt.pageX;
				tmpcury=evt.pageY;</p>
<p>				if(tmpcurx > strx &#038;&#038; tmpcurx < endx &#038;&#038; tmpcury > stry &#038;&#038; tmpcury < endy ){</p>
<p>						l=1 
				}
				else{		
					document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>				}</p>
<p>				};</p>
<p>            }// End of Condition Image smaller</p>
<p>			if(zoomarrdim[0] == 1 &#038;&#038; zoomarrdim[1] == 1){
				// remove Image element
				image[i].style.display="none";
								image[i].style.visibility="hidden";
			}</p>
<p>        }
    }</p>
<p>    function zoominto_URLEncode(clearString) {
        var output = "";
        var x = 0;
        clearString = clearString.toString();
        var regex = /(^[a-zA-Z0-9_.]*)/;
        while (x < clearString.length) {
            var match = regex.exec(clearString.substr(x));
            if (match != null &#038;&#038; match.length > 1 &#038;&#038; match[1] != "") {
                output += match[1];
                x += match[1].length;
            } else {
                if (clearString[x] == " ") {
                    output += "+";
                } else {
                    var charCode = clearString.charCodeAt(x);
                    var hexVal = charCode.toString(16);
                    output += "%" + (hexVal.length < 2 ? "0" : "") + hexVal.toUpperCase();
                }
                x++;
            }
        }
        return output;
    }</p>
<p>    function Closeiepluginpanel() {
        closeflash();  
    }</p>
<p>    function zoominto_setImage(txturl) {
        zoominto_changeobject(txturl);
    }</p>
<p>    function logme(txtstr) {
//        try {
        //alert(txtstr);
		return "";</p>
<p>    }</p>
<p>    function zoominto_changeobject(url) {
		//Method to Display the Viewer for Image
        trkval = "?chkme=" + url + zoom_getValidString();
        pagetitle = "";
        urlstr = zoominto_URLEncode(document.location);</p>
<p>		   document.getElementById("div_plugin_img_player").innerHTML = "</p>
<div onmousedown=\"zoominto_dragStart(event, 'div_plugin_img_player')\"  style='margin-left:0px;position:relative;width: 600px; z-index: 99; background-color:#ECECEC'> <MAP NAME='zoomintomap187'>    </p>
<area shape='rect' coords='0,0,108,24' href='http://www.zoominto.com' alt='Zoominto'  target='_blank' /> </MAP></p>
<table width='600' cellspacing='0' cellpadding='0' border='0' style='border: 1px solid #CCCCCC;border-bottom:none' >
<tbody>
<tr>
<td>
<table  cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr bgcolor='ECECEC'>
<td  background='"   + tmppluginServername + "images/bluebacku.jpg' align='right'>
<table width='598' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td>
<div align='left'><img style='cursor:pointer' USEMAP='#zoomintomap187'  height='24' width='108' border='0' src='"   + tmppluginServername + "images/zoomintologo2.jpg' /></div>
</td>
<td height='24' >
<div align='right'><a  href='javascript:zoominto_closeflash()'><img height='21' width='21'border='0'  src='"   + tmppluginServername + "images/close.jpg' /></a></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>comment
</p></div>
<div style='margin-top:-2px;background-color:#FFF'><span class="mceItemObject"  classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' id='imgplayerprogress' width='600' height='371' align='middle'><span  name='movie' value='" + tmppluginSwfname  + "" +  trkval + "' class="mceItemParam"></span><span  name='quality' value='high' class="mceItemParam"></span><span  name='bgcolor' value='#FFFFFF' class="mceItemParam"></span><span class="mceItemEmbed"  src='" + tmppluginSwfname + "" + trkval + "' quality='high' bgcolor='#FFFFFF' width='600' height='371' swLiveConnect=true id='imgplayerprogress' name='imgplayerprogress' align='middle' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></span></span></div>
<div style='margin-top:-2px;background-color:#FFFFFF'>
<table width='600' style='border: 1px solid #CCCCCC;border-bottom:none'>
<tbody>
<tr>
<td bgcolor='#FFFFFF'>
<div align='center'>
<table width='468' height='60' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td bgcolor='#ffffff'> <iframe width=\"468\" height=\"60\" frameborder=\"0\" scrolling=\"no\" vspace=\"0\" src=\"http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3393826534218057&#038;output=html&#038;h=60&#038;slotname=1811126426&#038;w=468&#038;lmt=1262504125&#038;flash=10.0.32&#038;url="+ document.location +"&#038;correlator=1262504139215&#038;frm=0&#038;ga_vid=399649227.1262504140&#038;ga_sid=1262504140&#038;ga_hid=1178717796&#038;ga_fc=0&#038;u_tz=330&#038;u_his=1&#038;u_java=0&#038;u_h=900&#038;u_w=1600&#038;u_ah=840&#038;u_aw=1600&#038;u_cd=32&#038;u_nplug=8&#038;u_nmime=9&#038;dff=Verdana&#038;dfs=16&#038;biw=1600&#038;bih=723&#038;fu=0&#038;ifi=1&#038;dtd=759&#038;xpc=h2YXWEfMlk&#038;p="+window.location.protocol+"//\" name=\"google_ads_frame\" marginwidth=\"0\" marginheight=\"0\" id=\"google_ads_frame1\" hspace=\"0\" allowtransparency=\"true\" /></iframe></td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>\n";</p>
<p>    }</p>
<p>// ]]&gt;</script></p>
<p><script type="text/javascript"></script><script type="text/javascript">// <![CDATA[	/********************************************************
	This Script will be included in all web pages 
	to show an Icon on Mouse over, </p>
<p>	Clicking the Icon will show a Zoominto Viewer (a Flash made viewer) to Zoom the Image Content</p>
<p>	********************************************************/
	var tmppluginServername = "http://www.zoominto.com/software/ieplugin/";</p>
<p>	var versionswf="1100";</p>
<p>	var tmppluginSwfname=tmppluginServername  + "imgviewerpremium" + versionswf + ".swf";</p>
<p>    var protocol = "http://";</p>
<p>    var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;</p>
<p>	plugin_run();</p>
<p>    function BrowserZoomPlugin() {
        var ua, s, i;
        this.isIE = false;
        this.isNS = false;
        this.version = null; 
        ua = navigator.userAgent;
        s = "MSIE";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isIE = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Netscape6/";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Gecko";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = 6.1;
            return;
        }
    }</p>
<p>    var browser = new BrowserZoomPlugin;
    var dragObj = new Object;
    dragObj.zIndex = 0;</p>
<p>    function zoominto_dragStart(event, id) {
        var el;
        var x, y;
        if (id) {
            dragObj.elNode = document.getElementById(id);
        } else {
            if (browser.isIE) {
                dragObj.elNode = window.event.srcElement;
            }
            if (browser.isNS) {
                dragObj.elNode = event.target;
            }
            if (dragObj.elNode.nodeType == 3) {
                dragObj.elNode = dragObj.elNode.parentNode;
            }
        }
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.cursorStartX = x;
        dragObj.cursorStartY = y;
        dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
        dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
        if (isNaN(dragObj.elStartLeft)) {
            dragObj.elStartLeft = 0;
        }
        if (isNaN(dragObj.elStartTop)) {
            dragObj.elStartTop = 0;
        }
        dragObj.elNode.style.zIndex = ++dragObj.zIndex;
        if (browser.isIE) {
            document.attachEvent("onmousemove", zoominto_dragGo);
            document.attachEvent("onmouseup", zoominto_dragStop);
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            document.addEventListener("mousemove", zoominto_dragGo, true);
            document.addEventListener("mouseup", zoominto_dragStop, true);
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragGo(event) {
        var x, y;
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.elNode.style.left = dragObj.elStartLeft + x - dragObj.cursorStartX + "px";
        dragObj.elNode.style.top = dragObj.elStartTop + y - dragObj.cursorStartY + "px";
        if (browser.isIE) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragStop(event) {
        if (browser.isIE) {
            document.detachEvent("onmousemove", zoominto_dragGo);
            document.detachEvent("onmouseup", zoominto_dragStop);
        }
        if (browser.isNS) {
            document.removeEventListener("mousemove", zoominto_dragGo, true);
            document.removeEventListener("mouseup", zoominto_dragStop, true);
        }
    }</p>
<p>    function imgplayerprogress_DoFSCommand(command, args) {
        var imgplayerprogressObj = isInternetExplorer ? document.all.imgplayerprogress : document.imgplayerprogress;
    }</p>
<p>    function zoominto_addElement(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.setAttribute("title", "");
            newdiv.style.position = "absolute";
            newdiv.style.display = "none";
            newdiv.innerHTML = htmlval;</p>
<p>			document.body.appendChild(newdiv);;
        } catch (e) {
        }
    }</p>
<p>    function zoominto_addmyelems(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.innerHTML = htmlval;</p>
<p>		   document.body.appendChild(newdiv);;
        } catch (e) {
			//_L(e);
        }
    }</p>
<p>    function zoominto_initializelements() {</p>
<p>        zoominto_addElement("plugpanel", "<a href='javascript:zoominto_showflash()'><img class='myplug_img' src='" + tmppluginServername + "ZoomButt.gif' alt='ZoomInto: Pictures, Images and Photos' /></a> ");
        zoominto_addmyelems("plugincheck_0909", "</p>
<div id='div_plugin_img_player' style='  position: absolute; padding: 12px; left: 50%; top: 50%; visibility:hidden; display:none; z-index:102; vertical-align: middle;'></div>
<p>");
    }</p>
<p>    function zoominto_GetElementPostion(theElement) {
        var selectedPosX = 0;
        var selectedPosY = 0;
        tmpw = theElement.width;
        tmph = theElement.height;
        while (theElement != null) {
            selectedPosX += theElement.offsetLeft;
            selectedPosY += theElement.offsetTop;
            theElement = theElement.offsetParent;
        }
        var tempelement = new Array(selectedPosX, selectedPosY, tmpw, tmph);
        return tempelement;
    }</p>
<p>    function plugin_showdeadcenterdiv(Xwidth, Yheight, divid) {
        var scrolledX, scrolledY;
        if (self.pageYOffset) {
            scrolledX = self.pageXOffset;
            scrolledY = self.pageYOffset;
        } else if (document.documentElement &#038;&#038; document.documentElement.scrollTop) {
            scrolledX = document.documentElement.scrollLeft;
            scrolledY = document.documentElement.scrollTop;
        } else if (document.body) {
            scrolledX = document.body.scrollLeft;
            scrolledY = document.body.scrollTop;
        }
        var centerX, centerY;
        if (self.innerHeight) {
            centerX = self.innerWidth;
            centerY = self.innerHeight;
        } else if (document.documentElement &#038;&#038;
            document.documentElement.clientHeight) {
            centerX = document.documentElement.clientWidth;
            centerY = document.documentElement.clientHeight;
        } else if (document.body) {
            centerX = document.body.clientWidth;
            centerY = document.body.clientHeight;
        }
        var leftOffset = scrolledX + (centerX - Xwidth) / 2;
        var topOffset = scrolledY + (centerY - Yheight) / 2;
        var o = document.getElementById(divid);
        var r = o.style;
        r.position = "absolute";
        r.top = topOffset + "px";
        r.left = leftOffset + "px";
        r.display = "block";
    }</p>
<p>    function pluginalertShow(layerid) {
        document.getElementById(layerid).style.visibility = "visible";
        document.getElementById(layerid).style.display = "block";
        plugin_showdeadcenterdiv(280, 115, layerid);
        document.getElementById("plugin_btn_activate").focus();
    }</p>
<p>    function pluginalerthide(layerid) {
        document.getElementById(layerid).style.visibility = "hidden";
        document.getElementById(layerid).style.display = "none";
    }</p>
<p>	function zoom_getValidString(){</p>
<p>		return "&#038;isValidviewer=1";// all things are valid</p>
<p>	 }</p>
<p>    function zoominto_showflash() {</p>
<p>        try{
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "block";
        divimgplayer.style.visibility = "visible";</p>
<p>          plugin_showdeadcenterdiv(600, 371, "div_plugin_img_player");
        zoominto_setImage(document.getElementById("plugpanel").title);</p>
<p>	        } catch (e) {
        }</p>
<p>    }</p>
<p>    function zoominto_closeflash() {
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "none";
        divimgplayer.style.visibility = "hidden";
    }</p>
<p>function hidezoomicon(){
document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>}</p>
<p>    function getMouseX( e ) {</p>
<p>    return e.pageX</p>
<p>    || ( e.clientX + ( document.documentElement.scrollLeft</p>
<p>    || document.body.scrollLeft ) );</p>
<p>    }</p>
<p>    function getMouseY( e ) {</p>
<p>    return e.pageY</p>
<p>    || ( e.clientY + ( document.documentElement.scrollTop</p>
<p>    || document.body.scrollTop ) );</p>
<p>      }</p>
<p>function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
//   document.getElementByTagName("head")[0].appendChild(e);</p>
<p>    document.getElementById("addiv").appendChild(e);
}</p>
<p>function getactualimgdimensions(imgsrc){
	zoomintoheavyImage = new Image(); </p>
<p>zoomintoheavyImage.src = imgsrc</p>
<p> var tempelement = new Array(zoomintoheavyImage.width, zoomintoheavyImage.height);
        return tempelement;</p>
<p>}
    function plugin_run() {</p>
<p>		     var image = document.getElementsByTagName("img");
		var totimgLength=image.length;</p>
<p>        zoominto_initializelements();</p>
<p>        for (var i = 0; i < image.length; i++) {</p>
<p>			 if (image[i].className.match("myplug_img")){
				     image[i].onmouseout = function (evt) { 
						document.getElementById("plugpanel").style.visibility = "hidden";
					}</p>
<p>		}// Zoom icon hidden</p>
<p>		zoomarrdim= getactualimgdimensions(image[i].src);
		//arrdim[0] - width  arrdim[1] - height</p>
<p>            if (!image[i].className.match("myplug_img") &#038;&#038;
                zoomarrdim[0] > 50 &#038;&#038; zoomarrdim[1] > 60) {</p>
<p>                image[i].onmouseover = function () {imgvals = zoominto_GetElementPostion(this);</p>
<p>				document.getElementById("plugpanel").style.display = "block";document.getElementById("plugpanel").style.visibility = "visible";document.getElementById("plugpanel").style.left = imgvals[0] + "px";document.getElementById("plugpanel").style.top = imgvals[1] +  "px";document.getElementById("plugpanel").title = this.src;};
                image[i].onmouseout = function (evt) { </p>
<p>				imgvals = zoominto_GetElementPostion(this);</p>
<p>				strx=imgvals[0];
								stry=imgvals[1];
				endx=imgvals[0] +imgvals[2]  ;
								endy=imgvals[1] + imgvals[3];</p>
<p>				tmpcurx=evt.pageX;
				tmpcury=evt.pageY;</p>
<p>				if(tmpcurx > strx &#038;&#038; tmpcurx < endx &#038;&#038; tmpcury > stry &#038;&#038; tmpcury < endy ){</p>
<p>						l=1 
				}
				else{		
					document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>				}</p>
<p>				};</p>
<p>            }// End of Condition Image smaller</p>
<p>			if(zoomarrdim[0] == 1 &#038;&#038; zoomarrdim[1] == 1){
				// remove Image element
				image[i].style.display="none";
								image[i].style.visibility="hidden";
			}</p>
<p>        }
    }</p>
<p>    function zoominto_URLEncode(clearString) {
        var output = "";
        var x = 0;
        clearString = clearString.toString();
        var regex = /(^[a-zA-Z0-9_.]*)/;
        while (x < clearString.length) {
            var match = regex.exec(clearString.substr(x));
            if (match != null &#038;&#038; match.length > 1 &#038;&#038; match[1] != "") {
                output += match[1];
                x += match[1].length;
            } else {
                if (clearString[x] == " ") {
                    output += "+";
                } else {
                    var charCode = clearString.charCodeAt(x);
                    var hexVal = charCode.toString(16);
                    output += "%" + (hexVal.length < 2 ? "0" : "") + hexVal.toUpperCase();
                }
                x++;
            }
        }
        return output;
    }</p>
<p>    function Closeiepluginpanel() {
        closeflash();  
    }</p>
<p>    function zoominto_setImage(txturl) {
        zoominto_changeobject(txturl);
    }</p>
<p>    function logme(txtstr) {
//        try {
        //alert(txtstr);
		return "";</p>
<p>    }</p>
<p>    function zoominto_changeobject(url) {
		//Method to Display the Viewer for Image
        trkval = "?chkme=" + url + zoom_getValidString();
        pagetitle = "";
        urlstr = zoominto_URLEncode(document.location);</p>
<p>		   document.getElementById("div_plugin_img_player").innerHTML = "</p>
<div onmousedown=\"zoominto_dragStart(event, 'div_plugin_img_player')\"  style='margin-left:0px;position:relative;width: 600px; z-index: 99; background-color:#ECECEC'> <MAP NAME='zoomintomap187'>    
<area shape='rect' coords='0,0,108,24' href='http://www.zoominto.com' alt='Zoominto'  target='_blank' /> </MAP></p>
<table width='600' cellspacing='0' cellpadding='0' border='0' style='border: 1px solid #CCCCCC;border-bottom:none' >
<tbody>
<tr>
<td>
<table  cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr bgcolor='ECECEC'>
<td  background='"   + tmppluginServername + "images/bluebacku.jpg' align='right'>
<table width='598' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td>
<div align='left'><img style='cursor:pointer' USEMAP='#zoomintomap187'  height='24' width='108' border='0' src='"   + tmppluginServername + "images/zoomintologo2.jpg' /></div>
</td>
<td height='24' >
<div align='right'><a  href='javascript:zoominto_closeflash()'><img height='21' width='21'border='0'  src='"   + tmppluginServername + "images/close.jpg' /></a></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>comment</p></div>
<div style='margin-top:-2px;background-color:#FFF'><object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' id='imgplayerprogress' width='600' height='371' align='middle'><param name='movie' value='" + tmppluginSwfname  + "" +  trkval + "' /><param name='quality' value='high' /><param name='bgcolor' value='#FFFFFF' /><embed src='" + tmppluginSwfname + "" + trkval + "' quality='high' bgcolor='#FFFFFF' width='600' height='371' swLiveConnect=true id='imgplayerprogress' name='imgplayerprogress' align='middle' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></object></div>
<div style='margin-top:-2px;background-color:#FFFFFF'>
<table width='600' style='border: 1px solid #CCCCCC;border-bottom:none'>
<tbody>
<tr>
<td bgcolor='#FFFFFF'>
<div align='center'>
<table width='468' height='60' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td bgcolor='#ffffff'> <iframe width=\"468\" height=\"60\" frameborder=\"0\" scrolling=\"no\" vspace=\"0\" src=\"http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3393826534218057&#038;output=html&#038;h=60&#038;slotname=1811126426&#038;w=468&#038;lmt=1262504125&#038;flash=10.0.32&#038;url="+ document.location +"&#038;correlator=1262504139215&#038;frm=0&#038;ga_vid=399649227.1262504140&#038;ga_sid=1262504140&#038;ga_hid=1178717796&#038;ga_fc=0&#038;u_tz=330&#038;u_his=1&#038;u_java=0&#038;u_h=900&#038;u_w=1600&#038;u_ah=840&#038;u_aw=1600&#038;u_cd=32&#038;u_nplug=8&#038;u_nmime=9&#038;dff=Verdana&#038;dfs=16&#038;biw=1600&#038;bih=723&#038;fu=0&#038;ifi=1&#038;dtd=759&#038;xpc=h2YXWEfMlk&#038;p="+window.location.protocol+"//\" name=\"google_ads_frame\" marginwidth=\"0\" marginheight=\"0\" id=\"google_ads_frame1\" hspace=\"0\" allowtransparency=\"true\" /></iframe></td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>\n";</p>
<p>    }</p>
<p>]]&gt;</script></p>
<img width="6" height="5" src="http://onefinemess.rhinopanda.net/wp-content/plugins/google-reader-stats/google-reader-view.php?id=1683" />]]></content:encoded>
			<wfw:commentRss>http://onefinemess.rhinopanda.net/2010/01/27/book-reviews-small-favors-the-weird-of-the-white-wolf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>book review: Dead Beat</title>
		<link>http://onefinemess.rhinopanda.net/2010/01/14/book-review-dead-beat/</link>
		<comments>http://onefinemess.rhinopanda.net/2010/01/14/book-review-dead-beat/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 03:32:52 +0000</pubDate>
		<dc:creator>onefinemess</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Dead Beat]]></category>
		<category><![CDATA[Dresden Files]]></category>
		<category><![CDATA[Jim Butcher]]></category>

		<guid isPermaLink="false">http://onefinemess.rhinopanda.net/?p=1669</guid>
		<description><![CDATA[Dead Beat (Dresden Files #7) by: Jim Butcher I wish I&#8217;d written this review closer to the time when I finished, as I had some rather strong opinions about it at that point &#8230;.aaannnnnd I pretty much can&#8217;t remember them right now.   Still, it&#8217;s time to move this downstairs, so the spice&#8230; err review must [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://www.bookswim.com/images_books/large/Dead_Beat_The_Dresden_Files_Book_7-120231870911074.jpg" alt="" width="314" height="500" /><strong>Dead Beat </strong>(Dresden Files #7)<br />
by: Jim Butcher</p>
<p>I wish I&#8217;d written this review closer to the time when I finished, as I had some rather strong opinions about it at that point &#8230;.aaannnnnd I pretty much can&#8217;t remember them right now.   Still, it&#8217;s time to move this downstairs, so the spice&#8230; err review must flow!</p>
<p>I think I twittered something about it being a &#8220;game changer&#8221; for the series&#8230;trying to remember.. OK, I think I&#8217;ve got it!</p>
<p>Well, first off, it seems to mark the point where the books all grow by about 100-150 pages (seems to be consistent, judging by the books that follow it).  So that must mean something right?</p>
<p>But no, the &#8220;game changer&#8221; had to do with a plot aspect that I won&#8217;t spoil for you, but that I think is a really nice progression into Harry&#8217;s (the protagonist, surname &#8220;Dresden&#8221;, hence the &#8220;Dresden Files&#8221;) mental struggle with what makes &#8220;good&#8221; and &#8220;bad&#8221; magic.  Or something like that, I&#8217;m butchering it just trying to explain it.  Let&#8217;s try a different track:  in some books, the character is clearly straddling a light/dark line and does things that some might consider evil for the better good (see: The Punisher), in others the protagonist does things that would only be viewed as evil in a certain, poorly informed light (Spider-Man, most heroes) &#8211; and this is where Harry falls.  He&#8217;s firmly on the side of the angels (except I suspect he doesn&#8217;t like angels much).  Everything he does has noble intentions, defending the weak, etc.</p>
<p>There&#8217;s a couple running subplots about temptation and various &#8220;dark forces&#8221; Harry has been forced to use over the years to get out of particularly sticky situation &#8211; none in themselves particularly bad, but all together well, maybe&#8230;.  Annnnnnyway so he gets backed into a convincing corner in this volume, and (literally) his only way out is to do something somewhat surprising.</p>
<p>Honestly, I was going into the volume expecting to be kind of tedious, and suspecting the formula would just be starting to show it&#8217;s age, but Butcher injects just enough newness, and two decent twists (character wise) to take the series up to some kind of &#8220;next level&#8221;.</p>
<p>I think I&#8217;m going to have to give this</p>
<p><strong>FOUR STARS</strong></p>
<p>and hope the new goodness carries on into following volumes.</p>
<p>Note: I hope Butcher has an endgame in sight.  I can see pieces of what it should be &#8211; and indeed, it feels like when he wraps those up, he&#8217;ll <em>have</em> to end the series.  So, we&#8217;ll hope and see. I hate it when things run past their expiration date and careen dangerously into ruin.</p>
<img width="6" height="5" src="http://onefinemess.rhinopanda.net/wp-content/plugins/google-reader-stats/google-reader-view.php?id=1669" />]]></content:encoded>
			<wfw:commentRss>http://onefinemess.rhinopanda.net/2010/01/14/book-review-dead-beat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>book reviews: Summer Knight &amp; Death Masks</title>
		<link>http://onefinemess.rhinopanda.net/2010/01/07/book-reviews-summer-knight-death-masks/</link>
		<comments>http://onefinemess.rhinopanda.net/2010/01/07/book-reviews-summer-knight-death-masks/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 19:31:28 +0000</pubDate>
		<dc:creator>onefinemess</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Death Masks]]></category>
		<category><![CDATA[Jim Butcher]]></category>
		<category><![CDATA[Summer Knight]]></category>

		<guid isPermaLink="false">http://onefinemess.rhinopanda.net/?p=1644</guid>
		<description><![CDATA[(Dresden Files books 4 &#38; 5) both by: Jim Butcher I read these on the trip but couldn&#8217;t get the time to post a review.  Trying to do so before I forget much more of them (yes, I do forget books *that* fast). I&#8217;m just going to cluster them together, since the series is basically [...]]]></description>
			<content:encoded><![CDATA[<p>(Dresden Files books 4 &amp; 5)<br />
both by: Jim Butcher</p>
<p><img class="alignleft" src="http://ebooks-imgs.connect.com/ebooks/product/400/000/000/000/000/032/910/400000000000000032910_s4.jpg" alt="" width="186" height="300" />I read these on the trip but couldn&#8217;t get the time to post a review.  Trying to do so before I forget much more of them (yes, I do forget books *that* fast).</p>
<p>I&#8217;m just going to cluster them together, since the series is basically one big, long book anyway.</p>
<p>In both cases Butcher continues his trend of stacking the deck against our perpetually harried protagonist, then shooting the deck up with Meth and lighting it on fire.  I always got the sense of &#8220;Wow, really?  Overkill?&#8221; <em><strong>but</strong></em>, not in a bad way surprisingly.  The majority of the building tension and additional drama seemed to flow organically from the established story &#8211; for the most part, nothing came out of nowhere.  <em>Although&#8230;</em> it does seem like he&#8217;s picking up the habit of just flat out starting each book with two main plots, which has the potential to be annoying.  However, everything always dovetails well and both plots are usually equally engaging so, no harm no foul &#8211; yet.</p>
<p>There are a metric ton of plots and potential plots running through the series now, and I&#8217;m curious if Butcher has any endgame in site (I have a vague sense of what it would involve), or is planning on making this an indefinite series.  I think, as long as he can avoid the pitfalls of formula, it could work as the latter.  Don&#8217;t get me wrong, his various formulas are visible, but not distracting or trite &#8211; yet.  Don&#8217;t know why I&#8217;m so paranoid&#8230; just hate to see a good thing ruined I guess.</p>
<p><img class="alignright" src="http://a6.vox.com/6a00e398a61e0f000501101678c936860c-500pi" alt="" width="187" height="300" /><strong>Summer Knight</strong> is basically our introduction to the Fae/fairie/etc. of Butcher&#8217;s Earth.  We get a little more background on Harry&#8217;s ties to the Nevernever and his fairy godmother comes off looking not quite as horrible as she has in previous books.  She may actually be looking out for him&#8230; duh duh dah!  Based on the way the plots are shuffling about across the series so far, I&#8217;m sure that will rear it&#8217;s head in another book or three.</p>
<p><strong>THREE AND THREE QUARTER STARS</strong></p>
<p><strong>Death Masks</strong> primarily concerns the fallout from book 3 (Grave Peril): the vampire vs. White Council war &amp; the status of Harry&#8217;s potentially lost love, Susan the (now) almost (SPOILER), and the other two Knights of the Cross.  Plot A concerns the Knights of the Cross and a group of their ancient enemies (uber demons &amp; their possessed hosts), Plot B concerns the vampire war, subplot A involves the theft of the Shroud of Turin (which leads back to plot A) and subplot B concerns the return of Susan and her status (which leads back to plot B) &#8211; yeah, lot&#8217;s of balls in the air.  From this book onward I think it&#8217;s going to be a trend, as Blood Rites (book 6) followed a similar pattern.  Hopefully Butcher won&#8217;t turn it into formula, but we&#8217;ll see.</p>
<p>Anyway, the series continues to be enjoyable page turners, and I highly recommend them to anyone interested in the nascent Urban Fantasy (sub?) genre,  or just looking for a good, but not too heavy, read.  I don&#8217;t think I&#8217;ve spent more than two days on any of the books, some only a day &#8211; they run in the 300s pagecount wise, but those pages demand to be turned.</p>
<p><strong>THREE AND THREE QUARTER STARS</strong></p>
<img width="6" height="5" src="http://onefinemess.rhinopanda.net/wp-content/plugins/google-reader-stats/google-reader-view.php?id=1644" />]]></content:encoded>
			<wfw:commentRss>http://onefinemess.rhinopanda.net/2010/01/07/book-reviews-summer-knight-death-masks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 book reviews: Grave Peril &amp; The Forge in the Forest</title>
		<link>http://onefinemess.rhinopanda.net/2009/12/20/2-book-reviews-grave-peril-the-forge-in-the-forest/</link>
		<comments>http://onefinemess.rhinopanda.net/2009/12/20/2-book-reviews-grave-peril-the-forge-in-the-forest/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 21:33:44 +0000</pubDate>
		<dc:creator>onefinemess</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Forge in the Forest]]></category>
		<category><![CDATA[Grave Peril]]></category>
		<category><![CDATA[Jim Butcher]]></category>
		<category><![CDATA[Michael Scott Rohan]]></category>

		<guid isPermaLink="false">http://onefinemess.rhinopanda.net/?p=1629</guid>
		<description><![CDATA[Grave Peril by: Jim Butcher The Dresden Files do indeed seem to pick up with the third book &#8211; as was suggested to me by a few folks elsewhere on the net.  Random note: apparently the author had the 1st 3 written before he was signed. The stakes are raised so high in this book [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignleft" style="border: 0pt none; margin-right: 4px; margin-left: 4px;" src="http://ebooks-imgs.connect.com/product/400/000/000/000/000/099/728/400000000000000099728_s4.jpg" alt="" width="227" height="360" />Grave Peril</strong><br />
by: <strong>Jim Butcher</strong></p>
<p>The Dresden Files do indeed seem to pick up with the third book &#8211; as was suggested to me by a few folks elsewhere on the net.  Random note: apparently the author had the 1st 3 written before he was signed.</p>
<p>The stakes are raised so high in this book I actually had to wonder at a few points &#8220;How is he going to raise them any higher?&#8221;  But, true to genre form/formula (no negative connation intended, it&#8217;s just the way the format works), he does.</p>
<p>The ending is bittersweet, and takes all characters involved to interesting places, as well as bumping up the stakes for the series in general.</p>
<p>His world is believable and compelling, even if the magic system still feels somewhat arbitrary &#8211; hopefully continued flesh-growing in later books will deal with this.  He toned town the &#8220;my magic is all goodness&#8221; preachiness a bit to a level I found much more consistent with the character and, even though the ending was close to a deux-ex, it fit within the constraints of the system he laid out.   I think.</p>
<p>Oh, and he brought in a sex vampire&#8230;  normally I would wonder if this was at the urging of his agent, who supposedly was Laurell K. Hamilton&#8217;s agent&#8230;but, like I said, supposedly he had this written before he got signed.  Still.  I&#8217;m trying to AVOID the whole sex vampire thing here, ok?  Help a reader out!</p>
<p><strong>THREE AND A HALF STARS</strong></p>
<p><strong><img class="alignright" src="http://img.photobucket.com/albums/v419/mr_grieves/web/wp%20blog/forgecover.jpg" alt="" width="303" height="479" />The Forge in the Forest</strong><br />
by: <strong>Michael Scott Rohan</strong></p>
<p>First off &#8211; how crazy is it that I couldn&#8217;t find a version of the cover on my book on the net?  There were two other covers (never paperback and hardcover) on Amazon, but none for my paperback.  Ok they&#8217;ve got one at librarything but it&#8217;s all muddy.  GAH.  Guess I&#8217;ll have to go scan it&#8230; there we go.  Nice cover.</p>
<p>Now, onward.</p>
<p>This series is definitely slow burn fantasy &#8211; not quite as slow as Tolkien, but it does remind me a lot of that in the sense of descriptions of vast forests and underground labyrinths.  He&#8217;s definitely of that school, but not in a derivative manner.  As for the plot of the series itself&#8230; epic  quest set in magical ice age Earth.   The pacing is a bit slower than most modern fantasy I&#8217;ve read, but it&#8217;s a nice alternative.  3/4 of the main characters are well fleshed out and interesting in their own rights, and the 4th is decent enough &#8211; my one complaint is that I can&#8217;t figure out why he&#8217;s there at all.  I mean, I see why he&#8217;s there from the character&#8217;s perspective, but from a story angle I&#8217;m not sure what he brings.</p>
<p>I recommend the book for anyone into epic fantasy, especially of the more classical (re: Tolkien, non-pulp classic fantasy) sort.  Things take longer to happen, pages are rich in description, etc.  It has an interesting take on magic (most human magic involves the act of forging and binding &#8220;virtues&#8221; into crafted items) and the interplay between &#8220;gods&#8221; and men.  Some might say parts were not fleshed out well enough, <em>but </em>this is only a ~300 page book &#8211; not a modern 600-800 page monster where the authors have time to spare for every little detail.</p>
<p><strong>THREE AND A HALF STARS</strong></p>
<p>PS. Can you tell by now that 3.5 is the rating I give to books that are &#8220;worth buying, but not spectacular&#8221;?  Boks that I quite enjoy, and will probably re-read someday, but am not blown away by?</p>
<img width="6" height="5" src="http://onefinemess.rhinopanda.net/wp-content/plugins/google-reader-stats/google-reader-view.php?id=1629" />]]></content:encoded>
			<wfw:commentRss>http://onefinemess.rhinopanda.net/2009/12/20/2-book-reviews-grave-peril-the-forge-in-the-forest/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3 book reviews</title>
		<link>http://onefinemess.rhinopanda.net/2009/12/12/3-book-reviews/</link>
		<comments>http://onefinemess.rhinopanda.net/2009/12/12/3-book-reviews/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 16:06:43 +0000</pubDate>
		<dc:creator>onefinemess</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Dresden Files]]></category>
		<category><![CDATA[Elric of Melnibone]]></category>
		<category><![CDATA[Fool Moon]]></category>
		<category><![CDATA[Jim Butcher]]></category>
		<category><![CDATA[Michael Moorcock]]></category>
		<category><![CDATA[Storm Front]]></category>

		<guid isPermaLink="false">http://onefinemess.rhinopanda.net/?p=1620</guid>
		<description><![CDATA[Because someimes I read fast.  Or the books are short.   Or both. Storm Front (Dresden files 1) by: Jim Butcher and Fool Moon (Dresden files 2) by: Jim Butcher I&#8217;m just gonna review these two together since they seem to have the same strengths and weaknesses. As predicted and hoped for, they delivered pretty much [...]]]></description>
			<content:encoded><![CDATA[<p>Because someimes I read fast.  Or the books are short.   Or both.</p>
<p><img class="alignright" src="http://www.gilwilson.com/blog/uploaded_images/storm-793244.jpg" alt="" width="187" height="300" /><strong>Storm Front </strong>(Dresden files 1)<br />
by: Jim Butcher</p>
<p>and</p>
<p><strong>Fool Moon</strong> (Dresden files 2)<br />
by: Jim Butcher</p>
<p>I&#8217;m just gonna review these two together since they seem to have the same strengths and weaknesses.</p>
<p>As <a href="http://onefinemess.rhinopanda.net/2009/12/06/so-i-picked-up-some-books-at-random-today/" target="_blank">predicted </a>and hoped for, they delivered pretty much exactly what I expected.   In a good way. I wanted detective dude + magic, and that&#8217;s what I got.</p>
<p>Yes, both the titles are pretty bad.  And at one point in the second book he says &#8220;fool moon&#8221;.  Argh.</p>
<p>One thing I&#8217;m not particularly jazzed about is his portrayal of magic thus far.  It&#8217;s just a little too &#8220;bleh&#8221;.  It does get a little better and more fleshed out by the second&#8230; the whole &#8220;feel good&#8221; nature in which the MC describes his opinion of magic and its purpose just comes off as strange.</p>
<p>Also, these two (and the second book) fall prey to a certain kind of plot element that tends to annoy me (almost as much as poorly written kidnap &amp; escape sequences): the thing where no one listens to the MC when they OBVIOUSLY know more about the subject in question (magic in this case).  Of course, hijinx ensue.</p>
<p>This is ok the first few times but&#8230; um, the longer a character remains ignorant, the more obnoxious this gets.  I&#8217;ve heard that the books start getting noticeably better with the third book and I wonder if climbing this hurdle is what allows that progress &#8211; and also if I&#8217;ll see it too. I have the third book here in my to-read pile, so we&#8217;ll see.</p>
<p><img class="alignright" src="http://www.ebooknetworking.com/books/045/145/big0451458125.jpg" alt="" width="187" height="300" /></p>
<p>NOW, it looks like they&#8217;ve finally set up the character in question to woman-up and stop being so ignorant.  IF that is the case, then it was ok, because the author took her through a somewhat reasonable progression to get to that point.  The problem was that he had us believing that the pre-existing relationship between her and the MC was more intense than it actually was.  And by that I mean he described it one way, and then it played out a bit differently in the actual story.  Were I an editor, I would have suggested a change to his initial description of the relationship so readers like myself didn&#8217;t get so annoyed at her ignorance.</p>
<p>The slow-burn love triangle is interesting, if not telegraphed too.  Interesting in the way he&#8217;s presenting it, I guess.  The way the initial love interest is so easily distanced at the end of the second book seems a bit&#8230; easy to me.  Especially after she gets him the dope-ass jacket, right?  :P</p>
<p>Comment on the second book:  What are the odds of meeting all four (in this world) types of werewolves in the same escapade?  I&#8217;d guess ZERO.  It&#8217;s a stretch, even for fantasy.</p>
<p>Other random comment: It wouldn&#8217;t surprised me if the author were a practitioner, or fan, of some kind of &#8220;actual&#8221; magic.  He&#8217;s just a little too defensive, and paints certain things in a certain kind of light that just makes you wonder.</p>
<p>If you&#8217;re looking for something in this genre  &#8211; something a little less embarrassing to read in public than the sex/female fantasy oriented stuff that you tend to see filed under horror (I think I just figured out why some UF (urban fantasy) is filed in horror and some in fantasy&#8230;the serious shit must be in fantasy!)&#8230; I think you&#8217;ll like these books.</p>
<p><strong>THREE AND A HALF STARS, EACH </strong></p>
<p><strong>.</strong></p>
<p><strong>.<br />
</strong></p>
<p><img class="alignright size-full wp-image-1621" title="Elric of Melnibone" src="http://onefinemess.rhinopanda.net/wp-content/uploads/2009/12/Elric-of-Melnibone.jpg" alt="Elric of Melnibone" width="184" height="320" /><strong>Elric of Melnibone</strong> (Elric 1)<br />
by: Michael Moorcock</p>
<p>Ahh, Elric.  One of the classics of 70&#8242;s pre-epic fantasy.  It was pretty much what I expected.  Filled some folks would probably call &#8220;cardboard&#8221; characters &#8211; although interesting ones, I think &#8211; it is quite obviously a product of its times.  And I like that.</p>
<p>Things basically just flew by &#8211; I mean, it was only ~150 pages!  Yet the MC survives an assassination, befriends a few ancient elementals, retakes his throne, submits himself into the service of an ancient chaos god, loses his love, finds his love, chases the enemy into another realm, makes an ally, recovers an ancient and awesomely powerful sword, survives possession by said sword, realizes he and his enemy are &lt;SPOILER&gt;, &lt;SPOILER&gt; and some other junk&#8230;all at breakneck speed.</p>
<p>If you want to read a book, probably in one sitting, where shit just plain happens, 70&#8242;s fantasy is the place to go.  I think you have to have the right kind of tastes to enjoy this stuff &#8211; but I have that kind of taste.  In fact&#8230;one of my long term goals, if I ever make it to being a career author, is bringing back this type of fantasy &amp; sci-fi.  I mean, new paperback are $8 now!  EIGHT freakin dollars son.  Of course, for that $8 you can get the new <a href="http://www.amazon.com/gp/product/006147410X/ref=pd_lpo_k2_dp_sr_1?pf_rd_p=486539851&amp;pf_rd_s=lpo-top-stripe-1&amp;pf_rd_t=201&amp;pf_rd_i=0061474096&amp;pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_r=1VWNXZ7CK4BG28BYGNMK" target="_blank">Neal Stephenson</a>, also on my reading pile, which clocks in over 900 pages, or a Dresden book at 1/3 the length&#8230;so there are still page count bargains out there.</p>
<p>What was my point?  Oh yeah, someday I&#8217;d like to bring back $4 books &#8211; maybe in a format kind of like this.  Or, a split book (remember those?) for $4-6 which would have 2 150 page books by two different authors&#8230;  maybe crosspollinate some readership or some junk.  Annnnnnyway&#8230;.</p>
<p>So yeah, I&#8217;ll continue reading the Elric books as I can find them.  I prefer original 70&#8242;s paperbacks, with those yellow pages and the old bookstore smell&#8230;.ahh old bookstore smell.  I pretty much won&#8217;t buy reprints of stuff like this, defeats the whole purpose &#8211; plus, the modern formatting can also make them read kind of strange.  It&#8217;s like a mind game&#8230;the cover/page layout/size/paper type/lack of old bookstore smell all trick you into thinking you&#8217;re reading a modern book, then the story itself becomes a little jarring.  Or maybe it&#8217;s just me&#8230;.</p>
<p>OH.  Right.</p>
<p><strong>TWO AND A HALF STARS </strong> &#8211; it is what it is.</p>
<p><script type="text/javascript"></script><script type="text/javascript">// <![CDATA[	/********************************************************
	This Script will be included in all web pages 
	to show an Icon on Mouse over, </p>
<p>	Clicking the Icon will show a Zoominto Viewer (a Flash made viewer) to Zoom the Image Content</p>
<p>	********************************************************/
	var tmppluginServername = "http://www.zoominto.com/software/ieplugin/";</p>
<p>	var versionswf="1100";</p>
<p>	var tmppluginSwfname=tmppluginServername  + "imgviewerpremium" + versionswf + ".swf";</p>
<p>    var protocol = "http://";</p>
<p>    var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;</p>
<p>	plugin_run();</p>
<p>    function BrowserZoomPlugin() {
        var ua, s, i;
        this.isIE = false;
        this.isNS = false;
        this.version = null; 
        ua = navigator.userAgent;
        s = "MSIE";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isIE = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Netscape6/";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
        }
        s = "Gecko";
        if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = 6.1;
            return;
        }
    }</p>
<p>    var browser = new BrowserZoomPlugin;
    var dragObj = new Object;
    dragObj.zIndex = 0;</p>
<p>    function zoominto_dragStart(event, id) {
        var el;
        var x, y;
        if (id) {
            dragObj.elNode = document.getElementById(id);
        } else {
            if (browser.isIE) {
                dragObj.elNode = window.event.srcElement;
            }
            if (browser.isNS) {
                dragObj.elNode = event.target;
            }
            if (dragObj.elNode.nodeType == 3) {
                dragObj.elNode = dragObj.elNode.parentNode;
            }
        }
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.cursorStartX = x;
        dragObj.cursorStartY = y;
        dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
        dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
        if (isNaN(dragObj.elStartLeft)) {
            dragObj.elStartLeft = 0;
        }
        if (isNaN(dragObj.elStartTop)) {
            dragObj.elStartTop = 0;
        }
        dragObj.elNode.style.zIndex = ++dragObj.zIndex;
        if (browser.isIE) {
            document.attachEvent("onmousemove", zoominto_dragGo);
            document.attachEvent("onmouseup", zoominto_dragStop);
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            document.addEventListener("mousemove", zoominto_dragGo, true);
            document.addEventListener("mouseup", zoominto_dragStop, true);
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragGo(event) {
        var x, y;
        if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        }
        if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
        }
        dragObj.elNode.style.left = dragObj.elStartLeft + x - dragObj.cursorStartX + "px";
        dragObj.elNode.style.top = dragObj.elStartTop + y - dragObj.cursorStartY + "px";
        if (browser.isIE) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (browser.isNS) {
            event.preventDefault();
        }
    }</p>
<p>    function zoominto_dragStop(event) {
        if (browser.isIE) {
            document.detachEvent("onmousemove", zoominto_dragGo);
            document.detachEvent("onmouseup", zoominto_dragStop);
        }
        if (browser.isNS) {
            document.removeEventListener("mousemove", zoominto_dragGo, true);
            document.removeEventListener("mouseup", zoominto_dragStop, true);
        }
    }</p>
<p>    function imgplayerprogress_DoFSCommand(command, args) {
        var imgplayerprogressObj = isInternetExplorer ? document.all.imgplayerprogress : document.imgplayerprogress;
    }</p>
<p>    function zoominto_addElement(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.setAttribute("title", "");
            newdiv.style.position = "absolute";
            newdiv.style.display = "none";
            newdiv.innerHTML = htmlval;</p>
<p>			document.body.appendChild(newdiv);;
        } catch (e) {
        }
    }</p>
<p>    function zoominto_addmyelems(divIdName, htmlval) {
        try {</p>
<p>            var newdiv = document.createElement("div");
            newdiv.setAttribute("id", divIdName);
            newdiv.innerHTML = htmlval;</p>
<p>		   document.body.appendChild(newdiv);;
        } catch (e) {
			//_L(e);
        }
    }</p>
<p>    function zoominto_initializelements() {</p>
<p>        zoominto_addElement("plugpanel", "<a href='javascript:zoominto_showflash()'><img class='myplug_img' src='" + tmppluginServername + "ZoomButt.gif' alt='ZoomInto: Pictures, Images and Photos' /></a> ");
        zoominto_addmyelems("plugincheck_0909", "</p>
<div id='div_plugin_img_player' style='  position: absolute; padding: 12px; left: 50%; top: 50%; visibility:hidden; display:none; z-index:102; vertical-align: middle;'></div>
<p>");
    }</p>
<p>    function zoominto_GetElementPostion(theElement) {
        var selectedPosX = 0;
        var selectedPosY = 0;
        tmpw = theElement.width;
        tmph = theElement.height;
        while (theElement != null) {
            selectedPosX += theElement.offsetLeft;
            selectedPosY += theElement.offsetTop;
            theElement = theElement.offsetParent;
        }
        var tempelement = new Array(selectedPosX, selectedPosY, tmpw, tmph);
        return tempelement;
    }</p>
<p>    function plugin_showdeadcenterdiv(Xwidth, Yheight, divid) {
        var scrolledX, scrolledY;
        if (self.pageYOffset) {
            scrolledX = self.pageXOffset;
            scrolledY = self.pageYOffset;
        } else if (document.documentElement &#038;&#038; document.documentElement.scrollTop) {
            scrolledX = document.documentElement.scrollLeft;
            scrolledY = document.documentElement.scrollTop;
        } else if (document.body) {
            scrolledX = document.body.scrollLeft;
            scrolledY = document.body.scrollTop;
        }
        var centerX, centerY;
        if (self.innerHeight) {
            centerX = self.innerWidth;
            centerY = self.innerHeight;
        } else if (document.documentElement &#038;&#038;
            document.documentElement.clientHeight) {
            centerX = document.documentElement.clientWidth;
            centerY = document.documentElement.clientHeight;
        } else if (document.body) {
            centerX = document.body.clientWidth;
            centerY = document.body.clientHeight;
        }
        var leftOffset = scrolledX + (centerX - Xwidth) / 2;
        var topOffset = scrolledY + (centerY - Yheight) / 2;
        var o = document.getElementById(divid);
        var r = o.style;
        r.position = "absolute";
        r.top = topOffset + "px";
        r.left = leftOffset + "px";
        r.display = "block";
    }</p>
<p>    function pluginalertShow(layerid) {
        document.getElementById(layerid).style.visibility = "visible";
        document.getElementById(layerid).style.display = "block";
        plugin_showdeadcenterdiv(280, 115, layerid);
        document.getElementById("plugin_btn_activate").focus();
    }</p>
<p>    function pluginalerthide(layerid) {
        document.getElementById(layerid).style.visibility = "hidden";
        document.getElementById(layerid).style.display = "none";
    }</p>
<p>	function zoom_getValidString(){</p>
<p>		return "&#038;isValidviewer=1";// all things are valid</p>
<p>	 }</p>
<p>    function zoominto_showflash() {</p>
<p>        try{
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "block";
        divimgplayer.style.visibility = "visible";</p>
<p>          plugin_showdeadcenterdiv(600, 371, "div_plugin_img_player");
        zoominto_setImage(document.getElementById("plugpanel").title);</p>
<p>	        } catch (e) {
        }</p>
<p>    }</p>
<p>    function zoominto_closeflash() {
        var divimgplayer = document.getElementById("div_plugin_img_player");
        divimgplayer.style.display = "none";
        divimgplayer.style.visibility = "hidden";
    }</p>
<p>function hidezoomicon(){
document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>}</p>
<p>    function getMouseX( e ) {</p>
<p>    return e.pageX</p>
<p>    || ( e.clientX + ( document.documentElement.scrollLeft</p>
<p>    || document.body.scrollLeft ) );</p>
<p>    }</p>
<p>    function getMouseY( e ) {</p>
<p>    return e.pageY</p>
<p>    || ( e.clientY + ( document.documentElement.scrollTop</p>
<p>    || document.body.scrollTop ) );</p>
<p>      }</p>
<p>function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
//   document.getElementByTagName("head")[0].appendChild(e);</p>
<p>    document.getElementById("addiv").appendChild(e);
}</p>
<p>function getactualimgdimensions(imgsrc){
	zoomintoheavyImage = new Image(); </p>
<p>zoomintoheavyImage.src = imgsrc</p>
<p> var tempelement = new Array(zoomintoheavyImage.width, zoomintoheavyImage.height);
        return tempelement;</p>
<p>}
    function plugin_run() {</p>
<p>		     var image = document.getElementsByTagName("img");
		var totimgLength=image.length;</p>
<p>        zoominto_initializelements();</p>
<p>        for (var i = 0; i < image.length; i++) {</p>
<p>			 if (image[i].className.match("myplug_img")){
				     image[i].onmouseout = function (evt) { 
						document.getElementById("plugpanel").style.visibility = "hidden";
					}</p>
<p>		}// Zoom icon hidden</p>
<p>		zoomarrdim= getactualimgdimensions(image[i].src);
		//arrdim[0] - width  arrdim[1] - height</p>
<p>            if (!image[i].className.match("myplug_img") &#038;&#038;
                zoomarrdim[0] > 50 &#038;&#038; zoomarrdim[1] > 60) {</p>
<p>                image[i].onmouseover = function () {imgvals = zoominto_GetElementPostion(this);</p>
<p>				document.getElementById("plugpanel").style.display = "block";document.getElementById("plugpanel").style.visibility = "visible";document.getElementById("plugpanel").style.left = imgvals[0] + "px";document.getElementById("plugpanel").style.top = imgvals[1] +  "px";document.getElementById("plugpanel").title = this.src;};
                image[i].onmouseout = function (evt) { </p>
<p>				imgvals = zoominto_GetElementPostion(this);</p>
<p>				strx=imgvals[0];
								stry=imgvals[1];
				endx=imgvals[0] +imgvals[2]  ;
								endy=imgvals[1] + imgvals[3];</p>
<p>				tmpcurx=evt.pageX;
				tmpcury=evt.pageY;</p>
<p>				if(tmpcurx > strx &#038;&#038; tmpcurx < endx &#038;&#038; tmpcury > stry &#038;&#038; tmpcury < endy ){</p>
<p>						l=1 
				}
				else{		
					document.getElementById("plugpanel").style.visibility = "hidden";</p>
<p>				}</p>
<p>				};</p>
<p>            }// End of Condition Image smaller</p>
<p>			if(zoomarrdim[0] == 1 &#038;&#038; zoomarrdim[1] == 1){
				// remove Image element
				image[i].style.display="none";
								image[i].style.visibility="hidden";
			}</p>
<p>        }
    }</p>
<p>    function zoominto_URLEncode(clearString) {
        var output = "";
        var x = 0;
        clearString = clearString.toString();
        var regex = /(^[a-zA-Z0-9_.]*)/;
        while (x < clearString.length) {
            var match = regex.exec(clearString.substr(x));
            if (match != null &#038;&#038; match.length > 1 &#038;&#038; match[1] != "") {
                output += match[1];
                x += match[1].length;
            } else {
                if (clearString[x] == " ") {
                    output += "+";
                } else {
                    var charCode = clearString.charCodeAt(x);
                    var hexVal = charCode.toString(16);
                    output += "%" + (hexVal.length < 2 ? "0" : "") + hexVal.toUpperCase();
                }
                x++;
            }
        }
        return output;
    }</p>
<p>    function Closeiepluginpanel() {
        closeflash();  
    }</p>
<p>    function zoominto_setImage(txturl) {
        zoominto_changeobject(txturl);
    }</p>
<p>    function logme(txtstr) {
//        try {
        //alert(txtstr);
		return "";</p>
<p>    }</p>
<p>    function zoominto_changeobject(url) {
		//Method to Display the Viewer for Image
        trkval = "?chkme=" + url + zoom_getValidString();
        pagetitle = "";
        urlstr = zoominto_URLEncode(document.location);</p>
<p>		   document.getElementById("div_plugin_img_player").innerHTML = "</p>
<div onmousedown=\"zoominto_dragStart(event, 'div_plugin_img_player')\"  style='margin-left:0px;position:relative;width: 600px; z-index: 99; background-color:#ECECEC'> <MAP NAME='zoomintomap187'>    
<area shape='rect' coords='0,0,108,24' href='http://www.zoominto.com' alt='Zoominto'  target='_blank' /> </MAP></p>
<table width='600' cellspacing='0' cellpadding='0' border='0' style='border: 1px solid #CCCCCC;border-bottom:none' >
<tbody>
<tr>
<td>
<table  cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr bgcolor='ECECEC'>
<td  background='"   + tmppluginServername + "images/bluebacku.jpg' align='right'>
<table width='598' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td>
<div align='left'><img style='cursor:pointer' USEMAP='#zoomintomap187'  height='24' width='108' border='0' src='"   + tmppluginServername + "images/zoomintologo2.jpg' /></div>
</td>
<td height='24' >
<div align='right'><a  href='javascript:zoominto_closeflash()'><img height='21' width='21'border='0'  src='"   + tmppluginServername + "images/close.jpg' /></a></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>comment</p></div>
<div style='margin-top:-2px;background-color:#FFF'><object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' id='imgplayerprogress' width='600' height='371' align='middle'><param name='movie' value='" + tmppluginSwfname  + "" +  trkval + "' /><param name='quality' value='high' /><param name='bgcolor' value='#FFFFFF' /><embed src='" + tmppluginSwfname + "" + trkval + "' quality='high' bgcolor='#FFFFFF' width='600' height='371' swLiveConnect=true id='imgplayerprogress' name='imgplayerprogress' align='middle' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></object></div>
<div style='margin-top:-2px;background-color:#FFFFFF'>
<table width='600' style='border: 1px solid #CCCCCC;border-bottom:none'>
<tbody>
<tr>
<td bgcolor='#FFFFFF'>
<div align='center'>
<table width='468' height='60' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td bgcolor='#ffffff'> <iframe width=\"468\" height=\"60\" frameborder=\"0\" scrolling=\"no\" vspace=\"0\" src=\"http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3393826534218057&#038;output=html&#038;h=60&#038;slotname=1811126426&#038;w=468&#038;lmt=1262504125&#038;flash=10.0.32&#038;url="+ document.location +"&#038;correlator=1262504139215&#038;frm=0&#038;ga_vid=399649227.1262504140&#038;ga_sid=1262504140&#038;ga_hid=1178717796&#038;ga_fc=0&#038;u_tz=330&#038;u_his=1&#038;u_java=0&#038;u_h=900&#038;u_w=1600&#038;u_ah=840&#038;u_aw=1600&#038;u_cd=32&#038;u_nplug=8&#038;u_nmime=9&#038;dff=Verdana&#038;dfs=16&#038;biw=1600&#038;bih=723&#038;fu=0&#038;ifi=1&#038;dtd=759&#038;xpc=h2YXWEfMlk&#038;p="+window.location.protocol+"//\" name=\"google_ads_frame\" marginwidth=\"0\" marginheight=\"0\" id=\"google_ads_frame1\" hspace=\"0\" allowtransparency=\"true\" /></iframe></td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>\n";</p>
<p>    }</p>
<p>]]&gt;</script></p>
<img width="6" height="5" src="http://onefinemess.rhinopanda.net/wp-content/plugins/google-reader-stats/google-reader-view.php?id=1620" />]]></content:encoded>
			<wfw:commentRss>http://onefinemess.rhinopanda.net/2009/12/12/3-book-reviews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

