




if (typeof(disqus_iframe_css) == 'undefined') {
	disqus_iframe_css = '';
}
if (typeof(disqus_def_name) == 'undefined') {
	disqus_def_name = '';
}
if (typeof(disqus_def_email) == 'undefined') {
	disqus_def_email = '';
}
if (typeof(disqus_skip_auth) == 'undefined') {
	disqus_skip_auth = false;
}
if (typeof(disqus_default_text) == 'undefined') {
	disqus_default_text = 'Type your comment here.';
}

(function(){
	
	var ie = document.uniqueID
		&& document.compatMode
		&& !window.XMLHttpRequest
		&& document.execCommand ;

	try {
		if(!!ie) {
			document.execCommand("BackgroundImageCache", false, true);
		}
	} catch(e) {};
})();

var Dsq = new function() {
	this.container = document.getElementById('dsq-content');
	this.jsonData = {"reactions": [], "has_more_reactions": false, "users": {"6566f1558fa9b77ce2f3f7605c5aa59e": {"username": "Vinuth", "tumblr": "", "display_name": "Vinuth", "url": "http://disqus.com/guest/6566f1558fa9b77ce2f3f7605c5aa59e/", "registered": false, "linkedin": "", "blog": "http://blogs.vinuth.com/the-holy-trail/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/67/3889/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "87cb5fc816709fca3f2e5710f52fb57c": {"username": "Robert Rapier", "tumblr": "", "display_name": "Robert Rapier", "url": "http://disqus.com/guest/87cb5fc816709fca3f2e5710f52fb57c/", "registered": false, "linkedin": "", "blog": "http://theoildrum.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f44429854309a57b4b0313fa7aafefcf": {"username": "Jeremy", "tumblr": "", "display_name": "Jeremy", "url": "http://disqus.com/guest/f44429854309a57b4b0313fa7aafefcf/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7a0933550abd7802e438a68724ed6bea": {"username": "Mark Wendman", "tumblr": "", "display_name": "Mark Wendman", "url": "http://disqus.com/guest/7a0933550abd7802e438a68724ed6bea/", "registered": false, "linkedin": "", "blog": "http://mark-nano.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "83ff92c1780ac7b42eceef1f09fcc75f": {"username": "alpha24seven", "tumblr": "", "display_name": "alpha24seven", "url": "http://disqus.com/guest/83ff92c1780ac7b42eceef1f09fcc75f/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "017523eab59ed6604694497ac0fe5549": {"username": "Alessandro Machi", "tumblr": "", "display_name": "Alessandro Machi", "url": "http://disqus.com/guest/017523eab59ed6604694497ac0fe5549/", "registered": false, "linkedin": "", "blog": "http://yes-on-87.org/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "58d161f49362e8cc78de12cb1b98e278": {"username": "Pran Kurup", "tumblr": "", "display_name": "Pran Kurup", "url": "http://disqus.com/guest/58d161f49362e8cc78de12cb1b98e278/", "registered": false, "linkedin": "", "blog": "http://pakorakorner.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6ec4aef49243198b5b236dd277b55a81": {"username": "Tim Seidel", "tumblr": "", "display_name": "Tim Seidel", "url": "http://disqus.com/guest/6ec4aef49243198b5b236dd277b55a81/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "22469990dc60b761fd43f51ccb7ec1ca": {"username": "Real", "tumblr": "", "display_name": "Real", "url": "http://disqus.com/guest/22469990dc60b761fd43f51ccb7ec1ca/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "476396362b1e95a67e4443a4df7aec32": {"username": "tomo", "tumblr": "", "display_name": "tomo", "url": "http://disqus.com/guest/476396362b1e95a67e4443a4df7aec32/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fba144c116f642edfd6a3987014b15a0": {"username": "Dave Baker", "tumblr": "", "display_name": "Dave Baker", "url": "http://disqus.com/guest/fba144c116f642edfd6a3987014b15a0/", "registered": false, "linkedin": "", "blog": "http://127.0.0.1/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "VentureBeat", "streaming_realtime": false, "url": "venturebeat", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": false, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "venturebeat", "is_initial_load": true, "is_authenticated": false, "timestamp": "2010-01-05_06:24:26", "remote_domain": "", "page": 1, "is_moderator": false, "display_username": "", "points": null, "subscribe_on_post": 2, "moderator_can_edit": false, "is_remote": false, "is_verified": false, "missing_perm": null, "remote_domain_name": ""}, "realtime_paused": false, "posts": {"14669409": {"up_voted": false, "ip": "", "has_replies": false, "message": "But in the above graph, isn't there a diminishing cost gap between the two with time? And they have almost reached the same cost by 2005.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_02:46:20", "killed": false, "user_key": "6566f1558fa9b77ce2f3f7605c5aa59e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669410": {"up_voted": false, "ip": "", "has_replies": false, "message": "Very interesting counter points. Its nice to see folks from outside the tech industry commenting on the topic. Certainly helps put things in perspective.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_08:42:53", "killed": false, "user_key": "58d161f49362e8cc78de12cb1b98e278", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669411": {"up_voted": false, "ip": "", "has_replies": false, "message": "<blockquote>But in the above graph, isn\u00e2\u20ac\u2122t there a diminishing cost gap between the two with time? And they have almost reached the same cost by 2005.</blockquote> <br><br>Ethanol economics have improved over time, but 2005 was an outlier. Capacity was overbuilt, and ethanol producers were complaining that low prices were killing them. But if you go to the site I linked to, you will see that gap widened considerably in 2006. I get a report on this each day, and the spot gap between ethanol and gasoline remains very large.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_08:56:25", "killed": false, "user_key": "87cb5fc816709fca3f2e5710f52fb57c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669412": {"up_voted": false, "ip": "", "has_replies": false, "message": "Unspoken is that PEOPLE WHO LIVE IN OIL HOUSES ..... do well to stifle potential competition for Oil.<br><br>PEOPLE WHO ARE MOVING to WORK In SCOTTISH NORTH SEA OIL FIELDS (very far from California, and far removed from doing any current manufacturing or R&amp;D work in renewables)  ..... do some pretty strange things  to contribute to a California Debate, unspoken on behalf of OIL INTERESTS, with distorted false arguments at counter purposes to Californians.<br><br>People from the House of Oil Who Don't Live in California ..... don't have the best interests of Californians at heart. <br><br>Robert, since when did you care about air pollution in California, from your present BOZEMAN MONTANA ADDRESS? <br><br>Or is CALIFORNIA AIR POLLUTION yet another sincere interest of yours?, as contrasted with a real interest of the numerous organizations backing Prop 87, backing organizations who full well realize that E85 and other renewables use, will help reduce overall AIR POLLUTION Here in California's SMOGGY URBAN POPULATION CENTERS.<br><br>You even said \"the quality of life in California was not as good as in Scotland\" ! and stated \"this is a reason why you did not take a job offer in California\" ...  versus your forthcoming move to Scotland...<br><br>So let's have full disclosure from you, Robert from the HOUSE OF OIL !<br><br>Yes, People Do Care about California, but not Robert Rapier, soon to be of Oily Scottish Address.<br><br>If your charts show as they do, the narrow gap in Ethanol Pricing BEFORE any implementing Cellulosic Innovations that People In Oil Houses have and continue to ignore, then Largely after these forthcoming Cellulosic innovations are IMPLEMENTED (by folks far removed from OIL), the arguments of People Who Live in Oil Houses will be proven very silly indeed, and it has nothing to do with Moore's Law.<br><br>As to you (OF HOUSE OF OIL) being a specialist for forecasting the future of Ethanol profits and Pricing, I have serious reservations about your credentials in that matter, since you have never acknowledged how Genetic Engineering of Cellulosic Enzymes and other forthcoming innovations in Cellulosic processing, production and distribution will affect your already weak arguments. <br><br>It has been, and remains a convenient notable omission from your purported handwaving.<br><br>This is aside from the matter that as present Ethanol Infrastructure (distribution and manufacturing) is in its nascent EARLY DAYS, good old MANUFACTURING and DISTRIBUTION IMPROVEMENTS that get catalyzed (and warranted) by larger scale production of E85 (where costly innovation will be partly subsidized by Prop 87) is hardly registered in your FLAPPING OF GUMS.<br><br>Else why would WALMART CONSIDER SELLING E85 ETHANOL fuel - NATIONWIDE ? <br><br>Does WALMART think ETHANOL / E85 is a BAD business proposition ? <br><br>Or Walmart does not know about making money?<br><br>Maybe you should send WALMART MANAGEMENT your charts and tell WALMART they are all WRONG ? <br><br>Surely you can teach WALMART Management a thing or two about business? And Surely you will say that WALMARTs interest negates the reasoning for Prop 87 ? <br><br>Like WALMART is not betting on the future, and will help commercialize E85 with vision you clearly do not have.<br><br>That prospect surely might scare the heck out of members of the HOUSE OF OIL !! and render these graphs of your of your forecasts merely wholly inaccurate? <br><br>Or is this off your horizon because WALMART is out of the sphere of Influence of the House of OIL?<br><br>Please Don't Mislead People in California, my dear soon to be Scottish Oil Dweller !<br><br>Cheers. <br><br>From Some Folks WHO actually LIVE in CALIFORNIA, and see through the OIL SLICK ?distortions....", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_09:59:37", "killed": false, "user_key": "7a0933550abd7802e438a68724ed6bea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669413": {"up_voted": false, "ip": "", "has_replies": false, "message": "Vinuth,<br><br>I just looked at yesterday\u00e2\u20ac\u2122s OPIS report for the West Coast. Regular unleaded traded in a range of 169.75-174.75. Ethanol, with 70% of the energy content, traded in a range of 217.00-222.00. So, currently the price differential is $0.47/gal, about where it was in 2001. If you had a car that gets 20 mpg on gasoline, then for every 1,000 miles you drive it would cost you $86 on gasoline, or $157 on ethanol (lower energy content plus higher price), based on yesterday\u00e2\u20ac\u2122s prices. I would be willing to much higher prices for clean energy, but the ethanol we make in the U.S. today is mostly recycled fossil fuels.<br><br>Mark Wendman \u00e2\u20ac\u201c perhaps you didn\u00e2\u20ac\u2122t get the memo that I am finished with your straw man arguments and ad hominem attacks. Those are not valid arguments, EVEN IF YOU WRITE THEM IN ALL CAPS. It does not matter if I am the crown prince of Saudi Arabia; you still need to address the actual arguments I make if you wish to comment. Yet you have never addressed my actual arguments, probably because you have no experience or knowledge in these areas. You wave the magic wand of \u00e2\u20ac\u0153genetic engineering\u00e2\u20ac\u009d, yet ignore the fact that there are fundamental limitations even to that. <br><br>You have consistently misrepresented and misunderstood facts. You couldn\u00e2\u20ac\u2122t even get something as simple as where I live correct. First it was Houston, now it\u00e2\u20ac\u2122s Bozeman. Neither answer is correct. So if you can\u00e2\u20ac\u2122t even get that right, what faith should anyone have that you can handle the more complex stuff? It is apparent that you can\u00e2\u20ac\u2122t, yet you still feel like you should grace us with your wisdom. My advice is either to get up to speed, or stick to commenting on your own area.<br><br>Now, if you have a comment that is actually pertinent to my essay, and you can make it without resorting to ad hominems, feel free to post it. Long-winded diatribes and rabid froth will continue to be ignored.<br><br>Cheers, RR", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_11:23:26", "killed": false, "user_key": "87cb5fc816709fca3f2e5710f52fb57c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669414": {"up_voted": false, "ip": "", "has_replies": false, "message": "WELL I LIVE in CALIFORNIA -- and I have my entire life.<br><br>Wendman -- You are off base here. Rapier has shed some good insight on this situation and you default to the oft-used \"oil slick\" position. Chuck in a good helping of Wal-Mart and you've done a good job in marginalizing yourself.<br><br>Again, you need to take a step back and realize the larger conflict of interest here. Mr. Khosla his VC firm, his limited partners stand to bring in $BILLIONS! This type of corporate governance shouldn't be allowed here or anywhere.<br><br>There are plenty of great ways to increase the R&amp;D and commercialization of RE/AE -- but this sure as hell isn't one of them.  <br><br>Furthermore, do you even understand the RE industry and the current subsidy programs? Your comment would state otherwise. For example, BP's last quarter netted them about $69,000,000 per day in profit. Their business unit (BP Solar) is one of the largest providers of solar assets in CA. They are selling these assets at a profit. So why are we subsidizing a hugely profitable company? (just happens to be an oil company -- surely this will make you unhappy) Why are we subsidizing a RE energy company that is PROFITABLE? The majority of the solar providers selling into the state of CA are profitable, yet we just passed another initiative providing for over $3bn in subsidy paid for by you and me. WHY?<br><br>The reality is, once we purge the incentives, the RE/AE industry will be forced to compete, economies of scale will develop, prices will drop, solar and other RE/AE will become ubiquitous and the game will be changed forever.  <br><br>You really need to understand the landscape before you fly off the handle with inane commentary.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_11:29:20", "killed": false, "user_key": "83ff92c1780ac7b42eceef1f09fcc75f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669415": {"up_voted": false, "ip": "", "has_replies": false, "message": "I read your the first round of essays, and found them fairer than this.<br><br>Once again, rational people melt down into emotional and illogical attacks propped up with irrelevant argument points.<br><br>I'd like to point out a few things.<br><br>1. Silicon Valley ingenuity for the most part of an academic nature. While some of it is kick started financially by government research grants etc, this ingenuity must find its own way in the marketplace. In essence there is no built in market for iPods.<br><br>2. Petroleum energy was nurtured for years by government subsidies to oil, transportation, electricity generation, etc.<br><br>3. Comparing the price of Ethanol to Gasoline is skewed not just by production costs, but also by the engines capable of running it. In addition, you seem to turn a blind eye to the market realities for ethanol, but give oil the benefit of the doubt.<br><br>4. Taxing Silicon Valley, or technology companies, is not relevant to this discussion. There are not enough loopholes in California tax code for technology firms to make this a worthwhile discussion point.<br><br>Talk about why we shouldn't continue to nurture alternative fuels with tax subsidies, to the same or greater economic level that we did last century with petroleum products.<br><br>Talk about how oil is going to become cleaner energy pound for pound.<br><br>Find some salient  points to develop and leave your pile of rocks out in front of the glass house, go inside, and have some tea.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_12:16:28", "killed": false, "user_key": "f44429854309a57b4b0313fa7aafefcf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669416": {"up_voted": false, "ip": "", "has_replies": false, "message": "There is one rather large gap in your analysis: you don't consider the indirect costs relevant to oil use. <br><br>One of the most important ones is the cost of national defense spending to ensure the adequacy of the nation's oil supply.  Considering the extremely high costs of prosecuting wars (e.g. the $300 billion plus price tag of the Iraq war) and maintaining a defense capability in oil-producing regions (probably also a sizable figure), it makes a lot of sense to look for fuels which can be produced from alternative raw materials.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_12:32:47", "killed": false, "user_key": "22469990dc60b761fd43f51ccb7ec1ca", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669417": {"up_voted": false, "ip": "", "has_replies": false, "message": "Folks, it should be abundantly clear that I am not making a blanket defense of the oil industry here. I addressed specific claims made by Vinod Khosla is his essay. The recent comments have tended toward the position that I believe we should continue happily using oil products. I do not believe this, but neither do I believe that incredibly na\u00c3\u00afve arguments and the condescending drivel that Mr. Khosla has given us in his essays do anything to further the debate over energy policy. But if you wish to have a discussion, please discuss what I wrote and not what you wish I had written.<br><br>Regarding the cost of ethanol versus gasoline, there is only one point I am trying to drive home. Mr. Khosla says that it is cheaper to produce ethanol than gasoline. As you can see, the selling price for ethanol has been higher than for gasoline for 25 of the past 25 years. Therefore, is it not hypocritical to complain about oil company profits, when this would mean that ethanol company profit margins are significantly higher? <br><br>Cheers, RR", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_12:53:13", "killed": false, "user_key": "87cb5fc816709fca3f2e5710f52fb57c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669418": {"up_voted": false, "ip": "", "has_replies": false, "message": "You raise some mildly interesting points; but you are equally guilty of what you accuse others of.<br><br>Consider, for example:<br>\"I find it very ironic that those who are flying around the country to decry the \u00e2\u20ac\u0153evil oil industry\u00e2\u20ac\u009d are doing so using jet fuel supplied by the oil industry.\"<br><br>By your argument, noone on the Internet should have been allowed to criticize Enron for price-gouging, because they would be using electricity?? Just because you use oil products in daily life, does it mean you can't criticize their practices?<br><br>But to the overall prop-87 question: why is it that Alaska, Texas, New Mexico and Louisiana can charge royalties, but California can't? Are Californians getting cheaper oil because of this? Last time I checked at the pump, this was certainly not the case.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_17:54:55", "killed": false, "user_key": "fba144c116f642edfd6a3987014b15a0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669419": {"up_voted": false, "ip": "", "has_replies": false, "message": "Some Salient points ignored - (of relevant energy policy conflict of interests)<br><br>There never was an energy crisis in California. It was artificial, and largely by collusion of Oil and Gas Interests, on a scale far far larger than you are accusing the folks who are supporting Prop 87, let's say by an order of magnitude larger than the unsubstantiated \"conflicts\" of interest here for Prop 87 (versus the collusion which transpired in California's purported crisis).<br><br>Things like recurring artificial energy plant shutdowns (somehow we never hear of these anymore?) and purchase and shuttering of 1 of only 2 gas pipelines from Texas to California, are merely scratching the surface. <br><br>Nevermind the illegal structuring of public services gas &amp; electric supply contracts as closed bids. I can go on if you'd like.<br><br>Hypothetical conflict of interest by the VCs backing the effort to jump start renewables here, pales by comparison. And so far hypothetical I might add.<br><br>By contrast, you'd be hard pressed to explain me how anything in the root causes of California's prior artificial energy troubles benefitted the public in ANY way.<br><br>Where were you, when some were cooking the artificial energy crisis in California? Conveniently silent ?<br><br>Where were you all when the AEI, funded and lead by the brilliant commodities arbitrageur Bruce Kovner of New York's Caxton Trading, was paying shills to produce reams of AEI Foreign Policy whitepapers that lead to the present mess in the mideast?<br><br>Caxton, Mr. Kovner's commodities trading firm, merely benefits from commodities markets he indirectly manipulated by crafting long term Foreign policy whitepapers. <br><br>AEI drove long term policy thusts now implemented as US foreign policy often by former AEI members. Where is the conflict of interest there? Where is the public interest in all of this? [Where is Matt when we need him when many hundreds of bilions are involved?]<br><br>Are there huge implications to commodities markets and Mr. Kovners profits, due to the ill advised AEI Foreign policy whitepapers being implemented as near defacto US mideast foreign policy? <br><br>And what magnitude is this, that you ignore it relative to your empty accusations?<br><br>What are the exact costs to us? <br><br>A billion here or there for the right of way for the little known Afghan oil pipeline? <br><br>A billion here or there to gain rights to Iraqi oilfields? <br><br>Not even close. <br><br>More like direct and indirect costs in the range or a Trillion public dollars for all expenses paid and due in the future, success or not.<br><br>What chance is it, that it is far larger cost to our population than a mere billion here or there? <br><br>And what chance does it seem that Iraninan Shia  will largely end up controlling Iraq, in all but name, and the money and blood spent trying to gain control of the oilfields of Iraq might turn out for naught? <br><br>It is quite probable we'll see a big fat ZIPPO return of public funds on a scale that dwarfs anything you quote as purported convenient facts. <br><br>Misadventures of the conflict of oil interests? <br>Or Interest of conflicts? <br>Your call. <br><br>Might we need an indigenous renewable energy policy ? Might that start be Prop 87? I will let the readers figure that one out.<br><br>Might Kovner/AEI be a far larger actual conflict of interest far far larger than anything both of you accuse the excellent VCs of Menlo Park of, in hypothetical conflict of interests? <br><br>Everything is relative after all. <br>What is another few zeros in front of the decimal point? <br><br>I guess it is a merely engineering error on your part Robert?  But after all you are tenaciousDNA, with answers for everthing trees included, soothsayer to the oil industry.<br><br>I kept talking about Robert's inability to see the forest for the trees, or in this case to see the Close to Trillion dollars of conflict of interest (in favor of Oil Interests at the expense of the public at large) versus the issues surrounding Prop 87, as imperfectly as it might be accused of being crafted (ie in your case, not helping the glutonous oil industry).<br><br>Hmmm. I'd call a potential as yet unrealized billion here or there spread over 5 or more years, chump change compared to the implications of Kovners misadventures implemented as US mideast foreign policy, largely benefitting commodities traders and the oil industry in various ways and means.<br><br>SO FOLKS (as an Oil Drummer might put it)... <br><br>Everything is Relative, and some things are just  a few orders of magnitude More Relative than others. And yet some folks cannot get it... \"Tenacity in DNA\" after all is of little help in something as pedantic as common sense. <br><br>But Robert is Tenacious as can be, even if lacking in common sense, or in transparency of his motives.<br><br>Small errors / weaknesses of Prop 87 if one might call it, are merely chump change in the greater scheme of things. With beneficial spinoffs in the broader economy you largely conveniently ignore. And will upside to Ethanol you repeatedly dismiss and denounce.<br><br>And Yes Robert, while you write reasonably  eloquently, you conveniently and purposely avoid the main issues relevant to the purpose of Prop 87 - policy crafted to wean California from non-renewables by some means faster than private sector can do alone, and faster than the public sector might do alone. <br><br>Prop 87 (even with the thrusts in Ethanol) has far greater chances to benefit the public at large, than other oil misadventures of your benefactors.<br><br>While you and others harp on trumped up Ethanol somkescreens and conveniently ignore the real potential in near term innovations in Cellulosic Ethanol (innovations leveraging Genetic Engineering techniques you never applied in your prior Biofuels misadventures) it is far easier to hurl pinpricks that obviously miss the forest, and hit the tree branches. <br><br>Hardly credible, and hardly getting it, Mr Rapier et al.<br><br>Imperfect as Prop 87 or Ethanol might be, there is a decent cross section of interests aside from the oil industry, supporting this well crafted policy, even the ethanol component.<br> <br>Like any public policy, Prop 87 is a compromise and yet overall, has very good prospects of generating numerous sucesses for the benefit of the public at large. That is what public policy is intended to do.<br><br>Unless one has more nefarious conflicts of interests from the Oil Industry, left unspoken?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_18:27:51", "killed": false, "user_key": "7a0933550abd7802e438a68724ed6bea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669420": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>By your argument, noone on the Internet should have been allowed to criticize Enron for price-gouging, because they would be using electricity?? Just because you use oil products in daily life, does it mean you can't criticize their practices?</i><br><br>What Enron did was illegal. What we have here is Mr. Khosla flying around the country, hate-mongering against oil companies, while using their products to do so. If I used my telephone to run down my phone provider, I wouldn\u00e2\u20ac\u2122t be surprised if they turned my phone off and forced me to find another provider.<br><br>Most people have no appreciation of the conveniences they enjoy as a result of oil companies, and they naively believe that alternatives can fill our insatiable desire for energy. I will say again: Not without a massive conservation push.<br><br>What I would like to see Mr. Khosla do, if he is going to criticize oil companies in order to push his agenda, to at least get his facts in order, and stop the rampant hypocrisy and juvenile name-calling.<br><br><i>But to the overall prop-87 question: why is it that Alaska, Texas, New Mexico and Louisiana can charge royalties, but California can't? Are Californians getting cheaper oil because of this? </i><br><br>Two points. First, you are arguing about Prop 87. Again, I don\u00e2\u20ac\u2122t care if it passes. I don\u00e2\u20ac\u2122t care what royalty you charge. But at least root the debate in fact. California oil companies pay higher prices than any of the other states you mentioned. That\u00e2\u20ac\u2122s a fact. They pay much steeper income tax rates, and much higher property tax rates. So, when proponents use that tired line \u00e2\u20ac\u0153they aren\u00e2\u20ac\u2122t paying their fair share\u00e2\u20ac\u009d, they are really being disingenuous. A number of your papers in California have pointed this out in editorials. See my comment to Bill Jolitz in my previous essay, where I quoted several of them. Simple question: Would you agree to the overall tax arrangement that Texas has with the oil companies? Think about that, given that it would reduce the taxes oil companies pay in California.<br><br>To Mark Wendman \u00e2\u20ac\u201c Once again, you show your failure to comprehend the argument, so you dig into the depths your intellectual arsenal and again go for the ad homs. As another poster pointed out, feel free to continue marginalizing yourself.<br><br>You are telling me how good apples are, in response to a comment about why I don\u00e2\u20ac\u2122t like oranges. I like apples, so you are just talking to yourself. You are still whacking away at that straw man. I am not arguing against prop 87, nor have I offered a blanket defense of oil companies. This is not rocket science, fellow. I am arguing against hypocrisy and false arguments that are being used to influence public opinion on energy policy. If you want to address, let\u00e2\u20ac\u2122s say, whether Khosla is being a hypocrite when he complains about oil companies using political clout to get subsidies (ADM, anyone?) then that\u00e2\u20ac\u2122s a topical subject. None of yours are, and at this point I am starting to get the impression that you aren\u00e2\u20ac\u2122t very bright to be unable to figure this out.<br><br>Cheers, RR", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-03_19:34:41", "killed": false, "user_key": "87cb5fc816709fca3f2e5710f52fb57c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669421": {"up_voted": false, "ip": "", "has_replies": false, "message": "Dear Robert,<br><br>I will be succinct in quoting your conflicting statements.<br><br>\"What Enron did was illegal. What we have here is Mr. Khosla flying around the country, hate-mongering against oil companies, while using their products to do so. If I used my telephone to run down my phone provider, I wouldn\u00e2\u20ac\u2122t be surprised if they turned my phone off and forced me to find another provider.\"<br><br>in one paragraph ...<br><br>and here is the next text of interesting contrast?<br><br>\"I am not arguing against prop 87, nor have I offered a blanket defense of oil companies. This is not rocket science, fellow. I am arguing against hypocrisy and false arguments that are being used to influence public opinion on energy policy.\"<br><br>I think it pretty transparent what specifically you are arguing for (or against) despite your own weak arguments to the contrary.<br><br>By trying to demean the major spokesman of Prop 87 and specifically the proposal to use Ethanol (initially conventional corn based non cellulosic technology to just merely get infrastructure jump started) you are not what you think you try to portray yourself as.<br><br>It is quite clear on the other hand that Khosla has repeatedly indicated that innovations in cellulosic will do what you protest cannot be accomplished.  I wholeheartedly agree with Khosla and his efforts. I disagree with your own  partial and largely deceptive arguments, no matter how well they are phrased.<br><br>This is fundamentally the bone you repeatedly chew at, and to your own detriment. Even if you chew different sides of the bone each time, it is the same bone you chew. You will be proven terribly wrong, and not in time to apologize before you damage a beneficial effort you demean repeatedly.<br><br>Typically chemical process industries are slow at innovation, and expectations as such are calibrated too low in relation to the ability of individuals to actually innovate at a conceptual level. At an industry level, this is attributable to a slowing of cross fertilization of techniques and methods between unrelated disciplines, once in industry. IE new ideas tend to diffuse slower in industry than the hodgepodge of academia. This phenomena is normal with exceptions few and far between. A counterpoint is the application of combinatorial techniques, which in specific cases are making unusual advances of particular note. But this is a rare exception.<br><br>Those who practice regular innovations recognize this limiting effect of over specialization in industry and act appropriately to compensate. Those who cannot fathom how to speed up substantive innovation, chafe at others success, and demean others efforts. <br><br>In your specific case, you have very limited exposure to Genetic Engineering techniques [as applied to enzyme production and in plant GM incorporation for potential application to increasing efficiency of cellulosic ethanol] and its promises and opportunities, and as such you are overly dismissive of such, at a rather basic, wave it away level. Many of the naysayers seem to view from this same perspective as yours, in addition to the canard of the tax itself. There yet remain other innovations less apparent in potential, but possibly complementary to GM techniques.<br><br>You deny this as a dynamic coloring your pessimistic and dismissive perspective, and as such categorize the initial Ethanol thrust as not viable based on your own observations and your own failure to actually implement commercial biofuels into large scale commercial auto fueling, and specifically ethanol on YOUR PART. IE if you could not succeed, why let others try, and why might others succeed?? <br><br>Another variant of the Aussie tall poppies effect. You fail to recognize your own technical limitations and project your actual technical shortcomings upon others you believe incapable of surmounting your own deficiencies. And others of similar lack of technical breadth believe your opinions as truth be told. NIH comes to mind in spades.<br><br>Despite your prominence at the OilDrum, you are dead wrong in your prognostications of obtuse and circular illogic regarding mostly small Ethanol limitations as being showstoppers.<br><br>You NEVER answer to my observations re Genetically Engineered Enzyme / Cellulase innovations as to tempering your wrong and premature conclusions, and I specifically take issue with your continual aspersions upon others far more accomplished commercially than you will ever achieve in your lifetime. <br><br>I speak not of myself, I am merely being polite about your insolence to others, couched in your know it all attitude, when you are merely ignorant about genetic engineering's potential and make conveniently short arguments about far simpler matters similarly prematurely misinterpreted by you. <br><br>I\u00e2\u20ac\u2122d personally never let you be responsible for a corporate level R&amp;D project ever. You have neither the temperament of the needed coach, nor the vision to actually identify the trivial advances critical to commercialization, nor the curiosity of that which you do not already know. Your implicit demeaning of farmers comes to mind as something which would never pass muster in a team oriented production plant. Good luck in the North Sea. It is a good place for your temperament and skills with equally stubborn Scotsmen. I know btw...<br><br>The specific issue re GM is narrowly framed, and you continually dodge answering. No matter how you wish to word your responses, they are evasive and lacking the very substance you claim I lack. <br><br>In fact you have never answered to this specific point of the probable impact of genetic engineering applied to enzymatic predigestion of cellulosic feed stock. Never in any useful manner. You certainly have no material exposure to GM technology, that is self evident both in publications and patents you have. I am far far from expert, but I have familiarity that you seem not to possess the curiosity to gain. I will not comment any further on this.<br><br>The other matters you have covered with a broad overreaching swath of limited detail out of your lazy convenience, regarding present low efficiency of infrastructure matters in transport and gathering of feed stock and product, you are merely being quite openly deceptive, even if eloquently written. An example of this follows.<br><br>You have repeatedly in the past and recent posts indicated that farmers vainly hope that more production will solve efficiency deficits. That is the obvious lowest common denominator. You have clearly ignored the specifics of the cause and more important the OBVIOUS improvements that one can trivially observe will be brought to bear in all phases of distribution in time, as volume, revenue and experience warrant.<br><br>The canard you repeatedly lean upon, of the impossibility of mixing oil and ethanol in a common pipeline, you fail to acknowledge that dedicated Ethanol pipelines at sufficient volumes will address this trivially. Ignored all the time by the tenaciousDNA, who conveniently goes back to dismissing the plainspoken farmer's paraphrased quote that \"volume fixes all\", and conveniently leave the discussion cut short.  Well why is this? (please do not tell me about corrosion effects in possible ethanol pipelines as this is being addressed by a new startup\u00e2\u20ac\u2122s pipe coating technology)<br><br>Well we both know volume does not fix all by being left alone with the same material facts, but we also both know that by changing the facts, the numbers do not remain constant. Therein lies your weak leg, and one of the basic reasons you are far from what you protest you claim to be.<br><br>You also NEVER address the root cause of WHY ethanol is a must in the interim as a transitional corn based renewable fuel - that specifically Khosla describes and explains thoroughly in thoughtful painstaking detail. Again you are prematurely dismissive for unspoken reasons.<br><br>Technically and financially, the initial viability of Ethanol as a complementary fuel, all comes down to INFRASTRUCTURE (outside of the fuel alone).<br><br>The hardware implications of either biodiesel, or hydrogen or other conceivable renewables can not cheaply leverage off the present infrastructure of internal combustion, largely gasoline fueled IC vehicles with liquid non pressurized fueling. And yes I am reasonably familiar with conversion requirements for E85 in gasoline internal combustion motors. The costs are very modest for E85 conversion, which is why this is actually viable...<br><br>So where you are claiming deception, I call your kettle Black.<br><br>You ignore all the real nitty gritty details in infrastructure up and down the food chain of automobiles, that affect an overall decision properly and thoughtfully biased towards the sensible compromise of an incremental renewables migration strategy, ie one that is actually pragmatic from a business sense and able to be widely proliferated at minimal disruption to the existing infrastructure / food chain in fueling and automobile manufacture. <br><br>The larger the differences of an innovation in fueling technology is in details, and the larger the hurdle to practical and timely implementation. I figure that is pretty obvious, at least to some who have conducted any business up close and personal. It does not take an MBA in marketing to understand this in the least, but some folks have conceptual challenges nonetheless.<br><br>If you were to properly and sensibly address the BUSINESS realities in renewables for automotive fueling, and YOU might have some credibility, which you presently do not have in the least, despite your surface eloquence. <br><br>Although it is apparent that many thoughtful folks take your word as truth, some can actually see the gaping holes in your selective logic. This is the sign of a decent debater, I grant you that, but you are encountering someone calling your repeated bluffs, of partial and faulty facts you improperly represent as truth. <br><br>This is your mode of operation, and while you try to condescend - out of habit from your position on the OilDrum, your arguments are far weaker than what you claim of others weaknesses to be. <br><br>Your narrow perspective of the overall BUSINESS and Technology challenge to implementation of renewables, is immature, incomplete and too narrowly perfectionist to have half a chance of succeeding in the real world which includes factors both in and outside of drilling and refineries. <br><br>I take issue with your claims technical, your aspersions upon others actually deserving of your respect (I am not referring to me), and your na\u00c3\u00afvet\u00e9 in matters of establishing new markets and businesses. It is profoundly apparent you are too wonkish, too nerdy, but oddly limited actual intellectual curiosity in areas related to implications of leapfrog innovations even in your own purported expertise.<br><br>You are hardly deserving of this succinct response to your continual evasions and misrepresentations of minor challenges as being insurmountable, aside from your obvious pessimism regarding things you are clearly unfamiliar about.<br><br>I will leave it at that. <br><br>Good Luck Robert.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-04_00:01:21", "killed": false, "user_key": "7a0933550abd7802e438a68724ed6bea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669422": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br>Thanks for the analogy. I agree with rest of your arguments which are not _against_ alternative fuels per se, but present the things as they stand. If indeed ethanol costs less to produce and _can_ be sold at higher prices than oil, then market forces will naturally lean towards it (which isn't quite happening). Why would anybody want to deal with oil (and oil holding nations) anyway, if it costs more? I take your stand to be neutral on this.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-04_02:42:52", "killed": false, "user_key": "6566f1558fa9b77ce2f3f7605c5aa59e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669423": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi Vinuth,  <br><br>REGARDING - \"Thanks for the analogy. I agree with rest of your arguments which are not _against_ alternative fuels per se, but present the things as they stand. If indeed ethanol costs less to produce and _can_ be sold at higher prices than oil, then market forces will naturally lean towards it (which isn\u00e2\u20ac\u2122t quite happening). Why would anybody want to deal with oil (and oil holding nations) anyway, if it costs more?\"<br><br>I think the actual situation is more nuanced than you imply. And the rational for the present situation and Prop 87 funding is supported by the actual facts.<br><br>Your description avoids noting that a notable additional market barrier is automobile conversions to alternative fuel capability and # of fueling stations selling the fuel.<br><br>Cost of ethanol is one part of this equation. Part of what Prop 87 is intending to do is to grow the infrastructure of all renewable sources of energy, including ethanol. And grow the infrastructure in a useful manner - up and down the fueling ecosystem of manufacture through end use market. Most vehicles presently on the road are not E85 capable, nor easily retrofittable.<br><br>A certain small percentage of vehicles that are not E85 ready, can be retrofitted,  but this is small. The jump starting of efforts in ethanol has to comprise a number of disparate parts of the food chain - manufacture and sales of E85 capable / ready vehicles, increasing supplies of the fuel, increasing the number of retail fuel outlets having the necessary E85 pump and tanks for sales, and so on. <br><br>One has to also provide unique aspects of fuel supply / manufacturing infrastructure to make the alternative a viable volume alternative, and there is more.<br><br>This more complex situation presently does provide an unspoken barrier in the present to pure cost driven sales.<br><br>There is more to it than that, but I will also point out that the conversion of large segments of vehicle manufacturing capacity to E85 capable FFV - Flex Fuel Vehicles, is particularly inexpensive compared to ALL alternative renewable fuels at present, especially for Internal Combustion motors that comprise the largest segment of present vehicle manufacture.<br><br>That point of an ecosystem of infrastructure for E85 - a very important matter, gets lost in Robert's selective narrow critiques, as if his reality is merely refining and manufacturing supply centric. Don't we wish it were so simple. <br><br>We might at our desks say that yet another potential vehicle fuel is a better choice for a Renewable type fuel, but so far the implications for changes to the mix of vehicle manufacture presently available from large auto manufacturers, and the ease of implementing E85 retail fueling pumps / stations, is a large reason why Khosla indicates this compromise is the best interim choice. This compromise is in part dictated by the complexities of the entire vehicle fueling foodchain.<br><br>I hope that you might begin to understand that theoretical aspects to evaluate a narrow metric of present efficiency of a candidate alternative fuel, is merely one part of the more complex tapestry of criteria.<br><br>Notable is that buildout of infrastructure has many ramifications in the viability of any alternative fuel. First order of business is to increase the potential end use market of vehicles, which in almost all alternative renewable fuels is considerably more expensive than adding E85 FFV Flex Fuel capability.<br><br>The first job of the infrastructure \"sales function\" is to convince automobile manufacturers to increase E85 FFV vehicle manufacture significantly. This takes time and is not a step function. <br><br>And it does require a sales effort on the part of proponents of the strategy, to the auto manufacturers.<br><br>I hope this provides you with a more complete understanding of merely some of the market, manufacture and distribution complexities.<br><br>Numerous writings by Mr. Khosla are posted here<br><a href=\"http://www.khoslaventures.com/resources.html\" rel=\"nofollow\">http://www.khoslaventures.com/resources.html</a><br>and on venturebeat.<br><br>Best Regards, Mark Wendman", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-04_06:33:36", "killed": false, "user_key": "7a0933550abd7802e438a68724ed6bea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669424": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mark,<br><br>As I told you several posts back, if you feel the need to keep responding with incredibly long-winded, non-topical posts, you still don\u00e2\u20ac\u2122t get it. Your problem is, despite a long track-record detailing my actual position on energy issues, you can\u00e2\u20ac\u2122t accept that. You just \u00e2\u20ac\u0153know\u00e2\u20ac\u009d deep down that my position is something else. So, you cast aspersions and argue against what you imagine my position to be. You have quite a vivid imagination, and you are wasting everyone\u00e2\u20ac\u2122s time.<br><br><blockquote>I think it pretty transparent what specifically you are arguing for (or against) despite your own weak arguments to the contrary. </blockquote><br><br>If that was true, my guess is that you would have devoted some of that long-winded diatribe to actually addressing what I wrote in this essay. Despite writing thousands of words in response, you refuse to do that and instead argue against positions I have never taken. Are you completely incapable of reading for comprehension, or do you merely think your posturing is going to earn you an \u00e2\u20ac\u0153atta boy\u00e2\u20ac\u009d by Mr. Khosla?<br><br><blockquote>By trying to demean the major spokesman of Prop 87 and specifically the proposal to use Ethanol\u00e2\u20ac\u00a6</blockquote><br><br>Mr. Khosla demeans himself with his juvenile attacks. I have seen enough mud-slinging in politics to last me a lifetime, and I am sick of it. What I have done is take his claims and rebut them. What you have failed to do, time after time, is to show where my rebuttal is wrong. Instead, you are happy spending thousands of words talking to yourself.<br><br><blockquote>You NEVER answer to my observations re Genetically Engineered Enzyme\u00e2\u20ac\u00a6</blockquote><br><br>I have let you get away with that a couple of times, but this one is just a lie. Do you want me to embarrass you by posting the specific replies I have given you regarding genetic engineering? But the problem is, since you don\u00e2\u20ac\u2122t understand cellulose chemistry, you don\u00e2\u20ac\u2122t understand the limitations of genetic engineering. You just think \u00e2\u20ac\u0153genetic engineering \u00e2\u20ac\u201c problem solved.\u00e2\u20ac\u009d<br><br>I would also point out to the reader that Mark recently wrote a gushing column over Mr. Khosla\u00e2\u20ac\u2122s wonderful new cellulosic breakthrough. But Mark didn\u00e2\u20ac\u2122t understand that this was actually biomass gasification, which was the partial inspiration for my essay <a href=\"http://www.theoildrum.com/story/2006/10/22/211321/89\" rel=\"nofollow\">Cellulosic Ethanol vs. Biomass Gasification</a>. I corrected Mark with a comment following his essay, and he refused to publish it. That tells me all I need to know about how much Mark is actually interested in an honest debate over energy policy. I never censor anyone. I let their views be heard. Mark Wendman wishes to silence those voices he disagrees with, which is sad because he doesn\u00e2\u20ac\u2122t even understand the issues. But if you want to have an open debate, come on over to The Oil Drum. We don\u00e2\u20ac\u2122t censor views \u00e2\u20ac\u201c even those we disagree with.<br><br><blockquote>I will leave it at that.</blockquote><br><br>Will you? Won\u00e2\u20ac\u2122t you treat us all to another thousand word diatribe in which you once again throw out personal attacks, ignore Mr. Khosla\u00e2\u20ac\u2122s hypocritical arguments, and refuse to address my rebuttals?<br><br>Cheers, RR", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-04_12:45:49", "killed": false, "user_key": "87cb5fc816709fca3f2e5710f52fb57c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669425": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>Question for you on the graph from Nebraska:  <br><br>Does that account for the actual energy produced from a gallon of gasoline or ethanol?  I believe the answer is no and if so, the cost per unit of energy is almost 3x more expensive with ethanol than gasoline.  Additionally, what energy sources are the ethanol plants using in their production of ethanol?  I'd be surprised to learn if they were all green sources and they transport it to the distribution points and then on to the retail outlets on all ethanol using trucks?  It sounds to me like this issue is two fold, one is the cost of gasoline and keeping it 'low and affordable' to the consumer and the second is using renewable energy sources.  It seems like apples and oranges are getting compared here.  A gallon of gasoline doesn't produce the same amount of energy as a gallon of ethanol so it would make sense to create and measure upon a unit of energy as opposed to a gallon of liquid.   You mention the $7.24 price point for the net energy equivalent of one gallon gasoline and I would like you to elaborate on that.  If the point of pro 87 folks is to keep the cost of energy lower and they are doing so by comparing the cost of a gallon of ethanol to a gallon of gasoline there would appear to be very questionable logic behind that argument.  Am I missing something because that just seems too obvious to not be dwelled on by the oil producers as if this is the case, the environmental trade off if you will, is close to $5 per gallon to use ethanol.  That seems expensive to me and goes against the grain of the argument for keeping costs lower.<br><br>Last but not least ethanol is a fossil fuel is it not?  Should there be a way for someone to snap their fingers and the gasoline industry disappear and be replaced by ethanol wouldn't we be having this same discussion sooner or later about ethanol and some new alternative fuel source?<br><br>I am excited about solar and wind power because those sources allow for the individual consumer to produce their own power and not be so subject to international politics when burn a watt or start the motor on their cars.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-04_13:20:55", "killed": false, "user_key": "476396362b1e95a67e4443a4df7aec32", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669426": {"up_voted": false, "ip": "", "has_replies": false, "message": "<blockquote>Does that account for the actual energy produced from a gallon of gasoline or ethanol? </blockquote><br><br>No. That is just the selling price for 1 gallon of ethanol and gasoline. The $ per BTU price for ethanol is much higher than for gasoline.<br><br><blockquote>Additionally, what energy sources are the ethanol plants using in their production of ethanol?</blockquote><br><br>The primary energy source in most ethanol plants is natural gas (used to distill the ethanol and make fertilizer for corn), although some lately have been turning to coal. One company, E3 Biofuels, is attempting a much more sustainable model than the status quo, albeit at a much higher capital cost.<br><br><blockquote>You mention the $7.24 price point for the net energy equivalent of one gallon gasoline and I would like you to elaborate on that.</blockquote><br><br> That analysis was by Zfacts, but I have done very similar analyses. It boils down to the net energy. When a gallon of ethanol is produced, it takes the energy equivalent of 0.8 gallons of ethanol to produce it. So, the net energy is only 0.2 gallons. What you find is that you have to produce several gallons of ethanol, each one of them subsidized, to displace 1 gallon of gasoline.<br><br><blockquote>Last but not least ethanol is a fossil fuel is it not?</blockquote><br><br>It is in all but name. I have called it a recycled fossil fuel, since the net captured solar energy is such a small portion of the final energy. Much of the energy came from the fertilizer, which is usually made from fossil fuels. The ethanol is distilled with fossil fuels. The transportation is done using fossil fuels.  Of course Brazil has done a much better job of creating sustainable ethanol, but we don\u00e2\u20ac\u2122t have the climate to grow large amounts of sugarcane.  <br><br><blockquote>I am excited about solar and wind power\u00e2\u20ac\u00a6</blockquote><br><br>I agree. Solar will certainly be left standing after all of the alternatives have competed against one another. I think solar, wind, and biomass gasification, combined with a move to electric transport, is the only real hope we have for averting a Peak Oil disaster.<br><br>Cheers, Robert", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-04_18:04:20", "killed": false, "user_key": "87cb5fc816709fca3f2e5710f52fb57c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669427": {"up_voted": false, "ip": "", "has_replies": false, "message": "Top of the Morning to you Robert,<br><br>Please excuse my tardy response, but I have the flu with fever the past few days.<br><br>Nice to see that you completely and conveniently ignore AGRIVIDA's projected 20% ethanol yield increase from GENETICALLY ENGINEERED, CULTIVATED CORN INCORPORATED CELLULOSIC ENZYMES.<br><br>Nice for you to just handwave that one off, as the same dismissing various other points you have done, to denigrate the upside of Cellulosic Ethanol.<br><br>Where your prior comments about farmers who merely bespoke of volume alone, increasing efficiencies and productivity (without material changes to the process) - as your intellectual crutch as to why implicitly you think that there can be no material changes - is on the face of it laughable, as are many of your similarly conveniently slanted arguments.<br><br>You ignore that many of the ethanol plants recent and in future, can be incrementally upgraded as markets warrant, is quite convenient on your part.<br><br>Initially the capital costs for best in class green Ethanol solutions are onerously high for smaller outfits, but the plant and feedstock and distribution upgrades are feasible and will get done as time and money permit.<br><br>You conveniently skirt the point about the fact that ethanol is the best method to pragmatically migrate the existing internal combustion vehicle infrastructure to cleaner Ethanol, and in time a greener Ethanol production source. <br><br>Increasing Ethanol E85 use will reduce dense urban area air pollution, like in LA and San Francisco regions as two notable examples in California.<br><br>You also fail to acknowledge that the Ethanol pricing charts, vis a vis gasoline, are for production prior to many Ethanol innovations that will come to pass, in part assisted by Prop 87.<br><br>Moreover, you fail to mention the cost of alternatives to ethanol as clean fueling options. Again convenient to ignore. You avoid acknowledging Mr. Khosla's explanation why the best compromise for cleaner fuels near term is ethanol. Khosla describes this in detail, enough that even you can grasp it, if you bother to read.<br><br>Where you dismiss Genetic Engineering methods applied to efficient means to produce optimal Cellulosic enzymes, again you are deceptive. Genetic Engineering Methods, can produce Cellulosic enzymes inside the very same type harvested plants being cultivated (corn) at almost trivial cost increase overall. <br><br>By Genetically modifying the Corn Plant itself to produce the enzyme inside the cellulosic mass of the Corn Stalk and husk, during otherwise normal cultivation of the GM modified corn itself, the enzyme assists in rendering the cellulosic portion of corn able to be transformed to ethanol at greater efficency and with limited external enzyme use in the cellulosics phase.<br><br>Since conventional enzyme manufacture and recovery, to produce Cellulosic enzyme (exsitu of the cultivated plants) are very costly, it is immediately apparent that Genetic Engineering Methods can effect a significant paradigm shift in the viability and cost effectiveness of cellulosic Ethanol production. <br><br>Except if you wish to prematurely handwave this away as impractical and irrelavent, as you have done and continue to do.<br><br>Moreover this same technique of Genetically Engineered in plant formation of Cellulosic Enzymes can be transformational as to the viability of higher feedstock yield cellulosic alternatives such as switchgrass, among numerous other cellulosic feedstocks.<br><br>I will acknowledge that this is yet to be deployed, but your dismissive attitude re the future near term prospects is too convenient - intellectually lazy, as have been many or your slanted diatribes.<br><br>As to more pedantic issues of ethanol production, cultivation, and distribution challenges, you similarly ignore the obvious upsides with a dismissive attitude. Not everyone will be swayed by your denigrating farmers with your inappropriate quote.<br><br>Genetic Engineering methods applied to Cellulosic Ethanol feedstock, will have a material impact on the transformation to a high yield practical cellulosic ethanol process.<br><br>You ignore that GM techniques applied to enzyme formation for GM modified Cellulosic advanced Corn Ethanol will be significantly less costly when GM methods produce the cellulosic enzymes nearly for free in the corn itself. <br><br>Genetic Engineering Methods are no panacea, but sensible and wise application of the methods of Genetic Engineering / Plant Modification can be usefully applied to cost reduce industrial scale cellulosic ethanol production, even if you conveniently fail to acknowledge this.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-06_09:18:55", "killed": false, "user_key": "7a0933550abd7802e438a68724ed6bea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669428": {"up_voted": false, "ip": "", "has_replies": false, "message": "<blockquote>Where you dismiss Genetic Engineering methods applied to efficient means to produce optimal Cellulosic enzymes, again you are deceptive.</blockquote><br><br>Mark, your responses continue to plumb the depths of irrationality. I guess in hindsight, I should have listened to all of those who e-mailed and told me to ignore you. I don\u00e2\u20ac\u2122t know how many times I have to point out to you that I am not now, nor have I ever dismissed the potential of genetic engineering. I am a big fan of genetic engineering. I have pointed this out in responses here, and I have specifically told you this in e-mails. I told you that I advocated genetic engineering as a means to improve the economics of cellulosic ethanol as a graduate student working on this problem. So once again, you are talking to yourself and not rebutting an actual position that I have taken.<br><br>I leave it to the reader to decide Wendman\u00e2\u20ac\u2122s motivation in constantly misrepresenting me. It has become quite tiresome.<br><br>Cheers, RR", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-06_11:52:38", "killed": false, "user_key": "87cb5fc816709fca3f2e5710f52fb57c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669429": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>Thanks for another very data driven, informative article.  It's much easier to read these and come to sound conclusions myself, when there are comprised of true facts and figures from reputable sources.  I tried very hard to pull something out of Mr. Wendman's pseudo-rebuttal so I could hear both sides of the fence, but all I was really able to conclude is that he is concerned about pollution in California, the state in which he lives, he firmly believes Ethanol is the answer to his heartburn (although I still haven't seen any credible data that supports that), and that he really loves Walmart (but evidently doesn't understand that the \"box-stores\" business model for selling gasoline is not to make money on it, but to get people to their store to buy the goods they sell inside the store).<br><br>The reason I decided to write was to just add a little clarity to the questions surround the Ethanol market in the last 12 months, since there seemed to be a couple of questions about it.  Sometimes explaining what drives commodity markets can be difficult, but I don\u00e2\u20ac\u2122t think you will find anybody who knows anything about the ethanol market, not know what was driving high ethanol prices in the 4Q \u00e2\u20ac\u212205 and 1Q \u00e2\u20ac\u212206.  The major driver (so major you, could almost call it the sole driver) was the process of phasing out of MTBE in our U.S. Reformulated Gasoline Markets (RFG).  Given the short time frame (270 days after our President signed the Energy bill) the refineries and gasoline blending facilities had to react to the relaxation of the MTBE mandate (that is the Federal Government said they were no longer requiring refineries to blend MTBE into gasoline and therefore once this mandate is released, if oil companies continue to blend MTBE into finished gasoline, the U.S. government will no longer protect you from the long line of money grubbing, class action lawyers standing outside their door waiting to sue someone (with deep pockets) for trace amount of MTBE found in the groundwater throughout the U.S.). <br><br>Since there was minimal capital investment required to blend ethanol into finished gasoline at U.S. truck racks, and ethanol provided some similar properties to the gasoline pool as MTBE did; ethanol appeared to be a good solution to take up some of the volume vacated by MTBE.  Even though the change effected a small volume percentage (maximum of 10%) of a very small fraction of Motor Fuel (Only a handful of large U.S. Metropolitan areas), the change in ethanol demand was huge.  It caused Ethanol prices to go from $2/gal range to the $5/gal range.  Mr. Wendman, your comments on Genetic Engineering of Cellulosic Enzymes are intriguing and I would like to know more about it, but if it\u00e2\u20ac\u2122s improvements are in parallel with any other genetic advancement (10 to 20% improvement), that won\u00e2\u20ac\u2122t even scratch the surface of what type of ethanol production we would need to start even making a dent in our appetite for gasoline here in the U.S.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-06_13:23:41", "killed": false, "user_key": "6ec4aef49243198b5b236dd277b55a81", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14669430": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"This is also why I become concerned when people with expertise in one field try to influence policy in another. My dentist is a great guy, and very good at what he does, but I wouldn\u00e2\u20ac\u2122t let him remove my appendix. And while he should certainly be involved in the discourse, he shouldn\u00e2\u20ac\u2122t receive undue influence on energy policy just because he is a good dentist.\"<br><br>Your quote is ironic in that a few of the sinister aspects of the \"No on 87\" commercials was to hire the head of the firefighters union to then quote economics experts to explain how firefighters might not have enough gas to go fight a fire, and he said it with a straight, authoritative face.<br><br>Many of the no-on-87 commercials converted opinions to facts. <br><br>I don't have an argument with some of your points, but you actually hammered on specifics whereas the no campaign made many questionable accusations (and I am being very polite by putting it that mildly) and then just repeated their confusing claims over and over, to the tune of 85 million spent in advertising, almost twice what the yes side spent on advertising,<br><br>Even if there was an initial slant towards ethanol, it would not have lasted.  The tax would have worked it's way towards solar, wind, and improved battery capacity.  Do you know why the tax would have been beautifully spread around, because of blogs like this one.<br><br>Do you think you can have an affect on whether or not Prop 87 passes, but if it passes, you will have no influence to make sure the money is properly spent?  Do you really believe your blog only works before the fact, and not during the execution of the initiative in question?   I'd call that an inconvenient truth you chose to ignore.<br><br>Instead of fighting fair, which you claim the opposing factions are not doing by receiving subsidies, (as if fighting a war in Iraq isn't an oil subsidy) we have the oil industry and car manufacturers buying up battery technology patents and sitting on them, and any attempt at technology breakthroughs they invest in are for supplementing the burning of fuel, not replacing it.<br><br>Why does the oil industry care if they get hit with a very minimal tax that would have worked out to LESS THAN THREE CENTS A GALLON, when we all are slaves to their product, which was pointed out in this very blog.   Your quote  \"I find it very ironic that those who are flying around the country to decry the \u00e2\u20ac\u0153evil oil industry\u00e2\u20ac\u009d are doing so using jet fuel supplied by the oil industry. They enjoy many conveniences as a result of oil and gas production, but have deluded themselves into believing their lifestyle could be maintained if we all switched to alternative energy\"...<br><br>So you admit that we can't do without your product, but if this miniscule three cent tax had been added to every gallon of gas, your industry would have just come to a grinding halt. Somebody is having it both ways, but it's not the alternative energy folks, it's the oil industry.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-12-18_15:53:04", "killed": false, "user_key": "017523eab59ed6604694497ac0fe5549", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": true}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "22046995", "user_id": "anonymous", "forum_id": "7041", "hash": -5767801646253372402}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "people_in_glass_houses", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 22046995, "num_posts": 22, "closed": false, "queued": false, "killed": false}, "reactions_limit": 10, "context": {"show_reply": true, "use_fb_connect": true, "forum_facebook_key": "547225e2dda46ccfdec279a9a44a0074", "use_yahoo": false, "subscribed": false, "use_twitter_signin": true, "use_openid": false, "realtime_speed": 5000}, "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://media.disqus.com"}, "media_url": "http://media.disqus.com"};
	/* */ this.jsonData.cookie_messages = {"user_created": null, "post_has_profile": null, "post_twitter": null, "post_not_approved": null}; this.jsonData.session = {"url": null, "name": null, "email": null}; /* */

	
	this.curPageId = 'dsq-comments';

	this.frames = {};
};

var disqus_popup_reference = null;

if(typeof DsqLocal == 'undefined') {
	DsqLocal = {};
}



/**
 * Dsq.Strings: UI strings
 */
Dsq.Strings = new function() {
	this.ADD_NEW_COMMENT = "Add New Comment";
	this.LOG_INTO_DISQUS = "Log into DISQUS";
	this.USE_MEDIA = "Use Media";
	this.LOGOUT = "Logout";
	this.SHARING_OPTIONS = "Sharing options";
	this.SHARE_ON = "Share on";
	this.TWEET_THIS_COMMENT = "Tweet this comment";
	this.SHARE_ON_NEWSFEED = "Share on news feed";
	this.SEND_UPDATE_TO_YAHOO = "Share via Yahoo! Updates";
	this.REBLOG_ON = "Reblog on";
	this.CONFIGURE_OPTIONS = "Configure options";
	this.POST_AS = "Post as";
	this.SORT_BY = "Sort by";
	this.SUBSCRIBE_BY_EMAIL = "Subscribe by email";
	this.SUBSCRIBE_BY_RSS = "Subscribe by RSS";
	this.POPULAR_NOW = "Popular now";
	this.BEST_RATING = "Best Rating";
	this.NEWEST_FIRST = "Newest first";
	this.OLDEST_FIRST = "Oldest first";
	this.HIGHLIGHTED = "Highlighted";
	this.UNSUBSCRIBE = "Unsubscribe";
	this.REQUIRED = "Required";
	this.OPTIONAL = "Optional";
	this.YOU_ARE_COMMENTING_AS_A = "You are commenting as a";
	this.LOGIN_BELOW = "Login below";
	this.PLEASE_LOGIN_BELOW_TO_COMMENT = "Please login below to comment.";
	this.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL = "Subscribe to all comments by email";
	this.DO_NOT_SUBSCRIBE_TO_COMMENTS = "Do not subscribe to comments";
	this.REALTIME_UPDATING_IS = "Real-time updating is";
	this.ENABLED = "enabled";
	this.PAUSED = "paused";
	this.PAUSE = "Pause";
	this.RESUME = "Resume";
	this.SHOW = "Show";
	this.JUST_NOW = "Just now";
	this.REPLY = "Reply";
	this.EDIT = "Edit";
	this.FLAG = "Flag";
	this.MODERATE = "Moderate";
	this.CANCEL = "Cancel";
	this.REPLYING_TO = "Replying to";
	this.REPORT_MISSING_REACTIONS = "Report missing reactions";
	this.POST_A_COMMENT = "Post a comment";
	this.FLAG_INAPPROPRIATE_COMMENT = "Flag inappropriate comment";
	this.FLAGGED = "Flagged";
	this.NO = "No";
	this.YES = "Yes";
	this.NEVER_MIND = "Never mind";
	this.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR = "Are you sure you would like to report this comment to a moderator";
	this.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION = "This will flag comments for moderators to take action";
	this.TO_RATE_PLEASE_LOG_IN = "To rate, please log in";
	this.JUST_A_MOMENT = "Just a moment...";
	this.GUEST = "Guest";
	this.NAME = "Name";
	this.EMAIL = "Email";
  this.WEBSITE = "Website";
  this.IN_REPLY_TO = "in reply to";
  this.SETTINGS = "Settings";
  this.MODERATOR_OPTIONS = "Moderator options: ";
  this.MODERATE_OPTIONS = "Moderate Options";

  // Thread moderator actions
  this.CLOSE_THREAD = "Close thread";
  this.OPEN_THREAD = "Open thread";
  this.REMOVE_THREAD = "Remove thread";
  this.RESTORE_THREAD = "Restore thread";
  this.ACTIONS = "Actions";
};
// Dsq.Strings

/**
 * Dsq.FmtStrings: functions that return interpolated UI strings
 */
Dsq.FmtStrings = new function() {
	// Seems we have to use named interpolation for Django to translate. Investigate more.
	this.LOGGED_IN_AS = function(username) {
		return Dsq.Utils.interpolate('Logged in as %(username)s', {username:username});
	};

	this.LOGOUT_FROM = function(disqus) {
		return Dsq.Utils.interpolate('Logout from %(disqus)s', {disqus:disqus});
	};

	this.SHOWING_COMMENTS_FULL = function(total, num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comment", {num:num, total:total});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comments", {num:num, total:total});
		}
	};

	this.SHOWING_COMMENTS_WITHOUT_PAGINATION = function(num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comment", {num:num});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comments", {num:num});
		}
	};

	this.NUMBER_OF_COMMENTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s comment'
				: '%(num)s comments'
			), {num:num});
	};

	this.NUMBER_OF_LIKES = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s like'
				: '%(num)s likes'
			), {num:num});
	};

	this.NUMBER_OF_POINTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s point'
				: '%(num)s points'
			), {num:num});
	};
};
// Dsq.FmtStrings






Dsq.CSRF_TOKEN = '49645233e44f7d1a82290f178d2e9fa8';
Dsq.COMMENTS_RE = /(<li.*?id="?dsq-comment-(\d+)"?.*?>)((?:.|\s)*?)(<\/li>)/gim;
Dsq.POST_RE = /(<div.*?id="?dsq-comment-header-(\d+)"?.*?>)((?:.|\s)*?)(<\/div>)\s*(<div.*?class="?dsq-comment-body"?.*?>)((?:.|\s)*)(<\/div>)/gim;
Dsq.POST_BODY_RE = /\s*(<div.*?id="?dsq-comment-message-(\d+)"?.*?>)((?:.|\s)*)(<\/div>)/gim;
// HACK: Safari ends with "-->" while other browsers end with "--&gt;" as expected.
Dsq.MEDIA_POST_RE = /&lt;!--\[(.*?)\]--(?:>|&gt;)/gim;



var FragmentPacket = function(reader, writer, writer_url, is_child, receiveCallback) {
	var that = this;
	this.reader = reader;
	this.writer = writer;
	this.writer_url = writer_url;

	this.is_child = is_child || false;
	this.receiveCallback = receiveCallback;

	this._lastHash = null;

	this._accumMsg = '';

	this._lastSeqno = 0;

	this.MAX_DATA_LEN	= 1024;

	this.WAIT_TIME		= 10;

	this.READY		= 0x1;
	this.WRITING	= 0x2;
	this.FIN		= 0x4;
	this.ACK		= 0x8;

};

FragmentPacket.prototype.createListener = function() {
	var that = this;
	var listener = function() {
		that.recv();
	};
	return window.setInterval(listener, 10);
};

FragmentPacket.prototype.log = function(msg) {



};

FragmentPacket.prototype.recv = function() {
	var hash;
	if (/MSIE/.test(navigator.userAgent)) {

		hash = this.reader.name;
	} else {

		var hashIndex = this.reader.location.href.indexOf('#');
		if (hashIndex == -1) {
			return;
		}
		hash = this.reader.location.href.substring(hashIndex+1);
	}
	var flags = parseInt(hash.substring(0, 4), 10);
	var seqno = parseInt(hash.substring(4, 24), 10);
	var data  = hash.substring(24);

	if (this._lastHash !== hash) {
		this._lastHash = hash;
		this.log('recv: ' + hash);

		this.log(' flags: ' + flags);
		this.log(' seqno: ' + seqno + ' len: ' + hash.substring(4, 24).length + ' (' + hash.substring(4, 24) + ')');
		this.log(' data: ' + data + ' len: ' + data.length);

		this._lastSeqno = seqno;

		if (flags & this.WRITING) {
			this._accumMsg += data;
			this.sendFlag(this.ACK, seqno);
			if (flags & this.FIN) {
				this.log('recv finished: ' + decodeURIComponent(this._accumMsg));
				this.receiveCallback(decodeURIComponent(this._accumMsg));

				this._accumMsg = '';

				this.sendFlag(this.READY | this.ACK, this._lastSeqno);
			}
		}
	}

	return {
		flags: flags,
		seqno: seqno,
		data: data
	};
};

FragmentPacket.prototype.sendRawPacket = function(packet) {
	if (/MSIE/.test(navigator.userAgent)) {
		this.writer.name = packet;
	} else {

		this.writer.location.href = this.writer_url + '#' + packet;
	}

};

FragmentPacket.prototype.sendFlag = function(flag, seqno) {
	this.sendRawPacket(this._zerofill(flag, 4) + this._zerofill(seqno, 20));
};

FragmentPacket.prototype.send = function(msg) {
	this._send(0, encodeURIComponent(msg));
};

FragmentPacket.prototype._send = function(packetNum, msg) {
	var that = this;
	var recvBuf = this.recv();

	if (packetNum === 0) {

		if (!(recvBuf.flags & this.READY)) {
			this.log('client is not ready, waiting...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		}
	} else {

		if (!( (recvBuf.flags & this.ACK) && (recvBuf.seqno === this._lastSeqno) )) {
			this.log('waiting for ack from client...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		} else {
			this.log('received ack: ' + this._lastSeqno + ' ' + recvBuf.seqno);
		}
	}

	var flags = this.WRITING;
	var num_packets = Math.ceil(msg.length / this.MAX_DATA_LEN);
	this.log('num_packets: ' + num_packets);

	if (num_packets === packetNum) {

		this.log('message successfully sent!');
		this.sendFlag(this.READY | this.ACK, this._lastSeqno);
		return true;
	}

	this._lastSeqno++;

	if (packetNum == num_packets-1) {
		flags |= this.FIN;
	}

	var data = msg.substring(packetNum * this.MAX_DATA_LEN, (packetNum+1) * this.MAX_DATA_LEN);
	var packet = this._zerofill(flags, 4) + this._zerofill(this._lastSeqno, 20) + data;

	this.log('sending raw packet: ' + packet);
	this.sendRawPacket(packet);

	return this._send(packetNum + 1, msg);
};

FragmentPacket.prototype._zerofill = function(num, width) {
	var retval = num.toString();
	var retval_len = retval.length;
	for (var i = 0; i < width - retval_len; i++) {
		retval = '0' + retval;
	}
	return retval;
};

var PostMessagePacket = function(receiver, receiveCallback, id, receiverId) {
	var that = this;
	this.receiver = receiver;
	this.receiveCallback = receiveCallback;
	this.id = id;


	this.receiverId = receiverId;
};

PostMessagePacket.prototype.createListener = function() {
	var that = this;

	var listener = function(e) {

		if (!that.id) {
			that.id = e.data;
			return;
		}


		var id = e.data.split(';')[0];
		if (id !== that.id) {
			return;
		}
		var data = e.data.substring(e.data.indexOf(';') + 1);

		that.receiveCallback(data);
	};

	if (typeof window.attachEvent == 'function') {
		window.attachEvent('onmessage', listener);
	} else if (typeof window.addEventListener == 'function') {
		window.addEventListener('message', listener, false);
	} else {
		throw new Error('No method found to create event listener for PostMessagePacket.');
	}
};

PostMessagePacket.prototype.send = function(msg) {



	var needs_reget = false;
	try {
		if (typeof this.receiver.id == 'undefined' || typeof this.receiver.postMessage == 'undefined') {
			needs_reget = true;
		}
	} catch(e) {


	}
	if (needs_reget && typeof this.receiverId != 'undefined') {
		this.receiver = document.getElementById(this.receiverId).contentWindow;
	}

	var packet;
	if (!msg) {

		packet = this.id;
	} else {
		packet = this.id + ';' + msg;
	}
	this.receiver.postMessage(packet, '*');
};

PostMessagePacket._last_unique_id = null;
PostMessagePacket._get_unique_id = function() {
	var id = (new Date()).getTime();
	if (id == PostMessagePacket._last_unique_id) {
		id++;
	}
	PostMessagePacket._last_unique_id = id;
	return id.toString();
};

var JsonRpc = function() {

	this.ids = {};

	this.objectToJSON = function(obj) {
		var json = '';
		var results = [];

		if (obj === undefined || obj === null) {
			return 'null';
		}

		switch (obj.constructor) {
			case Object:
				for (var property in obj) {
					if (obj.hasOwnProperty(property)) {
						results.push(this.objectToJSON(property) + ': ' + this.objectToJSON(obj[property]));
					}
				}
				json = '{' + results.join(', ') + '}';
				break;
			case Array:
				for (var i = 0; i < obj.length; i++) {
					results.push(this.objectToJSON(obj[i]));
				}
				json = '[' + results.join(', ') + ']';
				break;
			case Number:
			case Boolean:
				json = obj.toString();
				break;
			case String:

				var specialChars = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\\': '\\\\'};

				json = obj.replace(/[\x00-\x1f\\]/g, function(match) {
					var ch = specialChars[match];
					return ch ? ch : '\\u00' + match.charCodeAt().toPaddedString(2, 16);
				});

				json = '"' + json.replace(/"/g, '\\"') + '"';
				break;
			default:

				json = 'null';
				break;
		}

		return json;
	};

	this.createHandler = function(send_func, registered_funcs) {
		var that = this;
		var handler = function(message) {

			try {
				var rpc = eval('(' + message + ')');
			} catch(e) {
				alert('bad JSON: ' + message);
				return;
			}
			if (rpc.method) {

				if (!registered_funcs[rpc.method]) {
					return;
				}

				var retval = registered_funcs[rpc.method].apply(null, rpc.params);
				if (rpc.id) {
					var response = {
						result: retval,
						error: null,	// TODO
						id: rpc.id
					};
					send_func(that.objectToJSON(response));
				}
			} else if(rpc.result) {

				if (!that.ids[rpc.id]) {
					return;
				}

				that.ids[rpc.id](rpc.result);
				delete that.ids[rpc.id];
			}
		};
		return handler;
	};

	this.execute = function(send_func, method, params, response_callback) {
		response_callback = response_callback || null;
		var id = (response_callback) ? (new Date()).getTime() : null;

		var request = {
			method: method,
			params: params,
			id: id
		};

		send_func(this.objectToJSON(request));

		if (id) {
			this.ids[id] = response_callback;
		}
	};
};
JsonRpc = new JsonRpc();

var ParentMessenger = function(childUrl, receiverUrl, container, receiveCallback) {


	if (navigator.userAgent.indexOf('Safari') >= 0 && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf('Version/') + 8), 10) == 3) {
		throw new Error("unsupported.");
	} else if (window.opera) {
		throw new Error("unsupported.");
	}



	if (!receiverUrl &&
		navigator.userAgent.indexOf('Gecko') >= 0 &&
		parseFloat(navigator.userAgent.slice(navigator.userAgent.indexOf('rv:') + 3, navigator.userAgent.indexOf('rv:') + 6)) < 1.9) {
		throw new Error("unsupported.");
	}


	if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)) {


		if (document.domain == window.location.hostname) {
			receiverUrl = '';
		}
	}

	var that = this;
	this.childUrl = childUrl;
	this.receiverUrl = receiverUrl;
	this.container = container || document.body;

	this.packetHandler = null;


	this._ready = false;
	this._error = false;


	var _createReceiverForFragmentPacket = function() {

		that.receiver = document.createElement('iframe');
		that.receiver.src = receiverUrl;
		that.receiver.id = 'receiver_' + (new Date()).getTime();
		that.receiver.name = that.receiver.id;

		that.receiver.frameBorder = '0';
		that.receiver.frameSpacing = '0';
		that.receiver.style.borderStyle = 'none';

		var receiver_onload = function() {
			var receiver = document.getElementById(that.receiver.id).contentWindow;

			try {
				receiver.document.body.innerHTML = '';
			} catch(e) {

				that._error = true;
			}
			receiver.document.body.style.padding = '0px';
			receiver.document.body.style.margin = '0px';

			var child = receiver.document.createElement('iframe');
			child.id = 'child';
			child.name = 'child';
			child.src = that.childUrl;

			child.frameBorder = '0';
			child.frameSpacing = '0';
			child.style.borderStyle = 'none';
			child.style.width = '100%';
			child.style.height = '100%';
			receiver.document.body.appendChild(child);

			that.child = receiver.document.getElementById('child').contentWindow;
			that.receiver = receiver;

			that.packetHandler = new FragmentPacket(that.receiver, that.child, that.childUrl, false, receiveCallback);

			that._listener = that.packetHandler.createListener();

			that.packetHandler.sendFlag(that.packetHandler.READY, 0);

			that._ready = true;
		};

		that.receiver.onreadystatechange = function() {
			if (this.readyState == 'complete') {
				receiver_onload();
			}
		};

		that.receiver.onload = receiver_onload;







		if (Dsq.Utils.ie) {
			if (that.container.clientWidth === 0) {

				var _waitForWidth = function() {
					if (that.container.clientWidth > 0) {
						Dsq.Utils.fixIframesIE(that.container.id);
					} else {
						window.setTimeout(_waitForWidth, 100);
					}
				};
				_waitForWidth();

				that._once = false;
				that.receiver.onresize = function() {
					if (!that._once) {
						Dsq.Utils.fixIframesIE(that.container.id);
					}
					that._once = true;
				};
			}
		}

		that.container.appendChild(that.receiver);
	};


	var _createReceiverForPostMessage = function() {

		var receiver_onload = function() {

			that.packetHandler.send();
			that._ready = true;
		};

		var id = PostMessagePacket._get_unique_id();
		var receiverId = 'child_' + id;


		ParentMessenger['_receiver_onload_' + receiverId] = receiver_onload;

		that.container.innerHTML += '<iframe ' +
			'src="' + childUrl + '" ' +
			'id="' + receiverId + '" ' +
			'name="' + receiverId + '" ' +
			'onload="ParentMessenger._receiver_onload_' + receiverId +'();" ' +
			'></iframe>';

		that.receiver = document.getElementById(receiverId).contentWindow;
		that.packetHandler = new PostMessagePacket(that.receiver, receiveCallback, id, receiverId);
		that._listener = that.packetHandler.createListener();
	};

	if (typeof window.postMessage == 'function') {
		_createReceiverForPostMessage();
	} else {
		_createReceiverForFragmentPacket();
	}

};

ParentMessenger.prototype.sendMessage = function(message) {
	var that = this;
	if (!this._ready) {

		window.setTimeout(function() { that.sendMessage(message); }, 10);
		return;
	}
	this.packetHandler.send(message);
	return true;
};

Dsq.NewFrames = function(url) {
	this.url = url;
};

Dsq.NewFrames.prototype.init = function(onFailure) {
	var that = this;

	try {
		this.messenger = new ParentMessenger(this.url, Dsq.jsonData.integration.receiver_url, this.container, this.receive_callback);
	} catch(e) {
		if (typeof onFailure == 'function') {
			onFailure();
		}
	}

	if (typeof onFailure == 'function') {
		var iId = window.setInterval(function() {
			if (typeof that.messenger == 'undefined') {
				window.clearInterval(iId);
				return;
			}
			if (that.messenger._ready) {
				window.clearInterval(iId);
			} else if (that.messenger._error) {
				window.clearInterval(iId);
				onFailure();
			}
		}, 10);
	}
};

Dsq.NewFrames.prototype._execute = function(method, args, callback) {
	var that = this;
	if (typeof that.messenger == 'undefined') {
		return false;
	}
	JsonRpc.execute(
		function(msg) { that.messenger.sendMessage(msg); },
		method,
		args || [],
		callback);
	return true;
};

Dsq.ReplyFrame = function(container, parent_post_id) {
	var that = this;
	this.container = container;
	this.parent_post_id = parent_post_id;

	var sendFunc = function(msg) {

		Dsq.Debug.log('Dsq.ReplyFrame.sendFunc');
		that.messenger.sendMessage(msg);
	};


	var postComment_onSuccess = function(response) {
		Dsq.jsonData.posts[response.message.id] = response.message.post_meta;
		if (!Dsq.jsonData.users[response.message.post_meta.user_key]) {
			Dsq.jsonData.users[response.message.post_meta.user_key] = response.message.user_meta;
		}


		var reply_position = (typeof(disqus_insert_wrt_sort) == 'undefined' 
			? (Dsq.jsonData.forum.reply_position ? -1 : null) 
			: (Dsq.jsonData.request.sort == 2 ? null : -1));
		
		if (response.message.post_meta.approved) {
			Dsq.Post.insert(response.message.post_meta.parent_post_id || reply_position, response.message.id, response.message.post_meta.message);
		}

		Dsq.Templates.postComment_onSuccess(response, parent_post_id, response.message.id);
	};

	var postComment_onFailure = function(response) {
		Dsq.Popup.popModal(response.message, 'Error');
		Dsq.Templates.postComment_onFailure(response, parent_post_id, response.message.id);
	};

	var editComment_onSuccess = function(response) {
		var post_id = parent_post_id;
		var message = Dsq.$('dsq-comment-message-' + post_id);
		
		message.innerHTML = response.message;
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};
	
	var editComment_onFailure = function(response) {
		var post_id = parent_post_id;
		
		Dsq.Popup.popModal('Sorry, there was an error editing this comment.', 'Edit Error');
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};

	var getUserByEmail_onSuccess = function(response) {
		var msg = response.message;
		var fields = Dsq.Templates.getFormFields(parent_post_id);

		if (msg.username) {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'login', {
				'username': msg.username,
				'display_name': msg.display_name,
				'avatar_url': msg.avatar_url,
				'verified': msg.verified,
				'email': fields.email.value
			});
		} else {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'register');
		}
	};

	var validateAuth_onSuccess = function(response, auth_choice) {
		Dsq.Templates.postComment(parent_post_id, null, true, auth_choice);
	};

	var validateAuth_onFailure = function(response, auth_choice) {
		var pid = parent_post_id ? '-' + parent_post_id : '';
		var msg = response.message;

		if (auth_choice == 'register') {
			var fields = ['email', 'username', 'password'];

			for (var i = 0; i < fields.length; i++) {
				var field = fields[i];
				var errorDiv = Dsq.$('dsq-' + field + '-errors' + pid);

				if (msg[field]) {
					errorDiv.innerHTML = msg[field];
				} else {
					errorDiv.innerHTML = '';
				}
			}
		} else if (auth_choice == 'login') {
			Dsq.$('dsq-lightbox-errors' + pid).innerHTML = '<p>We couldn\'t log you in. Please verify your login.</p>';
		}
		
		Dsq.Templates.setLoadingButton(false);
	};

	this.receive_callback = JsonRpc.createHandler(sendFunc, {
		'postComment.onSuccess': postComment_onSuccess,
		'postComment.onFailure': postComment_onFailure,
		'editComment.onSuccess': editComment_onSuccess,
		'editComment.onFailure': editComment_onFailure,		
		'getUserByEmail.onSuccess': getUserByEmail_onSuccess,
		'validateAuth.onSuccess': validateAuth_onSuccess,
		'validateAuth.onFailure': validateAuth_onFailure,
		'reload': function() { window.location.reload(); }
	});

	this.url = Dsq.Urls.REPLY +
		'?' + (new Date()).getTime() +
		'&f=venturebeat' +
		'&t=people_in_glass_houses' +
		'&ff=' + Dsq.Thread.ff +
		'&default_text=' + encodeURIComponent(disqus_default_text) +
		'&ifrs=' + encodeURIComponent(disqus_iframe_css);
	if (this.parent_post_id) {
		this.url += '&parent_post=' + this.parent_post_id;
	}
};

Dsq.ReplyFrame.prototype = new Dsq.NewFrames(Dsq.ReplyFrame.url);

Dsq.ReplyFrame.prototype.post = function(author_name, author_email, author_url, authenticate, sharing_services, subscribe) {
	this._execute('postComment', [author_name, author_email, author_url, authenticate, sharing_services, subscribe]);
};

Dsq.ReplyFrame.prototype.edit = function(post_id, message) {
	this._execute('editComment', [post_id, message]);
};

Dsq.ReplyFrame.prototype.setState = function(parent_post_id, depth) {
	this._execute('setState', [parent_post_id, depth]);
};

Dsq.ReplyFrame.prototype.getUserByEmail = function(email) {
	this._execute('getUserByEmail', [email]);
};

Dsq.ReplyFrame.prototype.validateAuth = function(auth_choice, email, username, password) {
	this._execute('validateAuth', [auth_choice, email, username, password]);
};

Dsq.ReplyFrame.prototype.authenticateFacebook = function(session, forum_url) {
	this._execute('authenticateFacebook', [session, forum_url]);
};

	Dsq.Facebook = function() {
	var that = this;

	var handleSessionData = function(session) {

		var forum_url = Dsq.jsonData.forum.url;




		if (typeof disqus_facebook_forum != 'undefined') {
			forum_url = disqus_facebook_forum;
		}
		Dsq.frames.reply_0.authenticateFacebook(session, forum_url);
	};

	var onLogin = function() {
		FB.Connect.getSignedPublicSessionData(handleSessionData);
	};

	this.login = function() {
		FB.Connect.requireSession(onLogin, true);
	};
};
Dsq.Facebook = new Dsq.Facebook();


	






Dsq.Themes = {};

Dsq.Themes.narcissus = new function() {
	this.addPostContainer = 'dsq-form-area';
	this.textareaContainer = 'dsq-textarea-wrapper';



	
	this.header = function() {
		var comments_count, total_posts, num_posts;
		var html = '';
		var missing_perm_tmpl;

		if (Dsq.jsonData.request.missing_perm) {
			missing_perm_tmpl = Dsq.Templates.missingPermissions();
			if (missing_perm_tmpl) {
				html += '<div class="dsq-missing-permissions">' + missing_perm_tmpl + '</div>';
			}
		}

		total_posts = Dsq.jsonData.thread.total_posts;
		num_posts = Dsq.jsonData.thread.num_posts;

		if (total_posts) {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_FULL(total_posts, num_posts);
		} else {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_WITHOUT_PAGINATION(num_posts);
		}

		html += ' \
		<div id="dsq-comments-title"> \
			<h3>' + comments_count + '</h3> \
		</div> \
		';

		html += ' \
		<div class="dsq-options"> \
			<span class="dsq-item-sort">'
				+ Dsq.Strings.SORT_BY + ' \
				<select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);"> \
					<option value="hot" ' + (Dsq.jsonData.request.sort == 4 ? 'selected="selected"' : '') + '>' + Dsq.Strings.POPULAR_NOW + '</option> \
					<option value="best" ' + (Dsq.jsonData.request.sort == 3 ? 'selected="selected"' : '') + '>' + Dsq.Strings.BEST_RATING + '</option> \
					<option value="newest" ' + (Dsq.jsonData.request.sort == 2 ? 'selected="selected"' : '') + '>' + Dsq.Strings.NEWEST_FIRST + '</option> \
					<option value="oldest" ' + (Dsq.jsonData.request.sort == 1 ? 'selected="selected"' : '') + '>' + Dsq.Strings.OLDEST_FIRST + '</option> \
				</select> \
				&nbsp; \
			</span> \
			<span class="dsq-subscribe-email"> \
				<img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle"> \
				<span id="dsq-subscribe">'
					+ (Dsq.jsonData.context.subscribed
						? '<a href="#" onclick="Dsq.Thread.subscribe(0); return false">' + Dsq.Strings.UNSUBSCRIBE + '</a>'
						: '<a href="#" onclick="Dsq.Thread.subscribe(1); return false">' + Dsq.Strings.SUBSCRIBE_BY_EMAIL + '</a>')
				+ '</span> \
			</span> \
			<span class="dsq-subscribe-rss" style="width:12px;height:12px;vertical-align:middle"> \
				<img src="http://media.disqus.com/images/embed/bullet-feed.png" alt="" /> \
				<a href="http://disqus.com/forums/venturebeat/people_in_glass_houses/latest.rss">' + Dsq.Strings.SUBSCRIBE_BY_RSS + '</a> \
			</span> \
		</div> \
		';

		
		

		return html;

	};
	
	this.footer = function() {
		var html = '';

		html += Dsq.Templates.pagination();

		
		
			html += Dsq.Templates.realtime();
			html += Dsq.Templates.showThreadSettings();
			html += Dsq.Templates.postBox();

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		


		if (Dsq.jsonData.request.is_global_moderator) {
 			html += ' \
				<div class="dsq-global-moderator-extras">'
					+ '<strong>shortname:</strong> ' + Dsq.jsonData.forum.url
					+ '<strong>thread id:</strong> ' + Dsq.jsonData.thread.id
					+ '<strong>thread slug:</strong> ' + Dsq.jsonData.thread.slug
				+ '</div> \
			';
		}

		return html;
	};
	
	this.realtime = function() {
		var html = '';
		
		if (Dsq.jsonData.realtime_enabled) {
			html += '<div id="dsq-realtime-options" class="dsq-options">'
					 + Dsq.Strings.REALTIME_UPDATING_IS + ' <strong id="dsq-realtime-status" style="text-transform: lowercase">' + Dsq.Strings.ENABLED + '</strong>. \
					 <a href="#" id="dsq-realtime-toggle" style="text-transform: capitalize"></a> \
					</div>';
		}

		if (!Dsq.jsonData.forum.streaming_realtime) {
			html += ' \
				<div style="display: none" id="dsq-realtime-alert" class="dsq-realtime-alert"><span id="dsq-realtime-queued"></span> <a href="#" id="dsq-realtime-show"></a></div> \
			';
		}
		
		return html;
	};

	this.showThreadSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return '';
		}

		html = '<div id="dsq-thread-settings" class="dsq-thread-settings">' + Dsq.Strings.MODERATOR_OPTIONS;
		html += '<a href="#" onclick="Dsq.Thread.showSettings(); return false;">' + Dsq.Strings.SETTINGS + '</a>';
		html += '<a href="#" onclick="Dsq.Thread.showModeratorActions(); return false;">' + Dsq.Strings.MODERATE + '</a>';
		if (Dsq.jsonData.forum.reactions_enabled && Dsq.jsonData.reactions.length === 0) {
			html += '<a href="#" onclick="Dsq.Reaction.reportMissingReactions(); return false;">'
						+ Dsq.Strings.REPORT_MISSING_REACTIONS
						+ '</a>';
		}
		html +='</div>';

		return html;
	};

	this.postBox = function(post_id, use_fallback_iframe) {


		var html;
		var display_sharing_options = Dsq.jsonData.request.is_authenticated;

		if (!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.disqus_auth_disabled && !Dsq.jsonData.forum.allow_anon_post) {
			return '';
		}
		
		if (Dsq.jsonData.request.is_remote) {


			if (!Dsq.jsonData.request.sharing.hasOwnProperty(Dsq.jsonData.request.remote_domain)) {
				display_sharing_options = false;
			}
		}
		
		if (post_id) {
			var _meta = Dsq.jsonData.posts[post_id];
			var userData = Dsq.jsonData['users'][_meta.user_key];				
		}
		
		var pid = post_id ? '-' + post_id : '';

		var _requestUserInfo = function() {
			var html;



			var user_has_email = false;

			html = '<div class="dsq-request-user-info"> <!-- // If authenticated --> \
				<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.LOGOUT + '?ctkn=' + Dsq.CSRF_TOKEN + '" class="dsq-request-user-logout">' + Dsq.Strings.LOGOUT + '</a> \
				<table> \
					<tr> \
						<td rowspan="2">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '')
								+ '<img src="' + Dsq.Urls.REQUEST_USER_AVATAR + '" width="48" height="48" class="dsq-request-user-avatar">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
						+ '</td> \
						<td class="dsq-request-user-name">'
								+ (Dsq.jsonData.request.is_remote
									 ? '<span class="dsq-badge-small dsq-badge-' + Dsq.jsonData.request.remote_domain + '">' + Dsq.jsonData.request.remote_domain_name + '</span>'
									 : (Dsq.jsonData.request.is_verified
											? '<span class="dsq-badge-small dsq-badge-verified">Verified</span>'
											: '<span class="dsq-badge-small dsq-badge-registered">Registered</span>'))
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? ' <a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '') 
								+ Dsq.jsonData.request.display_username 
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
							+  (Dsq.jsonData.request.is_remote && user_has_email ? ' <small>(<a href="#" onclick="Dsq.Popup.remoteAccountSettings(); return false;">change settings</a>)</small>' : '')
							+  (!Dsq.jsonData.request.is_remote && !Dsq.jsonData.forum.disqus_auth_disabled ? ' <small>(<a href="' + Dsq.jsonData.settings.disqus_url + '/profile/info/" target="_blank">change name</a> or <a href="' + Dsq.jsonData.settings.disqus_url + '/profile/avatar/" target="_blank">picture</a>)</small>' : '')
						+ '</td> \
					</tr> \
					<tr> \
						<td class="dsq-request-user-stats"> \
							<span><big>' + Dsq.jsonData.request.comments_count + '</big> ' + (Dsq.jsonData.request.comments_count == 1 ? 'comment' : 'comments') + '</span> \
							<span><big>' + Dsq.jsonData.request.likes_count + '</big> ' + (Dsq.jsonData.request.likes_count == 1 ? 'like' : 'likes') + '</span> \
							<span><big>' + Dsq.jsonData.request.points + '</big> ' + (Dsq.jsonData.request.points == 1 ? 'point' : 'points') + '</span> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';
			return html;
		};

		var _loginOptions = function() {
			var html;
			html = ' \
			<div class="dsq-authenticate"> \
				<p class="dsq-autheneticate-copy">'
				+ (Dsq.jsonData.forum.allow_anon_post
					? Dsq.Strings.YOU_ARE_COMMENTING_AS_A + ' <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. ' + Dsq.Strings.OPTIONAL + ': ' + Dsq.Strings.LOGIN_BELOW + '.'
					: Dsq.Strings.REQUIRED + ': ' + Dsq.Strings.PLEASE_LOGIN_BELOW_TO_COMMENT + '.')
				+ '</p> \
				<ul class="dsq-login-buttons">'
					+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Popup.login(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-disqus.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_fb_connect ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Facebook.login(); return false;"><img src="http://media.disqus.com/images/themes/narcissus/login-facebook.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_twitter_signin ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-twitter.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_openid ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.OpenID.requestURL(); return false" ><img src="http://media.disqus.com/images/themes/narcissus/login-openid.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_yahoo ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Yahoo.startYahooConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-yahoo.png" /></a></li>' : '')
				+ '</ul> \
			</div> \
			';
			return html;
		};

		if (!Dsq.jsonData.context.show_reply) {


			if (!Dsq.jsonData.request.is_authenticated) {



				return '<div id="dsq-form-area" style="display:none"><div id="dsq-textarea-wrapper"></div></div>' + _loginOptions();
			} else {
				return '';
			}
		}

		html = ' \
		<div id="' + (post_id 
			? 'dsq-reply-post-' + post_id
			: 'dsq-new-post')
		 	+ '" class="dsq-post-area"> \
			<div class="dsq-dc-logo"> \
				<a href="http://disqus.com/comments" target="_blank"><img src="http://media.disqus.com/images/themes/narcissus/disqus-logo.png"></a> \
			</div>'
			+ (post_id 
				? '<h3>' + Dsq.Strings.REPLYING_TO + ' ' + userData.display_name + '</h3>'
				: '<h3>' + Dsq.Strings.ADD_NEW_COMMENT + '</h3>')
			+ (Dsq.jsonData.request.is_authenticated 
				? _requestUserInfo()
				: _loginOptions() )
			+ '<div id="dsq-form-area' + pid + '">'
			+ '<div class="dsq-textarea"> \
				<div class="dsq-textarea-wrapper" id="dsq-textarea-wrapper' + pid + '"></div> \
			</div>'
			+ (!Dsq.jsonData.request.is_authenticated
			? ' \
			<div class="dsq-post-fields"> \
				<table> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-name' + pid + '" type="text" value="' + (disqus_def_name ? disqus_def_name : (Dsq.jsonData.session.name ? Dsq.jsonData.session.name : Dsq.Strings.NAME + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'name\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'name\')" /></div></td> \
						<td class="dsq-post-fields-right"><div class="dsq-input-wrapper"><input id="dsq-field-website' + pid + '" type="text" value="' + (Dsq.jsonData.session.url ? Dsq.jsonData.session.url : Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')" class="dsq-placeholder') + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'website\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'website\')" /></div></td> \
					</tr> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-email' + pid + '" type="text" value="' + (disqus_def_email ? disqus_def_email : (Dsq.jsonData.session.email ? Dsq.jsonData.session.email : Dsq.Strings.EMAIL + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'email\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'email\')" /></div></td> \
						<td class="dsq-post-fields-right"> \
							<div class="dsq-subscribe"> \
								<a href="#" onclick="Dsq.Templates.chooseSubscribe(' + post_id + '); return false" class="dsq-subscribe-menu"><span id="dsq-subscribe-select' + pid + '">' + (Dsq.jsonData.request.subscribe_on_post ? Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL : Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS) + '</span> <small>&#9660;</small></a> \
								<ul class="dsq-panel" id="dsq-subscribe-menu' + pid + '"> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(2, this, ' + post_id + '); return false">' + Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL + '</a></li> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(0, this, ' + post_id + '); return false">' + Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS + '</a></li> \
								</ul> \
								<input id="dsq-subscribe-on-post' + pid + '" type="hidden" value="' + Dsq.jsonData.request.subscribe_on_post + '" /> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div>'
			: '')
			+ '<div class="dsq-post-footer"> \
				<div class="dsq-sharing-options" ' + (!display_sharing_options ? 'style="display:none;"' : '') + '> \
					<button type="button" class="dsq-button-small" onfocus="document.getElementById(\'dsq-post-button' + pid + '\').focus();"><span>' + Dsq.Strings.SHARING_OPTIONS + ' <small>&#9660;</small></span></button> \
					<div class="dsq-panel"> '
						+ (Dsq.jsonData.request.sharing.twitter !== undefined
								&& Dsq.jsonData.request.sharing.twitter.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-twitter' + pid + '"'
								  + (Dsq.jsonData.request.sharing.twitter.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-twitter' + pid + '">' + Dsq.Strings.SHARE_ON + ' Twitter</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.facebook
								&& (Dsq.jsonData.request.sharing.facebook.enabled === true ||
										(Dsq.jsonData.request.is_remote && Dsq.jsonData.request.remote_domain == 'facebook'))
							? '<div><input type="checkbox" id="dsq-sharing-facebook' + pid + '"'
									+ (Dsq.jsonData.request.sharing.facebook.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-facebook' + pid + '">' + Dsq.Strings.SHARE_ON + ' Facebook</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.yahoo !== undefined
								&& Dsq.jsonData.request.sharing.yahoo.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-yahoo' + pid + '"'
									+ (Dsq.jsonData.request.sharing.yahoo.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-yahoo' + pid + '">' + Dsq.Strings.SEND_UPDATE_TO_YAHOO + '</label> \
								</div>'
							: '')
						+ (Dsq.jsonData.request.sharing.tumblr !== undefined
								&& Dsq.jsonData.request.sharing.tumblr.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-tumblr' + pid + '"'
									+ (Dsq.jsonData.request.sharing.tumblr.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-tumblr' + pid + '">' + Dsq.Strings.SHARE_ON + ' Tumblr</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.wordpress !== undefined
								&& Dsq.jsonData.request.sharing.wordpress.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-wordpress' + pid + '"'
									+ (Dsq.jsonData.request.sharing.wordpress.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-wordpress' + pid + '">' + Dsq.Strings.SHARE_ON + ' Wordpress</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.movabletype !== undefined
							  && Dsq.jsonData.request.sharing.movabletype.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-movabletype' + pid + '"'
									+ (Dsq.jsonData.request.sharing.movabletype.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-movabletype' + pid + '">' + Dsq.Strings.SHARE_ON + ' Movable Type</label> \
							   </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.typepad !== undefined
							  && Dsq.jsonData.request.sharing.typepad.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-typepad' + pid + '"'
									+ (Dsq.jsonData.request.sharing.typepad.auto === true ? 'checked=true' : '') + '/> \
								  <label for="dsq-sharing-typepad' + pid + '">' + Dsq.Strings.SHARE_ON + ' TypePad</label> \
							   </div>'
							: '')
						+ '<div><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections/" target="_blank" class="dsq-configure-options">' + Dsq.Strings.CONFIGURE_OPTIONS + '</a></div>'
					+ '</div> \
				</div>'
				+ '<button type="button" class="dsq-button" id="dsq-post-button' + pid + '" onclick="Dsq.Templates.postComment(' + post_id + ', this, false)"><span>' + Dsq.Strings.POST_AS + ' '
				+ (Dsq.jsonData.request.display_username
					? Dsq.jsonData.request.display_username
					: Dsq.Strings.GUEST)
				+ '</span></button>'
				+ (post_id
					? '<button type="button" class="dsq-button" id="dsq-cancel-button' + pid + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"><span>' + Dsq.Strings.CANCEL + '</span></button>'
					: '')
			+ '</div>'
			+ '</div>' // end dsq-form-area
		+ '</div> \
		';
		
		return html;
	};




	this.appendPost = function(post_id) {
		var html = '<div id="dsq-append-post-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		html = ' \
		<table> \
			<tr> \
				<td id="dsq-header-avatar-' + post_id + '" class="dsq-header-avatar" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
					<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
					+ (Dsq.jsonData.forum.show_avatar
					? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
					: '')
				+ '</a> \
				</td> \
				<td class="dsq-comment-header-meta"> \
		';

		
		return html;
	};
	
	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var html;
		var parent_display_name = '';
		
		if(_meta.parent_post_id) {

			var _parent_meta = Dsq.jsonData.posts[_meta.parent_post_id];

			if (_parent_meta) {
				var parentUserData = Dsq.jsonData['users'][_parent_meta.user_key];
				parent_display_name = parentUserData.display_name;
			}
		}

		html = ' \
		<img src="http://media.disqus.com/images/themes/narcissus/moderator.png" class="dsq-moderator-star" title="Moderator" /> \
		<span class="dsq-comment-header-time"><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')" title="Permalink">' + (_meta.is_realtime ? Dsq.Strings.JUST_NOW : _meta.date) + '</a></span> '
		+ (_meta.parent_post_id && parent_display_name
			? '<a onclick="Dsq.Post.showParent(' + _meta.parent_post_id + '); return false" href="#comment-' + _meta.parent_post_id + '" title="Jump to comment">' + Dsq.Strings.IN_REPLY_TO + ' ' + parent_display_name + '</a>'
			: '')
		+ '</td> \
		<td id="dsq-like-pts-' + post_id + '" class="dsq-comment-header-likes">'
		+ (_meta.points
			? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this.'
			: '')
		+ '</td> \
		</tr> \
		</table> \
		';
		return html;
	};

	this.preBody = function(post_id) {
		var html = '';
		return html;
	};

	this.postFooter = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed || !_meta.approved) { return ''; }
		
		html = ' \
		<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
			<div class="dsq-comment-footer-left">'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
					? '<a href="#" onclick="Dsq.Templates.moderateOptions(' + post_id+ '); return false">' + Dsq.Strings.MODERATE + '</a>'
					: '')
				+ '<a href="#" id="dsq-post-report-' + post_id + '" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">' + Dsq.Strings.FLAG + '</a> \
			</div> \
			<div class="dsq-comment-footer-right">'
				+ (_meta.votable 
					? '<span id="dsq-like-' + post_id + '" class="dsq-like">'
					+ (!_meta.up_voted
						? '<button type="button" class="dsq-button-small" onclick="Dsq.Post.rate(this, ' + post_id + ', 1)" >Like</button>'
						: 'You liked this.&nbsp;&nbsp;')
					+ '</span>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<button type="button" class="dsq-button-small dsq-post-edit" onclick="Dsq.Post.edit(this, ' + post_id + ')" >' + Dsq.Strings.EDIT + '</button>'
					: '')
				+ (_meta.can_reply
					? '<span class="dsq-comment-footer-reply" id="dsq-comment-footer-reply-' + post_id + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"> \
						<button type="button" class="dsq-button-small">' + Dsq.Strings.REPLY + '</button> \
						<button type="button" class="dsq-comment-footer-reply-tab">' + Dsq.Strings.REPLY + '</button><span></span> \
					</span>'
					: '')
			+ '</div> \
		</div> \
		';
		
		return html;
	};



	
	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		var item = '<li class="dsq-comment dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-comment-header"> \
			<table> \
			<tr> \
			<td class="dsq-header-avatar"> \
			';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'" class="dsq-avatar">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {

			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar92.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += (reaction.author_url && reaction.author_url !== ''
				? '</a>'
				: '')
			+ '</td>'
			+ '<td><cite class="dsq-comment-cite">' + reaction.author_name + '</cite> <span class="dsq-comment-header-time">' + reaction.date_created + '</span></td>'
			+ '<td class="dsq-comment-header-likes"></td>'
			+ '</tr></table></div>' // end dsq-comment-header
			+ '<div class="dsq-reaction-header" \
				<table> \
					<tr> \
						<td class="dsq-reaction-header-left">'
							+ '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png" />'
							+ ' From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
							+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
						+ '</td>'
						+ '<td class="dsq-reaction-header-right">';

			if(reaction.retweets) {
				var num_retweets = reaction.retweets.length;
				if (num_retweets > 0) {
					if (num_retweets == 1) {
						item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
					} else {
						item += (num_retweets + ' more retweets from ');
						item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
						var n_tweets = (num_retweets > 3) ? 3 : num_retweets;
						item += Dsq.Templates.showRetweets(reaction.id, n_tweets);
						if (n_tweets != num_retweets) {
							item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
								+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
						}
					}
				}
			}	
			item += '</td></tr> \
			</table> \
			</div>' // end dsq-reaction-header
			+ '<div class="dsq-comment-body"> \
				<div class="dsq-comment-message">' + reaction.body + '</div>'
			+ '</div> \
			<div class="dsq-comment-footer"> \
				<div class="dsq-comment-footer-left"> \
				</div>'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator 
					? ' \
					<div class="dsq-comment-footer-right"> \
						<button type="button" class="dsq-button-small dsq-hide-reaction" onclick="Dsq.Reaction.hide(' + reaction.id + ')">Hide</button> \
					</div>'
					: '')
			+ '</div>'
		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}

		return '<h3 id="dsq-reactions-title" class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-container"> \
			<table> \
				<tbody> \
					<tr> \
						<td class="dsq-popup-tl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-tr"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-b"></td> \
						<td class="dsq-popup-body"> \
							<div class="dsq-popup-content"> \
								<div class="dsq-popup-title"> \
									<button type="button" class="dsq-button-small" style="float:right" onclick="Dsq.Popup._closePopup(null, true)">Close</button>'
									+ content['header'] 
								+ '</div>'
								+ content['body']
							+ '</div> \
							<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
						</td> \
						<td class="dsq-popup-b"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-bl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-br"></td> \
					</tr> \
				</tbody> \
			</table> \
		</div> \
		';
	};



	
	this.chooseSubscribe = function(post_id) {

		var pid = post_id ? '-' + post_id : '';
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		menu.style.display = menu.style.display == 'block' ? 'none' : 'block';
		
	};
	
	this.setSubscribe = function(value, el, post_id) {

		var pid = post_id ? '-' + post_id : '';
		var input = Dsq.$('dsq-subscribe-on-post' + pid);
		var select = Dsq.$('dsq-subscribe-select' + pid);
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		select.innerHTML = el.innerHTML;
		input.value = value;
		this.chooseSubscribe(post_id);
	};
	
	this.getFormFields = function(post_id) {

		var fields = {};
		var pid = post_id ? '-' + post_id : '';
		var name = Dsq.$('dsq-field-name' + pid);
		var email = Dsq.$('dsq-field-email' + pid);
		var website = Dsq.$('dsq-field-website' + pid);
		var username = Dsq.$('dsq-field-username' + pid);
		var password = Dsq.$('dsq-field-password' + pid);

		fields = {
			'name': name,
			'email': email,
			'website': website,
			'username': username,
			'password': password
		}
		
		return fields;
	}
	
	this.validateFields = function(post_id) {
		
		if(Dsq.jsonData.request.is_authenticated) { return true; }
		
		var fields = Dsq.Templates.getFormFields(post_id);
		
		var nameField = fields.name;
		var websiteField = fields.website;
		var emailField = fields.email;
		
		websiteField.value = (websiteField.value == Dsq.Templates.placeholder['website']) ? '' : websiteField.value;
		
		var v = [{

			validator: Dsq.Validators.name,
			value: nameField.value
		}, {

			validator: Dsq.Validators.email,
			value: emailField.value
		}, {

			validator: Dsq.Validators.url,
			value: websiteField.value
		}];
		
		return Dsq.Validators.validate(v, function(e) { Dsq.Popup.popModal(e, 'Oops...') } );
	};
	
	this.checkExistingUser = function(post_id) {
		var fields = Dsq.Templates.getFormFields(post_id);		
		Dsq.Popup.loading(post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].getUserByEmail(fields.email.value);
		} else {
			Dsq.frames['reply_0'].getUserByEmail(fields.email.value);
		}
	};

	this.validateAuth = function(el_clicked, post_id, auth_choice) {
		var fields = Dsq.Templates.getFormFields(post_id);
		var email = fields.email ? fields.email.value : '';
		var username = fields.username ? fields.username.value : '';
		var password = fields.password ? fields.password.value : '';
		
		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].validateAuth(auth_choice, email, username, password);
		} else {
			Dsq.frames['reply_0'].validateAuth(auth_choice, email, username, password);
		}
	};

	this.lightboxUpdateEmail = function(post_id, new_email) {
		var fields = Dsq.Templates.getFormFields(post_id);
		fields.email.value = new_email;
	};

	this.lightboxAuthenticate = function(post_id, auth_choice, auth_data) {
		var title, body;
		var pid = post_id ? '-' + post_id : '';

		if(typeof(auth_data) == 'undefined') {
			var auth_data = Dsq.Templates.getFormFields(post_id);
		}

		d = auth_data;

		switch(auth_choice) {
			case 'register':
				var suggestedUsername = d.name.value.replace(/[^a-zA-Z0-9-]/g,'').toLowerCase();
			
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Register a <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';

				body = ' \
				<ul class="dsq-lightbox-register-reasons"> \
				<li>Verify your comments</li> \
				<li>Edit and delete comments</li> \
				<li>Manage comments and replies</li> \
				</ul> \
				';

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Email</td> \
							<td><input type="text" value="' + d.email.value + '" onchange="Dsq.Templates.lightboxUpdateEmail(' + post_id + ', this.value)" /><div id="dsq-email-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Username</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + suggestedUsername + '"/><div id="dsq-username-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Password</td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /><div id="dsq-password-errors' + pid + '"></div></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'login\'); return false">Login instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Register and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			case 'login':
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Login to your <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';
				body = '';
				
				if(d.avatar_url) {
					body += '<div class="dsq-lightbox-recognized"><table><tr>';
					body += '<td><img src="' + d.avatar_url + '" alt="" /></td>';
					body += '<td><span class="dsq-badge ' + (d.verified ? 'dsq-badge-verified' : 'dsq-badge-registered') + '">' + (d.verified ? 'Verified' : 'Registered') + '</span></td>';
					body += '<td>Hey <strong>' + d.display_name + '</strong>, is that you? Login below to claim this comment.';
					body += '</tr></table></div>';
				}

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Username or Email</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + (d.avatar_url ? d.username : '') + '" /></td> \
						</tr> \
						<tr> \
							<td>Password <a href="http://disqus.com/forgot" target="_blank">(cannot log in?)</a></td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'register\'); return false">Register instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Login and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			default:
				break;
		}
		Dsq.Popup.lightbox(body, title, post_id);
		Dsq.$('dsq-field-username' + pid).focus();
	};
	
	this.buttonsToRestore = [];
	this.setLoadingButton = function(btn, post_id) {
		var pid = post_id ? '-' + post_id : '';
		if (btn) {

			var loadingBtn = document.createElement('button');
			loadingBtn.id = btn.id + '-loading';
			loadingBtn.innerHTML = '<img src="http://media.disqus.com/images/loading-lite.gif" alt="" /> ' + Dsq.Strings.JUST_A_MOMENT;
			loadingBtn.className = btn.className + ' dsq-post-loading';
			btn.parentNode.appendChild(loadingBtn);
			btn.style.display = 'none';
			var cancelBtn = Dsq.$('dsq-cancel-button' + pid);
			if(cancelBtn) { cancelBtn.style.display = 'none'; this.buttonsToRestore.push(cancelBtn); }
			this.buttonsToRestore.push(btn);
		} else {

			var buttons = this.buttonsToRestore;
			for(var i = 0; i < buttons.length; i++) {
				buttons[i].style.display = 'inline';
				Dsq.Utils.deleteNode(Dsq.$(buttons[i].id + '-loading'));
			}
		}
		
	};

	this.postComment = function(post_id, el_clicked, force, auth_choice) {
		var append_id = post_id ? '-' + post_id : '';
		var fields = Dsq.Templates.getFormFields(post_id);

		if (Dsq.Templates.validateFields(post_id)) {

			if (!Dsq.jsonData.request.is_authenticated && !force &&
				((!Dsq.Utils.readCookie('skipped_auth') && !disqus_skip_auth && !Dsq.jsonData.forum.disqus_auth_disabled) || !Dsq.jsonData.forum.allow_anon_post)) {
				Dsq.Templates.checkExistingUser(post_id);
				return false;
			}
			var params = [];
			if (!Dsq.jsonData.request.is_authenticated) {
				params.push(fields.name.value,
					fields.email.value,
					fields.website.value);

				if (auth_choice == 'login' || auth_choice == 'register') {
					params.push({
						auth_choice: auth_choice,
						username: fields.username.value,
						password: fields.password.value,
						email: fields.email.value
					});
				} else {
					params.push(null);
				}

				params.push(null /* sharing options */, Dsq.$('dsq-subscribe-on-post' + append_id).value);
			} else {
				var service_checked = function(name) {
					var el = Dsq.$('dsq-sharing-' + name + append_id);
					return (el !== null && el.checked === true) ? '1' : '0';
				};
				params.push(null, null, null, null, {
					tw: service_checked('twitter'),
					fb: service_checked('facebook'),
					tr: service_checked('tumblr'),
					wp: service_checked('wordpress'),
					mt: service_checked('movabletype'),
					tp: service_checked('typepad'),
					yh: service_checked('yahoo')
				});
			}

			var frame = Dsq.frames['reply_' + (post_id ? post_id : 0)];
			frame.post.apply(frame, params);

			if (el_clicked) {
				Dsq.Templates.setLoadingButton(el_clicked, post_id);
			}
			
			if (force) {
				Dsq.Utils.createCookie('skipped_auth', true);	
			}
			
		} else {
			return false;
		}
	};

	this.editComment = function(el_clicked, post_id) {
		var edited_message = Dsq.$('dsq-edit-textarea-' + post_id).value;

		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		Dsq.frames['edit_' + post_id].edit(post_id, edited_message);
	};

	this.toggleEdit = function(post_id) {
		var body = Dsq.$('dsq-comment-body-' + post_id);
		var message = Dsq.$('dsq-comment-message-' + post_id);

		if (!Dsq.Post.stateEditToggled[post_id]) {


			message.style.display = 'none';
			if (Dsq.$('dsq-edit-' + post_id)) {
				Dsq.$('dsq-edit-' + post_id).style.display = 'block';
			} else {

				var edit_area = document.createElement('div');
				edit_area.id = 'dsq-edit-' + post_id;
				edit_area.className = 'dsq-edit dsq-textarea';
				edit_area.innerHTML = ' \
				<div class="dsq-textarea-wrapper"> \
					<textarea class="dsq-edit-textarea" id="dsq-edit-textarea-' + post_id + '">' + message.innerHTML + '</textarea> \
				</div> \
				<div class="dsq-save-edit"> \
					<button type="button" onclick="Dsq.Templates.editComment(this, ' + post_id + ')" class="dsq-button-small">Save Edit</button> \
				</div> \
				<div id="dsq-edit-iframe-' + post_id + '" style="display: none"></div> \
				';

				body.appendChild(edit_area);

				if (!Dsq.frames['edit_' + post_id]) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['edit_' + post_id] = new Dsq.ReplyFrame(Dsq.$('dsq-edit-iframe-' + post_id), post_id);
					Dsq.frames['edit_' + post_id].init();
					Dsq.frames['edit_' + post_id].setState(post_id, _meta.depth);
				}
			}
		} else {

			message.style.display = 'block';
			Dsq.$('dsq-edit-' + post_id).style.display = 'none';
		}
		
		Dsq.Post.stateEditToggled[post_id] = !Dsq.Post.stateEditToggled[post_id];
	};
	
	this.edit = function(el, post_id) {

		Dsq.Templates.toggleEdit(post_id);
	};

	this.toggleReply = function(post_id, button) {
		
		if(!this.stateReplyToggled[post_id]) {

			if (Dsq.$('dsq-reply-post-' + post_id)) {
				Dsq.$('dsq-append-post-' + post_id).style.display = 'block';
			} else {
				Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id);
				var container = Dsq.$('dsq-textarea-wrapper-' + post_id);
				if (!Dsq.frames['reply_' + post_id] && container) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['reply_' + post_id] = new Dsq.ReplyFrame(container, post_id);
					Dsq.frames['reply_' + post_id].init(function() {

						Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id, true);
						Dsq.$('dsq-form-area-' + post_id).innerHTML = '';

						var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
						Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-form-area-' + post_id), post_id, {theme: theme});

					});
					Dsq.frames['reply_' + post_id].setState(post_id, _meta.depth);
				}
			}
			Dsq.$('dsq-append-post-' + post_id).className = 'dsq-append-post';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply-active';
			
		} else {

			Dsq.$('dsq-append-post-' + post_id).style.display = 'none';
			Dsq.$('dsq-append-post-' + post_id).className = '';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply';
		}
		
		this.stateReplyToggled[post_id] = !this.stateReplyToggled[post_id];

		if(Dsq.Utils.ie && this.stateReplyToggled[post_id]) {

		}

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: post_id,
			opened: this.stateReplyToggled[post_id]
		});
	};
	
	this.moderateOptions = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		if(!Dsq.jsonData.request.is_moderator && !Dsq.jsonData.request.is_global_moderator) { return false; }

		var html;
		
		html = ' \
		<div class="dsq-moderate-options"> \
		<table>'
		+ (_meta.email ? '<tr><td>Email</td><td>' + _meta.email + '</td></tr>' : '')
		+ (_meta.ip ? '<tr><td>IP address</td><td>' + _meta.ip + '</td></tr>' : '')
		+ '<tr> \
			<td>Actions</td> \
			<td><ul>'
			+ (Dsq.jsonData.request.moderator_can_edit
				? '<li><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Edit Comment</a></li>'
				: '')
			+ '<li><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); Dsq.Popup._closePopup(null, true); return false;">Delete Comment</a></li> \
			<li><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Mark Spam</a></li> \
			<li><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li> \
			</ul></td> \
			</table> \
		</div> \
		';
		
		html += '<p>Go to the full <a href="http://disqus.com/comments/moderate/" target="_blank">moderate panel</a> for more options.</p>';
		
		return Dsq.Popup.popModal(html, 'Moderate Options', post_id);
	};
	
	this.placeholder = {
		'class': 'dsq-placeholder',
		'name': Dsq.Strings.NAME,
		'email': Dsq.Strings.EMAIL,
		'website': Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')'
	};
	
	this.handlePlaceholder = function(evt, el, key) {
		var placeholder = Dsq.Templates.placeholder[key];
		var className = Dsq.Templates.placeholder['class'];
		
		switch(evt.type) {
			case 'focus':
				if(el.value == placeholder) {
					el.value = '';
					el.className = '';
				}
				break;

			case 'blur':
				if(el.value == '') {
					el.value = placeholder;
					el.className = className;
				}
				break;
			default:
				break;
		}
	};
	
	this.paginate = function(page, el_clicked) {

		var extra_params = '';

		if(typeof disqus_per_page != 'undefined') {
			extra_params += '&per_page=' + disqus_per_page;
		}
		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			Dsq.Templates.setLoadingButton(el_clicked);
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/venturebeat/thread.js'
			+ '?slug='	+ 'people_in_glass_houses'
			+ '&p='		+ page
			+ extra_params);
	};
	
	
	this.rate = function(el, id, vote) {


		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
				Dsq.$('dsq-like-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
			}
			Dsq.Utils.execScript('http://disqus.com/forums/venturebeat/vote.js'
				+ '?post_id='    + id
				+ '&vote='        + vote);
		} else {
			Dsq.Popup.login('To rate, please log in');
		}
	};

	this.voted = function(post_id, points, vote) {

		Dsq.$('dsq-like-pts-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this.';

		if(vote) {
			Dsq.$('dsq-like-' + post_id).innerHTML = 'You liked this.&nbsp;&nbsp;';
		}
	};




	this.postComment_onSuccess = function(response, parent_post_id, post_id) {
		var approved = response.message.post_meta.approved;

		if (parent_post_id) {
			Dsq.Post.toggleReply(parent_post_id);
		}

		Dsq.Popup._closePopup(null, true);
		
		if (approved) {
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		} else {			
			var unapproved_msg = 'Thanks for posting!\
	 Your comment must be approved by a moderator before appearing here.\
			';
			Dsq.Popup.popModal(unapproved_msg, 'Comment awaiting approval', post_id);
		}

		var sharing_results = response.message.sharing_results;
		var sharing_errors = '';
		for (var service in sharing_results) {
			if (sharing_results.hasOwnProperty(service) === true) {
				if (sharing_results[service].error === true) {
					sharing_errors += service + ', ';
				}
			}
		}

		if (sharing_results.facebook && sharing_results.facebook.callback) {
			FB.ensureInit(function() {
				FB.Connect.streamPublish('', sharing_results.facebook.attachment);
			});
		}

		if (sharing_errors !== '') {
			var message = 'Your comment was posted, but there were errors sharing with the following connections: ';
			message += sharing_errors.replace(/,\s$/, '');
			message += '<p><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections" target="_blank">Configure your connections here</a></p>'
			Dsq.Popup.popModal(message, 'Sharing options');
		}

		Dsq.Templates.setLoadingButton(false);
	};

	this.postComment_onFailure = function(response, parent_post_id, post_id) {

		Dsq.Templates.setLoadingButton(false);
	};
};




// TODO: It might be faster to use string methods to find all <li (...) </li> blocks and pass to Dsq.PostHandler manually.
Dsq.CommentsHandler = function(str, head, post_id, content, tail, offset, s) {
	var prepend_post = Dsq.Templates.prependPost(post_id);
	var append_post = Dsq.Templates.appendPost(post_id);

	content = content.replace(Dsq.POST_RE, Dsq.PostHandler);
	Dsq.Templates.postLoopCounter++;
	head = Dsq.Templates.Filters.commentContainer(post_id, head);
	return prepend_post + head + content + tail + append_post;
};

Dsq.PostHandler = function(str, h_head, post_id, h_content, h_tail, b_head, b_content, b_tail, offset, s) {
	var prepend_header = Dsq.Templates.postPrependHeader(post_id);
	var append_header = Dsq.Templates.postAppendHeader(post_id);
	var prepend_body = Dsq.Templates.preBody(post_id);
	var append_body = Dsq.Templates.postBody(post_id);
	var append_footer = Dsq.Templates.postFooter(post_id);

	b_content = b_content.replace(Dsq.POST_BODY_RE, Dsq.PostBodyHandler);
	return h_head + prepend_header + h_content + append_header + h_tail + b_head + prepend_body + b_content + append_body + b_tail + append_footer;
};

Dsq.PostBodyHandler = function(str, head, post_id, content, tail, offset, s) {
	content = Dsq.Templates.Filters.commentContent(post_id, content);
	return head + content + tail;
};

Dsq.MediaPostHandler = function(str, args, offset, s) {
	args = args.split(' ');
	if(args[0] == 'seesmic') {
		return '<br />' + Dsq.Templates.mediaSeesmic(args[1], args[2]);
	}
	return '';
};


/**
 * Shorcuts
 */
Dsq.$ = function(element) { return document.getElementById(element); };
Dsq.$b = document.body || document.getElementsByTagName('body')[0];


/**
 * Dsq.Debug: Logging functions.
 */

Dsq.Debug = new function() {this.log=function(s){};this.profile=function(f){if(typeof f == 'function')return f();else return eval(f);};};


/**
 * Dsq.Urls: URL paths
 */
Dsq.Urls = new function() {
	this.LOGIN = '/profile/login/';
	this.LOGOUT = '/logout/';
	this.REPLY = 'http://disqus.com/forums/venturebeat/people_in_glass_houses/reply.html';
	this.REQUEST_USER_PROFILE = '/AnonymousUser/';
	this.REQUEST_USER_AVATAR = 'http://media.disqus.com/images/noavatar92.png';
};
// Dsq.Urls

/**
 * Dsq.Validators: Validation for form fields
 */
Dsq.Validators = new function() {
	this.VALID_EMAIL_RE = /^[a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*\@(([a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*)+\.[a-z]{2,}|([0-9]+\.){3}[0-9]+)$/i;
	this.name = function(name) {
		var error = false;

		if(typeof Dsq.Templates.placeholder !== 'undefined' &&
		   name == Dsq.Templates.placeholder.name) {
			error = true;
		}
		if(name.length <= 1) {
			error = true;
		}

		if(error) {
			return "Please enter a name to comment.";
		} else {
			return true;
		}
	};
	this.email = function(addr) {
		if(Dsq.Validators.VALID_EMAIL_RE.test(addr)) {
			return true;
		} else {
			return "Please enter a valid email to comment.";
		}
	};
	this.url = function(addr) {
		if(!addr || addr.indexOf('.') != -1) {
			return true;
		} else {
			return "Please check your website URL (this field is optional).";
		}
	};

	this.validate = function(bulk_validation, failure_callback) {
		failure_callback = failure_callback || function(e){ alert(e); };

		for(var i = 0; i < bulk_validation.length; i++) {
			v = bulk_validation[i];
			ret = v.validator(v.value);
			if(ret !== true) {
				failure_callback(ret);
				return false;
			}
		}
		return true;
	};
};

/**
 * Dsq.Utils: Generic utility functions.
 */
Dsq.Utils = new function() {
	this.ie = /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
	this.ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
	this.ie6 = (!window.XMLHttpRequest) ? true: false;
	this.webkit = navigator.userAgent.indexOf('AppleWebKit/') >= 0;
	this.gebiFromElementCollectionCache = {};
	this._styleSheet = null;

	this.gebiFromElement = function(el, id, tag) {
		// This only method only helps IE.
		if(!this.ie) {
			return Dsq.$(id);
		} else {
			var cacheKey = el.id + '-' + tag;
			tag = tag || 'div';
			if(typeof this.gebiFromElementCollectionCache[cacheKey] != 'undefined') {
				collection = this.gebiFromElementCollectionCache[cacheKey];
			} else {
				collection = el.getElementsByTagName(tag);
				this.gebiFromElementCollectionCache[cacheKey] = collection;
			}

			for(var i = 0; i < collection.length; i++) {
				if(collection[i].id == id) {
					return collection[i];
				}
			}
			return null;
		}
	};

	this.execOnReady = function(func) {
		var node = document.createElement('document:ready');
		try {
			node.doScroll('left');
			func();
			node = null;
		} catch(err) {
			setTimeout(function() { Dsq.Utils.execOnReady(func); }, 10);
		}
	};


	// Courtesy of http://www.quirksmode.org/js/cookies.html
	this.createCookie = function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	};

	this.readCookie = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	};

	this.eraseCookie = function(name) {
		Dsq.Utils.createCookie(name,"",-1);
	};

	this.deleteNode = function(node) {
		if(node) {
			this.deleteChildren(node);
			if(typeof node.outerHTML != 'undefined') { node.outerHTML = ''; }
			else if(node.parentNode) { node.parentNode.removeChild(node); }
			delete node;
		}
	};

	this.deleteChildren = function(node) {
		if(node) {
			for(var x = node.childNodes.length-1; x >= 0; x--) {
				var childNode = node.childNodes[x];
				if(childNode.hasChildNodes()) { this.deleteChildren(childNode); }
				if(typeof childNode.outerHTML != 'undefined') { childNode.outerHTML = ''; }
				else node.removeChild(childNode);
				delete childNode;
			}
		}
	};

	this.findPos = function(obj) {
		var curleft = 0;
		var curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	};

	this.getWindowSize = function() {
		var windowWidth = -1;
		var windowHeight = -1;

		if(typeof(window.innerWidth) == 'number') { //Non-IE
			windowWidth = window.innerWidth;
			windowHeight = window.innerHeight;
		} else if(document.documentElement) { // IE 6+ in 'standards compliant mode'
			windowWidth = document.documentElement.clientWidth || document.body.clientWidth;
			windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
		}

		return [windowWidth, windowHeight];
	}

	this.getScrollPos = function() {
		var scrollWidth, scrollTop;

		if(document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollWidth)) {
			scrollWidth = document.documentElement.scrollWidth;
			// IE is weird here.  If no doctype is provided, document.body.scrollTop is 0,
			// otherwise document.documentElement.scrollTop is 0.
			scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
		} else if(document.body.scrollTop && document.body.scrollWidth) {
			scrollWidth = document.body.scrollWidth;
			scrollTop = document.body.scrollTop;
		}

		return [scrollWidth, scrollTop];
	}

	this.addEventListener = function(instance, eventName, listener) {
		var listenerFn = listener;
		if (instance.addEventListener) {
			instance.addEventListener(eventName, listenerFn, false);
		} else if (instance.attachEvent) {
			listenerFn = function() {
				listener(window.event);
			};
			instance.attachEvent("on" + eventName, listenerFn);
		} else {
			throw new Error("Event registration not supported");
		}
		return {
			instance: instance,
			name: eventName,
			listener: listenerFn
		};
	};

	this.removeEventListener = function(event) {
		var instance = event.instance;
		if (instance.removeEventListener) {
			instance.removeEventListener(event.name, event.listener, false);
		} else if (instance.detachEvent) {
			instance.detachEvent("on" + event.name, event.listener);
		}
	};

	this.fixIframesIE = function(id) {
		var disqusThread = Dsq.$(disqus_container_id);
		var iframes = disqusThread.getElementsByTagName('iframe');

		if(id) {
			var container = Dsq.$(id);
		} else {
			var container = Dsq.$('dsq-content');
		}

		for(i = 0; i < iframes.length; i++) {
			if (container) {
				iframes[i].style.width = container.offsetWidth;
			}
		}
	};

	this.getElementsByClassName = function(oElm, strTagName, strClassName) {
	/* Credit: Jonathan Snook [http://www.snook.ca/jonathan], Robert Nyman [http://www.robertnyman.com] */
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i = 0; i < arrElements.length; i++) {
			oElement = arrElements[i];
			if(oRegExp.test(oElement.className)) {
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements);
	};

	this.postToUrl = function(url, post_data, opt_redirect) {
		var form = document.createElement('form');
		var iframe_container = document.createElement('div');
		var id = 'dsq-temp-iframe-' + (new Date()).getTime();

		form.method = 'POST';
		form.action = url;
		if (!opt_redirect) {
			form.target = id;
		}
		iframe_container.innerHTML = '<iframe style="display:none" name="' + id + '" id="' + id + '"></iframe>';

		for(var key in post_data) {
			if(post_data.hasOwnProperty(key)) {
				var input = document.createElement('input');
				input.name = key;
				input.type = 'hidden';
				input.value = post_data[key];

				form.appendChild(input);
			}
		}

		Dsq.$b.appendChild(iframe_container);
		Dsq.$b.appendChild(form);
		form.submit();
	};

	// Strips integer id from id of element in the form ('some-id-###')
	this.extractId = function(e) {
		var chunks = e.id.split('-');
		if(chunks.length <= 1) {
			return 0;
		} else {
			var retval = parseInt(chunks[chunks.length-1]);
			return !isNaN(retval) ? retval : null;
		}
	};

	this.getStyle = function(el, styleProp) {
		if(el.currentStyle) {
			var y = el.currentStyle[styleProp];
		} else if(window.getComputedStyle) {
			var y = document.defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
		}

		if(y == 'transparent' || y == '') {
			this.getStyle(el.parentNode, styleProp);
		} else {
			return y;
		}
	};

	this.execScript = function(url, append_qs, container) {
		var script = document.createElement('script');
		append_qs = typeof append_qs == 'undefined' ? true : append_qs;
		container = container || Dsq.container;

		if(append_qs) {
			var j = (url.indexOf('?') >= 0) ? '&' : '?';
			url += j + (new Date()).getTime();
		}
		script.type = 'text/javascript';
		script.charset = 'UTF-8';
		script.src = url;
		container.appendChild(script);
		return script;
	};

	this.pluralize = function(num, singular, plural) {
		return (num != 1) ? plural || 's' : singular || '';
	};

	this.getRequestParams = function(queryString /* optional */) {
		var pairs, tuple;
		var params = {};

		queryString = queryString || window.location.search.substring(1);
		pairs = queryString.split('&');

		for (var i = 0, pair; pair = pairs[i]; i++) {
			tuple = pair.split('=');
			params[tuple[0]] = (tuple[1] || true);
		}

		return params;
	};

	this.addCssRule = function(selector, styleText, index) {
		var stylesheet;
		index = index || 0;

		if(!this._styleSheet) {
			var styleEl = document.createElement('style');
			document.getElementsByTagName('head')[0].appendChild(styleEl);
			this._styleSheet = styleEl.sheet;
			if(!this._styleSheet) {
				// IE does not like our newly created stylesheet.
				this._styleSheet = document.styleSheets[document.styleSheets.length-1];
			}
		}
		stylesheet = this._styleSheet;

		if(stylesheet.insertRule) {
			var ruleText = selector + ' { ' + styleText + ' }';
			if(index == -1) {
				index = stylesheet.cssRules.length;
			}
			stylesheet.insertRule(ruleText, index);
		} else if(stylesheet.addRule) {
			stylesheet.addRule(selector, styleText, index);
		}
	};

	this.forEachIn = function(obj, callback) {
		for(var key in obj) {
			if(obj.hasOwnProperty(key)) {
				callback(key, obj[key]);
			}
		}
	};

	this._interpolateGlobalContext = {
		// values that get used a lot and are global to the request
		'profile_url': Dsq.Urls.REQUEST_USER_PROFILE,

		'disqus_url': Dsq.jsonData.settings.disqus_url,
		'media_url': Dsq.jsonData.settings.media_url,
		'request_username': Dsq.jsonData.request.username,
		'request_display_username': Dsq.jsonData.request.display_username,
		'forum_name': Dsq.jsonData.forum.name
	};

	this.renderFromContextStack = function(key, contexts) {
		// Returns the first instance of `key` in the array of objects `contexts` or else ''
		for (var i=0; i<contexts.length; i++) {
			if (contexts[i][key] !== undefined) {
				return String(contexts[i][key]);
			}
		}
		throw new Error('key ' + key + ' not found in context');
	};

	var that = this;
	this.interpolate = function(fmt, opt_localContext) {
		// Interpolate `fmt` named-format string with an assumed global context.
		// Based on `interpolate` in django.views.i18n
		var contextStack = [opt_localContext || {}, that._interpolateGlobalContext];
		return fmt.replace(/%\(\w+\)s/g, function(match){
			return that.renderFromContextStack(match.slice(2,-2), contextStack);
		});
	};

	this.stripTags = function(s) {
		// Removes HTML tags from `s`
		return s.replace(/(<([^>]+)>)/g,"");

	};

	this.assert = function(b) {
		if (!b) {
			throw new Error('Assertion error.');
		}
	};

};
// Dsq.Utils

/**
 * Dsq.Popup: Popup helper functions.
 */
Dsq.Popup = new function() {
	this.timeHide = new Array();
	this.timeShow = new Array();
	this.activePopup = {};
	this.profileCache = {};
	this.statusCache = {};

	this.showTimer = function(post_id) {
		// clear the hide timer
		clearTimeout(this.timeHide[post_id]);

		// start the timer
		if(!Dsq.Popup.profileIsOn && !Dsq.Thread.adminIsOn) {
			this.timeShow[post_id] = setTimeout("Dsq.Popup.popProfile(\"" + post_id + "\")", 400);
		}
	};

	this.hideTimer = function(post_id) {
		// clear the show timer
		clearTimeout(this.timeShow[post_id]);
	};

	this.updateProfile = function(username) {
		// Callback from /embed/profile.js
		if (this.statusCache[username]) {
			var statusEl = Dsq.$('dsq-profile-status-' + username);
			statusEl.innerHTML = this.statusCache[username];
			statusEl.style.display = 'block';
		}

		if (this.profileCache[username]) {
			var _cache = this.profileCache[username];

			var _genhtml = function(text) { return '<span><big>' + text + '</big></span>'; };
			var _no_comments = _genhtml(Dsq.FmtStrings.NUMBER_OF_COMMENTS(_cache.comments_count));
			var _no_likes = _genhtml(Dsq.FmtStrings.NUMBER_OF_LIKES(_cache.likes_count));
			var _no_points = _genhtml(Dsq.FmtStrings.NUMBER_OF_POINTS(_cache.points));

			var statsEl = Dsq.$('dsq-popup-profile-user-stats-' + username);
			statsEl.innerHTML = '';

			if (Dsq.jsonData.users[username].registered) {
				statsEl.innerHTML = _no_comments + _no_likes;
			}
			statsEl.innerHTML += _no_points;

			var activeSites = '';
			for (var i = 0; i < _cache.active_sites.length; i++) {
				var site = _cache.active_sites[i];
				activeSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (activeSites !== '') {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = activeSites;
			} else {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = 'This site.';
			}

			var moderatedSites = '';
			for (var i = 0; i < _cache.moderated_sites.length; i++) {
				var site = _cache.moderated_sites[i];
				moderatedSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (moderatedSites !== '') {
				Dsq.$('dsq-popup-profile-moderated-' + username).innerHTML = moderatedSites;
			} else {
				Dsq.$('dsq-popup-profile-moderated-wrapper-' + username).innerHTML = '';
			}
		}

		// Reposition popup after full HTML is rendered
		if(Dsq.Popup.activePopup && Dsq.Popup.activePopup.el) {
			Dsq.Popup.initPopup(Dsq.Popup.activePopup.el, Dsq.Popup.activePopup.id, Dsq.Popup.activePopup.type);
		}

	};

	this.showCookieMsgs = function() {
		var title = '';
		var message = '';
		var numAlerts = 0;

		Dsq.Utils.forEachIn(Dsq.jsonData.cookie_messages, function(k, v) {
			if (!v) return;

			switch(k) {
				// Cookie: Twitter
				case 'post_twitter':
					if (v === 'error') {
						title = 'Twitter Error!';
						message += '<li id="dsq-msg-twitter-error">Oops, we couldn\'t tweet this comment. Please check your <a href="http://disqus.com/account/services">account settings</a>.</li>';
					} else {
						var _msg = v.split(':');
						title = 'Tweeted!';
						message += '<li id="dsq-msg-twitter-success">Your comment was successfully tweeted. <a href="http://twitter.com/' + _msg[0] + '/status/' + _msg[1] + '">Click here to view the tweet</a>.</li>';
					}
					break;
				// Cookie: Unapproved Post
				case 'post_not_approved':
					title = 'Comment awaiting approval by a moderator';
					message += '<li id="dsq-msg-post-not-approved">Your comment must be approved by a moderator before appearing here.</li>';
					break;
				// Cookie: Profile Found
				case 'post_has_profile':
					title = 'Use your existing commenter profile';
					message += '<li id="dsq-msg-post-has-profile">You have just posted your commment as a <span class="dsq-badge-guest">Guest</span>, but you may already have a <span class="logo-disqus">Disqus</span> Profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a></li>';
					break;
				case 'user_created':
					var _data = v.split(':');
					title = 'Profile created!';
					message += '<li id="dsq-msg-user-created">You have just created a <span class="logo-disqus">Disqus</span> Profile, the best way to claim, manage, and track your comments all over the web. \
					<br /><br />A confirmation is being sent to <strong>' + _data[1] + '</strong>. Please check for this email in order to verify your profile. \
					<ul class="dsq-list-tick"> \
						<li>Your username is <strong>' + _data[0] +'</strong>. <a href="http://disqus.com/people/' + _data[0] + '/" target="_blank">Click here to view your public profile</a>.</li> \
						<li>Be sure to set your profile picture, as well as connect your <span class="dsq-badge-facebook">Facebook</span> and <span class="dsq-badge-twitter">Twitter</span> accounts. <a href="http://disqus.com/account/" target="_blank">Click here for account settings</a>.</li> \
					</ul> \
					</li>'
					break;
				default:
					break;
			}
			numAlerts++;
		});

		if(numAlerts > 1) {
			message = '<ul class="dsq-list-bluebullet">' + message;
			message += '</ul>';
			title = 'Thanks for posting!';
		}
		if(numAlerts > 0) {
			if(typeof(disqus_cookie_msgs) == 'function') {
				disqus_cookie_msgs(message, title);
			} else {
				Dsq.Popup.popModal(message, title);
			}
		}
	};

	this.helpBadges = function(post_id) {
		var html = ' \
			<ul class="dsq-popup-help"> \
				<li><span class="dsq-badge dsq-badge-verified">Verified</span> has a <span class="logo-disqus">Disqus</span> Profile with a confirmed email address.</li> \
				<li><span class="dsq-badge dsq-badge-registered">Registered</span> has a <span class="logo-disqus">Disqus</span> Profile, but has not yet confirmed his or her email address.</li> \
				<li><span class="dsq-badge dsq-badge-guest">Guest</span> is not logged in with any account and has not claimed his or her comments.</li> \
				<li class="dsq-help-otheraccts">Other accounts</li> \
				<li><span class="dsq-badge dsq-badge-facebook">Facebook</span> is using his or her Facebook profile via Facebook Connect.</li> \
				<li><span class="dsq-badge dsq-badge-twitter">Twitter</span> is using his or her Twitter profile via Twitter Sign-in.</li> \
				<li><span class="dsq-badge dsq-badge-openid">OpenID</span> is using his or her OpenID.</li> \
			</ul> \
		';

		this.popModal(html, 'Help: Types of Commenters', post_id);
		return;
	};

	this.permalink = function(post_id) {
		var header = 'Link to this comment';
		var body = '<strong>You are anchored to</strong>:<br />' + document.location.protocol + '//' + document.location.host + document.location.pathname + document.location.search + '#comment-' + post_id;

		this.popModal(body, header, post_id);
	};

	this.login = function(header, body) {
		var h = header || 'Login or Register';
		var b = body || '';
		b += Dsq.Templates.frameLogin({id: 'dsq-popup-login'});
		b += '</iframe>'; // HACK: Sometimes there is something funky with the IFRAME SRC that causes no end tag
		this.popModal(b, h, null, true, 'dsq-popup-login');
	};

	this.blacklist = function(id) {
		var _meta = Dsq.jsonData.posts[id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		var title = 'Add to Blacklist';
		var message = ' \
		Adding this person to the blacklist will block him or her from commenting on this site. Check the following types that you would like to add to the blacklist:'
		+ (userData['registered'] ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-username" type="checkbox" checked> \
				<label for="dsq-blacklist-username"><strong>Username</strong>: ' + userData['username'] + '</label> \
			</div>'
			: '')
		+ (_meta.email ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-email" type="checkbox" checked> \
				<label for="dsq-blacklist-email"><strong>Email address</strong>: ' + _meta.email + '</label> \
			</div>'
			: '')
		+ '<div class="dsq-blacklist-option"> \
			<input id="dsq-blacklist-ip" type="checkbox" onclick="Dsq.$(\'dsq-blacklist-ip-warning\').style.display=\'block\'"> \
			<label for="dsq-blacklist-ip"><strong>IP address</strong>: ' + _meta.ip + '</label> \
		</div> \
		';

		message += ' \
			<p id="dsq-blacklist-ip-warning" style="display:none">	\
				Note: Blocking this person\'s IP address may also unintentionally prevent others, who share his/her IP address, from commenting on this site. \
				This may include people who are sharing the same computer, living in the same house, or using the same Internet provider. Only block an IP address as a last resort. \
			</p> \
		';

		message += ' \
			<p style="text-align:center"><button type="button" onclick="Dsq.Post.blockUser(' + id + '); this.disabled=true; this.innerHTML=\'Just one moment...\'">Add to Blacklist</button></p> \
		';

		Dsq.Popup.popModal(message, title);
	};

	this.remoteAccountSettings = function() {
		var body = '';
		// Set up IFrame.
		var params = {};
		var base_url = 'http://disqus.com/forums/venturebeat/_auth/embed/remote_settings/';
		var attributes = {id: 'dsq-popup-account-settings'};
		if (typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}

		body = Dsq.Templates._frameGeneric(base_url, params, attributes);
		this.popModal(body, 'Account Settings', null, true, 'dsq-popup-account-settings');
	};

	this.popModal = function(message, title, post_id, use_listener, extra_classes) {
		var container = document.createElement('div');
		var header, body;

		Dsq.Popup._closePopup(null, true);

		if(typeof(title) == 'undefined') { title = ''; }
		if(typeof(use_listener) == 'undefined') { use_listener = true; }

		if(post_id) {
			container.id = 'dsq-popup-message-' + post_id;
		} else {
			container.id = 'dsq-popup-message';
		}

		header = title;
		body = message;

		container.innerHTML = Dsq.Templates.popupModal(header, body);
		Dsq.Popup.initPopup(container, post_id, 'message', extra_classes);
		if(use_listener) {
			Dsq.Popup.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', Dsq.Popup._closePopup);
		}
	};

	this.popAlert = this.popModal;

	this.loading = function(post_id) {
		var title = Dsq.Strings.JUST_A_MOMENT;
		var body = '<div style="text-align:center; padding: 5px 0 10px 0"><img src="http://media.disqus.com/images/loading.gif" alt="" /></div>'
		Dsq.Popup.lightbox(body, title, post_id);
	};

	this.lightbox = function(message, title, post_id) {
		// Wraps Dsq.Popup.popModal

		var overlay = document.createElement('div');
		overlay.id = 'dsq-overlay';
		overlay.className = 'dsq-overlay';
		Dsq.$b.appendChild(overlay);
		
		Dsq.Popup.popModal(message, title, post_id, false, 'dsq-lightbox');
	};

	this.popProfile = function(post_id, userKey) {
		var post = Dsq.jsonData['posts'][post_id];
		if (post && post.has_been_anonymized) {
			Dsq.Popup.popModal('This message was anonymized by its previous owner.', 'Anonymized', post_id);
			return;
		}

		if(post_id) {
			userKey = Dsq.jsonData['posts'][post_id].user_key;	
		}
		var userData = Dsq.jsonData['users'][userKey];
		var elId = 'dsq-popup-profile-' + userKey;
		var container = document.createElement('div');

		if(this.activePopup.el) {
			this._closePopup(null, true);
			if(this.activePopup.linkClicked) {
				this.activePopup.linkClicked = false;
				return;
			}
		}

		container.id = elId;
		container.innerHTML = Dsq.Templates.popupProfile(userKey);

		this.initPopup(container, post_id, 'profile');
		this.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', this._closePopup);

		if(!this.profileCache[userKey]) {
			Dsq.Utils.execScript('http://disqus.com/embed/profile.js'
				+ '?username=' + userKey
				+ '&anon=' + (userData['registered'] ? 0 : 1)
				+ '&f=' + Dsq.jsonData['request'].forum);
		} else {
			this.updateProfile(userKey);
		}
	};

	this._closePopup = function(e, force) {
		var activePopup = Dsq.Popup.activePopup.el;
		var id = Dsq.Popup.activePopup.id;
		var link = 'dsq-avatar-' + id; // HACK: Specific to profile toggle target

		// HACK: This event should be gone if there is no active popup.
		if(!activePopup) {
			return;
		}
		if(force || !Dsq.Popup.isClicked(e, activePopup.id)) {
			// TODO: This is breaking iE?
			if(Dsq.Popup.popupListener) {
				Dsq.Utils.removeEventListener(Dsq.Popup.popupListener);
			}
			
			// Kill overlay
			var overlay = Dsq.$('dsq-overlay');
			if(overlay) { Dsq.Utils.deleteNode(overlay); }
			
			try {
				Dsq.Utils.deleteNode(activePopup);
			} catch(e) {
				// HACK: IE6 throws an error when using deleteNode() with a node containing a <table> in the html.
				activePopup.parentNode.removeChild(activePopup);
			}
			Dsq.Popup.activePopup = {};
		}

		if(!force && Dsq.Popup.isClicked(e, link)) {
 			Dsq.Popup.activePopup.linkClicked = true;
		}

	};

	this.initPopup = function(popup, post_id, type, extra_classes) {
		popup.className = 'dsq-popup dsq-popup-' + type + ' ' + (extra_classes ? extra_classes : '');
		if(Dsq.Utils.ie6 || Dsq.Utils.ie7) {
			// HACK: We can't modify the body before it's ready, so we need
			//       to use an IE-safe "DOMReady" workaround before loading
			//       our popup.
			Dsq.Utils.execOnReady(function() {Dsq.$b.appendChild(popup); });
		} else {
			Dsq.$b.appendChild(popup);
		}

		popup.style.display = 'block';

		var xPos = (Dsq.Utils.getWindowSize()[0] - popup.offsetWidth) / 2;
		var yPos = (Dsq.Utils.getWindowSize()[1] - popup.offsetHeight) / 2;

		if(Dsq.Utils.ie6) {
			yPos += Dsq.Utils.getScrollPos()[1];
		}

		popup.style.left = xPos + 'px';
		popup.style.top = yPos + 'px';

		Dsq.Popup.activePopup = {
			'el' : popup,
			'id' : post_id,
			'type': type,
			'linkClicked' : false
		};
	};

	this.isClicked = function(e, id) {
		var t = e.target || e.srcElement;
		while(t && t.parentNode) {
			if(t.id == id) {
				return true;
			}

			t = t.parentNode;
		}
		return false;
	};
};
// Dsq.Popup

/**
 * Dsq.Templates
 */
Dsq.Templates = new function() {
	/*
	 * Counter keeping track of the number of posts iterated over.
	 */
	this.postLoopCounter = 0;
	this.filters = {};
	this.addPostContainer = 'dsq-post-add';
	this.textareaContainer = 'dsq-post-add';

	this.registerTemplate = function(name, func) {
		this['$$_' + name] = func;

		if(typeof DsqLocal.Filters != 'undefined'
		&& typeof DsqLocal.Filters[name] == 'function') {
			// Push filters to this.filters to unify code.
			this.filters[name] = this.filters[name] || [];
			this.filters[name].push(DsqLocal.Filters[name]);
		}

		this[name] = function() {
			var ret;

			if(typeof DsqLocal.Templates != 'undefined'
			&& typeof DsqLocal.Templates[name] == 'function') {
				ret = DsqLocal.Templates[name].apply(this, arguments);
			}

			if(ret === undefined) {
				ret = this['$$_' + name].apply(this, arguments);
			}

			if(this.filters[name]) {
				var args = [ret];

				args.push.apply(args, arguments);
				for(var i = 0; i < this.filters[name].length; i++) {
					ret = this.filters[name][i].apply(this, args);
				}
			}

			return ret;
		};
	};

	this.registerFilter = function(name, func) {
		this.filters[name] = this.filters[name] || [];
		this.filters[name].push(func);
	};

	/**
	 * Dsq.Templates.Filters
	 */
	this.Filters = new function() {
		this.commentContainer = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			var classes = [];
			if(Dsq.jsonData.request.page > 1) {
				classes.push('dsq-append');
			}

			//
			// Extra classes used for custom themes
			//

			if(_meta.depth) {
				classes.push('dsq-comment-child', 'dsq-depth-' + _meta.depth, 'dsq-parent-is-' + _meta.parent_post_id);
			}


			//

			if(_meta.author_is_creator) {
				// TODO: We need to deprecate the "special" class since it is not properly prefixed.
				classes.push('special', 'dsq-special');
			}
			if(_meta.author_is_moderator) {
				classes.push('dsq-moderator');
			}
			classes.push(['dsq-odd', 'dsq-even'][Dsq.Templates.postLoopCounter % 2]);

			s = s.substring(0, s.lastIndexOf('>'));
			return s + ' class="dsq-comment ' + classes.join(' ') + '" style="margin-left:' + _meta.depth*30 + 'px">';
		};

		this.commentContent = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			if (_meta.killed) {
				return '<em>Comment removed.</em>';
			} else if (!_meta.approved) {
				return '<em>This comment was flagged for review.</em>';
			}

			s = s.replace(Dsq.MEDIA_POST_RE, Dsq.MediaPostHandler);
			return s;
		};
	};

	//
	// Thread
	//
	// TODO: These need to be stripped of all Django template tags.

	this.authPost = function() {
		if (!Dsq.jsonData.context.show_reply) {
			return '';
		}
		var result = [];
		result = result.concat([
				'<div id="dsq-auth"',
						Dsq.jsonData.integration.reply_position ? 'class="dsq-auth-bottom"' : '',
						'>',
					'<div class="dsq-by">',
						'<a href="http://disqus.com" target="_blank">',
							(Dsq.jsonData.integration.disqus_logo ?
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/by-disqus.png" alt="discussion by DISQUS">') :
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/dsq-button-120x19.png" alt="discussion by DISQUS">')
							),
						'</a>',
					'</div>',
					'<div class="dsq-auth-header">',
						'<h3 id="dsq-add-new-comment" class="dsq-h3-addcomment">',
								Dsq.Strings.ADD_NEW_COMMENT,
						'</h3>',
						'<div id="dsq-login">',
						(!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.allow_anon_post
								? '<p class="dsq-login-message" id="dsq-login-message">You are commenting as a <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. You may select one to log into:</p>'
								: '')
		]);
		if (!Dsq.jsonData.request.is_authenticated) {
			result = result.concat([
							Dsq.Utils.interpolate(
								'<a id="dsq-login-toggle" href="%(disqus_url)s%(login_url)s?next=article:%(thread_id)s" onclick="Dsq.Popup.login(); return false"><img class="dsq-login-icon" src="%(media_url)s/images/dsq-profile-btn.png" title="%(log_into)s" alt="%(log_into)s"/></a>',
								{login_url: Dsq.Urls.LOGIN, thread_id: Dsq.jsonData.thread.id, log_into: Dsq.Strings.LOG_INTO_DISQUS}
								),
							'&nbsp; ',
							(Dsq.jsonData.context.use_fb_connect ?
								'<div id="dsq-fbc-login" onlogin="DisqusFbcParentController.onLogin()" size="medium" background="light" length="short" style="display:inline; margin-right:7px"></div>' :
								''
							),
							(Dsq.jsonData.context.use_twitter_signin ?
								Dsq.Utils.interpolate(
									'<div id="dsq-twitter-login" class="dsq-twitter-login" onclick="Dsq.Twitter.startTwitterConnect();" style="display:inline; cursor: pointer"><img src="%(media_url)s/images/twitter-signin-short.png" style="margin-right:7px" /></div>', {}) : ''),
							(Dsq.jsonData.context.use_openid ?
								Dsq.Utils.interpolate(
									'<div id="dsq-openid-login" class="dsq-openid-login" onclick="Dsq.OpenID.requestURL();" style="display:inline; cursor:pointer;"><img src="%(media_url)s/images/openid-login-button.png"/></div>', {}
								) : '')
			]);
		}
		result = result.concat([
						'</div>', // dsq-login
					'</div>', // dsq-auth-header
					'<div id="dsq-authenticated" class="dsq-authenticated" ',
						Dsq.jsonData.request.is_authenticated ? 'style="display:block"' : '',
						'>',
						'<div class="dsq-authenticated-pic">',
								Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">' +
																			'<img class="dsq-post-avatar" src="%(avatar_url)s" alt="" /></a>',
																			{avatar_url: Dsq.Urls.REQUEST_USER_AVATAR,
																			url: (Dsq.jsonData.request.is_remote
																					 ? Dsq.jsonData.request.url
																					 : Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE) }),
						'</div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									(Dsq.jsonData.request.is_remote
										? Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">%(request_display_username)s</a>', {url:Dsq.jsonData.request.url})
										  )
										: Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(disqus_url)s%(profile_url)s" title="%(request_display_username)s">%(request_display_username)s</a>')
											)
									),
								'</li>',
								'<li class="logout">',
									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<img class="dsq-login-icon" src="%(media_url)s/images/dsqicon12.png" alt="%(logged_in_as)s"/>&nbsp',
											{logged_in_as: Dsq.FmtStrings.LOGGED_IN_AS(Dsq.jsonData.request.display_username)})
										: ''),

									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="%(logout_from_disqus)s">',
											{logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN, logout_from_disqus: Dsq.FmtStrings.LOGOUT_FROM('DISQUS')})
										: ((Dsq.jsonData.request.remote_domain == 'twitter')
												? Dsq.Utils.interpolate('using Twitter (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
												 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
												: ((Dsq.jsonData.request.remote_domain == 'openid')
													 ? Dsq.Utils.interpolate('using OpenID (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
													 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
													 : ''
													)
											)
									),

									(!Dsq.jsonData.request.is_remote ? Dsq.FmtStrings.LOGOUT_FROM('<span class="logo-disqus">DISQUS</span>') : ''),
									'</a>',
								'</li>',
							'</ul>',
						'</div>',
					'</div>'
		]);
		if (Dsq.jsonData.context.use_fb_connect) {
			result = result.concat([
					'<div id="dsq-fbc-authenticated" class="dsq-authenticated">',
						'<div id="dsq-fbc-profilepic" class="dsq-authenticated-pic" uid="loggedinuser" type="FB.XFBML.ProfilePic" size="square" facebook-logo="true"></div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									'Logged in as <span id="dsq-fbc-name" uid="loggedinuser" type="FB.XFBML.Name" linked="true" useyou="false"></span>',
								'</li>',
								'<li class="logout">using Facebook Connect <a href="#" onclick="javascript:DisqusFbcParentController.logout();return false;">(Logout)</a></li>',
							'</ul>',
						'</div>',
					'</div>'
			]);
		}
		result = result.concat([
				'</div>', // dsq-auth
				'<div id="dsq-toolbar-items">',
				'</div>'
		]);
		result = result.concat([
					//
					//
					//
				((!Dsq.jsonData.forum.allow_anon_post && !Dsq.jsonData.request.is_authenticated) ?
					// Needs to be translated:
					('<p id="dsq-no-anon-msg">Required: Please log into <span class="logo-disqus">Disqus</span> ' +
					(Dsq.jsonData.context.use_fb_connect ? 'or connect with Facebook ' : '') +
					(Dsq.jsonData.context.use_twitter_signin ? 'or sign in with Twitter ' : '') +
					(Dsq.jsonData.context.use_openid ? 'or sign in using OpenID ' : '') +
					Dsq.Utils.interpolate('to comment on <strong>%(forum_name)s</strong>.</p>')) :
					''
				),
				'<div id="dsq-post-add"></div>',
				'<div style="margin:10px 0">',
				((Dsq.jsonData.forum.use_media) ?
						'<a href="#" id="dsq-media-link" onclick="Dsq.Post.showMenu(this, false, \'media\'); return false">' + Dsq.Strings.USE_MEDIA + ' <small>&#9660;</small></a>' :
						''),
				'</div>'
		]);
		return result.join('');
	};


	this.header = function() {

		var html = '\<h3 id="dsq-comments-count" class="dsq-h3-commentcount">\
	 <span id="dsq-num-posts">22</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://disqus.com/forums/venturebeat/people_in_glass_houses/latest.rss"><img src="http://media.disqus.com/images/embed/bullet-feed.png"></a>\
	 </span>\
	 </h3>\
	 <div id="dsq-options" style="margin:15px 0">\
	 <span class="dsq-item-sort">\
	 Sort by\
	 <select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);">\
	 <option value="hot" selected="selected">Popular now</option>\
	 <option value="best" >Best Rating</option>\
	 <option value="newest" >Newest first</option>\
	 <option value="oldest" >Oldest first</option>\
	 </select>\
	 &nbsp;\
	 </span>\
	 <span class="dsq-item-cp"><a href="http://disqus.com/forums/venturebeat/people_in_glass_houses/">Community Page</a>&nbsp;&nbsp;&nbsp;</span>\
	 <span class="dsq-item-subscribe">\
	 <img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle">\
	 <span id="dsq-subscribe">\
	 <a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a>\
	 </span>\
	 </span>\
	 </div>\
	 <div id="dsq-alerts">\
	 </div>\
		';

		

		
		if (Dsq.jsonData.request.is_moderator) { 
			html = ' \
			<div class="dsq-alert-message dsq-upgrade-message"> \
				<strong>Disqus upgrade available.</strong> Hi ' + Dsq.jsonData.request.display_username + ', this message is being displayed to you because you are a moderator of this site. <a href="#" onclick="Dsq.$(\'dsq-upgrade-message\').style.display=\'block\';this.style.display=\'none\';return false">Click here for details.</a> \
				<div style="display:none; margin-top:10px;" id="dsq-upgrade-message"> \
					A new theme is available with added features. <a href="http://disqus.com/comments/settings/' + Dsq.jsonData.forum.url + '/?p=customize">To change your theme, click here</a> and choose the theme Narcissus. \
					If you do not upgrade, you are missing out on features such as: real-time commenting, new sign-in integrations, and an upgrade interface. \
					<strong>This message will automatically go away in one week.</strong> \
				</div> \
			</div> \
			' + html; 
		}
		return html;
	};

	this.footer = function() {
		var html = Dsq.Templates.pagination();

		
			html += Dsq.Templates.authPost();
		

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		

		return html;
	};

	this.pagination = function() {
		var html = '';
		
		if (Dsq.$('dsq-pagination')) { Dsq.$('dsq-pagination').innerHTML = ''; }
		if (!Dsq.jsonData.thread.paginate) { return ''; }

		//
		// TODO: num_paginator still uses the template tag for pagination, 
		// 		while append_paginator does it all in JavaScript.
		//		This should all be in JavaScript.
		//

		if (Dsq.jsonData.thread.num_pages > 1 && Dsq.jsonData.request.page < Dsq.jsonData.thread.num_pages) {
			html = ' \<a class="dsq-paginate-append-text" href="#" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this); return false">Show more comments...</a>\
	 <button type="button" class="dsq-button-small dsq-paginate-append-button" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this);">Load more comments</button>\
			';
		}
		
		if (Dsq.$('dsq-pagination')) {
			Dsq.$('dsq-pagination').innerHTML = html;
			return '';
		} else {
			return '<div id="dsq-pagination" class="dsq-pagination">' + html + '</div>';
		}
	};

	this.trackbacks = function() {
		var html = '';

		if(typeof DsqLocal != 'undefined' && DsqLocal.trackback_url && DsqLocal.trackbacks) {
			var trackbacks = DsqLocal.trackbacks;
			var trackback_url = DsqLocal.trackback_url;
		} else {
			var trackbacks = [
			
			
			];
			var trackback_url = 'http://disqus.com/forums/venturebeat/people_in_glass_houses/trackback/';
		}

		html += '<div class="dsq-item-trackback">Trackback URL&nbsp;&nbsp;<input class="dsq-trackback-url" onclick="this.select()" readonly="true" value="' + trackback_url + '"></div>';

		if(trackbacks.length) {
			html += '<ul id="dsq-references">'
			for(var i = 0; i < trackbacks.length; i++) {
				var trackback = trackbacks[i];
				html += '<li><cite><a href="' + trackback.author_url + '" rel="nofollow">' + trackback.author_name + '</a></cite> \
						<p class="dsq-meta">' + trackback.date + '</p> \
						<p class="dsq-content">' + trackback.excerpt + '</p></li>';
			}
			html += '</ul>';
			html = '<h3 class="dsq-h3-trackbacks">Trackbacks</h3>' + html;
		}

		return html;
	}

	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		/* Reaction HTML begins */
		var item = '<li class="dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-reaction-header">'
			+ '<div class="dsq-header-avatar">';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'">';
		} else {
			item += '<a target="_blank" href="#" onclick="return false;">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {
			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar32.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png"/>'
			+ '</a></div>'
			+ '<cite><span>' + reaction.author_name + '</span></cite>'
			+ '<span class="dsq-header-meta"><a class="dsq-header-time">' + reaction.date_created + '</a></span>'
			+ '</div><div class="dsq-reaction-body">'
			+ '<div class="dsq-reaction-message">' + reaction.body + '</div>'
			+ '<div class="dsq-reaction-footer">From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
			+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
			+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator ? '&nbsp;&bull;&nbsp;<a class="dsq-hide-reaction" href="#" onclick="Dsq.Reaction.hide(' + reaction.id + '); return false;">Hide</a>' : '') + '</div></div>';

		if(reaction.retweets) {
			var num_retweets = reaction.retweets.length;
			if (num_retweets > 0) {
				item += '<div class="dsq-reaction-retweets">';
				if (num_retweets == 1) {
					item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
				} else {
					item += (num_retweets + ' more retweets from ');

					item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
					var n_tweets = (num_retweets > 15) ? 15 : num_retweets;
					item += Dsq.Templates.showRetweets(reaction.id, n_tweets);

					if (n_tweets != num_retweets) {
						item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
							+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
					}
				}
				item += '</div>';
			}
		}

		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}

		return '<h3 class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this.missingPermissions = function() {
		return '';
	};

	//
	// Post
	//

	this.prependPost = function(post_id) {
		var html = '<div id="comment-' + post_id + '"></div>';
		return html;
	};

	this.appendPost = function(post_id) {
		var html = '<div id="dsq-comment-reply-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};

		return ' \
			<div class="dsq-header-avatar" id="dsq-header-avatar-' + post_id + '" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
				<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
			+ (Dsq.jsonData.forum.show_avatar
				? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
				: '')
			+ '</a>'
			+ '</div> \
		';
	};

	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];

		return ''
			+ (_meta.author_is_moderator
				? '<img class="dsq-mod-star" src="http://media.disqus.com/images/bullet-star.png" title="Moderator" alt="" />'
				: '')
			+ '<span class="dsq-header-meta"> \
				<a id="dsq-time-' + post_id + '" class="dsq-header-time" href="#comment-' + post_id + '" title="Permalink">' + _meta.date + '</a> \
			</span>';
	};

	this.preBody = function(post_id) {
		return '';
	}

	this.postBody = function(post_id) {
		// TODO: Deprecate flagging conditional
		var _meta = Dsq.jsonData.posts[post_id];
		return ''
			+ (_meta.edited
				? '<p class="dsq-editedtxt">(Edited by a moderator)</p>'
				: '')
			;
	};

	this.postFooter = function(post_id) {
		// TODO: Use media should be conditional
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed) { return ''; }

		return ' \
			<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
				<div id="dsq-points-' + post_id + '" class="dsq-likedtxt">'
				+ (_meta.points
					? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this comment.'
					: '')
				+ '</div>'
				+ '<ul class="dsq-comment-options dsq-list-style">'
				+ (_meta.votable
					? '<li class="dsq-list-first dsq-rate" id="dsq-rate-cont-' + post_id + '">'
					+ (!_meta.up_voted
						? '<a href="#" onclick="Dsq.Post.rate(this, ' + post_id + ', 1); return false;">Like</a>'
						: 'You liked this.') + '</li>'
					: '')
				+ '<li class="dsq-report' + (!_meta.votable ? ' dsq-list-first' : '') + '" id="dsq-post-report-' + post_id + '"><a href="#" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">Report</a></li> \
				</ul> \
				<ul class="dsq-list-style">'
				+ (_meta.can_reply
					? '<li class="dsq-list-first"><a href="#" id="dsq-reply-link-' + post_id +'" onclick="Dsq.Post.toggleReply(this, ' + post_id +'); return false;">Reply</a></li>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<li id="dsq-edit-el-' + post_id + '"><a id="dsq-edit-link-' + post_id + '" href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit</a></li>'
					: '')
				+ '<li class="' + (!_meta.can_reply ? 'dsq-list-first' : '') + '" id="dsq-more-el-' + post_id + '"><a id="dsq-more-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'more\'); return false">More <small>&#9660;</small></a></li>'
				+ (Dsq.jsonData.forum.use_media
					? '<li id="dsq-media-el-' + post_id +'" style="display:none"><a id="dsq-media-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'media\'); return false">Use Media <small>&#9660;</small></a></li>'
					: '')
				+ '</ul>'
				+ '<div id="dsq-reply-bar-' + post_id + '" class="dsq-reply-bar" style="display:none"> \
						<div id="dsq-reply-bar-items-' + post_id + '" class="dsq-reply-bar-items"> \
						</div> \
						<div id="dsq-reply-bar-auth-' + post_id + '" class="dsq-reply-bar-auth"> \
							 \
								 \
								 	<a href="#" class="dsq-help dsq-reply-req-opt" title="You are commenting as a Guest. You may choose to log into an existing DISQUS Profile, your Facebook, Twitter or OpenID account to comment on VentureBeat" onclick="Dsq.Popup.helpBadges(); return false">Optional:</a> \
								 \
								<img class="dsq-login-icon" src="http://media.disqus.com/images/dsq-favicon-16x16.png" alt="" /> \
								<a id="dsq-reply-login-' + post_id + '" href="http://disqus.com/profile/login/?next=article:22046995" onclick="Dsq.Popup.login(); return false">Login</a> \
								 \
									&nbsp;or&nbsp; \
									<img class="fb_login_image" src="http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_small_short.gif" alt="Facebook Connect"/> \
									<a href="#" onclick="FB.Connect.requireSession(DisqusFbcParentController.onLogin); return false;">Connect</a> \
								 \
								&nbsp;or&nbsp; \
									<img src="http://media.disqus.com/images/twitter-signin-icon.png" alt="" /> \
									<a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false">Sign-in</a> \
								 \
								 \
							 \
						</div> \
					</div> \
					<div id="dsq-reply-' + post_id + '"></div> \
			</div> \
		';
	};

	//
	// Iframes
	//

	this._makeAttributes = function(attributes) {
		// Makes a tag attributes string out of an object.
		// Caller is responsible for making sure nothing needs to be escaped.
		var result = [];
		for (key in attributes) {
			result.push(' ' + key + '="' + attributes[key] + '"');
		}
		result = result.join('');
		return result;
	};

	this._frameGeneric = function(base_url, params, attributes) {
		if(typeof(disqus_callback_params) == 'undefined') {
			disqus_callback_params = '';
		}

		var default_params = {
			// TODO: These should be moved to Dsq.jsonData.
			'f'				: 'venturebeat',
			't'				: 'people_in_glass_houses',
			// Do we need encodeURIComponent here?
			'ifrs'			: encodeURIComponent(disqus_iframe_css),
			'to_redirect'	: encodeURIComponent(window.location),
			'cbp'			: disqus_callback_params,
			'ff'			: Dsq.Thread.ff,
			'fc'			: Dsq.Thread.fc,
			'ac'			: Dsq.Thread.ac,
			'default_text'	: disqus_default_text
		};

		base_url += '?' + (new Date()).getTime();
		// Add params to default_params.
		if(params) {
			for(var key in params) {
				if(params.hasOwnProperty(key)) {
					default_params[key] = encodeURIComponent(params[key]);
				}
			}
		}
		// Build querystring.
		for(var key in default_params) {
			if(default_params[key] && default_params.hasOwnProperty(key)) {
				base_url += '&' + key + '=' + default_params[key];
			}
		}

		return [
			'<iframe marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0"',
			(' allowtransparency="true" src="' + base_url + '"'),
			this._makeAttributes(attributes),
			'</iframe>'].join('');
	};

	this.frameLogin = function(opt_attributes) {
		var params = {};
		var base_url = 'http://disqus.com/embed/login.html';
		var attributes = opt_attributes || {};
		attributes['class'] = 'dsq-post-login';

		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameReply = function(post_id, extra_params, attributes) {
		// Returns the HTML for a reply iframe. Called by Dsq.Iframes.setReplyIframeToContainer
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = Dsq.Urls.REPLY;
		var params = {
			'def_email'		: disqus_def_email,
			'def_name'		: disqus_def_name
		};
		if(extra_params) {
			for(var key in extra_params) {
				if(extra_params.hasOwnProperty(key)) {
					params[key] = extra_params[key];
				}
			}
		}
		if(_meta) {
			params['parent_post'] = post_id;
		}
		if(typeof disqus_per_page != 'undefined') {
			params['per_page'] = disqus_per_page;
		}
		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		if(Dsq.jsonData.request.is_authenticated) {
			attributes['class'] += '-authenticated';
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameEdit = function(post_id) {
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = 'http://disqus.com/embed/edit.html';
		var params = {
			'p' : post_id
		};
		return this._frameGeneric(base_url, params, {'class': 'dsq-post-edit', 'name': 'dsq-edit_' + post_id + '-frame'});
	};

	//
	// Menus
	//

	this.menuMore = function(post_id) {
		// TODO: "Remove post" button should hide menu.
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		return ' \
			<li><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')">Link</a></li> \
			<li><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Profile</a></li>'
	+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
		? '	<li class="dsq-menu-sep"></li>' + (_meta.email ? '<li class="dsq-admin-email">' + _meta.email + '</li>' : '')
		+ '	<li class="dsq-admin-ip">' + _meta.ip + '</li> \
			<li class="dsq-menu-sep"></li>'
		+ (Dsq.jsonData.request.moderator_can_edit
			? ' <li class="dsq-admin-edit"><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit Comment</a></li>'
			: '')
		+ ' <li class="dsq-remove"><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); return false;">Remove Comment</a></li> \
			<li class="dsq-report-spam"><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); return false;">Mark Spam</a></li> \
			<li class="dsq-block-user"><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li>'
		: '');
	};

	this.menuMedia = function(post_id) {
		return ' \
			<li><a href="#" onclick="Dsq.Post.toggleMediaReply(this, ' + post_id + ', \'seesmic\'); return false;">Record video</a></li> \
		';
	};

	this.dropProfile = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};


		var menu = '<li class="dsq-drop-showlnk"><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Expand &#8663;</a></li>';
		var pointsMessage = '';
		if (userData['registered']) {
			pointsMessage = 'with ' + userData['points'] + ' points (more points are better).';
		}

		if (userData['is_remote']) {
			var domain = userData['remote_domain_name'];
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' is a ' + domain + ' user ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
			menu += '<span class="dsq-badge-' + domain.toLowerCase() + '">' + domain + '</span></li>';
		} else if (userData['registered']) {
			if (userData['verified']) {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a verified commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-verified">Verified</span></li>';
			} else {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a registered, but unverified, commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-registered">Registered</span></li>';
			}
		} else {
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has not claimed this commenter profile." onclick="Dsq.Popup.helpBadges()"><span class="dsq-badge-guest">Guest</span></li>';
		}

		menu += _includeServices();
		return menu;
	};

	//
	// Popups
	//

	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-content"> \
			<div class="dsq-popup-top"></div> \
			<div class="dsq-popup-body" class="clearfix"> \
				<div class="dsq-popup-body-padding"> \
					<div class="dsq-popup-header"> \
						<a class="dsq-close-link" href="#" onclick="Dsq.Popup._closePopup(null, true); return false"><img src="http://media.disqus.com/images/modal-close.png" alt="" /></a>'
						+ content['header']
					+ '</div>'
					+ content['body']
					+ '<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
				</div> <!-- padding --> \
			</div> <!-- body --> \
			<div class="dsq-popup-bottom"></div> \
		</div> \
		';
	};

	this.popupProfile = function(user_key) {
		var userServices = Dsq.Post.getUserServices(user_key, null);
		var userData = Dsq.jsonData['users'][user_key];
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		var _includeServices = function() {
			var html = '';
			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == 0
					? '<h4>Connections</h4><ul>'
					: '')
				+ '<li> \
					<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '" title="' + userServices[i].name.toLowerCase() + '" /> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank">'
					+ userServices[i].name
					+ '</a> \
				</li>'
				+ (i+1 == userServices.length ? '</ul>' : '');
			}
			return html;
		};

		headerHtml = ' \
			<table> \
				<tr> \
					<td> \
						<a class="dsq-profile-userurl" href="' + userData.url + '"><img class="dsq-popup-profile-avatar" src="' + userData['avatar'] + '" alt="" /></a> \
					</td> \
					<td> \
						<div class="dsq-popup-profile-user"> \
							<h3>' + userData['display_name'] + '</h3> \
							<div class="dsq-popup-profile-user-stats" id="dsq-popup-profile-user-stats-' + user_key + '">Loading...</div> \
						</div> \
					</td> \
				</tr> \
			</table> \
		';

		bodyHtml = ' \
			<div class="dsq-popup-profile-state"> \
				This is a&nbsp;<span class="'
					+ (userData['registered']
						? (userData['verified']
							? ' dsq-badge-verified'
							: (userData['is_remote']
								? ' dsq-badge-' + userData['remote_domain_name'].toLowerCase()
								: ' dsq-badge-registered')
							)
							: ' dsq-badge-guest') + '">'
			+ (userData['registered']
				? (userData['verified']
					? 'Verified'
					: (userData['is_remote']
						 ? userData['remote_domain_name']
						 : 'Registered')
					)
				: 'Guest')
			+ '</span>&nbsp;commenter profile.'
			+ '&nbsp;<a class="dsq-profile-userurl" href="' + userData.url + '"><strong>View more comments </strong></a>'
			+ (!userData['points']
				? '<p class="dsq-popup-notice">If this is you, <a href="http://disqus.com/profile" target="_blank">claim it now</a> to manage your comments.</p>'
				: '')
			+ ((userData['registered'] && !userData['verified'] && (Dsq.jsonData.request.username && (Dsq.jsonData.request.username == userData['username'])) && !userData['is_remote'])
				? '<p class="dsq-popup-notice"><strong>Alert</strong>: You have not verified this account. <a href="http://disqus.com/verify">Verify it now.</a></p>'
				: '')
			+ '</div> \
			<div id="dsq-profile-status-' + user_key + '" class="dsq-popup-profile-status" style="display:none"></div> \
			<div class="dsq-popup-profile-snapshot"> \
				<table> \
					<tr> \
						<td> \
							<div id="dsq-popup-profile-active-sites-wrapper-' + user_key + '"> \
								<h4>Most active sites</h4> \
								<ul id="dsq-popup-profile-active-sites-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
						<td>'
							+ _includeServices()
							+ '<div id="dsq-popup-profile-moderated-wrapper-' + user_key + '"> \
								<h4>Moderator of</h4> \
								<ul id="dsq-popup-profile-moderated-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupReblog = function() {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<cite><span>Reblog this comment</span></cite> \
		';

		bodyHtml = ' \
			<div id="dsq-reblog-form" class="dsq-reblog-form"> \
			</div> \
		';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupModal = function(title, message) {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<h3>' + title + '</h3> \
		';

		bodyHtml = message;

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.alertContent = function(name, post_id) {
		var alert = {
			'post_not_approved': {
				'title': 'Comment awaiting approval by a moderator',
				'message': 'Thanks for posting. Your comment must be approved by a moderator before appearing here.'
			},
			'post_has_profile': {
				'title': 'Use your existing commenter profile',
				'message': 'You have just posted your commment as a <span class="dsq-badge dsq-badge-guest">Guest</span>, but you may already have a <span class="dsq-badge dsq-badge-registered">Registered</span> commenter profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a>'
			}
		};
		return alert[name] || false;
	};

	//
	// Actions
	//

	this.voted = function(post_id, points, vote) {
		// Update number of points
		Dsq.$('dsq-points-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this comment.';

		// Update link text
		if(vote) {
			Dsq.$('dsq-rate-cont-' + post_id).innerHTML = 'You liked this.';
		}
	};

	this.subscribed = function(status) {
		var title, message;

		if(status) {
			title = 'Subscribed!';
			message = 'You have subscribed to this comment thread. New comments will be sent directly to your email inbox, where you may read and respond by email.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(0); return false">Unsubscribe</a> \
			';
		} else {
			title = 'Unsubscribed';
			message = 'You have unsubscribed to this comment thread. New comments will no longer be sent to your email inbox.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a> \
			';
		}

		Dsq.Popup.popModal(message, title);

	};
	
	this.highlighted = function() {
		Dsq.Popup.popModal('This comment has been highlighted.', 'Highlighted comment');
	};

	//
	// Media
	//

	this.mediaSeesmic = function(id, thumb) {
		return ' \
			<div id="dsq-seesmic-' + id + '_preview" class="dsq-seesmic-preview"><a href="http://www.seesmic.com/video/' + id + '" target="_blank" class="see_link">&nbsp;</a> \
				<div style="display:block;width:160px; height:120px; border:none; background-image:url(http://t.seesmic.com/thumbnail/' + thumb + ')"> \
					<div id="dsq-seesmic-' + id + '_hide" class="seePlayOverlay" style="display:none;"><img onclick="see_play_video(\'' + id + '\',false)" src="http://media.disqus.com/images/seesmic/stopOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; padding-top: 30px; padding-left: 50px" alt="" /></div> \
					<div id="dsq-seesmic-' + id + '_show" class="seePlayOverlay"><img onclick="see_play_video(\'' + id + '\',true)" src="http://media.disqus.com/images/seesmic/playOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; border:none; padding-top: 30px; padding-left: 50px" alt="" /></div> \
				</div> \
			</div> \
			<div id="' + id + '_content" style="display:block; width:100%; padding-top:5px"></div> \
		';
	};

	//
	// Callbacks
	//

	this.postComment_onSuccess = function(parent_post_id) {
		// Increment post count
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');
		
		if (num_posts) { 
			num_posts.innerHTML = parseInt(num_posts.innerHTML) + 1;
		}
		if (total_posts) { 
			total_posts.innerHTML = parseInt(total_posts.innerHTML) + 1;
		}
	};
};
// Dsq.Templates


/**
 * Dsq.Post
 */
Dsq.Post = new function() {
	this.openedMenu = {};
	this.menuEventListener = null;
	this.stateReplyToggled = {};
	this.stateEditToggled = {};
	this.stateRecordLink = {};

	/**
	 * Inserts a new post into the document.
	 *
	 * @param after_id {Number}	Insert a post before specified id.  If after_id
	 *							evaluates to false, then post in the front.  If
	 *							after_id is -1, post at the end.
	 */
	this.insert = function(after_id, id, message, author) {
		// Skeleton template from thread_posts.html.
		var skeleton = ' \
			<li id="dsq-comment-%(id)s"> \
				<div id="dsq-comment-header-%(id)s" class="dsq-comment-header"> \
					<cite id="dsq-cite-%(id)s" class="dsq-comment-cite"> \
						<a id="dsq-author-user-%(id)s" href="%(author_url)s" target="_blank" rel="nofollow">%(author_name)s</a> \
					</cite> \
				</div> \
				<div id="dsq-comment-body-%(id)s" class="dsq-comment-body"> \
					<div id="dsq-comment-message-%(id)s" class="dsq-comment-message">%(message)s</div> \
				</div> \
			</li> \
		';
		var _meta = Dsq.jsonData.posts[id];
		var _user_meta = Dsq.jsonData.users[_meta.user_key];
		var markup = Dsq.Utils.interpolate(skeleton, {
			id: id,
			message: message,
			author_url: _user_meta.blog,
			author_name: _user_meta.display_name
		});
		var div = document.createElement('div');
		markup = markup.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
		div.innerHTML = markup;

		if (after_id === -1) {
			Dsq.$('dsq-comments').appendChild(div);
		} else if (!after_id) {
			Dsq.$('dsq-comments').insertBefore(div, Dsq.$('dsq-comments').firstChild);
		} else if (Dsq.$('dsq-comment-' + after_id)) {
			// Get next node after "after_id", so we can insert before it.
			// If "after_id" is the last comment, the target node is the
			// last node.
			
			// var append_post_id = Dsq.Templates.appendPost(after_id).replace('<div id="','').replace('"></div>', '');
			var append_post_id = 'dsq-append-post-' + after_id;
			var node = Dsq.$(append_post_id);
			while (node = node.nextSibling) {
				if (!node || node.nodeType == 1) { // 1 == Node.ELEMENT_NODE
					break;
				}
			}
			if (!node) {
				node = Dsq.$(append_post_id);
			}

			// insert post as a sibling after dsq-append-post-{id}
			node.parentNode.insertBefore(div, node.nextSibling);
		}
	};

	this.incrementPostCount = function() {
		
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');

		if (num_posts) {
			num_posts.innerHTML = parseInt(num_posts.innerHTML, 10) + 1;
		}
		if (total_posts) {
			total_posts.innerHTML = parseInt(total_posts.innerHTML, 10) + 1;
		}
	}
	
	this.outlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className += ' dsq-comment-outline';
		setTimeout("(function () { Dsq.Post.clearOutlineComment(" + post_id + ") })()", 3000);
	};
	
	this.clearOutlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className = Dsq.$('dsq-comment-' + post_id).className.replace('dsq-comment-outline', '');
	};

	this.showMenu = function(el, id, name) {
		var anchorPos = Dsq.Utils.findPos(el);
		var menu = document.createElement('ul');

		if(this.openedMenu) {
			if(this.openedMenu.linkClicked) {
				this.openedMenu.linkClicked = false;
				return;
			}
		}

		switch(name) {
			case 'more':
				menu.innerHTML = Dsq.Templates.menuMore(id);
				break;
			case 'media':
				menu.innerHTML = Dsq.Templates.menuMedia(id);
				break;
			default:
				break;
		}

		// Add menu to document body
		menu.id = 'dsq-menu-' + id;
		menu.className = 'dsq-menu';
		Dsq.$b.appendChild(menu);

		// Position and show
		anchorPos[1] += 15;
		menu.style.left = anchorPos[0] + 'px';
		menu.style.top = anchorPos[1] + 'px';
		menu.style.display = 'block';

		// Set global reference
		this.openedMenu = {
			'el' : menu,
			'id' : id,
			'name' : name,
			'linkClicked' : false
		};

		// Set listener
		this.menuEventListener = Dsq.Utils.addEventListener(document, 'mouseup', this._hideMenu);
	};

	this._hideMenu = function(e) {
		var el = e.target || e.srcElement;
		var openedMenu = Dsq.Post.openedMenu.el;
		var id = Dsq.Post.openedMenu.id;

		if(!id) {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link';
		} else {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link-' + id;
		}

		if(!openedMenu) {
			return;
		}

		if(!Dsq.Popup.isClicked(e, openedMenu.id)) {
			openedMenu.style.display = 'none';
			Dsq.Utils.removeEventListener(Dsq.Post.menuEventListener);
			Dsq.Utils.deleteNode(openedMenu);

		} else {
			// Hide the menu if a link was clicked inside the menu.  We can't
			// completely remove the menu until the onclick event on the link
			// fires, but the menuEventListener will prevent multiple menus
			// from polluting the DOM.
			if(el && typeof el.href != 'undefined') {
				openedMenu.style.display = 'none';
				Dsq.Post.openedMenu.el = null;
			}
		}

		if(Dsq.Popup.isClicked(e, link)) {
 			Dsq.Post.openedMenu.linkClicked = true;
		}
	};


	this.getUserServices = function(user_key, id) {
		if(!user_key && id) {
			var _meta = Dsq.jsonData.posts[id];
			user_key = _meta.user_key;
		}
		var userData = Dsq.jsonData['users'][user_key];
		var userServices = [];

		// Keep a full list of supported services. This is the order they will display in the drop-profile.
		// Each service must have a corresponding case in _buildServiceUrl()
		var supportedServices = ['blog', 'twitter', 'facebook', 'tumblr'];

		function _buildServiceUrl(serviceName) {
			var data = userData[serviceName];
			var services = {
				blog:		function(d) { return d; },
				twitter:	function(d) { return d; },
				facebook:	function(d) { return d; },
				tumblr:		function(d) { return 'http://' + d + '.tumblr.com'; }
			};
			return services[serviceName](data);
		}

		for(var i = 0; i < supportedServices.length; i++) {
			if(userData[supportedServices[i]]) {
				var serviceUrl = _buildServiceUrl(supportedServices[i]);
				userServices.push({'name' : supportedServices[i], 'url' : serviceUrl});
			}
		}
		return userServices;
	}

	this.dropProfile = function(id) {
		var dp = Dsq.$('dsq-drop-profile-' + id);

		// IE6 needs JS to display/hide. All other browsers use CSS.
		if(dp) {
			if(Dsq.Utils.ie6) dp.style.display = (dp.style.display == 'inline') ? 'none' : 'inline';
			return false;
		} else {
			dp = document.createElement('ul');
		}

		dp.id = 'dsq-drop-profile-' + id;
		dp.className = 'dsq-drop-profile';

		if(Dsq.Utils.ie6) { dp.style.display = 'inline'; }

		var container = Dsq.$('dsq-header-avatar-' + id);
		dp.innerHTML = Dsq.Templates.dropProfile(id);
		container.appendChild(dp);
	};

	this.dropProfileMore = function(el, id) {
		var hiddenItems = Dsq.$('dsq-drop-hidden-' + id);

		hiddenItems.style.display = 'inline';
		el.parentNode.style.display = 'none';
	};

	this._updateReplyLinks = function(el, id) {
		// Update "reply / cancel" links based on state.
		var displayDict = {};

		if(id) {
			if(this.stateReplyToggled[id]) {
				el.innerHTML = 'Cancel';
				displayDict['media'] = 'inline';
				displayDict['edit'] = 'none';
			} else {
				el.innerHTML = 'Reply';
				displayDict['media'] = 'none';
				displayDict['edit'] = 'inline';
			}
		}

		for(var key in displayDict) {
			if(displayDict.hasOwnProperty(key)) {
				var	linkEl = Dsq.$('dsq-' + key + '-el-' + id),
					spacer = Dsq.$('dsq-' + key + '-spacer-' + id);

				if(linkEl) {
					linkEl.style.display = displayDict[key];
					if(spacer) spacer.style.display = displayDict[key];
				}
			}
		}
	};

	this._updateMediaLinks = function(el, id) {
		// Update "use media / cancel" links based on state.
		var appendId = (id) ? ('-' + id) : '';
		var link = Dsq.$('dsq-media-link' + appendId);

		if(this.stateRecordLink[id]) {
			link.innerHTML = 'Cancel Media';
			link.onclick = function() { Dsq.Post.toggleMediaReply(link, id); return false; };
		} else {
			link.innerHTML = 'Use Media <small>&#9660;</small>';
			link.onclick = function() { Dsq.Post.showMenu(link, id, 'media'); return false; };
		}
	};

	this.toggleReply = function(el, id) {
		// Create reply IFrame
		if (window.disqus_use_postmessage) {
			if (!this.stateReplyToggled[id]) {
				Dsq.$('dsq-reply-' + id).style.display = 'block';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				// Create IFrame if it doesn't exist.
				if (!Dsq.frames['reply_' + id]) {
					var _meta = Dsq.jsonData.posts[id];
					Dsq.frames['reply_' + id] = new Dsq.ReplyFrame(Dsq.$('dsq-reply-frame-' + id), id);
					Dsq.frames['reply_' + id].init();
					Dsq.frames['reply_' + id].setState(id, _meta.depth);
				}
			} else {
				Dsq.$('dsq-reply-' + id).style.display = 'none';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
			}
		} else {
			// DEPRECATED
			if(!this.stateReplyToggled[id]) {
				// Reply toolbar
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(Dsq.$('dsq-reply-' + id), id);
			} else {
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
				Dsq.Iframes.hideAllInContainer(Dsq.$('dsq-reply-' + id));
				if(this.stateRecordLink[id]) {
					// HACK: Cancel media before canceling self.
					this.toggleMediaReply(Dsq.$('dsq-media-link-' + id), id);
				}
			}
		}

		this.stateReplyToggled[id] = !this.stateReplyToggled[id];
		this._updateReplyLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-reply-' + id); }

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: id,
			opened: this.stateReplyToggled[id]
		});
	};

	this.toggleMediaReply = function(el, id, xtype) {
		id = id || 0;
		if(id) {
			var container = Dsq.$('dsq-reply-' + id);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(!this.stateRecordLink[id]) {
			Dsq.Iframes.showReplyIframeInContainer(container, id, {xtype:xtype}, 'dsq-post-video');
		} else {
			Dsq.Iframes.showReplyIframeInContainer(container, id);
		}
		this.stateRecordLink[id] = !this.stateRecordLink[id];
		this._updateMediaLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};

	this.edit = function(el, id) {
		Dsq.$('dsq-comment-message-' + id).innerHTML = Dsq.Templates.frameEdit(id);
		el.parentNode.style.display = 'none';
		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-comment-message-' + id); }
	};

    this.rate = function(el, id, vote) {
		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
                Dsq.$('dsq-rate-cont-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
            }

            Dsq.Utils.execScript('http://disqus.com/forums/venturebeat/vote.js'
                + '?post_id='    + id
                + '&vote='        + vote);

		} else {
			Dsq.Popup.login(Dsq.Strings.TO_RATE_PLEASE_LOG_IN);
		}
    };

	this.showParent = function(id) {
		var author = Dsq.$('dsq-author-user-' + id).innerHTML;
		var post = Dsq.$('dsq-comment-message-' + id).innerHTML;
		
		post += '<br /><br /><a href="#comment-' + id + '">Jump to comment</a>';
		
		Dsq.Popup.popModal(post, author + ' said...', id);
	}

	this.report = function(id, confirmed) {
		if(confirmed) {
			Dsq.Utils.postToUrl('http://disqus.com/forums/venturebeat/people_in_glass_houses/post_report/', {'post_id': id});
			Dsq.Popup.popModal('Thank you. This comment has been flagged for moderator attention.', 'Successfully flagged');
			Dsq.Utils.deleteNode(Dsq.$('dsq-post-report-' + id));
		} else {
			var title = Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT;
			var message = Dsq.Strings.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR + '? \
			<br /><br /> \
			<button type="button" onclick="Dsq.Popup._closePopup(null, true)"><strong>' + Dsq.Strings.NO + '</strong>, ' + Dsq.Strings.NEVER_MIND + '</button>&nbsp;&nbsp;&nbsp;<button type="button" onclick="Dsq.Post.report(' + id + ', true);"><strong>' + Dsq.Strings.YES + '</strong>, ' + Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT + '</button><br /><br />'
			+ Dsq.Strings.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION + '. \
			';

			Dsq.Popup.popModal(message, title, id);
		}
	};



	this.showAlert = function(id, msg) {
		var msgEl = Dsq.$('dsq-comment-message-' + id);
		var alert = '<div class="dsq-comment-alert">' + msg + '</div>';

		msgEl.innerHTML = alert + msgEl.innerHTML;
	};

};
// Dsq.Post


/**
 * Dsq.Thread
 */
Dsq.Thread = new function() {
	this.fc = null;
	this.ff = null;
	this.ac = null;

	
	this.adminIsOn = false;

	
	
	

	this.hlComment = null;
	this.hlCommentClass = null;

	this.getNextComment = function(el) {
		var start_id = el.id;
		while(el = el.nextSibling) {
			if(el.id && el.id.indexOf('dsq-comment-') != -1 && el.id != start_id) {
				return el;
			}
		}
		return null;
	};

	this.getActiveCommentId = function() {
		if (document.URL.indexOf('#comment-') >= 0) {
			var anchor = document.URL.slice(document.URL.indexOf('#') + 1);
			return anchor.replace('comment-', '');
		}
		return null;
	};

	this.highlightAnchor = function() {
		var i = this.getActiveCommentId();
		if (i == null) return false;
		var id = 'dsq-comment-' + i;
		var hash = window.location.hash;

		// Toggle the hash incase the comment isn't available when the page loads
		// for WebKit-based browsers.
		if (Dsq.Utils.webkit) {
			window.location.hash = '';
			window.location.hash = hash;
		}

		this.hlComment = Dsq.$(id);
		// Adding this conditional guard pending #289
		if (!this.hlComment) {
			return;
		}
		this.hlCommentClass = this.hlComment.className;
		this.hlComment.className += ' dsq-hl-anchor';

		setTimeout("Dsq.Thread.highlightClear()", 3000);
	};

	this.highlightClear = function() {
		if (!this.hlComment) {
			return;
		}
		this.hlComment.className = this.hlCommentClass;
	};

	this.login = function(toggle) {
		// toggle id is #dsq-reply-login-[id]
		var postId;
		if(toggle.id.indexOf('dsq-reply-login') != -1) {
			postId = toggle.id.slice(16);
			var container = Dsq.$('dsq-reply-' + postId);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(toggle) {
			if(toggle.className == 'dsq-login-active') {
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(container, postId);
				toggle.className = '';
			} else {
				Dsq.Iframes.showLoginIframeInContainer(container, postId);
				toggle.className = 'dsq-login-active';
			}
		} else {
			Dsq.Iframes.showLoginIframeInContainer(container, postId);
		}

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};


	this.paginate = function(page, el_clicked, per_page) {
		// Use extra_params to pass any override parameters that we need to persist.
		var extra_params = '';

		// "Per page" can either be overriden by providing it as an argument
		// (per-call) or setting the disqus_per_page override variable (global).
		if(typeof per_page == 'undefined') {
			per_page = null;
		}
		if(typeof disqus_per_page != 'undefined' && per_page === null) {
			per_page = disqus_per_page;
		}

		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}
		if(per_page !== null) {
			extra_params += '&per_page=' + per_page;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			el_clicked.style.display = 'none';
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/venturebeat/thread.js'
			+ '?slug='	+ 'people_in_glass_houses'
			+ '&p='		+ page
			+ extra_params);
	};

	this.sortBy = function(sort) {
		var disqus_script = document.createElement('script');
		var disqus_date = new Date();

		if (location.hash != '') {
			location.hash = '#disqus_thread';
		}

		if(typeof(disqus_url) == 'undefined') {
			disqus_url = disqus_href;
		}
		disqus_script.type = 'text/javascript';
		disqus_script.src = 'http://disqus.com/forums/venturebeat/thread.js'
			+ '?slug='	+ 'people_in_glass_houses'
			+ '&sort='	+ sort
			+ '&title='
			+ '&'		+ disqus_date.getTime();

		Dsq.$('dsq-comments').innerHTML = '<img src="http://media.disqus.com/images/loading.gif">';
		Dsq.container.appendChild(disqus_script);
	};

	this.subscribe = function(status, email) {
		// `status` is an int -- 1 to subscribe, 0 to unsubscribe
		if(Dsq.jsonData.request.is_authenticated || email) {
			// If authenticated user OR anonymous email provided

			if(email) {
				Dsq.Popup._closePopup(null, true);
			}

			Dsq.Utils.execScript('http://disqus.com/forums/venturebeat/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'people_in_glass_houses'
				+ '&email=' 	+ encodeURIComponent(email));

		} else if(!email) {
			// If anonymous user and no email has been provided yet, prompt for email

			var title = 'Subscribe to this comment thread';
			var message = ' \
				New comments will be sent directly to your email inbox! \
				<div class="dsq-subscribe-submit"> \
					<p><strong>Enter your email address below.</strong></p> \
					<input type="text" id="dsq-subscribe-email"> \
					<button type="button" onclick="Dsq.Thread.subscribe(1, Dsq.$(\'dsq-subscribe-email\').value)">Subscribe</button> \
				</div> \
			';

			Dsq.Popup.popModal(message, title);
		}
	};

	this.showSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return;
		}

		/* The form has to be re-designed when more options will come out. */
		var html = 'Automatically close comments after <input size="3" id="dsq-thread-days-alive" value="' + Dsq.jsonData.thread.days_alive + '" type="text" /> days. Existing comments will still be displayed.<br /><br />(Using 0 days will disable this feature)<br /><br />'
								 + '<button type="button" onclick="Dsq.Thread.updateDaysAlive();" class="dsq-button-small"><span>Save</span></button>'
								 + '<span id="dsq-thread-settings-status" class="dsq-options-status"></span>';

		Dsq.Popup.popModal(html, 'Settings');
	};

  this.showModeratorActions = function() {
      if (!Dsq.jsonData.request.is_moderator) {
          return;
      }

      var html = '<div class="dsq-moderate-options"><table><tr>' +
                 '<td>' + Dsq.Strings.ACTIONS + '</td><td><ul>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleClosed(); return false;">' +
              (Dsq.jsonData.thread.closed ? Dsq.Strings.OPEN_THREAD : Dsq.Strings.CLOSE_THREAD) +
              '</a></li>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleKilled(); return false;">' +
              (Dsq.jsonData.thread.killed ? Dsq.Strings.RESTORE_THREAD : Dsq.Strings.REMOVE_THREAD) +
              '</a></li>';
      html += '</ul></td></tr></table></div>' +
              '<p>Go to the full <a href="http://disqus.com/comments/moderate-threads/" target="_blank">moderate panel</a> for more options.</p>';
      Dsq.Popup.popModal(html, Dsq.Strings.MODERATE_OPTIONS);
  };

	this.updateDaysAlive = function() {
		  var days = Dsq.$('dsq-thread-days-alive').value;
		  var status = Dsq.$('dsq-thread-settings-status');
		  Dsq.Utils.postToUrl('http://disqus.com/forums/venturebeat/update_days_alive.js', {days:days,thread:Dsq.jsonData.thread.id});
		  status.innerHTML = 'Saved!';
		  window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};

  this.toggleClosed = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/venturebeat/toggle_thread_closed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };

  this.toggleKilled = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/venturebeat/toggle_thread_killed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };
};
// Dsq.Thread

Dsq.Events = function() {
	var obj = {};

	// Private
	var handlers = {};
	var getHandlers = function(event) {
		if (handlers[event] === undefined) {
			handlers[event] = [];
		}
		return handlers[event];
	};

	// Public
	// Value keys : postId, node, xtype
	obj.REPLY_IFRAME_CREATED = 1;
	// Value keys : postId, opened
	obj.REPLY_IFRAME_TOGGLED = 2;
	obj.fire = function(event, opt_value) {
		if (!event) {
			throw new Error('Unknown event');
		}
		var value = opt_value || {};
		for (var i=0; i<getHandlers(event).length; i++) {
			getHandlers(event)[i](value);
		}
	};
	obj.addHandler = function(event, callback) {
		getHandlers(event).push(callback);
	};

	return obj;
}();

/**
 * Dsq.Realtime
 */
Dsq.Realtime = new function() {
	var initialized = false;
	var interval = null;
	var last_checked = Dsq.jsonData.request.timestamp;
	var new_posts = [];
	var ongoing_request = false;
	var prev_script = null;

	function updateNewPostCount() {
		Dsq.$('dsq-realtime-alert').style.display = new_posts.length ? 'block' : 'none';

		Dsq.$('dsq-realtime-queued').innerHTML = new_posts.length
		+ ' new '
		+ Dsq.Utils.pluralize(new_posts.length, 'comment', 'comments')
		+ Dsq.Utils.pluralize(new_posts.length, ' was', ' were')
		+ ' just posted.';

		Dsq.$('dsq-realtime-show').innerHTML = '(' + Dsq.Strings.SHOW + ')';
	}

	function insertNewPosts() {
		var post_id = null;
		var after_id = Dsq.$('dsq-sort-select').value === 'oldest' ? -1 : null;

		for (var i=0; i<new_posts.length; i++) {
			post_id = new_posts[i];
			Dsq.Post.insert(after_id, post_id, Dsq.jsonData.posts[post_id].message);
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		}
		new_posts = [];
	}

	this.enableInterval = function() {
		interval = setInterval(Dsq.Realtime.check, Dsq.jsonData.context.realtime_speed);
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.ENABLED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.PAUSE + ')';
	}

	this.disableInterval = function() {
		if (interval) {
			clearInterval(interval);
			interval = null;
		}
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.PAUSED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.RESUME + ')';
	}

	this.toggleInterval = function() {
		if (!interval) {
			Dsq.Realtime.enableInterval();
		} else {
			Dsq.Realtime.disableInterval();
		}
		return false;
	}

	this.initialize = function() {
		if (!initialized) {
			initialized = true;
			Dsq.$('dsq-realtime-toggle').onclick = this.toggleInterval;
			if (!Dsq.jsonData.forum.streaming_realtime) {
				Dsq.$('dsq-realtime-show').onclick = this.show;
				updateNewPostCount();
			}
			if (Dsq.jsonData.thread.realtime_paused) {
				Dsq.Realtime.disableInterval();
			} else {
				Dsq.Realtime.enableInterval();
			}
		}
	}

	this.show = function() {
		insertNewPosts();
		updateNewPostCount();
		return false;
	}

	this.check = function() {
		if (!ongoing_request && Dsq.jsonData.realtime_enabled) {
			if (prev_script) {
				prev_script.parentNode.removeChild(prev_script);
			}
			ongoing_request = true;
			prev_script = Dsq.Utils.execScript('http://disqus.com/forums/22046995/realtime.js?timestamp=' + last_checked);
		}
	};

	this.update = function(timestamp, posts, users) {
		ongoing_request = false;
		last_checked = timestamp;

		if (users) {
			for (var user_id in users) {
				if (users.hasOwnProperty(user_id)) {
					if (!Dsq.jsonData.users[user_id]) {
						Dsq.jsonData.users[user_id] = users[user_id];
					}
				}
			}
		}

		if (posts) {
			for (var post_id in posts) {
				if (posts.hasOwnProperty(post_id)) {
					if (!Dsq.jsonData.posts[post_id]) {
						Dsq.jsonData.posts[post_id] = posts[post_id];
						new_posts.push(post_id);
					}
				}
			}

			if (Dsq.jsonData.forum.streaming_realtime) {
				insertNewPosts();
			} else {
				updateNewPostCount();
			}
		}
	};

}();

// DEPRECATED
Dsq.Iframes = function() {
	// Different style of object from the above. Hoping to switch to this for some reason.
	var obj = {};

	// Private
	var showIframeInContainer = function(container, id, markup) {
		// Look through container for iframes, hiding them, except show one that matches id
		// If none of them matched id, create a new iframe using markup and insert it.
		// Returns the iframe node if and only if it was newly created.
		var found = false;
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				if (child.id == id) {
					child.style.display = 'block';
					found = true;
				} else {
					child.style.display = 'none';
				}
			}
		}
		if (found) {
			return;
		}
		// The iframe wasn't found, so construct it and add it to the container.
		// Don't use innerHTML because it might reload iframes
		var div = document.createElement('div');
		div.innerHTML = markup;
		var iframe = div.childNodes[0];
		div.removeChild(iframe);
		container.appendChild(iframe);
		return iframe;
	};

	// Public
	obj.makeReplyIframeId = function(opt_postId, opt_xtype) {
		var id = 'dsq-post-add-iframe';
		if (opt_xtype) {
			id += '-' + opt_xtype;
		}
		if (opt_postId) {
			id += '-' + opt_postId;
		}
		return id;
	};
	obj.makeLoginIframeId = function(opt_postId) {
		if (!opt_postId) {
			return 'dsq-login-iframe';
		}
		return 'dsq-login-iframe-' + opt_postId;
	};
	obj.makeReplyIframeName = function(opt_postId, opt_xtype) {
		var name = 'dsq-reply-frame';
		if (opt_xtype) {
			name += '-' + opt_xtype;
		}
		if (opt_postId) {
			name += '-' + opt_postId;
		}
		return name;
	};
	obj.showReplyIframeInContainer = function(container, opt_postId, opt_extraParams, opt_className) {
		// Construct the id so we can check if it's already present.
		// Hide any other iframes we find, and show this one if it's found.
		var params = opt_extraParams || {};
		// use xtype in the id and name so we can distinguish media replies from text replies:
		var id = Dsq.Iframes.makeReplyIframeId(opt_postId, params.xtype);
		var name = Dsq.Iframes.makeReplyIframeName(opt_postId, params.xtype);
		var attributes = {
			'id': id,
			'name': name,
			'class': opt_className || 'dsq-post-reply'
			};
		var markup = Dsq.Templates.frameReply(opt_postId, opt_extraParams, attributes);
		var iframe = showIframeInContainer(container, id, markup);
		// It was newly created
		if (iframe) {
			Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_CREATED, {
				postId: opt_postId,
				node: iframe,
				xtype: params.xtype
			});
		}
	};
	obj.showLoginIframeInContainer = function(container, opt_postId) {
		var id = Dsq.Iframes.makeLoginIframeId(opt_postId);
		var markup = Dsq.Templates.frameLogin({id: id});
		showIframeInContainer(container, id, markup);
	};
	obj.showReplyIframeInContainerIfAllowed = function(container, opt_postId) {
		if (Dsq.jsonData.context.show_reply) {
			obj.showReplyIframeInContainer(container, opt_postId);
		} else {
			obj.hideAllInContainer(container);
		}
	};
	obj.hideAllInContainer = function(container) {
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				child.style.display = 'none';
			}
		}
	};

	return obj;
}();

Dsq.Twitter = new function() {
	var that = this;

	this.startTwitterConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._twitterWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/twitter/begin/', 'twitterWindow', popupParams);
		that._twitterInterval = window.setInterval(that.completeTwitterConnect, 1000);
	};

	this.completeTwitterConnect = function() {
		if (that._twitterWindow.closed) {
			window.clearInterval(that._twitterInterval);
			window.location.reload();
		}
	};
};

Dsq.Yahoo = new function() {
	var that = this;

	this.startYahooConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._yahooWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/yahoo/begin/', 'yahooWindow', popupParams);
		that._yahooInterval = window.setInterval(that.completeYahooConnect, 1000);
	};

	this.completeYahooConnect = function() {
		if (that._yahooWindow.closed) {
			window.clearInterval(that._yahooInterval);
			window.location.reload();
		}
	};
};

Dsq.OpenID = new function() {
	var that = this;

	this.requestURL = function() {
		var message = '<table class="dsq-openid-form"><tr><td style="vertical-align:top;" rowspan="2"><img src="' + Dsq.jsonData.settings.media_url + '/images/openid-icon-100x100.png" /></td>';
		message += '<td><label for="dsq-openid-url">OpenID URL:</label></td><td><input type="text" id="dsq-openid-url" /></td></tr>';
		message += '<tr><td><label for="dsq-openid-username">Display name:</label></td><td><input type="text" id="dsq-openid-username" /></td></tr>';
		message += '<tr><td class="dsq-openid-submit" colspan="3"><input type="button" value="Sign in" onclick="Dsq.OpenID.startConnect();" /></td></tr>';
		message += "</table>";

		Dsq.Popup.popModal(message, 'Sign in using OpenID');
	};

	this.startConnect = function() {
		var isblank = function(str) {
			return /^\s*$/.test(str);
		};

		var openid_url = Dsq.$('dsq-openid-url').value;
		var username = Dsq.$('dsq-openid-username').value;

		if (isblank(openid_url)) {
			return;
		}

		var popupParams = 'location=0,status=0,width=800,height=500';
		var url = Dsq.jsonData.settings.disqus_url + '/_ax/openid/begin/' + '?url=' + encodeURIComponent(openid_url) + '&username=' + encodeURIComponent(username);
		that._openidWindow = window.open(url, 'openidWindow', popupParams);
		that._openidInterval = window.setInterval(that.completeConnect, 1000);
	};

	this.completeConnect = function() {
		if (that._openidWindow.closed) {
			window.clearInterval(that._openidInterval);
			window.location.reload();
		}
	};
};

Dsq.Reaction = new function() {
	var that = this;

	this.hide = function(id) {
		Dsq.Utils.execScript('http://disqus.com/forums/venturebeat/hidereaction.js?' + 'reaction_id=' + id);
	};

	this.reportMissingReactions = function() {
		if (!Dsq.jsonData.request.is_moderator || !Dsq.jsonData.forum.reactions_enabled) {
			return;
		}

		if (Dsq.jsonData.thread.queued) {
			Dsq.Popup.popModal('Your report has been received. The system will automatically search for new reactions; if any are found, they will be displayed on this comment thread.<br/><br/>Thank&nbsp;you.',
												 'Reported missing reactions');
			return;
		}

		Dsq.Utils.execScript(Dsq.jsonData.settings.disqus_url + '/forums/venturebeat/queueurl.js');
	};
};

Dsq.CNN = function() {
	var obj = {};

	obj.authenticate = function() {
		var url = Dsq.jsonData.settings.disqus_url + "/saml/cnn/try/";
		Dsq.Utils.postToUrl(url, {'target': document.location}, true);
	};

	return obj;
}();


if(Dsq.Utils.ie6) {
	(function() {
		DSQ_HEADER_AVATAR_RE = /<div class="dsq-header-avatar"(.*?)>/gim;
		Dsq.Templates.registerFilter('postPrependHeader', function(html, post_id) {
			// Add "onmouseout" for dsq-header-avatar for dropProfile
			// functionality since IE6 cannot use :hover.
			function _headerAvatarReplace(content, inner, _unused, html) {
				return '<div class="dsq-header-avatar" '
					+ inner
					+ ' onmouseout="Dsq.Post.dropProfile(' + post_id + ')">';
			}
			html = html.replace(DSQ_HEADER_AVATAR_RE, _headerAvatarReplace);
			return html;
		});
	})();
}





	// TODO: Move Seesmic code outside of the main script.  Don't let this script clobber the global namespace.
	if(typeof seesmic == 'undefined') { var seesmic = {}; }
	seesmic.widget = new function () {
		this.callback = function (data) {
			playerVersion = data.disqusplayer;
		};
	};

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://seesmic.com/version.js?callback=seesmic.widget.callback');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://media.disqus.com/javascript/library/swfobject.js');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	function see_play_video(_videoUri, _add) {
		var swf = !!playerVersion ? playerVersion : 'http://seesmic.com/embeds/StandalonePlayer.swf';

		flashcontentDiv = Dsq.$(_videoUri + '_content');
		previewDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_preview');
		hideDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_hide');
		showDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_show');
		if(_add) {
			// push flash widget
			var so = new SWFObject(swf, 'sotester', '300', '270', '9', '#000000');
			so.addVariable('video', _videoUri);
			so.addParam('allowFullScreen', 'true');
			so.addParam('allowScriptAccess','always');
			so.useExpressInstall('swfobject/expressinstall.swf');
			so.write(_videoUri + '_content');

			previewDiv.style.display = 'none';
			hideDiv.style.display = 'block';
			showDiv.style.display = 'none';
		}
		else {
			flashcontentDiv.innerHTML = '';
			previewDiv.style.display = 'block';
			hideDiv.style.display = 'none';
			showDiv.style.display = 'block';
		}
	};





(function() {
	//
	// Load theme.  This overrides the base templates with template functions
	// from the respective themes.
	//
	if (Dsq.jsonData.integration.theme == 4) {
		var theme = 'narcissus';
		// HACK: Set variable on window to use post message.
		window.disqus_use_postmessage = true;

		
		for(var prop in Dsq.Themes[theme]) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Templates[prop] = Dsq.Themes[theme][prop];
			}
		}
		
		for(var prop in Dsq.Post) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Post[prop] = Dsq.Themes[theme][prop];
			}
		}
	}

	//
	// Register templates.  This must be done after all themes are loaded.
	//
	Dsq.Templates.registerTemplate('authPost', Dsq.Templates.authPost);
	Dsq.Templates.registerTemplate('header', Dsq.Templates.header);
	Dsq.Templates.registerTemplate('footer', Dsq.Templates.footer);
	Dsq.Templates.registerTemplate('trackbacks', Dsq.Templates.trackbacks);
	Dsq.Templates.registerTemplate('reactions', Dsq.Templates.reactions);
	Dsq.Templates.registerTemplate('prependPost', Dsq.Templates.prependPost);
	Dsq.Templates.registerTemplate('appendPost', Dsq.Templates.appendPost);
	Dsq.Templates.registerTemplate('postPrependHeader', Dsq.Templates.postPrependHeader);
	Dsq.Templates.registerTemplate('postAppendHeader', Dsq.Templates.postAppendHeader);
	Dsq.Templates.registerTemplate('preBody', Dsq.Templates.preBody);
	Dsq.Templates.registerTemplate('postBody', Dsq.Templates.postBody);
	Dsq.Templates.registerTemplate('postFooter', Dsq.Templates.postFooter);
	Dsq.Templates.registerTemplate('_popupGeneric', Dsq.Templates._popupGeneric);
	Dsq.Templates.registerTemplate('voted', Dsq.Templates.voted);
	Dsq.Templates.registerTemplate('popupProfile', Dsq.Templates.popupProfile);
	Dsq.Templates.registerTemplate('postBox', Dsq.Templates.postBox);
	Dsq.Templates.registerTemplate('pagination', Dsq.Templates.pagination);
	Dsq.Templates.registerTemplate('postComment_onSuccess', Dsq.Templates.postComment_onSuccess);

})();

Dsq.container.className = "clearfix";
Dsq.container.innerHTML = ' \
<ul id="dsq-comments">\
	 <li id="dsq-comment-14669409">\
	 <div id="dsq-comment-header-14669409" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669409" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669409" href="http://blogs.vinuth.com/the-holy-trail/" target="_blank" rel="nofollow">Vinuth</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669409" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669409" class="dsq-comment-message">But in the above graph, isn\'t there a diminishing cost gap between the two with time? And they have almost reached the same cost by 2005.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669410">\
	 <div id="dsq-comment-header-14669410" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669410" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669410" href="http://pakorakorner.blogspot.com/" target="_blank" rel="nofollow">Pran Kurup</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669410" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669410" class="dsq-comment-message">Very interesting counter points. Its nice to see folks from outside the tech industry commenting on the topic. Certainly helps put things in perspective.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669411">\
	 <div id="dsq-comment-header-14669411" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669411" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669411" href="http://theoildrum.com/" target="_blank" rel="nofollow">Robert Rapier</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669411" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669411" class="dsq-comment-message"><blockquote>But in the above graph, isnâ€™t there a diminishing cost gap between the two with time? And they have almost reached the same cost by 2005.</blockquote> <br><br>Ethanol economics have improved over time, but 2005 was an outlier. Capacity was overbuilt, and ethanol producers were complaining that low prices were killing them. But if you go to the site I linked to, you will see that gap widened considerably in 2006. I get a report on this each day, and the spot gap between ethanol and gasoline remains very large.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669412">\
	 <div id="dsq-comment-header-14669412" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669412" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669412" href="http://mark-nano.blogspot.com/" target="_blank" rel="nofollow">Mark Wendman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669412" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669412" class="dsq-comment-message">Unspoken is that PEOPLE WHO LIVE IN OIL HOUSES ..... do well to stifle potential competition for Oil.<br><br>PEOPLE WHO ARE MOVING to WORK In SCOTTISH NORTH SEA OIL FIELDS (very far from California, and far removed from doing any current manufacturing or R&amp;D work in renewables)  ..... do some pretty strange things  to contribute to a California Debate, unspoken on behalf of OIL INTERESTS, with distorted false arguments at counter purposes to Californians.<br><br>People from the House of Oil Who Don\'t Live in California ..... don\'t have the best interests of Californians at heart. <br><br>Robert, since when did you care about air pollution in California, from your present BOZEMAN MONTANA ADDRESS? <br><br>Or is CALIFORNIA AIR POLLUTION yet another sincere interest of yours?, as contrasted with a real interest of the numerous organizations backing Prop 87, backing organizations who full well realize that E85 and other renewables use, will help reduce overall AIR POLLUTION Here in California\'s SMOGGY URBAN POPULATION CENTERS.<br><br>You even said "the quality of life in California was not as good as in Scotland" ! and stated "this is a reason why you did not take a job offer in California" ...  versus your forthcoming move to Scotland...<br><br>So let\'s have full disclosure from you, Robert from the HOUSE OF OIL !<br><br>Yes, People Do Care about California, but not Robert Rapier, soon to be of Oily Scottish Address.<br><br>If your charts show as they do, the narrow gap in Ethanol Pricing BEFORE any implementing Cellulosic Innovations that People In Oil Houses have and continue to ignore, then Largely after these forthcoming Cellulosic innovations are IMPLEMENTED (by folks far removed from OIL), the arguments of People Who Live in Oil Houses will be proven very silly indeed, and it has nothing to do with Moore\'s Law.<br><br>As to you (OF HOUSE OF OIL) being a specialist for forecasting the future of Ethanol profits and Pricing, I have serious reservations about your credentials in that matter, since you have never acknowledged how Genetic Engineering of Cellulosic Enzymes and other forthcoming innovations in Cellulosic processing, production and distribution will affect your already weak arguments. <br><br>It has been, and remains a convenient notable omission from your purported handwaving.<br><br>This is aside from the matter that as present Ethanol Infrastructure (distribution and manufacturing) is in its nascent EARLY DAYS, good old MANUFACTURING and DISTRIBUTION IMPROVEMENTS that get catalyzed (and warranted) by larger scale production of E85 (where costly innovation will be partly subsidized by Prop 87) is hardly registered in your FLAPPING OF GUMS.<br><br>Else why would WALMART CONSIDER SELLING E85 ETHANOL fuel - NATIONWIDE ? <br><br>Does WALMART think ETHANOL / E85 is a BAD business proposition ? <br><br>Or Walmart does not know about making money?<br><br>Maybe you should send WALMART MANAGEMENT your charts and tell WALMART they are all WRONG ? <br><br>Surely you can teach WALMART Management a thing or two about business? And Surely you will say that WALMARTs interest negates the reasoning for Prop 87 ? <br><br>Like WALMART is not betting on the future, and will help commercialize E85 with vision you clearly do not have.<br><br>That prospect surely might scare the heck out of members of the HOUSE OF OIL !! and render these graphs of your of your forecasts merely wholly inaccurate? <br><br>Or is this off your horizon because WALMART is out of the sphere of Influence of the House of OIL?<br><br>Please Don\'t Mislead People in California, my dear soon to be Scottish Oil Dweller !<br><br>Cheers. <br><br>From Some Folks WHO actually LIVE in CALIFORNIA, and see through the OIL SLICK ?distortions....</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669413">\
	 <div id="dsq-comment-header-14669413" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669413" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669413" href="http://theoildrum.com/" target="_blank" rel="nofollow">Robert Rapier</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669413" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669413" class="dsq-comment-message">Vinuth,<br><br>I just looked at yesterdayâ€™s OPIS report for the West Coast. Regular unleaded traded in a range of 169.75-174.75. Ethanol, with 70% of the energy content, traded in a range of 217.00-222.00. So, currently the price differential is $0.47/gal, about where it was in 2001. If you had a car that gets 20 mpg on gasoline, then for every 1,000 miles you drive it would cost you $86 on gasoline, or $157 on ethanol (lower energy content plus higher price), based on yesterdayâ€™s prices. I would be willing to much higher prices for clean energy, but the ethanol we make in the U.S. today is mostly recycled fossil fuels.<br><br>Mark Wendman â€“ perhaps you didnâ€™t get the memo that I am finished with your straw man arguments and ad hominem attacks. Those are not valid arguments, EVEN IF YOU WRITE THEM IN ALL CAPS. It does not matter if I am the crown prince of Saudi Arabia; you still need to address the actual arguments I make if you wish to comment. Yet you have never addressed my actual arguments, probably because you have no experience or knowledge in these areas. You wave the magic wand of â€œgenetic engineeringâ€, yet ignore the fact that there are fundamental limitations even to that. <br><br>You have consistently misrepresented and misunderstood facts. You couldnâ€™t even get something as simple as where I live correct. First it was Houston, now itâ€™s Bozeman. Neither answer is correct. So if you canâ€™t even get that right, what faith should anyone have that you can handle the more complex stuff? It is apparent that you canâ€™t, yet you still feel like you should grace us with your wisdom. My advice is either to get up to speed, or stick to commenting on your own area.<br><br>Now, if you have a comment that is actually pertinent to my essay, and you can make it without resorting to ad hominems, feel free to post it. Long-winded diatribes and rabid froth will continue to be ignored.<br><br>Cheers, RR</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669414">\
	 <div id="dsq-comment-header-14669414" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669414" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14669414">alpha24seven</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669414" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669414" class="dsq-comment-message">WELL I LIVE in CALIFORNIA -- and I have my entire life.<br><br>Wendman -- You are off base here. Rapier has shed some good insight on this situation and you default to the oft-used "oil slick" position. Chuck in a good helping of Wal-Mart and you\'ve done a good job in marginalizing yourself.<br><br>Again, you need to take a step back and realize the larger conflict of interest here. Mr. Khosla his VC firm, his limited partners stand to bring in $BILLIONS! This type of corporate governance shouldn\'t be allowed here or anywhere.<br><br>There are plenty of great ways to increase the R&amp;D and commercialization of RE/AE -- but this sure as hell isn\'t one of them.  <br><br>Furthermore, do you even understand the RE industry and the current subsidy programs? Your comment would state otherwise. For example, BP\'s last quarter netted them about $69,000,000 per day in profit. Their business unit (BP Solar) is one of the largest providers of solar assets in CA. They are selling these assets at a profit. So why are we subsidizing a hugely profitable company? (just happens to be an oil company -- surely this will make you unhappy) Why are we subsidizing a RE energy company that is PROFITABLE? The majority of the solar providers selling into the state of CA are profitable, yet we just passed another initiative providing for over $3bn in subsidy paid for by you and me. WHY?<br><br>The reality is, once we purge the incentives, the RE/AE industry will be forced to compete, economies of scale will develop, prices will drop, solar and other RE/AE will become ubiquitous and the game will be changed forever.  <br><br>You really need to understand the landscape before you fly off the handle with inane commentary.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669415">\
	 <div id="dsq-comment-header-14669415" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669415" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14669415">Jeremy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669415" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669415" class="dsq-comment-message">I read your the first round of essays, and found them fairer than this.<br><br>Once again, rational people melt down into emotional and illogical attacks propped up with irrelevant argument points.<br><br>I\'d like to point out a few things.<br><br>1. Silicon Valley ingenuity for the most part of an academic nature. While some of it is kick started financially by government research grants etc, this ingenuity must find its own way in the marketplace. In essence there is no built in market for iPods.<br><br>2. Petroleum energy was nurtured for years by government subsidies to oil, transportation, electricity generation, etc.<br><br>3. Comparing the price of Ethanol to Gasoline is skewed not just by production costs, but also by the engines capable of running it. In addition, you seem to turn a blind eye to the market realities for ethanol, but give oil the benefit of the doubt.<br><br>4. Taxing Silicon Valley, or technology companies, is not relevant to this discussion. There are not enough loopholes in California tax code for technology firms to make this a worthwhile discussion point.<br><br>Talk about why we shouldn\'t continue to nurture alternative fuels with tax subsidies, to the same or greater economic level that we did last century with petroleum products.<br><br>Talk about how oil is going to become cleaner energy pound for pound.<br><br>Find some salient  points to develop and leave your pile of rocks out in front of the glass house, go inside, and have some tea.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669416">\
	 <div id="dsq-comment-header-14669416" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669416" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14669416">Real</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669416" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669416" class="dsq-comment-message">There is one rather large gap in your analysis: you don\'t consider the indirect costs relevant to oil use. <br><br>One of the most important ones is the cost of national defense spending to ensure the adequacy of the nation\'s oil supply.  Considering the extremely high costs of prosecuting wars (e.g. the $300 billion plus price tag of the Iraq war) and maintaining a defense capability in oil-producing regions (probably also a sizable figure), it makes a lot of sense to look for fuels which can be produced from alternative raw materials.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669417">\
	 <div id="dsq-comment-header-14669417" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669417" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669417" href="http://theoildrum.com/" target="_blank" rel="nofollow">Robert Rapier</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669417" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669417" class="dsq-comment-message">Folks, it should be abundantly clear that I am not making a blanket defense of the oil industry here. I addressed specific claims made by Vinod Khosla is his essay. The recent comments have tended toward the position that I believe we should continue happily using oil products. I do not believe this, but neither do I believe that incredibly naÃ¯ve arguments and the condescending drivel that Mr. Khosla has given us in his essays do anything to further the debate over energy policy. But if you wish to have a discussion, please discuss what I wrote and not what you wish I had written.<br><br>Regarding the cost of ethanol versus gasoline, there is only one point I am trying to drive home. Mr. Khosla says that it is cheaper to produce ethanol than gasoline. As you can see, the selling price for ethanol has been higher than for gasoline for 25 of the past 25 years. Therefore, is it not hypocritical to complain about oil company profits, when this would mean that ethanol company profit margins are significantly higher? <br><br>Cheers, RR</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669418">\
	 <div id="dsq-comment-header-14669418" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669418" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669418" href="http://127.0.0.1/" target="_blank" rel="nofollow">Dave Baker</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669418" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669418" class="dsq-comment-message">You raise some mildly interesting points; but you are equally guilty of what you accuse others of.<br><br>Consider, for example:<br>"I find it very ironic that those who are flying around the country to decry the â€œevil oil industryâ€ are doing so using jet fuel supplied by the oil industry."<br><br>By your argument, noone on the Internet should have been allowed to criticize Enron for price-gouging, because they would be using electricity?? Just because you use oil products in daily life, does it mean you can\'t criticize their practices?<br><br>But to the overall prop-87 question: why is it that Alaska, Texas, New Mexico and Louisiana can charge royalties, but California can\'t? Are Californians getting cheaper oil because of this? Last time I checked at the pump, this was certainly not the case.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669419">\
	 <div id="dsq-comment-header-14669419" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669419" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669419" href="http://mark-nano.blogspot.com/" target="_blank" rel="nofollow">Mark Wendman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669419" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669419" class="dsq-comment-message">Some Salient points ignored - (of relevant energy policy conflict of interests)<br><br>There never was an energy crisis in California. It was artificial, and largely by collusion of Oil and Gas Interests, on a scale far far larger than you are accusing the folks who are supporting Prop 87, let\'s say by an order of magnitude larger than the unsubstantiated "conflicts" of interest here for Prop 87 (versus the collusion which transpired in California\'s purported crisis).<br><br>Things like recurring artificial energy plant shutdowns (somehow we never hear of these anymore?) and purchase and shuttering of 1 of only 2 gas pipelines from Texas to California, are merely scratching the surface. <br><br>Nevermind the illegal structuring of public services gas &amp; electric supply contracts as closed bids. I can go on if you\'d like.<br><br>Hypothetical conflict of interest by the VCs backing the effort to jump start renewables here, pales by comparison. And so far hypothetical I might add.<br><br>By contrast, you\'d be hard pressed to explain me how anything in the root causes of California\'s prior artificial energy troubles benefitted the public in ANY way.<br><br>Where were you, when some were cooking the artificial energy crisis in California? Conveniently silent ?<br><br>Where were you all when the AEI, funded and lead by the brilliant commodities arbitrageur Bruce Kovner of New York\'s Caxton Trading, was paying shills to produce reams of AEI Foreign Policy whitepapers that lead to the present mess in the mideast?<br><br>Caxton, Mr. Kovner\'s commodities trading firm, merely benefits from commodities markets he indirectly manipulated by crafting long term Foreign policy whitepapers. <br><br>AEI drove long term policy thusts now implemented as US foreign policy often by former AEI members. Where is the conflict of interest there? Where is the public interest in all of this? [Where is Matt when we need him when many hundreds of bilions are involved?]<br><br>Are there huge implications to commodities markets and Mr. Kovners profits, due to the ill advised AEI Foreign policy whitepapers being implemented as near defacto US mideast foreign policy? <br><br>And what magnitude is this, that you ignore it relative to your empty accusations?<br><br>What are the exact costs to us? <br><br>A billion here or there for the right of way for the little known Afghan oil pipeline? <br><br>A billion here or there to gain rights to Iraqi oilfields? <br><br>Not even close. <br><br>More like direct and indirect costs in the range or a Trillion public dollars for all expenses paid and due in the future, success or not.<br><br>What chance is it, that it is far larger cost to our population than a mere billion here or there? <br><br>And what chance does it seem that Iraninan Shia  will largely end up controlling Iraq, in all but name, and the money and blood spent trying to gain control of the oilfields of Iraq might turn out for naught? <br><br>It is quite probable we\'ll see a big fat ZIPPO return of public funds on a scale that dwarfs anything you quote as purported convenient facts. <br><br>Misadventures of the conflict of oil interests? <br>Or Interest of conflicts? <br>Your call. <br><br>Might we need an indigenous renewable energy policy ? Might that start be Prop 87? I will let the readers figure that one out.<br><br>Might Kovner/AEI be a far larger actual conflict of interest far far larger than anything both of you accuse the excellent VCs of Menlo Park of, in hypothetical conflict of interests? <br><br>Everything is relative after all. <br>What is another few zeros in front of the decimal point? <br><br>I guess it is a merely engineering error on your part Robert?  But after all you are tenaciousDNA, with answers for everthing trees included, soothsayer to the oil industry.<br><br>I kept talking about Robert\'s inability to see the forest for the trees, or in this case to see the Close to Trillion dollars of conflict of interest (in favor of Oil Interests at the expense of the public at large) versus the issues surrounding Prop 87, as imperfectly as it might be accused of being crafted (ie in your case, not helping the glutonous oil industry).<br><br>Hmmm. I\'d call a potential as yet unrealized billion here or there spread over 5 or more years, chump change compared to the implications of Kovners misadventures implemented as US mideast foreign policy, largely benefitting commodities traders and the oil industry in various ways and means.<br><br>SO FOLKS (as an Oil Drummer might put it)... <br><br>Everything is Relative, and some things are just  a few orders of magnitude More Relative than others. And yet some folks cannot get it... "Tenacity in DNA" after all is of little help in something as pedantic as common sense. <br><br>But Robert is Tenacious as can be, even if lacking in common sense, or in transparency of his motives.<br><br>Small errors / weaknesses of Prop 87 if one might call it, are merely chump change in the greater scheme of things. With beneficial spinoffs in the broader economy you largely conveniently ignore. And will upside to Ethanol you repeatedly dismiss and denounce.<br><br>And Yes Robert, while you write reasonably  eloquently, you conveniently and purposely avoid the main issues relevant to the purpose of Prop 87 - policy crafted to wean California from non-renewables by some means faster than private sector can do alone, and faster than the public sector might do alone. <br><br>Prop 87 (even with the thrusts in Ethanol) has far greater chances to benefit the public at large, than other oil misadventures of your benefactors.<br><br>While you and others harp on trumped up Ethanol somkescreens and conveniently ignore the real potential in near term innovations in Cellulosic Ethanol (innovations leveraging Genetic Engineering techniques you never applied in your prior Biofuels misadventures) it is far easier to hurl pinpricks that obviously miss the forest, and hit the tree branches. <br><br>Hardly credible, and hardly getting it, Mr Rapier et al.<br><br>Imperfect as Prop 87 or Ethanol might be, there is a decent cross section of interests aside from the oil industry, supporting this well crafted policy, even the ethanol component.<br> <br>Like any public policy, Prop 87 is a compromise and yet overall, has very good prospects of generating numerous sucesses for the benefit of the public at large. That is what public policy is intended to do.<br><br>Unless one has more nefarious conflicts of interests from the Oil Industry, left unspoken?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669420">\
	 <div id="dsq-comment-header-14669420" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669420" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669420" href="http://theoildrum.com/" target="_blank" rel="nofollow">Robert Rapier</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669420" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669420" class="dsq-comment-message"><i>By your argument, noone on the Internet should have been allowed to criticize Enron for price-gouging, because they would be using electricity?? Just because you use oil products in daily life, does it mean you can\'t criticize their practices?</i><br><br>What Enron did was illegal. What we have here is Mr. Khosla flying around the country, hate-mongering against oil companies, while using their products to do so. If I used my telephone to run down my phone provider, I wouldnâ€™t be surprised if they turned my phone off and forced me to find another provider.<br><br>Most people have no appreciation of the conveniences they enjoy as a result of oil companies, and they naively believe that alternatives can fill our insatiable desire for energy. I will say again: Not without a massive conservation push.<br><br>What I would like to see Mr. Khosla do, if he is going to criticize oil companies in order to push his agenda, to at least get his facts in order, and stop the rampant hypocrisy and juvenile name-calling.<br><br><i>But to the overall prop-87 question: why is it that Alaska, Texas, New Mexico and Louisiana can charge royalties, but California can\'t? Are Californians getting cheaper oil because of this? </i><br><br>Two points. First, you are arguing about Prop 87. Again, I donâ€™t care if it passes. I donâ€™t care what royalty you charge. But at least root the debate in fact. California oil companies pay higher prices than any of the other states you mentioned. Thatâ€™s a fact. They pay much steeper income tax rates, and much higher property tax rates. So, when proponents use that tired line â€œthey arenâ€™t paying their fair shareâ€, they are really being disingenuous. A number of your papers in California have pointed this out in editorials. See my comment to Bill Jolitz in my previous essay, where I quoted several of them. Simple question: Would you agree to the overall tax arrangement that Texas has with the oil companies? Think about that, given that it would reduce the taxes oil companies pay in California.<br><br>To Mark Wendman â€“ Once again, you show your failure to comprehend the argument, so you dig into the depths your intellectual arsenal and again go for the ad homs. As another poster pointed out, feel free to continue marginalizing yourself.<br><br>You are telling me how good apples are, in response to a comment about why I donâ€™t like oranges. I like apples, so you are just talking to yourself. You are still whacking away at that straw man. I am not arguing against prop 87, nor have I offered a blanket defense of oil companies. This is not rocket science, fellow. I am arguing against hypocrisy and false arguments that are being used to influence public opinion on energy policy. If you want to address, letâ€™s say, whether Khosla is being a hypocrite when he complains about oil companies using political clout to get subsidies (ADM, anyone?) then thatâ€™s a topical subject. None of yours are, and at this point I am starting to get the impression that you arenâ€™t very bright to be unable to figure this out.<br><br>Cheers, RR</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669421">\
	 <div id="dsq-comment-header-14669421" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669421" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669421" href="http://mark-nano.blogspot.com/" target="_blank" rel="nofollow">Mark Wendman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669421" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669421" class="dsq-comment-message">Dear Robert,<br><br>I will be succinct in quoting your conflicting statements.<br><br>"What Enron did was illegal. What we have here is Mr. Khosla flying around the country, hate-mongering against oil companies, while using their products to do so. If I used my telephone to run down my phone provider, I wouldnâ€™t be surprised if they turned my phone off and forced me to find another provider."<br><br>in one paragraph ...<br><br>and here is the next text of interesting contrast?<br><br>"I am not arguing against prop 87, nor have I offered a blanket defense of oil companies. This is not rocket science, fellow. I am arguing against hypocrisy and false arguments that are being used to influence public opinion on energy policy."<br><br>I think it pretty transparent what specifically you are arguing for (or against) despite your own weak arguments to the contrary.<br><br>By trying to demean the major spokesman of Prop 87 and specifically the proposal to use Ethanol (initially conventional corn based non cellulosic technology to just merely get infrastructure jump started) you are not what you think you try to portray yourself as.<br><br>It is quite clear on the other hand that Khosla has repeatedly indicated that innovations in cellulosic will do what you protest cannot be accomplished.  I wholeheartedly agree with Khosla and his efforts. I disagree with your own  partial and largely deceptive arguments, no matter how well they are phrased.<br><br>This is fundamentally the bone you repeatedly chew at, and to your own detriment. Even if you chew different sides of the bone each time, it is the same bone you chew. You will be proven terribly wrong, and not in time to apologize before you damage a beneficial effort you demean repeatedly.<br><br>Typically chemical process industries are slow at innovation, and expectations as such are calibrated too low in relation to the ability of individuals to actually innovate at a conceptual level. At an industry level, this is attributable to a slowing of cross fertilization of techniques and methods between unrelated disciplines, once in industry. IE new ideas tend to diffuse slower in industry than the hodgepodge of academia. This phenomena is normal with exceptions few and far between. A counterpoint is the application of combinatorial techniques, which in specific cases are making unusual advances of particular note. But this is a rare exception.<br><br>Those who practice regular innovations recognize this limiting effect of over specialization in industry and act appropriately to compensate. Those who cannot fathom how to speed up substantive innovation, chafe at others success, and demean others efforts. <br><br>In your specific case, you have very limited exposure to Genetic Engineering techniques [as applied to enzyme production and in plant GM incorporation for potential application to increasing efficiency of cellulosic ethanol] and its promises and opportunities, and as such you are overly dismissive of such, at a rather basic, wave it away level. Many of the naysayers seem to view from this same perspective as yours, in addition to the canard of the tax itself. There yet remain other innovations less apparent in potential, but possibly complementary to GM techniques.<br><br>You deny this as a dynamic coloring your pessimistic and dismissive perspective, and as such categorize the initial Ethanol thrust as not viable based on your own observations and your own failure to actually implement commercial biofuels into large scale commercial auto fueling, and specifically ethanol on YOUR PART. IE if you could not succeed, why let others try, and why might others succeed?? <br><br>Another variant of the Aussie tall poppies effect. You fail to recognize your own technical limitations and project your actual technical shortcomings upon others you believe incapable of surmounting your own deficiencies. And others of similar lack of technical breadth believe your opinions as truth be told. NIH comes to mind in spades.<br><br>Despite your prominence at the OilDrum, you are dead wrong in your prognostications of obtuse and circular illogic regarding mostly small Ethanol limitations as being showstoppers.<br><br>You NEVER answer to my observations re Genetically Engineered Enzyme / Cellulase innovations as to tempering your wrong and premature conclusions, and I specifically take issue with your continual aspersions upon others far more accomplished commercially than you will ever achieve in your lifetime. <br><br>I speak not of myself, I am merely being polite about your insolence to others, couched in your know it all attitude, when you are merely ignorant about genetic engineering\'s potential and make conveniently short arguments about far simpler matters similarly prematurely misinterpreted by you. <br><br>Iâ€™d personally never let you be responsible for a corporate level R&amp;D project ever. You have neither the temperament of the needed coach, nor the vision to actually identify the trivial advances critical to commercialization, nor the curiosity of that which you do not already know. Your implicit demeaning of farmers comes to mind as something which would never pass muster in a team oriented production plant. Good luck in the North Sea. It is a good place for your temperament and skills with equally stubborn Scotsmen. I know btw...<br><br>The specific issue re GM is narrowly framed, and you continually dodge answering. No matter how you wish to word your responses, they are evasive and lacking the very substance you claim I lack. <br><br>In fact you have never answered to this specific point of the probable impact of genetic engineering applied to enzymatic predigestion of cellulosic feed stock. Never in any useful manner. You certainly have no material exposure to GM technology, that is self evident both in publications and patents you have. I am far far from expert, but I have familiarity that you seem not to possess the curiosity to gain. I will not comment any further on this.<br><br>The other matters you have covered with a broad overreaching swath of limited detail out of your lazy convenience, regarding present low efficiency of infrastructure matters in transport and gathering of feed stock and product, you are merely being quite openly deceptive, even if eloquently written. An example of this follows.<br><br>You have repeatedly in the past and recent posts indicated that farmers vainly hope that more production will solve efficiency deficits. That is the obvious lowest common denominator. You have clearly ignored the specifics of the cause and more important the OBVIOUS improvements that one can trivially observe will be brought to bear in all phases of distribution in time, as volume, revenue and experience warrant.<br><br>The canard you repeatedly lean upon, of the impossibility of mixing oil and ethanol in a common pipeline, you fail to acknowledge that dedicated Ethanol pipelines at sufficient volumes will address this trivially. Ignored all the time by the tenaciousDNA, who conveniently goes back to dismissing the plainspoken farmer\'s paraphrased quote that "volume fixes all", and conveniently leave the discussion cut short.  Well why is this? (please do not tell me about corrosion effects in possible ethanol pipelines as this is being addressed by a new startupâ€™s pipe coating technology)<br><br>Well we both know volume does not fix all by being left alone with the same material facts, but we also both know that by changing the facts, the numbers do not remain constant. Therein lies your weak leg, and one of the basic reasons you are far from what you protest you claim to be.<br><br>You also NEVER address the root cause of WHY ethanol is a must in the interim as a transitional corn based renewable fuel - that specifically Khosla describes and explains thoroughly in thoughtful painstaking detail. Again you are prematurely dismissive for unspoken reasons.<br><br>Technically and financially, the initial viability of Ethanol as a complementary fuel, all comes down to INFRASTRUCTURE (outside of the fuel alone).<br><br>The hardware implications of either biodiesel, or hydrogen or other conceivable renewables can not cheaply leverage off the present infrastructure of internal combustion, largely gasoline fueled IC vehicles with liquid non pressurized fueling. And yes I am reasonably familiar with conversion requirements for E85 in gasoline internal combustion motors. The costs are very modest for E85 conversion, which is why this is actually viable...<br><br>So where you are claiming deception, I call your kettle Black.<br><br>You ignore all the real nitty gritty details in infrastructure up and down the food chain of automobiles, that affect an overall decision properly and thoughtfully biased towards the sensible compromise of an incremental renewables migration strategy, ie one that is actually pragmatic from a business sense and able to be widely proliferated at minimal disruption to the existing infrastructure / food chain in fueling and automobile manufacture. <br><br>The larger the differences of an innovation in fueling technology is in details, and the larger the hurdle to practical and timely implementation. I figure that is pretty obvious, at least to some who have conducted any business up close and personal. It does not take an MBA in marketing to understand this in the least, but some folks have conceptual challenges nonetheless.<br><br>If you were to properly and sensibly address the BUSINESS realities in renewables for automotive fueling, and YOU might have some credibility, which you presently do not have in the least, despite your surface eloquence. <br><br>Although it is apparent that many thoughtful folks take your word as truth, some can actually see the gaping holes in your selective logic. This is the sign of a decent debater, I grant you that, but you are encountering someone calling your repeated bluffs, of partial and faulty facts you improperly represent as truth. <br><br>This is your mode of operation, and while you try to condescend - out of habit from your position on the OilDrum, your arguments are far weaker than what you claim of others weaknesses to be. <br><br>Your narrow perspective of the overall BUSINESS and Technology challenge to implementation of renewables, is immature, incomplete and too narrowly perfectionist to have half a chance of succeeding in the real world which includes factors both in and outside of drilling and refineries. <br><br>I take issue with your claims technical, your aspersions upon others actually deserving of your respect (I am not referring to me), and your naÃ¯veté in matters of establishing new markets and businesses. It is profoundly apparent you are too wonkish, too nerdy, but oddly limited actual intellectual curiosity in areas related to implications of leapfrog innovations even in your own purported expertise.<br><br>You are hardly deserving of this succinct response to your continual evasions and misrepresentations of minor challenges as being insurmountable, aside from your obvious pessimism regarding things you are clearly unfamiliar about.<br><br>I will leave it at that. <br><br>Good Luck Robert.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669422">\
	 <div id="dsq-comment-header-14669422" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669422" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669422" href="http://blogs.vinuth.com/the-holy-trail/" target="_blank" rel="nofollow">Vinuth</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669422" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669422" class="dsq-comment-message">Robert,<br>Thanks for the analogy. I agree with rest of your arguments which are not _against_ alternative fuels per se, but present the things as they stand. If indeed ethanol costs less to produce and _can_ be sold at higher prices than oil, then market forces will naturally lean towards it (which isn\'t quite happening). Why would anybody want to deal with oil (and oil holding nations) anyway, if it costs more? I take your stand to be neutral on this.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669423">\
	 <div id="dsq-comment-header-14669423" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669423" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669423" href="http://mark-nano.blogspot.com/" target="_blank" rel="nofollow">Mark Wendman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669423" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669423" class="dsq-comment-message">Hi Vinuth,  <br><br>REGARDING - "Thanks for the analogy. I agree with rest of your arguments which are not _against_ alternative fuels per se, but present the things as they stand. If indeed ethanol costs less to produce and _can_ be sold at higher prices than oil, then market forces will naturally lean towards it (which isnâ€™t quite happening). Why would anybody want to deal with oil (and oil holding nations) anyway, if it costs more?"<br><br>I think the actual situation is more nuanced than you imply. And the rational for the present situation and Prop 87 funding is supported by the actual facts.<br><br>Your description avoids noting that a notable additional market barrier is automobile conversions to alternative fuel capability and # of fueling stations selling the fuel.<br><br>Cost of ethanol is one part of this equation. Part of what Prop 87 is intending to do is to grow the infrastructure of all renewable sources of energy, including ethanol. And grow the infrastructure in a useful manner - up and down the fueling ecosystem of manufacture through end use market. Most vehicles presently on the road are not E85 capable, nor easily retrofittable.<br><br>A certain small percentage of vehicles that are not E85 ready, can be retrofitted,  but this is small. The jump starting of efforts in ethanol has to comprise a number of disparate parts of the food chain - manufacture and sales of E85 capable / ready vehicles, increasing supplies of the fuel, increasing the number of retail fuel outlets having the necessary E85 pump and tanks for sales, and so on. <br><br>One has to also provide unique aspects of fuel supply / manufacturing infrastructure to make the alternative a viable volume alternative, and there is more.<br><br>This more complex situation presently does provide an unspoken barrier in the present to pure cost driven sales.<br><br>There is more to it than that, but I will also point out that the conversion of large segments of vehicle manufacturing capacity to E85 capable FFV - Flex Fuel Vehicles, is particularly inexpensive compared to ALL alternative renewable fuels at present, especially for Internal Combustion motors that comprise the largest segment of present vehicle manufacture.<br><br>That point of an ecosystem of infrastructure for E85 - a very important matter, gets lost in Robert\'s selective narrow critiques, as if his reality is merely refining and manufacturing supply centric. Don\'t we wish it were so simple. <br><br>We might at our desks say that yet another potential vehicle fuel is a better choice for a Renewable type fuel, but so far the implications for changes to the mix of vehicle manufacture presently available from large auto manufacturers, and the ease of implementing E85 retail fueling pumps / stations, is a large reason why Khosla indicates this compromise is the best interim choice. This compromise is in part dictated by the complexities of the entire vehicle fueling foodchain.<br><br>I hope that you might begin to understand that theoretical aspects to evaluate a narrow metric of present efficiency of a candidate alternative fuel, is merely one part of the more complex tapestry of criteria.<br><br>Notable is that buildout of infrastructure has many ramifications in the viability of any alternative fuel. First order of business is to increase the potential end use market of vehicles, which in almost all alternative renewable fuels is considerably more expensive than adding E85 FFV Flex Fuel capability.<br><br>The first job of the infrastructure "sales function" is to convince automobile manufacturers to increase E85 FFV vehicle manufacture significantly. This takes time and is not a step function. <br><br>And it does require a sales effort on the part of proponents of the strategy, to the auto manufacturers.<br><br>I hope this provides you with a more complete understanding of merely some of the market, manufacture and distribution complexities.<br><br>Numerous writings by Mr. Khosla are posted here<br><a href="http://www.khoslaventures.com/resources.html" rel="nofollow">http://www.khoslaventures.com/resources.html</a><br>and on venturebeat.<br><br>Best Regards, Mark Wendman</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669424">\
	 <div id="dsq-comment-header-14669424" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669424" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669424" href="http://theoildrum.com/" target="_blank" rel="nofollow">Robert Rapier</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669424" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669424" class="dsq-comment-message">Mark,<br><br>As I told you several posts back, if you feel the need to keep responding with incredibly long-winded, non-topical posts, you still donâ€™t get it. Your problem is, despite a long track-record detailing my actual position on energy issues, you canâ€™t accept that. You just â€œknowâ€ deep down that my position is something else. So, you cast aspersions and argue against what you imagine my position to be. You have quite a vivid imagination, and you are wasting everyoneâ€™s time.<br><br><blockquote>I think it pretty transparent what specifically you are arguing for (or against) despite your own weak arguments to the contrary. </blockquote><br><br>If that was true, my guess is that you would have devoted some of that long-winded diatribe to actually addressing what I wrote in this essay. Despite writing thousands of words in response, you refuse to do that and instead argue against positions I have never taken. Are you completely incapable of reading for comprehension, or do you merely think your posturing is going to earn you an â€œatta boyâ€ by Mr. Khosla?<br><br><blockquote>By trying to demean the major spokesman of Prop 87 and specifically the proposal to use Ethanolâ€¦</blockquote><br><br>Mr. Khosla demeans himself with his juvenile attacks. I have seen enough mud-slinging in politics to last me a lifetime, and I am sick of it. What I have done is take his claims and rebut them. What you have failed to do, time after time, is to show where my rebuttal is wrong. Instead, you are happy spending thousands of words talking to yourself.<br><br><blockquote>You NEVER answer to my observations re Genetically Engineered Enzymeâ€¦</blockquote><br><br>I have let you get away with that a couple of times, but this one is just a lie. Do you want me to embarrass you by posting the specific replies I have given you regarding genetic engineering? But the problem is, since you donâ€™t understand cellulose chemistry, you donâ€™t understand the limitations of genetic engineering. You just think â€œgenetic engineering â€“ problem solved.â€<br><br>I would also point out to the reader that Mark recently wrote a gushing column over Mr. Khoslaâ€™s wonderful new cellulosic breakthrough. But Mark didnâ€™t understand that this was actually biomass gasification, which was the partial inspiration for my essay <a href="http://www.theoildrum.com/story/2006/10/22/211321/89" rel="nofollow">Cellulosic Ethanol vs. Biomass Gasification</a>. I corrected Mark with a comment following his essay, and he refused to publish it. That tells me all I need to know about how much Mark is actually interested in an honest debate over energy policy. I never censor anyone. I let their views be heard. Mark Wendman wishes to silence those voices he disagrees with, which is sad because he doesnâ€™t even understand the issues. But if you want to have an open debate, come on over to The Oil Drum. We donâ€™t censor views â€“ even those we disagree with.<br><br><blockquote>I will leave it at that.</blockquote><br><br>Will you? Wonâ€™t you treat us all to another thousand word diatribe in which you once again throw out personal attacks, ignore Mr. Khoslaâ€™s hypocritical arguments, and refuse to address my rebuttals?<br><br>Cheers, RR</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669425">\
	 <div id="dsq-comment-header-14669425" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669425" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14669425">tomo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669425" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669425" class="dsq-comment-message">Robert,<br><br>Question for you on the graph from Nebraska:  <br><br>Does that account for the actual energy produced from a gallon of gasoline or ethanol?  I believe the answer is no and if so, the cost per unit of energy is almost 3x more expensive with ethanol than gasoline.  Additionally, what energy sources are the ethanol plants using in their production of ethanol?  I\'d be surprised to learn if they were all green sources and they transport it to the distribution points and then on to the retail outlets on all ethanol using trucks?  It sounds to me like this issue is two fold, one is the cost of gasoline and keeping it \'low and affordable\' to the consumer and the second is using renewable energy sources.  It seems like apples and oranges are getting compared here.  A gallon of gasoline doesn\'t produce the same amount of energy as a gallon of ethanol so it would make sense to create and measure upon a unit of energy as opposed to a gallon of liquid.   You mention the $7.24 price point for the net energy equivalent of one gallon gasoline and I would like you to elaborate on that.  If the point of pro 87 folks is to keep the cost of energy lower and they are doing so by comparing the cost of a gallon of ethanol to a gallon of gasoline there would appear to be very questionable logic behind that argument.  Am I missing something because that just seems too obvious to not be dwelled on by the oil producers as if this is the case, the environmental trade off if you will, is close to $5 per gallon to use ethanol.  That seems expensive to me and goes against the grain of the argument for keeping costs lower.<br><br>Last but not least ethanol is a fossil fuel is it not?  Should there be a way for someone to snap their fingers and the gasoline industry disappear and be replaced by ethanol wouldn\'t we be having this same discussion sooner or later about ethanol and some new alternative fuel source?<br><br>I am excited about solar and wind power because those sources allow for the individual consumer to produce their own power and not be so subject to international politics when burn a watt or start the motor on their cars.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669426">\
	 <div id="dsq-comment-header-14669426" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669426" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669426" href="http://theoildrum.com/" target="_blank" rel="nofollow">Robert Rapier</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669426" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669426" class="dsq-comment-message"><blockquote>Does that account for the actual energy produced from a gallon of gasoline or ethanol? </blockquote><br><br>No. That is just the selling price for 1 gallon of ethanol and gasoline. The $ per BTU price for ethanol is much higher than for gasoline.<br><br><blockquote>Additionally, what energy sources are the ethanol plants using in their production of ethanol?</blockquote><br><br>The primary energy source in most ethanol plants is natural gas (used to distill the ethanol and make fertilizer for corn), although some lately have been turning to coal. One company, E3 Biofuels, is attempting a much more sustainable model than the status quo, albeit at a much higher capital cost.<br><br><blockquote>You mention the $7.24 price point for the net energy equivalent of one gallon gasoline and I would like you to elaborate on that.</blockquote><br><br> That analysis was by Zfacts, but I have done very similar analyses. It boils down to the net energy. When a gallon of ethanol is produced, it takes the energy equivalent of 0.8 gallons of ethanol to produce it. So, the net energy is only 0.2 gallons. What you find is that you have to produce several gallons of ethanol, each one of them subsidized, to displace 1 gallon of gasoline.<br><br><blockquote>Last but not least ethanol is a fossil fuel is it not?</blockquote><br><br>It is in all but name. I have called it a recycled fossil fuel, since the net captured solar energy is such a small portion of the final energy. Much of the energy came from the fertilizer, which is usually made from fossil fuels. The ethanol is distilled with fossil fuels. The transportation is done using fossil fuels.  Of course Brazil has done a much better job of creating sustainable ethanol, but we donâ€™t have the climate to grow large amounts of sugarcane.  <br><br><blockquote>I am excited about solar and wind powerâ€¦</blockquote><br><br>I agree. Solar will certainly be left standing after all of the alternatives have competed against one another. I think solar, wind, and biomass gasification, combined with a move to electric transport, is the only real hope we have for averting a Peak Oil disaster.<br><br>Cheers, Robert</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669427">\
	 <div id="dsq-comment-header-14669427" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669427" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669427" href="http://mark-nano.blogspot.com/" target="_blank" rel="nofollow">Mark Wendman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669427" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669427" class="dsq-comment-message">Top of the Morning to you Robert,<br><br>Please excuse my tardy response, but I have the flu with fever the past few days.<br><br>Nice to see that you completely and conveniently ignore AGRIVIDA\'s projected 20% ethanol yield increase from GENETICALLY ENGINEERED, CULTIVATED CORN INCORPORATED CELLULOSIC ENZYMES.<br><br>Nice for you to just handwave that one off, as the same dismissing various other points you have done, to denigrate the upside of Cellulosic Ethanol.<br><br>Where your prior comments about farmers who merely bespoke of volume alone, increasing efficiencies and productivity (without material changes to the process) - as your intellectual crutch as to why implicitly you think that there can be no material changes - is on the face of it laughable, as are many of your similarly conveniently slanted arguments.<br><br>You ignore that many of the ethanol plants recent and in future, can be incrementally upgraded as markets warrant, is quite convenient on your part.<br><br>Initially the capital costs for best in class green Ethanol solutions are onerously high for smaller outfits, but the plant and feedstock and distribution upgrades are feasible and will get done as time and money permit.<br><br>You conveniently skirt the point about the fact that ethanol is the best method to pragmatically migrate the existing internal combustion vehicle infrastructure to cleaner Ethanol, and in time a greener Ethanol production source. <br><br>Increasing Ethanol E85 use will reduce dense urban area air pollution, like in LA and San Francisco regions as two notable examples in California.<br><br>You also fail to acknowledge that the Ethanol pricing charts, vis a vis gasoline, are for production prior to many Ethanol innovations that will come to pass, in part assisted by Prop 87.<br><br>Moreover, you fail to mention the cost of alternatives to ethanol as clean fueling options. Again convenient to ignore. You avoid acknowledging Mr. Khosla\'s explanation why the best compromise for cleaner fuels near term is ethanol. Khosla describes this in detail, enough that even you can grasp it, if you bother to read.<br><br>Where you dismiss Genetic Engineering methods applied to efficient means to produce optimal Cellulosic enzymes, again you are deceptive. Genetic Engineering Methods, can produce Cellulosic enzymes inside the very same type harvested plants being cultivated (corn) at almost trivial cost increase overall. <br><br>By Genetically modifying the Corn Plant itself to produce the enzyme inside the cellulosic mass of the Corn Stalk and husk, during otherwise normal cultivation of the GM modified corn itself, the enzyme assists in rendering the cellulosic portion of corn able to be transformed to ethanol at greater efficency and with limited external enzyme use in the cellulosics phase.<br><br>Since conventional enzyme manufacture and recovery, to produce Cellulosic enzyme (exsitu of the cultivated plants) are very costly, it is immediately apparent that Genetic Engineering Methods can effect a significant paradigm shift in the viability and cost effectiveness of cellulosic Ethanol production. <br><br>Except if you wish to prematurely handwave this away as impractical and irrelavent, as you have done and continue to do.<br><br>Moreover this same technique of Genetically Engineered in plant formation of Cellulosic Enzymes can be transformational as to the viability of higher feedstock yield cellulosic alternatives such as switchgrass, among numerous other cellulosic feedstocks.<br><br>I will acknowledge that this is yet to be deployed, but your dismissive attitude re the future near term prospects is too convenient - intellectually lazy, as have been many or your slanted diatribes.<br><br>As to more pedantic issues of ethanol production, cultivation, and distribution challenges, you similarly ignore the obvious upsides with a dismissive attitude. Not everyone will be swayed by your denigrating farmers with your inappropriate quote.<br><br>Genetic Engineering methods applied to Cellulosic Ethanol feedstock, will have a material impact on the transformation to a high yield practical cellulosic ethanol process.<br><br>You ignore that GM techniques applied to enzyme formation for GM modified Cellulosic advanced Corn Ethanol will be significantly less costly when GM methods produce the cellulosic enzymes nearly for free in the corn itself. <br><br>Genetic Engineering Methods are no panacea, but sensible and wise application of the methods of Genetic Engineering / Plant Modification can be usefully applied to cost reduce industrial scale cellulosic ethanol production, even if you conveniently fail to acknowledge this.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669428">\
	 <div id="dsq-comment-header-14669428" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669428" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669428" href="http://theoildrum.com/" target="_blank" rel="nofollow">Robert Rapier</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669428" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669428" class="dsq-comment-message"><blockquote>Where you dismiss Genetic Engineering methods applied to efficient means to produce optimal Cellulosic enzymes, again you are deceptive.</blockquote><br><br>Mark, your responses continue to plumb the depths of irrationality. I guess in hindsight, I should have listened to all of those who e-mailed and told me to ignore you. I donâ€™t know how many times I have to point out to you that I am not now, nor have I ever dismissed the potential of genetic engineering. I am a big fan of genetic engineering. I have pointed this out in responses here, and I have specifically told you this in e-mails. I told you that I advocated genetic engineering as a means to improve the economics of cellulosic ethanol as a graduate student working on this problem. So once again, you are talking to yourself and not rebutting an actual position that I have taken.<br><br>I leave it to the reader to decide Wendmanâ€™s motivation in constantly misrepresenting me. It has become quite tiresome.<br><br>Cheers, RR</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669429">\
	 <div id="dsq-comment-header-14669429" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669429" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14669429">Tim Seidel</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669429" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669429" class="dsq-comment-message">Robert,<br><br>Thanks for another very data driven, informative article.  It\'s much easier to read these and come to sound conclusions myself, when there are comprised of true facts and figures from reputable sources.  I tried very hard to pull something out of Mr. Wendman\'s pseudo-rebuttal so I could hear both sides of the fence, but all I was really able to conclude is that he is concerned about pollution in California, the state in which he lives, he firmly believes Ethanol is the answer to his heartburn (although I still haven\'t seen any credible data that supports that), and that he really loves Walmart (but evidently doesn\'t understand that the "box-stores" business model for selling gasoline is not to make money on it, but to get people to their store to buy the goods they sell inside the store).<br><br>The reason I decided to write was to just add a little clarity to the questions surround the Ethanol market in the last 12 months, since there seemed to be a couple of questions about it.  Sometimes explaining what drives commodity markets can be difficult, but I donâ€™t think you will find anybody who knows anything about the ethanol market, not know what was driving high ethanol prices in the 4Q â€™05 and 1Q â€™06.  The major driver (so major you, could almost call it the sole driver) was the process of phasing out of MTBE in our U.S. Reformulated Gasoline Markets (RFG).  Given the short time frame (270 days after our President signed the Energy bill) the refineries and gasoline blending facilities had to react to the relaxation of the MTBE mandate (that is the Federal Government said they were no longer requiring refineries to blend MTBE into gasoline and therefore once this mandate is released, if oil companies continue to blend MTBE into finished gasoline, the U.S. government will no longer protect you from the long line of money grubbing, class action lawyers standing outside their door waiting to sue someone (with deep pockets) for trace amount of MTBE found in the groundwater throughout the U.S.). <br><br>Since there was minimal capital investment required to blend ethanol into finished gasoline at U.S. truck racks, and ethanol provided some similar properties to the gasoline pool as MTBE did; ethanol appeared to be a good solution to take up some of the volume vacated by MTBE.  Even though the change effected a small volume percentage (maximum of 10%) of a very small fraction of Motor Fuel (Only a handful of large U.S. Metropolitan areas), the change in ethanol demand was huge.  It caused Ethanol prices to go from $2/gal range to the $5/gal range.  Mr. Wendman, your comments on Genetic Engineering of Cellulosic Enzymes are intriguing and I would like to know more about it, but if itâ€™s improvements are in parallel with any other genetic advancement (10 to 20% improvement), that wonâ€™t even scratch the surface of what type of ethanol production we would need to start even making a dent in our appetite for gasoline here in the U.S.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14669430">\
	 <div id="dsq-comment-header-14669430" class="dsq-comment-header">\
	 <cite id="dsq-cite-14669430" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14669430" href="http://yes-on-87.org/" target="_blank" rel="nofollow">Alessandro Machi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14669430" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14669430" class="dsq-comment-message">"This is also why I become concerned when people with expertise in one field try to influence policy in another. My dentist is a great guy, and very good at what he does, but I wouldnâ€™t let him remove my appendix. And while he should certainly be involved in the discourse, he shouldnâ€™t receive undue influence on energy policy just because he is a good dentist."<br><br>Your quote is ironic in that a few of the sinister aspects of the "No on 87" commercials was to hire the head of the firefighters union to then quote economics experts to explain how firefighters might not have enough gas to go fight a fire, and he said it with a straight, authoritative face.<br><br>Many of the no-on-87 commercials converted opinions to facts. <br><br>I don\'t have an argument with some of your points, but you actually hammered on specifics whereas the no campaign made many questionable accusations (and I am being very polite by putting it that mildly) and then just repeated their confusing claims over and over, to the tune of 85 million spent in advertising, almost twice what the yes side spent on advertising,<br><br>Even if there was an initial slant towards ethanol, it would not have lasted.  The tax would have worked it\'s way towards solar, wind, and improved battery capacity.  Do you know why the tax would have been beautifully spread around, because of blogs like this one.<br><br>Do you think you can have an affect on whether or not Prop 87 passes, but if it passes, you will have no influence to make sure the money is properly spent?  Do you really believe your blog only works before the fact, and not during the execution of the initiative in question?   I\'d call that an inconvenient truth you chose to ignore.<br><br>Instead of fighting fair, which you claim the opposing factions are not doing by receiving subsidies, (as if fighting a war in Iraq isn\'t an oil subsidy) we have the oil industry and car manufacturers buying up battery technology patents and sitting on them, and any attempt at technology breakthroughs they invest in are for supplementing the burning of fuel, not replacing it.<br><br>Why does the oil industry care if they get hit with a very minimal tax that would have worked out to LESS THAN THREE CENTS A GALLON, when we all are slaves to their product, which was pointed out in this very blog.   Your quote  "I find it very ironic that those who are flying around the country to decry the â€œevil oil industryâ€ are doing so using jet fuel supplied by the oil industry. They enjoy many conveniences as a result of oil and gas production, but have deluded themselves into believing their lifestyle could be maintained if we all switched to alternative energy"...<br><br>So you admit that we can\'t do without your product, but if this miniscule three cent tax had been added to every gallon of gas, your industry would have just come to a grinding halt. Somebody is having it both ways, but it\'s not the alternative energy folks, it\'s the oil industry.</div>\
	 </div>\
	 </li>\
	 </ul>\
';

(function() {
	
	





Dsq.Debug.profile(function() {
	if(Dsq.jsonData.request.page == 1 && Dsq.jsonData.request.is_initial_load) {
		Dsq.container.innerHTML = Dsq.Templates.header() + Dsq.container.innerHTML + Dsq.Templates.footer();
	}
	Dsq.$(Dsq.curPageId).innerHTML = Dsq.$(Dsq.curPageId).innerHTML.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
}); // Dsq.Debug.Profile

// HACK: Resetting cache because we're done with.
Dsq.Utils.gebiFromElementCollectionCache = null;


	
	
	var dsq_styleEl = document.getElementById(disqus_container_id);
	var dsq_anchorEl = document.getElementsByTagName('a')[0];
	
	Dsq.Thread.fc = Dsq.Utils.getStyle(dsq_styleEl, 'color');
	if(dsq_anchorEl) { Dsq.Thread.ac = Dsq.Utils.getStyle(dsq_anchorEl, 'color'); }
	Dsq.Thread.ff = Dsq.Utils.getStyle(dsq_styleEl, (Dsq.Utils.ie || window.opera ? 'fontFamily' : 'font-family'));
	// For Safari / Opera: strip quotes.
	Dsq.Thread.ff = Dsq.Thread.ff.replace(/['"]/g, '');
	Dsq.Thread.fc = encodeURIComponent(Dsq.Thread.fc);
	Dsq.Thread.ac = encodeURIComponent(Dsq.Thread.ac);
	Dsq.Thread.ff = encodeURIComponent(Dsq.Thread.ff);

	
	
	
	if(Dsq.$(Dsq.Templates.addPostContainer)) {
		// TODO: Check to see if theme uses postmessage.
		if (window.disqus_use_postmessage) {
			Dsq.frames['reply_0'] = new Dsq.ReplyFrame(Dsq.$(Dsq.Templates.textareaContainer));
			Dsq.frames['reply_0'].init(function() {
				// Use fallback iframe
				Dsq.$(Dsq.Templates.addPostContainer).innerHTML = '';
				var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
				Dsq.Iframes.showReplyIframeInContainer(Dsq.$(Dsq.Templates.addPostContainer), null, {theme: theme});
				// if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
			});
		} else {
			// DEPRECATED
			Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-post-add'));
		}
	}

	
	

	
	if(document.location.hash != '') {
		document.location.hash = document.location.hash.substring(1);
	}

	Dsq.Popup.showCookieMsgs();

	
	if(document.location.search != '' && location.hash != '#disqus_thread') {
		var reply_id = Dsq.Utils.getRequestParams().dsq;
		if(reply_id) { document.location.hash = 'comment-' + reply_id; }
	}

	
	if((typeof OB_Script != 'undefined') && (typeof OB_versionNum != 'undefined')) {
		if(navigator.userAgent.indexOf("Firefox") != -1) {
			if(window.frames['dsq-reply-frame']) {
				window.frames['dsq-reply-frame'].location = Dsq.Urls.REPLY + (new Date()).getTime() + '&f=venturebeat&t=people_in_glass_houses&to_redirect=' + encodeURIComponent(window.location) + '&ifrs=' + encodeURIComponent(disqus_iframe_css);
			}
		}
	}

	if (Dsq.jsonData.integration.theme == 4) {
		if (Dsq.jsonData.realtime_enabled) {
			Dsq.Realtime.initialize();
		}
	}

	



	window.ExecuteWhen = (function () {
	var obj = {}
	
	// Private
	var running = false;
	var timer = null;
	var pending = [];
	var startTimer = function() {
		running = true;
		timer = setInterval(obj.heartBeat, 100);
	};
	var stopTimer = function() {
		running = false;
		clearInterval(timer);
	};
	
	// Public
	obj.add = function (condition, code) {
		pending.push([condition,code]);
		this.heartBeat(); //!
		if (!running) {
			startTimer();
		}
	};
	obj.heartBeat = function() {
		if (!pending.length) {
			stopTimer();
		}
		var newPending = [];
		for (var i=0; i<pending.length; i++) {
			var cond = pending[i][0];
			var code = pending[i][1];
			// FIXME: if cond or code throw an error, they never get removed from pending
			if (cond()){
				code();
			}
			else {
				newPending.push([cond, code]);
			}
		}
		pending = newPending;
	};
	return obj;
})();

// also used in embed_thread.js:
window.fbIsReady = function () {return window.FB && FB.init;};
// NOTE: This script gets executed again without threadEl
//       set when we are loaded again as the fbc_receiver.
//       In this case, we don't need the hidden container.

if(!window.FB || !FB.init) {
	if(window.Dsq && Dsq.container) {
		// container is not present when init.js is loaded from an xd-receiver iframe; in this case,
		// we don't need the FB_HiddenContainer anyway.
		var fbDiv = document.createElement('div');
		fbDiv.id = "FB_HiddenContainer";	// Required or else FeatureLoader will execute a document.write.
		fbDiv.style.position = 'absolute';	// This is intentionally not setting display to none as this breaks
		fbDiv.style.top = '-10000px';		// Flash in Safari.
		fbDiv.style.left = '-10000px';
		fbDiv.style.width = '0px';
		fbDiv.style.height = '0px';
		Dsq.container.appendChild(fbDiv);
	}
	var fbJS = document.createElement('script');
	fbJS.type = "text/javascript";
	fbJS.src = "http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php";
	document.getElementsByTagName('head')[0].appendChild(fbJS);

	ExecuteWhen.add(window.fbIsReady,
		function () {
			// HACK: This is a workaround FBC's single domain limitation by
			//		 allowing sites to create multiple forums with different
			//		 Facebook API keys.  This must be used in conjunction with
			//		 disqus_facebook_forum (see authenticateFacebook).
			var facebook_api_key = '547225e2dda46ccfdec279a9a44a0074';
			if (typeof disqus_facebook_api_key != 'undefined') {
				facebook_api_key = disqus_facebook_api_key;
			}

			FB.init(facebook_api_key, window.facebookXdReceiverPath || null,
				{fetchSignedPublicSessionData: true});
		});
}


	


if(typeof(disqus_callback) == 'function') {
	var callback_params = Dsq.Utils.getRequestParams()['dsq_cbp'] || null;

	// We don't care about any errors in third-party code
	try {
		disqus_callback(callback_params);
	} catch (x) {
		if (typeof(console) != 'undefined' && typeof(console.log) == 'function') {
			// But it would be nice to let developers know about them
			console.log(x);
		}
		// pass
	}

	// HACK: We don't know if the callback wraps our container, which may
	// possibly result in a new DOM element.
	Dsq.container = document.getElementById('dsq-content');
}

// Global event handler for narcissus.
if (Dsq.jsonData.integration.theme == 4) {
	var g = Dsq.Utils.ie ? document : window;
	Dsq.Utils.addEventListener(g, 'keydown', function(event) {
		// Handle "enter" key on input for post box.
		if ((event.keyCode || event.which) == 13) {
			var target = Dsq.Utils.ie ? event.srcElement : event.target;
			// For Safari bug, detect text node.
			if (target.nodeType == 3) {
				target = target.parentNode;
			}

			if (target.nodeName == 'INPUT' &&
				target.parentNode.className == 'dsq-input-wrapper') {
				var postId = Dsq.Utils.extractId(target);
				Dsq.Templates.postComment(postId, this, false);
			}
		}
	});
}

})();




